[bitnami/elasticsearch] deprecate elasticsearch-curator (#11037)

* deprecate elastic-curator

Signed-off-by: mauraza <gibone@vmware.com>

* Update README.md with readme-generator-for-helm

Signed-off-by: Bitnami Containers <bitnami-bot@vmware.com>

* review changes

Signed-off-by: mauraza <gibone@vmware.com>

Co-authored-by: Bitnami Containers <bitnami-bot@vmware.com>
This commit is contained in:
Ibone González Mauraza
2022-07-06 17:02:00 +02:00
committed by GitHub
parent 1c3b624f23
commit c5e003d828
12 changed files with 12 additions and 816 deletions

View File

@@ -25,4 +25,4 @@ name: elasticsearch
sources:
- https://github.com/bitnami/bitnami-docker-elasticsearch
- https://www.elastic.co/products/elasticsearch
version: 18.2.17
version: 19.0.0

View File

@@ -108,7 +108,7 @@ $ helm delete --purge my-release
| `initContainers` | Add additional init containers to the all elasticsearch node pod(s) | `[]` |
| `image.registry` | Elasticsearch image registry | `docker.io` |
| `image.repository` | Elasticsearch image repository | `bitnami/elasticsearch` |
| `image.tag` | Elasticsearch image tag (immutable tags are recommended) | `8.2.2-debian-10-r0` |
| `image.tag` | Elasticsearch image tag (immutable tags are recommended) | `8.3.1-debian-11-r0` |
| `image.pullPolicy` | Elasticsearch image pull policy | `IfNotPresent` |
| `image.pullSecrets` | Elasticsearch image pull secrets | `[]` |
| `image.debug` | Enable Elasticsearch image debug mode | `false` |
@@ -511,73 +511,6 @@ $ helm delete --purge my-release
| `ingest.ingress.extraRules` | Additional rules to be covered with this ingress record | `[]` |
### Elasticsearch curator parameters
| Name | Description | Value |
| ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| `curator.enabled` | Enable Elasticsearch Curator cron job | `false` |
| `curator.nameOverride` | String to partially override elasticsearch.curator.fullname | `""` |
| `curator.fullnameOverride` | String to fully override elasticsearch.curator.fullname | `""` |
| `curator.hooks` | Whether to run job on selected hooks | `{}` |
| `curator.dryRun` | Run Curator in dry-run mode | `false` |
| `curator.jobAnnotations` | Annotations to add to the job | `{}` |
| `curator.jobLabels` | Annotations to add to the job | `{}` |
| `curator.image.registry` | Elasticsearch Curator image registry | `docker.io` |
| `curator.image.repository` | Elasticsearch Curator image repository | `bitnami/elasticsearch-curator` |
| `curator.image.tag` | Elasticsearch Curator image tag | `5.8.4-debian-10-r354` |
| `curator.image.pullPolicy` | Elasticsearch Curator image pull policy | `IfNotPresent` |
| `curator.image.pullSecrets` | Elasticsearch Curator image pull secrets | `[]` |
| `curator.cronjob.schedule` | Schedule for the CronJob | `0 1 * * *` |
| `curator.cronjob.concurrencyPolicy` | `Allow,Forbid,Replace` concurrent jobs | `""` |
| `curator.cronjob.failedJobsHistoryLimit` | Specify the number of failed Jobs to keep | `""` |
| `curator.cronjob.successfulJobsHistoryLimit` | Specify the number of completed Jobs to keep | `""` |
| `curator.cronjob.jobRestartPolicy` | Control the Job restartPolicy | `Never` |
| `curator.cronjob.cronjobAnnotations` | Annotations to add to the cronjob | `{}` |
| `curator.cronjob.cronjobLabels` | Annotations to add to the cronjob | `{}` |
| `curator.cronjob.jobAnnotations` | Annotations to add to the job template | `{}` |
| `curator.cronjob.jobLabels` | Annotations to add to the job template | `{}` |
| `curator.podSecurityContext.enabled` | Enabled Curator jobs' Security Context | `true` |
| `curator.podSecurityContext.fsGroup` | Set Curator pod's Security Context fsGroup | `1001` |
| `curator.containerSecurityContext.enabled` | Enabled Curator containers' Security Context | `true` |
| `curator.containerSecurityContext.runAsUser` | Set Curator containers' Security Context runAsUser | `1001` |
| `curator.containerSecurityContext.runAsNonRoot` | Set Curator containers' Security Context runAsNonRoot | `true` |
| `curator.hostAliases` | Curator pods host aliases | `[]` |
| `curator.podAnnotations` | Annotations to add to the pod | `{}` |
| `curator.podLabels` | Extra labels to add to Pod | `{}` |
| `curator.podAffinityPreset` | Curator Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `curator.podAntiAffinityPreset` | Curator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `curator.nodeAffinityPreset.type` | Curator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard` | `""` |
| `curator.nodeAffinityPreset.key` | Curator Node label key to match Ignored if `affinity` is set. | `""` |
| `curator.nodeAffinityPreset.values` | Curator Node label values to match. Ignored if `affinity` is set. | `[]` |
| `curator.affinity` | Curator Affinity for pod assignment | `{}` |
| `curator.nodeSelector` | Curator Node labels for pod assignment | `{}` |
| `curator.tolerations` | Curator Tolerations for pod assignment | `[]` |
| `curator.topologySpreadConstraints` | Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template | `[]` |
| `curator.priorityClassName` | Curator Pods Priority Class Name | `""` |
| `curator.schedulerName` | Name of the k8s scheduler (other than default) | `""` |
| `curator.resources.limits` | The resources limits for the container | `{}` |
| `curator.resources.requests` | The requested resources for the container | `{}` |
| `curator.configMaps.action_file_yml` | Contents of the Curator action_file.yml. Required if curator job is enabled. | `""` |
| `curator.configMaps.config_yml` | Contents of the Curator config.yml (overrides config) | `""` |
| `curator.command` | Override default container command (useful when using custom images) | `[]` |
| `curator.args` | Override default container args (useful when using custom images) | `[]` |
| `curator.lifecycleHooks` | for the Curator container(s) to automate configuration before or after startup | `{}` |
| `curator.extraEnvVars` | Array with extra environment variables to add to Curator nodes | `[]` |
| `curator.extraEnvVarsCM` | Name of existing ConfigMap containing extra env vars for Curator nodes | `""` |
| `curator.extraEnvVarsSecret` | Name of existing Secret containing extra env vars for Curator nodes | `""` |
| `curator.extraVolumes` | Extra volumes | `[]` |
| `curator.extraVolumeMounts` | Mount extra volume(s) | `[]` |
| `curator.initContainers` | Extra init containers to add to the Elasticsearch coordinating-only pod(s) | `[]` |
| `curator.sidecars` | Extra sidecar containers to add to the Elasticsearch ingest pod(s) | `[]` |
| `curator.rbac.enabled` | Enable RBAC resources | `false` |
| `curator.rbac.rules` | Custom RBAC rules to set | `[]` |
| `curator.serviceAccount.create` | Create a default serviceaccount for elasticsearch curator | `true` |
| `curator.serviceAccount.name` | Name for elasticsearch curator serviceaccount | `""` |
| `curator.serviceAccount.automountServiceAccountToken` | Allows auto mount of ServiceAccountToken on the serviceAccount created | `true` |
| `curator.serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` |
| `curator.psp.create` | Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later | `false` |
### Metrics parameters
| Name | Description | Value |
@@ -587,7 +520,7 @@ $ helm delete --purge my-release
| `metrics.fullnameOverride` | String to fully override common.names.fullname | `""` |
| `metrics.image.registry` | Metrics exporter image registry | `docker.io` |
| `metrics.image.repository` | Metrics exporter image repository | `bitnami/elasticsearch-exporter` |
| `metrics.image.tag` | Metrics exporter image tag | `1.3.0-debian-10-r209` |
| `metrics.image.tag` | Metrics exporter image tag | `1.3.0-debian-11-r12` |
| `metrics.image.pullPolicy` | Metrics exporter image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Metrics exporter image pull secrets | `[]` |
| `metrics.extraArgs` | Extra arguments to add to the default exporter command | `[]` |
@@ -668,7 +601,7 @@ $ helm delete --purge my-release
| `volumePermissions.enabled` | Enable init container that changes volume permissions in the data directory (for cases where the default k8s `runAsUser` and `fsUser` values do not work) | `false` |
| `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` |
| `volumePermissions.image.repository` | Init container volume-permissions image name | `bitnami/bitnami-shell` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `10-debian-10-r436` |
| `volumePermissions.image.tag` | Init container volume-permissions image tag | `11-debian-11-r12` |
| `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` |
| `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` |
| `volumePermissions.resources.limits` | The resources limits for the container | `{}` |
@@ -676,7 +609,7 @@ $ helm delete --purge my-release
| `sysctlImage.enabled` | Enable kernel settings modifier image | `true` |
| `sysctlImage.registry` | Kernel settings modifier image registry | `docker.io` |
| `sysctlImage.repository` | Kernel settings modifier image repository | `bitnami/bitnami-shell` |
| `sysctlImage.tag` | Kernel settings modifier image tag | `10-debian-10-r436` |
| `sysctlImage.tag` | Kernel settings modifier image tag | `11-debian-11-r12` |
| `sysctlImage.pullPolicy` | Kernel settings modifier image pull policy | `IfNotPresent` |
| `sysctlImage.pullSecrets` | Kernel settings modifier image pull secrets | `[]` |
| `sysctlImage.resources.limits` | The resources limits for the container | `{}` |
@@ -875,6 +808,10 @@ Find more information about how to deal with common errors related to Bitnami's
## Upgrading
### To 19.0.0
The new version of this chart no longer supports elasticsearch-curator, this repository has been deprecated.
### To 18.0.0
This major release refactors the bitnami/elasticsearch chart, adding some organization and functional changes.
@@ -901,14 +838,11 @@ The following values have been modified:
- `global.coordinating.name` have been renamed as `global.elasticsaerch.service.name`.
- `name` has been renamed as `clusterName`.
- `extraEnvVarsConfigMap` has been renamed as `extraEnvVarsCM`.
- `{master/data/ingest/coordinating/curator/metrics}.name` has been renamed as `{master/data/ingest/coordinating/curator}.nameOverride`.
- `{master/data/ingest/coordinating}.replicas` has been renamed as `{master/data/ingest/coordinating}.replicaCount`.
- `{master/data/ingest/coordinating}.securityContext` has been separated in two different values: `podSecurityContext` and `containerSecurityContext`.
- `{master/data/ingest/coordinating}.updateStrategy` is now interpreted as an object. `rollingUpdatePartition` has been removed and has to be configured inside the updateStrategy object when needed.
- `curator.env` renames as `curator.extraEnvVars`.
- `curator.configMaps.action_file_yml` is now empty by default. Helm will fail to install if not provided. We considered that setting a 'Delete indices older than 90 days' as a default action was not a good practice and could lead to accidents.
- `curator.dryrun` was renamed as `curator.dryRun`.
- Default values for `kibana.elasticsearch.hosts` and `kibana.elasticsearch.port` have been modified to use the new helpers.
- `{master/data/ingest/coordinating/curator/metrics}.name` has been renamed as `{master/data/ingest/coordinating/curator}.nameOverride`.
### To 17.0.0
@@ -1028,4 +962,4 @@ Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
limitations under the License.

View File

@@ -91,17 +91,6 @@ In order to replicate the container startup scripts execute this command:
{{- else }}
{{- if .Values.curator.enabled }}
A CronJob will run with schedule {{ .Values.curator.cronjob.schedule }}.
The Jobs will not be removed automagically when deleting this Helm chart.
To remove these jobs, run the following:
kubectl --namespace {{ include "common.names.namespace" . }} delete job -l app={{ template "common.names.name" . }},role=curator
{{- end }}
Elasticsearch can be accessed within the cluster on port {{ include "elasticsearch.service.ports.restAPI" . }} at {{ template "elasticsearch.service.name" . }}.{{ include "common.names.namespace" . }}.svc.{{ .Values.clusterDomain }}
To access from outside the cluster execute the following commands:

View File

@@ -11,7 +11,7 @@ Return the proper ES image name
Return the proper Docker Image Registry Secret Names
*/}}
{{- define "elasticsearch.imagePullSecrets" -}}
{{ include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.metrics.image .Values.curator.image .Values.sysctlImage .Values.volumePermissions.image) "global" .Values.global) }}
{{ include "common.images.pullSecrets" (dict "images" (list .Values.image .Values.metrics.image .Values.sysctlImage .Values.volumePermissions.image) "global" .Values.global) }}
{{- end -}}
{{/*
@@ -21,13 +21,6 @@ Return the proper ES exporter image name
{{ include "common.images.image" (dict "imageRoot" .Values.metrics.image "global" .Values.global) }}
{{- end -}}
{{/*
Return the proper ES curator image name
*/}}
{{- define "elasticsearch.curator.image" -}}
{{ include "common.images.image" (dict "imageRoot" .Values.curator.image "global" .Values.global) }}
{{- end -}}
{{/*
Return the proper sysctl image name
*/}}
@@ -138,20 +131,6 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- end -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "elasticsearch.curator.fullname" -}}
{{- $name := default "curator" .Values.metrics.nameOverride -}}
{{- if .Values.curator.fullnameOverride -}}
{{- .Values.curator.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" (include "common.names.fullname" .) $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{/*
Returns true if at least one master-elegible node replica has been configured.
*/}}
@@ -277,17 +256,6 @@ Get the initialization scripts Secret name.
{{- end -}}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "elasticsearch.curator.serviceAccountName" -}}
{{- if .Values.curator.serviceAccount.create -}}
{{ default (include "elasticsearch.curator.fullname" .) .Values.curator.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.curator.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Return the elasticsearch TLS credentials secret for master nodes.
*/}}

View File

@@ -1,26 +0,0 @@
{{- if .Values.curator.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "elasticsearch.curator.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: curator
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
data:
action_file.yml: {{ toYaml (include "common.tplvalues.render" ( dict "value" (required "A valid .Values.curator.configMaps.action_file_yml entry is required!" .Values.curator.configMaps.action_file_yml) "context" $ )) | indent 2 }}
{{- if .Values.curator.configMaps.config_yml }}
config.yml: {{- toYaml (include "common.tplvalues.render" ( dict "value" .Values.curator.configMaps.config_yml "context" $ )) | indent 2 }}
{{- else }}
config.yml: |-
client:
hosts:
- {{ template "elasticsearch.service.name" . }}.{{ include "common.names.namespace" . }}.svc.{{ .Values.clusterDomain }}
port: {{ include "elasticsearch.service.ports.restAPI" . }}
{{- end }}
{{- end }}

View File

@@ -1,141 +0,0 @@
{{- if .Values.curator.enabled }}
apiVersion: {{ template "common.capabilities.cronjob.apiVersion" . }}
kind: CronJob
metadata:
name: {{ template "elasticsearch.curator.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: curator
## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
app: curator
{{- if .Values.curator.cronjob.cronjobLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.cronjob.cronjobLabels "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.curator.cronjob.cronjobAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.curator.cronjob.cronjobAnnotations "context" $) | nindent 4 }}
{{- end }}
spec:
schedule: {{ .Values.curator.cronjob.schedule | quote }}
{{- if .Values.curator.cronjob.concurrencyPolicy }}
concurrencyPolicy: {{ .Values.curator.cronjob.concurrencyPolicy }}
{{- end }}
{{- if .Values.curator.cronjob.failedJobsHistoryLimit }}
failedJobsHistoryLimit: {{ .Values.curator.cronjob.failedJobsHistoryLimit }}
{{- end }}
{{- if .Values.curator.cronjob.successfulJobsHistoryLimit }}
successfulJobsHistoryLimit: {{ .Values.curator.cronjob.successfulJobsHistoryLimit }}
{{- end }}
jobTemplate:
metadata:
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: curator
## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
app: curator
{{- if .Values.curator.cronjob.jobLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.cronjob.jobLabels "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.curator.cronjob.jobAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.curator.jobAnnotations "context" $) | nindent 8 }}
{{- end }}
spec:
template:
metadata:
labels: {{- include "common.labels.standard" . | nindent 12 }}
app.kubernetes.io/component: curator
## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
app: curator
{{- if .Values.curator.podLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.podLabels "context" $) | nindent 8 }}
{{- end }}
{{- if .Values.curator.podAnnotations }}
annotations: {{- include "common.tplvalues.render" (dict "value" .Values.curator.podAnnotations "context" $) | nindent 12 }}
{{- end }}
spec:
{{- include "elasticsearch.imagePullSecrets" . | indent 10 }}
restartPolicy: {{ .Values.curator.cronjob.jobRestartPolicy }}
{{- if .Values.curator.priorityClassName }}
priorityClassName: {{ .Values.curator.priorityClassName | quote }}
{{- end }}
{{- if .Values.curator.schedulerName }}
schedulerName: {{ .Values.curator.schedulerName }}
{{- end }}
{{- if .Values.curator.rbac.enabled }}
serviceAccountName: {{ include "elasticsearch.curator.serviceAccountName" . }}
{{- end }}
{{- if .Values.curator.affinity }}
affinity: {{- include "common.tplvalues.render" (dict "value" .Values.curator.affinity "context" $) | nindent 12 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.curator.podAffinityPreset "component" "curator" "context" $) | nindent 14 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.curator.podAntiAffinityPreset "component" "curator" "context" $) | nindent 14 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.curator.nodeAffinityPreset.type "key" .Values.curator.nodeAffinityPreset.key "values" .Values.curator.nodeAffinityPreset.values) | nindent 14 }}
{{- end }}
{{- if .Values.curator.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.curator.nodeSelector "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.curator.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.curator.tolerations "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.curator.topologySpreadConstraints }}
topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.curator.topologySpreadConstraints "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.curator.podSecurityContext.enabled }}
securityContext: {{- omit .Values.curator.podSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if .Values.curator.initContainers }}
initContainers: {{- include "common.tplvalues.render" (dict "value" .Values.curator.initContainers "context" $) | nindent 12 }}
{{- end }}
containers:
- name: {{ template "elasticsearch.curator.fullname" . }}
image: {{ template "elasticsearch.curator.image" . }}
imagePullPolicy: {{ .Values.curator.image.pullPolicy | quote }}
{{- if .Values.curator.containerSecurityContext.enabled }}
securityContext: {{- omit .Values.curator.containerSecurityContext "enabled" | toYaml | nindent 16 }}
{{- end }}
{{- if .Values.curator.command }}
command: {{- include "common.tplvalues.render" (dict "value" .Values.curator.command "context" $) | nindent 16 }}
{{- end }}
{{- if .Values.curator.args }}
args: {{- include "common.tplvalues.render" (dict "value" .Values.curator.args "context" $) | nindent 16 }}
{{- else }}
args:
{{- if .Values.curator.dryRun }}
- "--dry-run"
{{- end }}
- "--config"
- "/etc/es-curator/config.yml"
- "/etc/es-curator/action_file.yml"
{{- end }}
env:
{{- if .Values.curator.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.extraEnvVars "context" $) | nindent 16 }}
{{- end }}
envFrom:
{{- if .Values.curator.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.curator.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if .Values.curator.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" .Values.curator.extraEnvVarsSecret "context" $) }}
{{- end }}
{{- if .Values.curator.resources }}
resources: {{- toYaml .Values.curator.resources | nindent 16 }}
{{- end }}
volumeMounts:
- name: config-volume
mountPath: /etc/es-curator
{{- if .Values.curator.extraVolumeMounts }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.extraVolumeMounts "context" $) | nindent 16 }}
{{- end }}
{{- if .Values.curator.sidecars }}
{{- include "common.tplvalues.render" ( dict "value" .Values.curator.sidecars "context" $) | nindent 12 }}
{{- end }}
volumes:
- name: config-volume
configMap:
name: {{ template "elasticsearch.curator.fullname" . }}
{{- if .Values.curator.extraVolumes }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.extraVolumes "context" $) | nindent 12 }}
{{- end }}
{{- end }}

View File

@@ -1,131 +0,0 @@
{{- if $.Values.curator.enabled }}
{{- range $kind, $enabled := $.Values.curator.hooks }}
{{- if $enabled }}
---
apiVersion: batch/v1
kind: Job
metadata:
name: {{ printf "%s-curator-on-%s" (include "elasticsearch.curator.fullname" .) $kind }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: curator
## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
app: curator
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.curator.jobLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.jobLabels "context" $) | nindent 8 }}
{{- end }}
annotations:
"helm.sh/hook": post-{{ $kind }}
"helm.sh/hook-weight": "1"
{{- if .Values.curator.jobAnnotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.jobAnnotations "context" $) | nindent 12 }}
{{- end }}
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
template:
metadata:
labels: {{- include "common.labels.standard" . | nindent 8 }}
app.kubernetes.io/component: curator
## Istio Labels: https://istio.io/docs/ops/deployment/requirements/
app: curator
{{- if $.Values.curator.podAnnotations }}
annotations: {{- toYaml $.Values.curator.podAnnotations | nindent 8 }}
{{- end }}
spec:
{{- include "elasticsearch.imagePullSecrets" . | indent 6 }}
restartPolicy: Never
{{- if $.Values.curator.priorityClassName }}
priorityClassName: {{ $.Values.curator.priorityClassName | quote }}
{{- end }}
{{- if $.Values.curator.schedulerName }}
schedulerName: {{ $.Values.curator.schedulerName }}
{{- end }}
{{- if $.Values.curator.rbac.enabled }}
serviceAccountName: {{ include "elasticsearch.curator.serviceAccountName" . }}
{{- end }}
{{- if $.Values.curator.affinity }}
affinity: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.affinity "context" $) | nindent 8 }}
{{- else }}
affinity:
podAffinity: {{- include "common.affinities.pods" (dict "type" $.Values.curator.podAffinityPreset "component" "curator" "context" $) | nindent 10 }}
podAntiAffinity: {{- include "common.affinities.pods" (dict "type" $.Values.curator.podAntiAffinityPreset "component" "curator" "context" $) | nindent 10 }}
nodeAffinity: {{- include "common.affinities.nodes" (dict "type" $.Values.curator.nodeAffinityPreset.type "key" $.Values.curator.nodeAffinityPreset.key "values" $.Values.curator.nodeAffinityPreset.values) | nindent 14 }}
{{- end }}
{{- if $.Values.curator.nodeSelector }}
nodeSelector: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.nodeSelector "context" $) | nindent 8 }}
{{- end }}
{{- if $.Values.curator.tolerations }}
tolerations: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.tolerations "context" $) | nindent 8 }}
{{- end }}
{{- if $.Values.curator.topologySpreadConstraints }}
topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.topologySpreadConstraints "context" $) | nindent 8 }}
{{- end }}
{{- if $.Values.curator.podSecurityContext.enabled }}
securityContext: {{- omit $.Values.curator.podSecurityContext "enabled" | toYaml | nindent 8 }}
{{- end }}
{{- if $.Values.curator.initContainers }}
initContainers: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.initContainers "context" $) | nindent 8 }}
{{- end }}
containers:
- name: {{ template "elasticsearch.curator.fullname" . }}
image: {{ template "elasticsearch.curator.image" . }}
imagePullPolicy: {{ $.Values.curator.image.pullPolicy | quote }}
{{- if $.Values.curator.containerSecurityContext.enabled }}
securityContext: {{- omit $.Values.curator.containerSecurityContext "enabled" | toYaml | nindent 12 }}
{{- end }}
{{- if $.Values.diagnosticMode.enabled }}
command: {{- include "common.tplvalues.render" (dict "value" $.Values.diagnosticMode.command "context" $) | nindent 12 }}
{{- else if $.Values.curator.command }}
command: {{ toYaml $.Values.curator.command | nindent 12 }}
{{- end }}
{{- if $.Values.diagnosticMode.enabled }}
args: {{- include "common.tplvalues.render" (dict "value" $.Values.diagnosticMode.args "context" $) | nindent 12 }}
{{- else if $.Values.curator.args }}
args: {{- include "common.tplvalues.render" (dict "value" $.Values.curator.args "context" $) | nindent 12 }}
{{- else }}
args:
{{- if $.Values.curator.dryRun }}
- "--dry-run"
{{- end }}
- "--config"
- "/etc/es-curator/config.yml"
- "/etc/es-curator/action_file.yml" ]
{{- end }}
env:
{{- if $.Values.curator.extraEnvVars }}
{{- include "common.tplvalues.render" (dict "value" $.Values.curator.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
envFrom:
{{- if $.Values.curator.extraEnvVarsCM }}
- configMapRef:
name: {{ include "common.tplvalues.render" (dict "value" $.Values.curator.extraEnvVarsCM "context" $) }}
{{- end }}
{{- if $.Values.curator.extraEnvVarsSecret }}
- secretRef:
name: {{ include "common.tplvalues.render" (dict "value" $.Values.curator.extraEnvVarsSecret "context" $) }}
{{- end }}
resources: {{- toYaml $.Values.curator.resources | nindent 12 }}
volumeMounts:
- name: config-volume
mountPath: /etc/es-curator
{{- if $.Values.curator.extraVolumeMounts }}
{{- toYaml $.Values.curator.extraVolumeMounts | nindent 12 }}
{{- end }}
{{- if $.Values.curator.sidecars }}
{{- include "common.tplvalues.render" ( dict "value" $.Values.curator.sidecars "context" $) | nindent 12 }}
{{- end }}
volumes:
- name: config-volume
configMap:
name: {{ template "elasticsearch.curator.fullname" . }}
{{- if $.Values.curator.extraVolumes }}
{{- toYaml $.Values.curator.extraVolumes | nindent 8 }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -1,41 +0,0 @@
{{- $pspAvailable := (semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .)) -}}
{{- if and $pspAvailable .Values.curator.enabled .Values.curator.psp.create }}
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: {{ include "elasticsearch.curator.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
role: curator
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
spec:
privileged: true
#requiredDropCapabilities:
volumes:
- 'configMap'
- 'secret'
hostNetwork: false
hostIPC: false
hostPID: false
runAsUser:
# Require the container to run without root privileges.
rule: 'MustRunAsNonRoot'
seLinux:
rule: 'RunAsAny'
supplementalGroups:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
fsGroup:
rule: 'MustRunAs'
ranges:
- min: 1
max: 65535
readOnlyRootFilesystem: false
{{- end }}

View File

@@ -1,28 +0,0 @@
{{- if and .Values.curator.enabled .Values.curator.rbac.enabled }}
kind: Role
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
metadata:
name: {{ include "elasticsearch.curator.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
role: curator
component: elasticsearch-curator-configmap
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }}
{{- end }}
{{- if .Values.commonAnnotations }}
annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }}
{{- end }}
rules:
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["update", "patch"]
{{- $pspAvailable := (semverCompare "<1.25-0" (include "common.capabilities.kubeVersion" .)) -}}
{{- if and $pspAvailable .Values.curator.psp.create }}
- apiGroups: ["extensions"]
resources: ["podsecuritypolicies"]
verbs: ["use"]
resourceNames:
- {{ include "elasticsearch.curator.fullname" . }}
{{- end }}
{{- end }}

View File

@@ -1,18 +0,0 @@
{{- if and .Values.curator.enabled .Values.curator.rbac.enabled }}
kind: RoleBinding
apiVersion: {{ include "common.capabilities.rbac.apiVersion" . }}
metadata:
name: {{ include "elasticsearch.curator.fullname" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
role: curator
component: elasticsearch-curator-configmap
roleRef:
kind: Role
name: {{ template "elasticsearch.curator.fullname" . }}
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: {{ include "elasticsearch.curator.serviceAccountName" . }}
namespace: {{ include "common.names.namespace" . | quote }}
{{- end }}

View File

@@ -1,22 +0,0 @@
{{- if and .Values.curator.enabled .Values.curator.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "elasticsearch.curator.serviceAccountName" . }}
namespace: {{ include "common.names.namespace" . | quote }}
labels: {{- include "common.labels.standard" . | nindent 4 }}
app.kubernetes.io/component: curator
{{- if .Values.commonLabels }}
{{- include "common.tplvalues.render" (dict "value" .Values.commonLabels "context" $) | nindent 4 }}
{{- end }}
{{- if or .Values.curator.serviceAccount.annotations .Values.commonAnnotations }}
annotations:
{{- if .Values.commonAnnotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.commonAnnotations "context" $) | nindent 4 }}
{{- end }}
{{- if .Values.curator.serviceAccount.annotations }}
{{- include "common.tplvalues.render" (dict "value" .Values.curator.serviceAccount.annotations "context" $) | nindent 4 }}
{{- end }}
{{- end }}
automountServiceAccountToken: {{ .Values.curator.serviceAccount.automountServiceAccountToken }}
{{- end -}}

View File

@@ -1696,294 +1696,6 @@ ingest:
##
extraRules: []
## @section Elasticsearch curator parameters
## Elasticsearch Curator parameters
##
curator:
## @param curator.enabled Enable Elasticsearch Curator cron job
##
enabled: false
## @param curator.nameOverride String to partially override elasticsearch.curator.fullname
##
nameOverride: ""
## @param curator.fullnameOverride String to fully override elasticsearch.curator.fullname
##
fullnameOverride: ""
## @param curator.hooks [object] Whether to run job on selected hooks
##
hooks:
install: false
upgrade: false
## @param curator.dryRun Run Curator in dry-run mode
##
dryRun: false
## @param curator.jobAnnotations Annotations to add to the job
##
jobAnnotations: {}
## @param curator.jobLabels Annotations to add to the job
##
jobLabels: {}
## @param curator.image.registry Elasticsearch Curator image registry
## @param curator.image.repository Elasticsearch Curator image repository
## @param curator.image.tag Elasticsearch Curator image tag
## @param curator.image.pullPolicy Elasticsearch Curator image pull policy
## @param curator.image.pullSecrets Elasticsearch Curator image pull secrets
##
image:
registry: docker.io
repository: bitnami/elasticsearch-curator
tag: 5.8.4-debian-11-r9
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
## e.g:
## pullSecrets:
## - myRegistryKeySecretName
##
pullSecrets: []
## @param curator.cronjob.schedule Schedule for the CronJob
## @param curator.cronjob.concurrencyPolicy `Allow,Forbid,Replace` concurrent jobs
## @param curator.cronjob.failedJobsHistoryLimit Specify the number of failed Jobs to keep
## @param curator.cronjob.successfulJobsHistoryLimit Specify the number of completed Jobs to keep
## @param curator.cronjob.jobRestartPolicy Control the Job restartPolicy
## @param curator.cronjob.cronjobAnnotations Annotations to add to the cronjob
## @param curator.cronjob.cronjobLabels Annotations to add to the cronjob
## @param curator.cronjob.jobAnnotations Annotations to add to the job template
## @param curator.cronjob.jobLabels Annotations to add to the job template
##
cronjob:
## At 01:00 every day
schedule: "0 1 * * *"
concurrencyPolicy: ""
failedJobsHistoryLimit: ""
successfulJobsHistoryLimit: ""
jobRestartPolicy: Never
cronjobAnnotations: {}
cronjobLabels: {}
jobAnnotations: {}
jobLabels: {}
## Configure Curator cronjob Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param curator.podSecurityContext.enabled Enabled Curator jobs' Security Context
## @param curator.podSecurityContext.fsGroup Set Curator pod's Security Context fsGroup
##
podSecurityContext:
enabled: true
fsGroup: 1001
## Configure Container Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
## @param curator.containerSecurityContext.enabled Enabled Curator containers' Security Context
## @param curator.containerSecurityContext.runAsUser Set Curator containers' Security Context runAsUser
## @param curator.containerSecurityContext.runAsNonRoot Set Curator containers' Security Context runAsNonRoot
##
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## @param curator.hostAliases Curator pods host aliases
## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
##
hostAliases: []
## @param curator.podAnnotations Annotations to add to the pod
##
podAnnotations: {}
## @param curator.podLabels Extra labels to add to Pod
##
podLabels: {}
## @param curator.podAffinityPreset Curator Pod affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAffinityPreset: ""
## @param curator.podAntiAffinityPreset Curator Pod anti-affinity preset. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
##
podAntiAffinityPreset: ""
## Node affinity preset
## Ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
## @param curator.nodeAffinityPreset.type Curator Node affinity preset type. Ignored if `affinity` is set. Allowed values: `soft` or `hard`
## @param curator.nodeAffinityPreset.key Curator Node label key to match Ignored if `affinity` is set.
## @param curator.nodeAffinityPreset.values Curator Node label values to match. Ignored if `affinity` is set.
##
nodeAffinityPreset:
type: ""
## E.g.
## key: "kubernetes.io/e2e-az-name"
##
key: ""
## E.g.
## values:
## - e2e-az1
## - e2e-az2
##
values: []
## @param curator.affinity Curator Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
## Note: podAffinityPreset, podAntiAffinityPreset, and nodeAffinityPreset will be ignored when it's set
##
affinity: {}
## @param curator.nodeSelector Curator Node labels for pod assignment
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## @param curator.tolerations Curator Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## @param curator.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
##
topologySpreadConstraints: []
## @param curator.priorityClassName Curator Pods Priority Class Name
##
priorityClassName: ""
## @param curator.schedulerName Name of the k8s scheduler (other than default)
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
##
schedulerName: ""
## Curator resources requests and limits
## ref: https://kubernetes.io/docs/user-guide/compute-resources/
## We usually recommend not to specify default resources and to leave this as a conscious
## choice for the user. This also increases chances charts run on environments with little
## resources, such as Minikube. If you do want to specify resources, uncomment the following
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
## @param curator.resources.limits The resources limits for the container
## @param curator.resources.requests The requested resources for the container
##
resources:
## Example:
## limits:
## cpu: 100m
## memory: 128Mi
limits: {}
## Examples:
## requests:
## cpu: 100m
## memory: 128Mi
requests: {}
## Curator configMaps
##
configMaps:
## @param curator.configMaps.action_file_yml Contents of the Curator action_file.yml. Required if curator job is enabled.
## For example, to delete indices older than 90 days:
##
## action_file_yml: |-
## ---
## actions:
## 1:
## action: delete_indices
## description: "Clean up ES by deleting old indices"
## options:
## timeout_override:
## continue_if_exception: False
## disable_action: False
## ignore_empty_list: True
## filters:
## - filtertype: age
## source: name
## direction: older
## timestring: '%Y.%m.%d'
## unit: days
## unit_count: 90
## field:
## stats_result:
## epoch:
## exclude: False
##
action_file_yml: ""
## @param curator.configMaps.config_yml [string] Contents of the Curator config.yml (overrides config)
## e.g:
## config_yml: |-
## ---
## client:
## hosts:
## - {{ template "elasticsearch.coordinating.fullname" . }}.{{ include "common.names.namespace" }}.svc.{{ .Values.clusterDomain }}
## port: {{ .Values.coordinating.service.port }}
##
config_yml: ""
## @param curator.command Override default container command (useful when using custom images)
##
command: []
## @param curator.args Override default container args (useful when using custom images)
##
args: []
## @param curator.lifecycleHooks for the Curator container(s) to automate configuration before or after startup
##
lifecycleHooks: {}
## @param curator.extraEnvVars Array with extra environment variables to add to Curator nodes
## e.g:
## extraEnvVars:
## - name: FOO
## value: "bar"
##
extraEnvVars: []
## @param curator.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for Curator nodes
##
extraEnvVarsCM: ""
## @param curator.extraEnvVarsSecret Name of existing Secret containing extra env vars for Curator nodes
##
extraEnvVarsSecret: ""
## @param curator.extraVolumes Extra volumes
## Example Use Case: mount ssl certificates when elasticsearch has tls enabled
## extraVolumes:
## - name: es-certs
## secret:
## defaultMode: 420
## secretName: es-certs
extraVolumes: []
## @param curator.extraVolumeMounts Mount extra volume(s)
## extraVolumeMounts:
## - name: es-certs
## mountPath: /certs
## readOnly: true
extraVolumeMounts: []
## @param curator.initContainers Extra init containers to add to the Elasticsearch coordinating-only pod(s)
##
initContainers: []
## @param curator.sidecars Extra sidecar containers to add to the Elasticsearch ingest pod(s)
##
sidecars: []
## Curator RBAC parameters
##
rbac:
## @param curator.rbac.enabled Enable RBAC resources
##
enabled: false
## @param curator.rbac.rules Custom RBAC rules to set
## e.g:
## rules:
## - apiGroups:
## - ""
## resources:
## - pods
## verbs:
## - get
## - list
##
rules: []
## Curator ServiceAccount parameters
##
serviceAccount:
## @param curator.serviceAccount.create Create a default serviceaccount for elasticsearch curator
##
create: true
## @param curator.serviceAccount.name Name for elasticsearch curator serviceaccount
## If not set and create is true, a name is generated using the fullname template
##
name: ""
## @param curator.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
## Can be set to false if pods using this serviceAccount do not need to use K8s API
##
automountServiceAccountToken: true
## @param curator.serviceAccount.annotations Additional custom annotations for the ServiceAccount
##
annotations: {}
## @param curator.psp.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
##
psp:
create: false
## @section Metrics parameters