Skip to main content

Hvordan bruke Argo CD

ArgoCD Argo har et godt grensesnitt som gir godt innsyn inn i synkingen av manifester til SKIP, og her skal vi nevne noen funksjoner som er verdt Ä vite om. Det anbefales ogsÄ Ä se pÄ Argo sin brukerdokumentasjon for Argo CD, den er godt skrevet og inneholder god informasjon om hvordan man skal bruke systemet.

Om man ellers skulle ha spÞrsmÄl rundt bruk av Argo CD anbefaler vi Ä spÞrre pÄ #gen-argocd -kanalen pÄ Slack.

Vi kan ogsÄ anbefale kurset https://kodekloud.com/courses/argocd/ for de som Þnsker en lengre gjennomgang.

Applikasjoner​

Det fÞrste man gjÞr nÄr man skal ta i bruk Argo er Ä gÄ til nettsiden og logge inn. Lenkene til nettsiden finner man pÄ Argo CD og alle kan logge inn med kartverket-brukeren sin hvis man er pÄ et team som har fulgt Komme i gang med Argo CD.

ArgoCD applikasjoner

Det neste som mÞter deg er en oversikt over applikasjonene som Argo leser ut, avbildet over. Dersom man ikke sere noen applikasjoner her, sjekk om dere har fulgt alle stegene i Komme i gang med Argo CD og at dere har manifester som er satt opp til Ä bli synket inn fra apps-repoet deres. Disse prosjektene blir automatisk opprettet basert pÄ mappestrukturen i apps-repoet deres, sÄ det er ingen behov for Ä opprette eller rydde opp prosjekter manuelt.

Klikk pÄ et av kortene pÄ denne siden og dere vil gÄ inn i en mer detaljert visning hvor man ser alle ressursene som blir synkronisert.

ArgoCD details

Dersom man bruker Skiperator og eksponererer en URL via ingresses vil man ogsÄ kunne se smÄ ikoner som er lenker og om man klikker pÄ dem Äpnes applikasjonen i nettleseren.

Det er ogsÄ et sett med filtere pÄ venstre side som er lurt Ä bli kjent med, spesielt dersom applikasjonene blir store og vanskelige Ä se pÄ en skjerm uten Ä scrolle.

Sync​

Sync

info

Merk at i dev synkroniseres applikasjoner automatisk

PĂ„ prosjektsiden ser man alle kubernetes-ressurser som er en del av applikasjonen. Legg merke til de smĂ„ fargede symbolene pĂ„ hvert kort som sier noe om statusen pĂ„ ressursen. Hvis de er grĂžnne viser det at den ressursen er “healthy”. Dersom den er rĂžd er det et tegn pĂ„ at noe er galt med ressursen. Dersom den er gul er den “ute av synk”, og da mĂ„ man synkronisere applikasjonen.

Bildet over viser hvordan man kan synkronisere ut endringene til kubernetes-miljĂžet. Sync-knappen i menylinjen lar deg velge hvordan ting skal synkroniseres ut, og man kan til og med gjĂžre en Selective Sync av kun noen av ressursene. Det vanligste og tryggeste er vel Ă„ merke Ă„ synkronisere alt med default-innstillingene.

Dersom en synk ikke har fungert vil man se en feilmelding i menylinjen Ăžverst. I det tilfellet kan det vĂŠre lurt Ă„ trykke pĂ„ “sync status”-knappen Ăžverst for Ă„ fĂ„ en mer detaljert oversikt over hva som har gĂ„tt galt.

Rollback​

Rollback I noen tilfeller kan man tenke seg at en uÞnsket endring er kommet ut i kjÞremiljÞet. Da vil den raskeste og enkleste mÄten Ä gjenopprette funksjonaliteten for brukerene ofte vÊre en rollback til en tidligere kjent fungerende versjon.

Rollbacks er det innebygget stĂžtte for i Argo CD som en del av applikasjonsvisningen. Klikk “History and rollback” for Ă„ fĂ„ en liste over alle tidligere synker som er gjort i denne applikasjonen. Dersom man Ăžnsker Ă„ rulle tilbake finner man versjonen man Ăžnsker i listen og trykker pĂ„ de tre prikkene og velger rollback. “Revisjonene” i listen peker pĂ„ en commit i git-historikken til apps-repoet.

Ved en rollback gjĂžr Argo CD en synk som vanlig, men mot en tidligere kjent tilstand. Den vil da ikke bruke tilstanden som ligger i git, men tilstanden til en tidligere synk. Etter en rollback vil applikasjonen stĂ„ som “out of sync”, og det er forventet siden den ikke matcher tilstanden i git.

info

Husk at container imaget mÄ finnes for at det skal vÊre mulig Ä rulle tilbake. Om container imaget er slettet i ghcr.io , for eksempel av en oppryddingsjobb, sÄ vil det ikke vÊre mulig Ä starte opp den tidligere versjonen.

Detaljer og Web Terminal​

Detaljer

Dersom man klikker pÄ en ressurs i prosjektvisningen vil man se flere detaljer om denne ressursen. Man finner blant annet en oversikt over metadata, manfiest-filen som Argo CD skal synke ut, events og logger.

Det er ogsĂ„ mulig Ă„ endre pĂ„ manifestfilen som ligger i clusteret om man gĂ„r pĂ„ “live manifest” og trykker “edit”. Dette vil fĂžre til at applikasjonen kommer ut av synk, og i miljĂžer hvor auto-synking er skrudd pĂ„ vil det tilbakestilles med en gang. Men i noen tilfeller kan det vĂŠre nyttig.

Web terminal

Legg ogsĂ„ merke til “terminal”-fanen. Denne er kun synlig om man velger en pod. Velger man denne fanen fĂ„r man en live terminaltilkobling inn til podden som man kan bruke til feilsĂžking.

info

Web terminal er ikke tilgjengelig i prod

Hvordan bruke Argo gjennom API​

Visst du Þnsker Ä automatisere oppgaver, for eksempel synk ved ny image versjon sÄ kan det vÊre greit Ä ha muligheten til Ä gjÞre dette fra Github. Det fÞrste du trengre da er nettverkstilgang fra Github, det fÄr du med tailscale.

For Ă„ autentisere mot Argo sĂ„ mĂ„ du generere en JWT, dette kan du gjĂžre i Argo UIet. GĂ„ inn pĂ„ f.eks , trykk pĂ„ settings oppe til venstre → Projects → ditt prosjekt → trykk pĂ„ “Roles” fanen, og deretter pĂ„ apiuser. Scroll helt ned pĂ„ modalen som kommer opp og trykk Create under JWT Tokens. Det er samme framgangsmĂ„te i andre miljĂž.

JWT

Etter at token er generert kan du testen den med kommandoen:

curl https://argo-dev.kartverket.dev/api/v1/applications/<min-app> -H "Content-Type: application/json" -H "Authorization: Bearer <token>"

Argos API spec kan man finne her: