Bei DownToZero sind wir darauf fokussiert, Verschwendung zu vermeiden — sei es bei Rechenleistung, Energie oder betrieblichem Aufwand. Eine Herausforderung, der viele Teams in containerisierten Umgebungen begegnen, ist das Handling von Updates für Container-Images. Traditionell verlassen sich 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 zu begegnen, 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 nun direkt aus Ihrer GitHub-Pipeline in DownToZero gepusht werden. Das bedeutet kein Warten mehr, kein Polling — nur sofortige, schlanke Deployments.
Vom Commit zum Deploy in einem Durchlauf: Bauen Sie das Image, pushen Sie es in Ihr Container-Registry, ermitteln Sie den exakten Digest und aktualisieren Sie den Zielservice über die DTZ GitHub Action. 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: # scheduled rebuild for security updates
- cron: '30 5 25 * *'
jobs:
build-website:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build website
run: |
docker build -t ee8h25d0.cr.dtz.dev/sample-website .
- name: Login to ee8h25d0.cr.dtz.dev
uses: docker/login-action@v3
with:
registry: ee8h25d0.cr.dtz.dev
username: apikey
password: ${{ secrets.DTZ_API_KEY }}
- name: uploading image to ee8h25d0.cr.dtz.dev
run: |
docker push ee8h25d0.cr.dtz.dev/sample-website:latest
- name: Resolve image digest
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: Deploy latest image to service
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: Publish image URL to summary
run: |
echo "## Deployed image" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "${IMAGE_URL}" >> $GITHUB_STEP_SUMMARY
Diese Pipeline:
Durch die Integration der DTZ GitHub Action in Ihre CI/CD-Pipelines gewinnen Sie eine schnellere, effizientere und ressourcenbewusstere Methode zur Verwaltung von Container-Deployments. Dieser Ansatz beseitigt das Rätselraten beim Polling, gewährleistet präzise Deployments und spiegelt unsere Mission bei DownToZero wider: Verschwendung in jedem Schritt zu entfernen.