import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1Auth } from "./Auth.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1HTTPConfig } from "../../common.k8s.elastic.co/v1/HTTPConfig.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1Monitoring } from "../../common.k8s.elastic.co/v1/Monitoring.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1NodeSet } from "./NodeSet.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1PodDisruptionBudgetTemplate } from "../../common.k8s.elastic.co/v1/PodDisruptionBudgetTemplate.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1RemoteClusterServer } from "./RemoteClusterServer.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1RemoteCluster } from "./RemoteCluster.js"; import { IComGithubElasticCloudOnK8sV3PkgApisCommonV1SecretSource } from "../../common.k8s.elastic.co/v1/SecretSource.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1TransportConfig } from "./TransportConfig.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1UpdateStrategy } from "./UpdateStrategy.js"; import { IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1VolumeClaimDeletePolicy } from "./VolumeClaimDeletePolicy.js"; import { ModelData, Model } from "@kubernetes-models/base"; /** * ElasticsearchSpec holds the specification of an Elasticsearch cluster. */ export interface IElasticsearchSpec { /** * Auth contains user authentication and authorization security settings for Elasticsearch. */ "auth"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1Auth; /** * HTTP holds HTTP layer settings for Elasticsearch. */ "http"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1HTTPConfig; /** * Image is the Elasticsearch Docker image to deploy. */ "image"?: string; /** * Monitoring enables you to collect and ship log and monitoring data of this Elasticsearch cluster. * See https://www.elastic.co/guide/en/elasticsearch/reference/current/monitor-elasticsearch-cluster.html. * 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; /** * NodeSets allow specifying groups of Elasticsearch nodes sharing the same configuration and Pod templates. */ "nodeSets": Array; /** * PodDisruptionBudget provides access to the default Pod disruption budget(s) for the Elasticsearch cluster. * The behavior depends on the license level. * With a Basic license or if podDisruptionBudget.spec is not empty: * The default budget doesn't allow any Pod to be removed in case the cluster is not green or if there is only one node of type `data` or `master`. * In all other cases the default podDisruptionBudget sets `minAvailable` equal to the total number of nodes minus 1. * With an Enterprise license and if podDisruptionBudget.spec is empty: * The default budget is split into multiple budgets, each targeting a specific node role type allowing additional disruptions * for certain roles according to the health status of the cluster. * Example: * All data roles (excluding frozen): allows disruptions only when the cluster is green. * All other roles: allows disruptions only when the cluster is yellow or green. * To disable, set `podDisruptionBudget` to the empty value (`{}` in YAML). */ "podDisruptionBudget"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1PodDisruptionBudgetTemplate; /** * RemoteClusterServer specifies if the remote cluster server should be enabled. * This must be enabled if this cluster is a remote cluster which is expected to be accessed using API key authentication. */ "remoteClusterServer"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1RemoteClusterServer; /** * RemoteClusters enables you to establish uni-directional connections to a remote Elasticsearch cluster. */ "remoteClusters"?: Array; /** * RevisionHistoryLimit is the number of revisions to retain to allow rollback in the underlying StatefulSets. */ "revisionHistoryLimit"?: number; /** * SecureSettings is a list of references to Kubernetes secrets containing sensitive configuration options for Elasticsearch. */ "secureSettings"?: Array; /** * ServiceAccountName is used to check access from the current resource to a resource (for ex. a remote Elasticsearch cluster) in a different namespace. * Can only be used if ECK is enforcing RBAC on references. */ "serviceAccountName"?: string; /** * Transport holds transport layer settings for Elasticsearch. */ "transport"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1TransportConfig; /** * UpdateStrategy specifies how updates to the cluster should be performed. */ "updateStrategy"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1UpdateStrategy; /** * Version of Elasticsearch. */ "version": string; /** * VolumeClaimDeletePolicy sets the policy for handling deletion of PersistentVolumeClaims for all NodeSets. * Possible values are DeleteOnScaledownOnly and DeleteOnScaledownAndClusterDeletion. Defaults to DeleteOnScaledownAndClusterDeletion. */ "volumeClaimDeletePolicy"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1VolumeClaimDeletePolicy; } /** * ElasticsearchSpec holds the specification of an Elasticsearch cluster. */ export declare class ElasticsearchSpec extends Model implements IElasticsearchSpec { "auth"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1Auth; "http"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1HTTPConfig; "image"?: string; "monitoring"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1Monitoring; "nodeSets": Array; "podDisruptionBudget"?: IComGithubElasticCloudOnK8sV3PkgApisCommonV1PodDisruptionBudgetTemplate; "remoteClusterServer"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1RemoteClusterServer; "remoteClusters"?: Array; "revisionHistoryLimit"?: number; "secureSettings"?: Array; "serviceAccountName"?: string; "transport"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1TransportConfig; "updateStrategy"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1UpdateStrategy; "version": string; "volumeClaimDeletePolicy"?: IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1VolumeClaimDeletePolicy; constructor(data?: ModelData); } export type { IElasticsearchSpec as IComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1ElasticsearchSpec, ElasticsearchSpec as ComGithubElasticCloudOnK8sV3PkgApisElasticsearchV1ElasticsearchSpec };