import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1Config } from "../../common.k8s.elastic.co/v1/Config.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1ConfigSource } from "../../common.k8s.elastic.co/v1/ConfigSource.js"; import { IComGithubElasticCloudOnK8sV3PkgApisLogstashV1alpha1ElasticsearchCluster } from "./ElasticsearchCluster.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1Monitoring } from "../../common.k8s.elastic.co/v1/Monitoring.js"; import { IIoK8sApiCoreV1PodTemplateSpec } from "kubernetes-models/v1/PodTemplateSpec"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1SecretSource } from "../../common.k8s.elastic.co/v1/SecretSource.js"; import { IComGithubElasticCloudOnK8sV3PkgApisLogstashV1alpha1LogstashService } from "./LogstashService.js"; import { IIoK8sApiAppsV1StatefulSetUpdateStrategy } from "kubernetes-models/apps/v1/StatefulSetUpdateStrategy"; import { IIoK8sApiCoreV1PersistentVolumeClaim } from "kubernetes-models/v1/PersistentVolumeClaim"; import { ModelData, Model } from "@kubernetes-models/base"; /** * LogstashSpec defines the desired state of Logstash */ export interface ILogstashSpec { /** * Config holds the Logstash configuration. At most one of [`Config`, `ConfigRef`] can be specified. */ "config"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1Config; /** * ConfigRef contains a reference to an existing Kubernetes Secret holding the Logstash configuration. * Logstash settings must be specified as yaml, under a single "logstash.yml" entry. At most one of [`Config`, `ConfigRef`] * can be specified. */ "configRef"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1ConfigSource; "count"?: number; /** * ElasticsearchRefs are references to Elasticsearch clusters running in the same Kubernetes cluster. */ "elasticsearchRefs"?: Array; /** * Image is the Logstash Docker image to deploy. Version and Type have to match the Logstash in the image. */ "image"?: string; /** * Monitoring enables you to collect and ship log and monitoring data of this Logstash. * Metricbeat and Filebeat are deployed in the same Pod as sidecars and each one sends data to one or two different * Elasticsearch monitoring clusters running in the same Kubernetes cluster. */ "monitoring"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1Monitoring; /** * Pipelines holds the Logstash Pipelines. At most one of [`Pipelines`, `PipelinesRef`] can be specified. */ "pipelines"?: Array; /** * PipelinesRef contains a reference to an existing Kubernetes Secret holding the Logstash Pipelines. * Logstash pipelines must be specified as yaml, under a single "pipelines.yml" entry. At most one of [`Pipelines`, `PipelinesRef`] * can be specified. */ "pipelinesRef"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1ConfigSource; /** * PodTemplate provides customisation options for the Logstash pods. */ "podTemplate"?: IIoK8sApiCoreV1PodTemplateSpec; /** * RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSet. */ "revisionHistoryLimit"?: number; /** * SecureSettings is a list of references to Kubernetes Secrets containing sensitive configuration options for the Logstash. * Secrets data can be then referenced in the Logstash config using the Secret's keys or as specified in `Entries` field of * each SecureSetting. */ "secureSettings"?: Array; /** * ServiceAccountName is used to check access from the current resource to Elasticsearch resource in a different namespace. * Can only be used if ECK is enforcing RBAC on references. */ "serviceAccountName"?: string; /** * Services contains details of services that Logstash should expose - similar to the HTTP layer configuration for the * rest of the stack, but also applicable for more use cases than the metrics API, as logstash may need to * be opened up for other services: Beats, TCP, UDP, etc, inputs. */ "services"?: Array; /** * UpdateStrategy is a StatefulSetUpdateStrategy. The default type is "RollingUpdate". */ "updateStrategy"?: IIoK8sApiAppsV1StatefulSetUpdateStrategy; /** * Version of the Logstash. */ "version": string; /** * VolumeClaimTemplates is a list of persistent volume claims to be used by each Pod. * Every claim in this list must have a matching volumeMount in one of the containers defined in the PodTemplate. * Items defined here take precedence over any default claims added by the operator with the same name. */ "volumeClaimTemplates"?: Array; } /** * LogstashSpec defines the desired state of Logstash */ export declare class LogstashSpec extends Model implements ILogstashSpec { "config"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1Config; "configRef"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1ConfigSource; "count"?: number; "elasticsearchRefs"?: Array; "image"?: string; "monitoring"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1Monitoring; "pipelines"?: Array; "pipelinesRef"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1ConfigSource; "podTemplate"?: IIoK8sApiCoreV1PodTemplateSpec; "revisionHistoryLimit"?: number; "secureSettings"?: Array; "serviceAccountName"?: string; "services"?: Array; "updateStrategy"?: IIoK8sApiAppsV1StatefulSetUpdateStrategy; "version": string; "volumeClaimTemplates"?: Array; constructor(data?: ModelData); } export type { ILogstashSpec as IComGithubElasticCloudOnK8sV3PkgApisLogstashV1alpha1LogstashSpec, LogstashSpec as ComGithubElasticCloudOnK8sV3PkgApisLogstashV1alpha1LogstashSpec };