Puncte:0

Cum să setați fluxul pentru a implementa cea mai recentă etichetă de imagine pentru fiecare construcție?

drapel cn

Am adăugat acțiuni github pentru a construi o imagine Docker pentru fiecare ultimă comitere și am trimis-o în registrul nostru de containere în azure.

Am creat fișiere yaml pentru a implementa imaginea docker pe kubernetes pe azure. Și a implementat flux în pentru sincronizare automată dacă există modificări în fișierele yaml.

Cum să setați flux pentru a obține cea mai recentă imagine din registrul containerelor atunci când apare o nouă versiune?

drapel au
Nu sunt sigur că sunt competent să scriu un răspuns, deoarece folosim ArgoCD cu AKS și ACR în loc de Flux. Cu toate acestea, în cazul în care este util, folosim acțiunea Kustomize gh cu acțiunea standard de plată ( imranismail/setup-kustomize@v1 ) pentru a actualiza eticheta de imagine în depozitul de infrastructură la distanță.
Sara June avatar
drapel cn
Suntem încă în stadiul POC, așa că puteți să mă ghidați despre relația detaliată în link-urile din CD-ul ARGO, atunci voi încerca pur proiect cu asta
drapel au
O voi scrie ca răspuns puțin mai târziu și voi include link-uri relevante. Cred că ar trebui să se aplice la fel și Flux.
Puncte:2
drapel au

Aceasta descrie o soluție în care vă păstrați fișierele yaml într-un depozit GitHub separat de depozitul în care păstrați codul proiectului. Deci, cele două repoziții sunt:

  1. Proiectul GitHub depozit
  2. Infrastructură GitHub repo (IaC)

Presupunerea mea este că Flux este apoi îndreptat către repo-ul de infrastructură, astfel încât atunci când se fac modificări acolo, Flux aliniază clusterul cu modificările dorite declarate acum în repo. (Folosim ArgoCD). Când faceți modificări în depozitul de proiect și acțiunea GitHub creează noua imagine (cu o nouă etichetă) și trimite în Azure Container Registry.

Întrebați, apoi întrebați cum să informați instrumentul CI/CD (adică Flux) despre noua etichetă de imagine, astfel încât să poată extrage imaginea proaspătă.

Recomandarea este să luați în considerare utilizarea Kustomize pentru a gestiona actualizarea etichetei în depozitul de infrastructură, astfel încât instrumentul CI/CD să detecteze automat acea modificare în repo și să actualizeze clusterul în consecință folosind noua imagine.

Acest lucru va necesita următoarele:

Adăugați un fișier Kustomization.yaml în depozitul dvs. de infrastructură care conține a) manifestele yaml care descriu infrastructura dvs. pentru proiect și b) eticheta de imagine care trebuie înlocuită.

apiVersion: kustomize.config.k8s.io/v1beta1
fel: Personalizare

resurse:
- resource1.yaml
- resource2.yaml
-...

imagini:
- nume: nume-imagine în manifestul de implementare
  newTag: de înlocuit

Apoi, în fluxul de lucru GitHub Action din Project Repo, utilizați acțiunea actions/checkout@v2 pentru a extrage depozitul de infrastructură la distanță. Apoi adăugați acțiunea imranismail/setup-kustomize@v1 și utilizați-o pentru a înlocui fila de imagine. Apoi împingeți modificările înapoi în depozitul de infrastructură. Exemplu de mai jos, modificați pentru a se potrivi situației dvs.:

construiți pași aici

implementează:
  necesită: construi
  rulează-pe: ubuntu-latest

  pași:
  - nume: depozit la distanță de checkout
    folosește: actions/checkout@v2
    cu:
      depozit: {depozitul tău github}
      indicativ: ${{ secrets.INFRA_REPO_TOKEN }}
      cale: infra-repo

  - nume: Setup Kustomize
    utilizări: imranismail/setup-kustomize@v1
    cu:
      versiune-kustomize: „3.6.1”

  - nume: dezactivați eticheta de imagine
    alerga: |
      cd infra-repo/{nume repo}
      kustomize editați imaginea setată {nume imagine}:{etichetă}

  - nume: Commit and push
    alerga: |
      cd infra-repo/{nume repo}
      git config --local user.email [email protected]
      git config --local user.name github-actions
      git commit -am „actualizează eticheta de imagine”
      git push

Aceste link-uri relevante ar trebui să vă ofere și informațiile de care aveți nevoie pentru a vă construi corect fluxul de lucru:

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.