Bei DownToZero setzen wir uns dafür ein, Verschwendung zu eliminieren – sei es in Rechenleistung, Energie oder operativem Aufwand. Eine Herausforderung, der viele Teams in containerisierten Umgebungen gegenüberstehen, ist das Handling von Updates für Container-Images. Traditionell beruhen Deployments oft auf Polling nach Updates, wenn Tags wie latest verwendet werden. Das führt zu unnötigen Anfragen, erhöhter Latenz bei Updates und ineffizienter Ressourcennutzung.
Um dem entgegenzuwirken, führen wir eine neue Möglichkeit ein, Deployments direkt mit GitHub Actions zu integrieren. Mit der neu entwickelten DTZ GitHub Action können Container-Image-Updates jetzt direkt aus Ihrer GitHub-Pipeline an DownToZero übergeben werden. Das bedeutet kein Warten mehr, kein Polling mehr — sondern sofortige, schlanke Deployments.
Vom Commit zum Deploy in einem Durchlauf: Image bauen, in Ihr Container-Registry pushen, den genauen Digest ermitteln und den Zielservice über die DTZ GitHub Action aktualisieren. Kein Polling, keine Unklarheiten — nur präzise, Digest-gesteuerte Releases.
flowchart LR
subgraph GitHub Actions
A[Commit / Dispatch / Zeitplan]:::action --> B[Docker-Image bauen]:::action
B --> C[In Container-Registry pushen]:::action
C --> D[Image-Digest ermitteln]:::action
D --> E[DTZ-Action: Service aktualisieren]:::action
end
subgraph DownToZero
R[(DTZ Container-Registry)]:::registry
S[Container-Service]:::service
end
C --> R
E --> S
classDef action fill:#fff8e1,stroke:#f9a825,color:#5d4037
classDef registry fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
classDef service fill:#e8f5e9,stroke:#43a047,color:#1b5e20
Die DTZ GitHub Action verbindet Ihren GitHub-Workflow mit Ihren DownToZero-Container-Services. Sobald Ihre Pipeline ein neues Container-Image baut und pusht, aktualisiert die Action automatisch den vorgesehenen Service mit dem frisch gebauten Image-Digest.
Das stellt sicher:
latest — Deployments referenzieren den exakten Image-Digest.Hier ist ein Beispiel-Workflow für GitHub Actions, der zeigt, wie diese Integration in der Praxis aussieht:
on:
push:
workflow_dispatch:
schedule: # zeitgesteuerter Neuaufbau für Sicherheitsupdates
- cron: '30 5 25 * *'
jobs:
build-website:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Website bauen
run: |
docker build -t ee8h25d0.cr.dtz.dev/sample-website .
- name: Anmeldung bei ee8h25d0.cr.dtz.dev
uses: docker/login-action@v3
with:
registry: ee8h25d0.cr.dtz.dev
username: apikey
password: ${{ secrets.DTZ_API_KEY }}
- name: Image zu ee8h25d0.cr.dtz.dev hochladen
run: |
docker push ee8h25d0.cr.dtz.dev/sample-website:latest
- name: Image-Digest ermitteln
id: resolve_digest
run: |
DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ee8h25d0.cr.dtz.dev/sample-website:latest)
echo "IMAGE_URL=$DIGEST" >> $GITHUB_ENV
- name: Neueste Image-Version zum Service deployen
uses: DownToZero-Cloud/containers-service-update@main
with:
container_image: ${{ env.IMAGE_URL }}
container_image_version: ''
api_key: ${{ secrets.DTZ_API_KEY }}
service_id: service-0194e6d9
- name: Image-URL zur Zusammenfassung hinzufügen
run: |
echo "## Bereitgestelltes Image" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "${IMAGE_URL}" >> $GITHUB_STEP_SUMMARY
Diese Pipeline:
Wenn Sie die DTZ GitHub Action in Ihre CI/CD-Pipelines integrieren, erhalten Sie eine schnellere, effizientere und ressourcenschonendere Möglichkeit, Container-Deployments zu verwalten. Dieser Ansatz entfernt das Rätselraten beim Polling, sorgt für präzise Deployments und spiegelt unsere Mission bei DownToZero wider: Verschwendung in jedem Schritt zu beseitigen.