You can configure timezone on your OpenShift RHEL CoreOS nodes using following machine config:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: worker-custom-timezone-configuration spec: config: ignition: config: {} security: tls: {} timeouts: {} version: 2.2.0 networkd: {} passwd: {} storage: {} systemd: units: - contents: | [Unit] Description=set timezone After=network-online.target [Service] Type=oneshot ExecStart=timedatectl set-timezone
[Install] WantedBy=multi-user.target enabled: true name: custom-timezone.service osImageURL: ""
Europe/London
Containers don't typically inherit the host time zone configuration, as
container images often set their own time zone (usually UTC). It is
possible to change the timezone in pods (but the OCP platform pods) using one of the following methods:
1. Set an environment variable. This sets TZ in any containers to the timezone specified.
$ oc get deployments $ oc set env deployments/dc_name TZ=
Europe/London
2. Mount /etc/localtime
to use the timezone stored in a configmap
$ oc create configmap tz-london --from-file=localtime=/usr/share/zoneinfo/Europe/London
$ oc set volumes deployments/dc_name --add \
--type=configmap --name=tz --configmap-name=tz-london \
--mount-path=/etc/localtime --sub-path=localtime
If you prefer first method are you are using Red Hat Base Universal Minimal images you'll need to reinstall tzdata package to populate /
usr/share/zoneinfo
FROM registry.redhat.io/ubi8-minimal
RUN microdnf reinstall tzdata -y