From 8dbd44c46728f6f12edbcbaca88c64101e084367 Mon Sep 17 00:00:00 2001 From: ism-k Date: Wed, 14 Dec 2022 13:09:32 +0900 Subject: [PATCH 1/3] :+1: Allow setting options ttlSecondsAfterFinished --- charts/descheduler/README.md | 1 + charts/descheduler/templates/cronjob.yaml | 3 +++ charts/descheduler/values.yaml | 1 + 3 files changed, 5 insertions(+) diff --git a/charts/descheduler/README.md b/charts/descheduler/README.md index 0dfb576d1..c82fd2ed0 100644 --- a/charts/descheduler/README.md +++ b/charts/descheduler/README.md @@ -57,6 +57,7 @@ The following table lists the configurable parameters of the _descheduler_ chart | `startingDeadlineSeconds` | If set, configure `startingDeadlineSeconds` for the _descheduler_ job | `nil` | | `successfulJobsHistoryLimit` | If set, configure `successfulJobsHistoryLimit` for the _descheduler_ job | `nil` | | `failedJobsHistoryLimit` | If set, configure `failedJobsHistoryLimit` for the _descheduler_ job | `nil` | +| `ttlSecondsAfterFinished` | If set, configure `ttlSecondsAfterFinished` for the _descheduler_ job | `nil` | | `deschedulingInterval` | If using kind:Deployment, sets time between consecutive descheduler executions. | `5m` | | `replicas` | The replica count for Deployment | `1` | | `leaderElection` | The options for high availability when running replicated components | _see values.yaml_ | diff --git a/charts/descheduler/templates/cronjob.yaml b/charts/descheduler/templates/cronjob.yaml index 0fe1aa2da..093ed0c39 100644 --- a/charts/descheduler/templates/cronjob.yaml +++ b/charts/descheduler/templates/cronjob.yaml @@ -23,6 +23,9 @@ spec: {{- end }} jobTemplate: spec: + {{- if .Values.ttlSecondsAfterFinished }} + ttlSecondsAfterFinished: {{ .Values.ttlSecondsAfterFinished }} + {{- end }} template: metadata: name: {{ template "descheduler.fullname" . }} diff --git a/charts/descheduler/values.yaml b/charts/descheduler/values.yaml index 35a71e109..b33b2b7d1 100644 --- a/charts/descheduler/values.yaml +++ b/charts/descheduler/values.yaml @@ -34,6 +34,7 @@ suspend: false # startingDeadlineSeconds: 200 # successfulJobsHistoryLimit: 1 # failedJobsHistoryLimit: 1 +# ttlSecondsAfterFinished 600 # Required when running as a Deployment deschedulingInterval: 5m From d7a4c221a3d65203048732c8e8c21971719f7881 Mon Sep 17 00:00:00 2001 From: ism-k Date: Wed, 14 Dec 2022 13:12:24 +0900 Subject: [PATCH 2/3] :recycle: update information --- charts/descheduler/README.md | 4 ++-- charts/descheduler/values.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/descheduler/README.md b/charts/descheduler/README.md index c82fd2ed0..30458789a 100644 --- a/charts/descheduler/README.md +++ b/charts/descheduler/README.md @@ -55,8 +55,8 @@ The following table lists the configurable parameters of the _descheduler_ chart | `cronJobApiVersion` | CronJob API Group Version | `"batch/v1"` | | `schedule` | The cron schedule to run the _descheduler_ job on | `"*/2 * * * *"` | | `startingDeadlineSeconds` | If set, configure `startingDeadlineSeconds` for the _descheduler_ job | `nil` | -| `successfulJobsHistoryLimit` | If set, configure `successfulJobsHistoryLimit` for the _descheduler_ job | `nil` | -| `failedJobsHistoryLimit` | If set, configure `failedJobsHistoryLimit` for the _descheduler_ job | `nil` | +| `successfulJobsHistoryLimit` | If set, configure `successfulJobsHistoryLimit` for the _descheduler_ job | `3` | +| `failedJobsHistoryLimit` | If set, configure `failedJobsHistoryLimit` for the _descheduler_ job | `1` | | `ttlSecondsAfterFinished` | If set, configure `ttlSecondsAfterFinished` for the _descheduler_ job | `nil` | | `deschedulingInterval` | If using kind:Deployment, sets time between consecutive descheduler executions. | `5m` | | `replicas` | The replica count for Deployment | `1` | diff --git a/charts/descheduler/values.yaml b/charts/descheduler/values.yaml index b33b2b7d1..bd66dbdcd 100644 --- a/charts/descheduler/values.yaml +++ b/charts/descheduler/values.yaml @@ -32,7 +32,7 @@ cronJobApiVersion: "batch/v1" schedule: "*/2 * * * *" suspend: false # startingDeadlineSeconds: 200 -# successfulJobsHistoryLimit: 1 +# successfulJobsHistoryLimit: 3 # failedJobsHistoryLimit: 1 # ttlSecondsAfterFinished 600 From 29f48e8c3c48bf62c7ffb08f549e76ecd071f5f4 Mon Sep 17 00:00:00 2001 From: ism-k Date: Wed, 14 Dec 2022 13:12:52 +0900 Subject: [PATCH 3/3] :recycle: format README --- charts/descheduler/README.md | 84 ++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/charts/descheduler/README.md b/charts/descheduler/README.md index 30458789a..923c98aaa 100644 --- a/charts/descheduler/README.md +++ b/charts/descheduler/README.md @@ -43,46 +43,46 @@ The command removes all the Kubernetes components associated with the chart and The following table lists the configurable parameters of the _descheduler_ chart and their default values. -| Parameter | Description | Default | -|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------| -| `kind` | Use as CronJob or Deployment | `CronJob` | +| Parameter | Description | Default | +| ----------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | +| `kind` | Use as CronJob or Deployment | `CronJob` | | `image.repository` | Docker repository to use | `registry.k8s.io/descheduler/descheduler` | -| `image.tag` | Docker tag to use | `v[chart appVersion]` | -| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` | -| `imagePullSecrets` | Docker repository secrets | `[]` | -| `nameOverride` | String to partially override `descheduler.fullname` template (will prepend the release name) | `""` | -| `fullnameOverride` | String to fully override `descheduler.fullname` template | `""` | -| `cronJobApiVersion` | CronJob API Group Version | `"batch/v1"` | -| `schedule` | The cron schedule to run the _descheduler_ job on | `"*/2 * * * *"` | -| `startingDeadlineSeconds` | If set, configure `startingDeadlineSeconds` for the _descheduler_ job | `nil` | -| `successfulJobsHistoryLimit` | If set, configure `successfulJobsHistoryLimit` for the _descheduler_ job | `3` | -| `failedJobsHistoryLimit` | If set, configure `failedJobsHistoryLimit` for the _descheduler_ job | `1` | -| `ttlSecondsAfterFinished` | If set, configure `ttlSecondsAfterFinished` for the _descheduler_ job | `nil` | -| `deschedulingInterval` | If using kind:Deployment, sets time between consecutive descheduler executions. | `5m` | -| `replicas` | The replica count for Deployment | `1` | -| `leaderElection` | The options for high availability when running replicated components | _see values.yaml_ | -| `cmdOptions` | The options to pass to the _descheduler_ command | _see values.yaml_ | -| `deschedulerPolicy.strategies` | The _descheduler_ strategies to apply | _see values.yaml_ | -| `priorityClassName` | The name of the priority class to add to pods | `system-cluster-critical` | -| `rbac.create` | If `true`, create & use RBAC resources | `true` | -| `resources` | Descheduler container CPU and memory requests/limits | _see values.yaml_ | -| `serviceAccount.create` | If `true`, create a service account for the cron job | `true` | -| `serviceAccount.name` | The name of the service account to use, if not set and create is true a name is generated using the fullname template | `nil` | -| `serviceAccount.annotations` | Specifies custom annotations for the serviceAccount | `{}` | -| `podAnnotations` | Annotations to add to the descheduler Pods | `{}` | -| `podLabels` | Labels to add to the descheduler Pods | `{}` | -| `nodeSelector` | Node selectors to run the descheduler cronjob/deployment on specific nodes | `nil` | -| `service.enabled` | If `true`, create a service for deployment | `false` | -| `serviceMonitor.enabled` | If `true`, create a ServiceMonitor for deployment | `false` | -| `serviceMonitor.namespace` | The namespace where Prometheus expects to find service monitors | `nil` | -| `serviceMonitor.interval` | The scrape interval. If not set, the Prometheus default scrape interval is used | `nil` | -| `serviceMonitor.honorLabels` | Keeps the scraped data's labels when labels are on collisions with target labels. | `true` | -| `serviceMonitor.insecureSkipVerify` | Skip TLS certificate validation when scraping | `true` | -| `serviceMonitor.serverName` | Name of the server to use when validating TLS certificate | `nil` | -| `serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples after scraping, but before ingestion | `[]` | -| `serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` | -| `affinity` | Node affinity to run the descheduler cronjob/deployment on specific nodes | `nil` | -| `tolerations` | tolerations to run the descheduler cronjob/deployment on specific nodes | `nil` | -| `suspend` | Set spec.suspend in descheduler cronjob | `false` | -| `commonLabels` | Labels to apply to all resources | `{}` | -| `livenessProbe` | Liveness probe configuration for the descheduler container | _see values.yaml_ | +| `image.tag` | Docker tag to use | `v[chart appVersion]` | +| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` | +| `imagePullSecrets` | Docker repository secrets | `[]` | +| `nameOverride` | String to partially override `descheduler.fullname` template (will prepend the release name) | `""` | +| `fullnameOverride` | String to fully override `descheduler.fullname` template | `""` | +| `cronJobApiVersion` | CronJob API Group Version | `"batch/v1"` | +| `schedule` | The cron schedule to run the _descheduler_ job on | `"*/2 * * * *"` | +| `startingDeadlineSeconds` | If set, configure `startingDeadlineSeconds` for the _descheduler_ job | `nil` | +| `successfulJobsHistoryLimit` | If set, configure `successfulJobsHistoryLimit` for the _descheduler_ job | `3` | +| `failedJobsHistoryLimit` | If set, configure `failedJobsHistoryLimit` for the _descheduler_ job | `1` | +| `ttlSecondsAfterFinished` | If set, configure `ttlSecondsAfterFinished` for the _descheduler_ job | `nil` | +| `deschedulingInterval` | If using kind:Deployment, sets time between consecutive descheduler executions. | `5m` | +| `replicas` | The replica count for Deployment | `1` | +| `leaderElection` | The options for high availability when running replicated components | _see values.yaml_ | +| `cmdOptions` | The options to pass to the _descheduler_ command | _see values.yaml_ | +| `deschedulerPolicy.strategies` | The _descheduler_ strategies to apply | _see values.yaml_ | +| `priorityClassName` | The name of the priority class to add to pods | `system-cluster-critical` | +| `rbac.create` | If `true`, create & use RBAC resources | `true` | +| `resources` | Descheduler container CPU and memory requests/limits | _see values.yaml_ | +| `serviceAccount.create` | If `true`, create a service account for the cron job | `true` | +| `serviceAccount.name` | The name of the service account to use, if not set and create is true a name is generated using the fullname template | `nil` | +| `serviceAccount.annotations` | Specifies custom annotations for the serviceAccount | `{}` | +| `podAnnotations` | Annotations to add to the descheduler Pods | `{}` | +| `podLabels` | Labels to add to the descheduler Pods | `{}` | +| `nodeSelector` | Node selectors to run the descheduler cronjob/deployment on specific nodes | `nil` | +| `service.enabled` | If `true`, create a service for deployment | `false` | +| `serviceMonitor.enabled` | If `true`, create a ServiceMonitor for deployment | `false` | +| `serviceMonitor.namespace` | The namespace where Prometheus expects to find service monitors | `nil` | +| `serviceMonitor.interval` | The scrape interval. If not set, the Prometheus default scrape interval is used | `nil` | +| `serviceMonitor.honorLabels` | Keeps the scraped data's labels when labels are on collisions with target labels. | `true` | +| `serviceMonitor.insecureSkipVerify` | Skip TLS certificate validation when scraping | `true` | +| `serviceMonitor.serverName` | Name of the server to use when validating TLS certificate | `nil` | +| `serviceMonitor.metricRelabelings` | MetricRelabelConfigs to apply to samples after scraping, but before ingestion | `[]` | +| `serviceMonitor.relabelings` | RelabelConfigs to apply to samples before scraping | `[]` | +| `affinity` | Node affinity to run the descheduler cronjob/deployment on specific nodes | `nil` | +| `tolerations` | tolerations to run the descheduler cronjob/deployment on specific nodes | `nil` | +| `suspend` | Set spec.suspend in descheduler cronjob | `false` | +| `commonLabels` | Labels to apply to all resources | `{}` | +| `livenessProbe` | Liveness probe configuration for the descheduler container | _see values.yaml_ |