CI/CD (GitHub to OpenShift)
eAppointment follows the City of Munich it@M pattern: public GitHub builds container images, an internal GitLab pipeline releases them to OpenShift. The diagram is from lhm_actions; foo in the picture stands in for this repository.

Source: ci_cd_github_big_picture_public.drawio.png in it-at-m/lhm_actions.
How to read it for eAppointment
| In the diagram | For eAppointment |
|---|---|
Public GitHub app repo it-at-m/foo | it-at-m/eappointment |
| GitHub Actions build / release → GHCR | Module images via php-build-images.yaml and PHP base images to ghcr.io/it-at-m/eappointment/ |
Public Helm repo it-at-m/helm-charts + GitHub Pages | Not yet. Charts still live in internal GitLab (zms-deployment). See below. |
GitLab foo-infrastructure (values.yaml, deploy jobs) | Internal GitLab: environment values and helm install / helm upgrade jobs |
| Quay.io | Internal registry mirrors GHCR; OpenShift pulls from Quay |
OpenShift namespace foo (dev / test) | Helm release into the ZMS namespaces |
Helm charts stay internal for now
The right-hand public box in the diagram packages Helm charts to GitHub Pages (it-at-m/helm-charts). eAppointment still keeps charts in internal GitLab (zms-deployment). GitLab CI uses those charts plus per-environment values.yaml to release to OpenShift.
Publishing them to it-at-m/helm-charts is planned (roadmap: zmsdeployment open source). There is no date yet.
Related
- PHP base images — GHCR tags for
zmsbaseand module images - Zero-downtime deployments and migrations — expand / provision / contract order inside a Helm release
- Monitoring and status