import { IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON } from "kubernetes-models/apiextensions.k8s.io/v1/JSON"; import { IIoK8sApiCoreV1ConfigMapKeySelector } from "kubernetes-models/v1/ConfigMapKeySelector"; import { IIoK8sApiCoreV1SecretKeySelector } from "kubernetes-models/v1/SecretKeySelector"; import { IComGithubGrafanaAgentPkgOperatorApisMonitoringV1alpha1IntegrationType } from "./IntegrationType.js"; import { IIoK8sApiCoreV1VolumeMount } from "kubernetes-models/v1/VolumeMount"; import { IIoK8sApiCoreV1Volume } from "kubernetes-models/v1/Volume"; import { ModelData, Model } from "@kubernetes-models/base"; /** * IntegrationSpec specifies the desired behavior of a metrics * integration. */ export interface IIntegrationSpec { /** * The configuration for the named integration. Note that Integrations are * deployed with the integrations-next feature flag, which has different * common settings: * * https://grafana.com/docs/agent/latest/configuration/integrations/integrations-next/ */ "config": IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON; /** * An extra list of keys from ConfigMaps in the same namespace as the * Integration which will be mounted into the Grafana Agent pod running this * Integration. * * ConfigMaps are mounted at * /etc/grafana-agent/integrations/configMaps///. */ "configMaps"?: Array; /** * Name of the integration to run (e.g., "node_exporter", "mysqld_exporter"). */ "name": string; /** * An extra list of keys from Secrets in the same namespace as the * Integration which will be mounted into the Grafana Agent pod running this * Integration. * * Secrets will be mounted at * /etc/grafana-agent/integrations/secrets///. */ "secrets"?: Array; /** * Type informs Grafana Agent Operator about how to manage the integration being * configured. */ "type": IComGithubGrafanaAgentPkgOperatorApisMonitoringV1alpha1IntegrationType; /** * An extra list of VolumeMounts to be associated with the Grafana Agent pods * running this integration. VolumeMount names are mutated to be unique * across all used IntegrationSpecs. * * Mount paths should include the namespace/name of the Integration CR to * avoid potentially colliding with other resources. */ "volumeMounts"?: Array; /** * An extra list of Volumes to be associated with the Grafana Agent pods * running this integration. Volume names are mutated to be unique across * all Integrations. Note that the specified volumes should be able to * tolerate existing on multiple pods at once when type is daemonset. * * Don't use volumes for loading Secrets or ConfigMaps from the same namespace * as the Integration; use the Secrets and ConfigMaps fields instead. */ "volumes"?: Array; } /** * IntegrationSpec specifies the desired behavior of a metrics * integration. */ export declare class IntegrationSpec extends Model implements IIntegrationSpec { "config": IIoK8sApiextensionsApiserverPkgApisApiextensionsV1JSON; "configMaps"?: Array; "name": string; "secrets"?: Array; "type": IComGithubGrafanaAgentPkgOperatorApisMonitoringV1alpha1IntegrationType; "volumeMounts"?: Array; "volumes"?: Array; constructor(data?: ModelData); } export type { IIntegrationSpec as IComGithubGrafanaAgentPkgOperatorApisMonitoringV1alpha1IntegrationSpec, IntegrationSpec as ComGithubGrafanaAgentPkgOperatorApisMonitoringV1alpha1IntegrationSpec };