Merge pull request #39835 from soltysh/cronjob_tz_ga
Promote CronJobTimeZone to stablepull/40176/head
commit
e2526aa6c4
|
@ -14,9 +14,9 @@ weight: 80
|
|||
|
||||
A _CronJob_ creates {{< glossary_tooltip term_id="job" text="Jobs" >}} on a repeating schedule.
|
||||
|
||||
CronJob is meant for performing regular scheduled actions such as backups, report generation,
|
||||
and so on. One CronJob object is like one line of a _crontab_ (cron table) file on a
|
||||
Unix system. It runs a job periodically on a given schedule, written in
|
||||
CronJob is meant for performing regular scheduled actions such as backups, report generation,
|
||||
and so on. One CronJob object is like one line of a _crontab_ (cron table) file on a
|
||||
Unix system. It runs a job periodically on a given schedule, written in
|
||||
[Cron](https://en.wikipedia.org/wiki/Cron) format.
|
||||
|
||||
CronJobs have limitations and idiosyncrasies.
|
||||
|
@ -162,19 +162,22 @@ For another way to clean up jobs automatically, see [Clean up finished jobs auto
|
|||
|
||||
### Time zones
|
||||
|
||||
For CronJobs with no time zone specified, the {{< glossary_tooltip term_id="kube-controller-manager" text="kube-controller-manager" >}} interprets schedules relative to its local time zone.
|
||||
{{< feature-state for_k8s_version="v1.27" state="stable" >}}
|
||||
|
||||
{{< feature-state for_k8s_version="v1.25" state="beta" >}}
|
||||
For CronJobs with no time zone specified, the {{< glossary_tooltip term_id="kube-controller-manager" text="kube-controller-manager" >}}
|
||||
interprets schedules relative to its local time zone.
|
||||
|
||||
If you enable the `CronJobTimeZone` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/),
|
||||
you can specify a time zone for a CronJob (if you don't enable that feature gate, or if you are using a version of
|
||||
Kubernetes that does not have experimental time zone support, all CronJobs in your cluster have an unspecified
|
||||
timezone).
|
||||
You can specify a time zone for a CronJob by setting `.spec.timeZone` to the name
|
||||
of a valid [time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
For example, setting `.spec.timeZone: "Etc/UTC"` instructs Kubernetes to interpret
|
||||
the schedule relative to Coordinated Universal Time.
|
||||
|
||||
When you have the feature enabled, you can set `.spec.timeZone` to the name of a valid [time zone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For example, setting
|
||||
`.spec.timeZone: "Etc/UTC"` instructs Kubernetes to interpret the schedule relative to Coordinated Universal Time.
|
||||
A time zone database from the Go standard library is included in the binaries and used as a fallback in case an external database is not available on the system.
|
||||
|
||||
## CronJob limitations {#cron-job-limitations}
|
||||
|
||||
### Unsupported TimeZone specification
|
||||
|
||||
{{< caution >}}
|
||||
The implementation of the CronJob API in Kubernetes {{< skew currentVersion >}} lets you set
|
||||
the `.spec.schedule` field to include a timezone; for example: `CRON_TZ=UTC * * * * *`
|
||||
or `TZ=UTC * * * * *`.
|
||||
|
@ -183,14 +186,10 @@ Specifying a timezone that way is **not officially supported** (and never has be
|
|||
|
||||
If you try to set a schedule that includes `TZ` or `CRON_TZ` timezone specification,
|
||||
Kubernetes reports a [warning](/blog/2020/09/03/warnings/) to the client.
|
||||
Future versions of Kubernetes might not implement that unofficial timezone mechanism at all.
|
||||
{{< /caution >}}
|
||||
|
||||
A time zone database from the Go standard library is included in the binaries and used as a fallback in case an external database is not available on the system.
|
||||
|
||||
## CronJob limitations {#cron-job-limitations}
|
||||
Future versions of Kubernetes will prevent setting the unofficial timezone mechanism entirely.
|
||||
|
||||
### Modifying a CronJob
|
||||
|
||||
By design, a CronJob contains a template for _new_ Jobs.
|
||||
If you modify an existing CronJob, the changes you make will apply to new Jobs that
|
||||
start to run after your modification is complete. Jobs (and their Pods) that have already
|
||||
|
|
|
@ -82,8 +82,6 @@ For a reference to old feature gates that are removed, please refer to
|
|||
| `ComponentSLIs` | `false` | Alpha | 1.26 | |
|
||||
| `ContainerCheckpoint` | `false` | Alpha | 1.25 | |
|
||||
| `ContextualLogging` | `false` | Alpha | 1.24 | |
|
||||
| `CronJobTimeZone` | `false` | Alpha | 1.24 | 1.24 |
|
||||
| `CronJobTimeZone` | `true` | Beta | 1.25 | |
|
||||
| `CrossNamespaceVolumeDataSource` | `false` | Alpha| 1.26 | |
|
||||
| `CustomCPUCFSQuotaPeriod` | `false` | Alpha | 1.12 | |
|
||||
| `CustomResourceValidationExpressions` | `false` | Alpha | 1.23 | 1.24 |
|
||||
|
@ -254,6 +252,9 @@ For a reference to old feature gates that are removed, please refer to
|
|||
| `CSIStorageCapacity` | `true` | Beta | 1.21 | 1.23 |
|
||||
| `CSIStorageCapacity` | `true` | GA | 1.24 | - |
|
||||
| `ConsistentHTTPGetHandlers` | `true` | GA | 1.25 | - |
|
||||
| `CronJobTimeZone` | `false` | Alpha | 1.24 | 1.24 |
|
||||
| `CronJobTimeZone` | `true` | Beta | 1.25 | 1.26 |
|
||||
| `CronJobTimeZone` | `true` | GA | 1.27 | - |
|
||||
| `DaemonSetUpdateSurge` | `false` | Alpha | 1.21 | 1.21 |
|
||||
| `DaemonSetUpdateSurge` | `true` | Beta | 1.22 | 1.24 |
|
||||
| `DaemonSetUpdateSurge` | `true` | GA | 1.25 | - |
|
||||
|
|
Loading…
Reference in New Issue