Hoʻomaka i GitOps no OpenShift

I kēia lā e kamaʻilio mākou e pili ana i nā loina a me nā hiʻohiʻona o GitOps, a me ke ʻano o ka hoʻokō ʻia ʻana o kēia mau hiʻohiʻona ma ka platform OpenShift. Loaʻa kahi alakaʻi pili i kēia kumuhana loulou.

Hoʻomaka i GitOps no OpenShift

I ka pōkole, ʻo GitOps kahi hoʻonohonoho o nā hana no ka hoʻohana ʻana i nā noi huki Git e hoʻokele i nā ʻōnaehana a me nā hoʻonohonoho noi. Hana ʻia ka waihona Git ma GitOps ma ke ʻano he kumu hoʻokahi o ka ʻike e pili ana i ka mokuʻāina o ka ʻōnaehana, a ʻo nā hoʻololi i kēia mokuʻāina e hiki ke ʻike ʻia a hiki ke loiloi.

ʻAʻole hou ka manaʻo o ka hoʻololi ʻana i ka nānā ʻana ma GitOps; ua hoʻohana lōʻihi ʻia kēia ala kokoke i ke ao holoʻokoʻa i ka wā e hana ai me ka code source code. Hoʻokomo wale ʻo GitOps i nā hiʻohiʻona like (nā loiloi, nā noi huki, nā inoa, a me nā mea ʻē aʻe) i ka hoʻokele waiwai a me ka hoʻonohonoho hoʻonohonoho noiʻi a hāʻawi i nā pōmaikaʻi like e like me ka hoʻokele code source.

ʻAʻohe wehewehe hoʻonaʻauao a i ʻole hoʻonohonoho ʻia o nā lula no GitOps, he pūʻulu kumu wale nō i kūkulu ʻia ai kēia hana:

  • Mālama ʻia ka wehewehe ʻana o ka ʻōnaehana i ka waihona Git (configs, monitoring, etc.).
  • Hoʻololi ʻia ka mokuʻāina ma o nā noi huki.
  • Hoʻopili ʻia ke kūlana o nā ʻōnaehana holo me ka ʻikepili i loko o ka waihona me ka hoʻohana ʻana i nā noi pana Git.

Nā Kuʻuna GitOps

  • Hōʻike ʻia nā wehewehe ʻōnaehana ma ke ʻano he kumu kumu

Hana ʻia ka hoʻonohonoho ʻōnaehana ma ke ʻano he code i hiki ke mālama ʻia a hoʻololi ʻia i loko o kahi waihona Git, kahi kumu hoʻokahi o ka ʻoiaʻiʻo. ʻO kēia ala e maʻalahi ai ka rollout a rollback hoʻololi i nā ʻōnaehana.

  • Hoʻonohonoho ʻia a hoʻololi ʻia ka mokuʻāina a me ka hoʻonohonoho ʻana o nā ʻōnaehana ma Git

Ma ka mālama ʻana a me ka hoʻololi ʻana i ke kūlana o nā ʻōnaehana i makemake ʻia ma Git, hiki iā mākou ke ʻōwili maʻalahi a hoʻihoʻi i nā loli i nā ʻōnaehana a me nā noi. Hiki iā mākou ke hoʻohana i nā mīkini palekana o Git e hoʻomalu i ka mana code a hōʻoia i kona ʻoiaʻiʻo.

  • Hiki ke hoʻohana ʻia nā hoʻololi hoʻonohonoho ma o nā noi huki

Ke hoʻohana nei i nā noi huki Git, hiki iā mākou ke hoʻokele maʻalahi i ke ʻano o ka hoʻololi ʻana i nā hoʻonohonoho i loko o ka waihona. No ka laʻana, hiki ke hāʻawi ʻia i nā lālā hui ʻē aʻe no ka loiloi a holo ʻana ma o nā hoʻokolohua CI, etc.

A i ka manawa like, ʻaʻohe pono e puʻunaue i nā mana admin ma ka hema a me ka ʻākau. No ka hana ʻana i nā hoʻololi hoʻonohonoho, pono nā mea hoʻohana i nā ʻae kūpono i ka waihona Git kahi i mālama ʻia ai kēlā mau hoʻonohonoho.

  • Hoʻoponopono i ka pilikia o ka hoʻokele ʻole ʻia o nā hoʻonohonoho

Ke mālama ʻia ke kūlana i makemake ʻia o ka ʻōnaehana i loko o kahi waihona Git, ʻo kā mākou mea e hana ai, ʻo ka loaʻa ʻana o nā polokalamu e hōʻoia i ke kūlana o kēia manawa o ka ʻōnaehana i kona kūlana makemake. Inā ʻaʻole kēia ka hihia, pono kēia polokalamu - e pili ana i nā hoʻonohonoho - e hoʻopau i ka ʻokoʻa ma kāna iho, a i ʻole e haʻi mai iā mākou e pili ana i ka drift hoʻonohonoho.

Nā Hoʻohālike GitOps no OpenShift

Ma-Cluster Reconciler Punawai

Wahi a kēia kŘkohu, loaʻa i ka puʻupuʻu kahi mea hoʻoponopono nāna ke kuleana no ka hoʻohālikelike ʻana i nā kumuwaiwai Kubernetes (faila YAML) ma ka waihona Git me nā kumuwaiwai maoli o ka pūʻulu. Inā ʻike ʻia nā ʻokoʻa, hoʻouna ka mea hoʻoponopono i nā leka hoʻomaopopo a hana paha i ka hana e hoʻoponopono ai i nā ʻokoʻa. Hoʻohana ʻia kēia hiʻohiʻona GitOps ma Anthos Config Management a me Weaveworks Flux.

Hoʻomaka i GitOps no OpenShift

Mea hoʻoponopono waiwai o waho (Push)

Hiki ke noʻonoʻo ʻia kēia kŘkohu ma ke ʻano he hoʻololi ʻana o ka mea ma mua, ke loaʻa iā mākou hoʻokahi a ʻoi aku paha nā mea hoʻoponopono i kuleana no ka hoʻonohonoho pono ʻana i nā kumuwaiwai i loko o ka "Git repository - Kubernetes cluster". ʻO ka ʻokoʻa ma ʻaneʻi, ʻaʻole pono kēlā me kēia pūʻulu hoʻokele i kāna mea hoʻoponopono kaʻawale. ʻO Git - ʻo nā hui hui k8s i wehewehe pinepine ʻia ʻo CRDs (nā wehewehe kumu waiwai maʻamau), hiki ke wehewehe i ke ʻano o ka hoʻokō ʻana i ka hoʻonohonoho ʻana. I loko o kēia kŘkohu, hoʻohālikelike nā mea hoʻoponopono i ka waihona Git i hōʻike ʻia ma ka CRD me nā kumu waiwai puʻupuʻu Kubernetes, i kuhikuhi pū ʻia ma CRD, a hana i nā hana kūpono e pili ana i nā hopena o ka hoʻohālikelike. ʻO ka mea kūikawā, hoʻohana ʻia kēia ʻano GitOps ma ArgoCD.

Hoʻomaka i GitOps no OpenShift

GitOps ma ke kahua OpenShift

ʻO ka hoʻokele ʻana i nā ʻōnaehana Kubernetes multi-cluster

Me ka hoʻolaha ʻana o Kubernetes a me ka ulu nui ʻana o nā hoʻolālā multi-cloud a me ka computing edge, ke piʻi nei ka awelika o nā pūʻulu OpenShift i kēlā me kēia mea kūʻai.

No ka laʻana, i ka hoʻohana ʻana i ka computing edge, hiki ke kau ʻia nā pūʻulu o ka mea kūʻai aku i nā haneli a i ʻole mau tausani. ʻO ka hopena, koi ʻia ʻo ia e hoʻokele i kekahi mau pūʻulu OpenShift kūʻokoʻa a i hui pū ʻia ma ke ao ākea a ma ka hale.

I kēia hihia, pono e hoʻoponopono ʻia nā pilikia he nui, ʻo ia hoʻi:

  • E mālama i nā pūʻulu i kahi kūlana like (configs, nānā, mālama, etc.)
  • Hana hou (a hoʻihoʻi) i nā pūʻulu ma muli o kahi mokuʻāina i ʻike ʻia.
  • E hana i nā pūʻulu hou e pili ana i kahi mokuʻāina i ʻike ʻia.
  • E hoʻololi i nā hoʻololi i nā pūʻulu OpenShift he nui.
  • E hoʻololi i nā loli ma waena o nā pūʻulu OpenShift he nui.
  • Hoʻopili i nā hoʻonohonoho maʻamau i nā kaiapuni like ʻole.

Nā hoʻonohonoho hoʻohana

I ko lākou ola ʻana, hele pinepine nā noi i ke kaulahao o nā pūʻulu (dev, stage, etc.) ma mua o ka pau ʻana i kahi pūʻulu hana. Eia kekahi, ma muli o ka loaʻa ʻana a me nā koi scalability, hoʻolaha pinepine nā mea kūʻai aku i nā noi ma waena o nā puʻupuʻu lehulehu a i ʻole nā ​​ʻāpana he nui o kahi paepae kapuaʻi lehulehu.

I kēia hihia, pono e hoʻoholo i nā hana i lalo:

  • E hōʻoia i ka neʻe ʻana o nā noi (binaries, configs, etc.) ma waena o nā pūpū (dev, stage, etc.).
  • E hoʻololi i nā hoʻololi i nā noi (binaries, configs, etc.) i kekahi mau pūʻulu OpenShift.
  • E hoʻololi i nā hoʻololi i nā noi i kahi mokuʻāina i ʻike mua ʻia.

OpenShift GitOps hoʻohana i nā hihia

1. Ke noi nei i nā hoʻololi mai ka waihona Git

Hiki i ka luna hoʻomalu hui ke mālama i nā hoʻonohonoho pūʻulu OpenShift i loko o kahi waihona Git a hoʻohana maʻalahi iā lākou e hana maʻalahi i nā pūʻulu hou a lawe iā lākou i kahi mokuʻāina i ʻike ʻia i mālama ʻia ma ka waihona Git.

2. Hoʻonohonoho pū me ka Mana huna

E pōmaikaʻi ka luna hoʻomalu mai ka hiki ke hoʻonohonoho i nā mea huna OpenShift me nā polokalamu kūpono e like me Vault i mea e hoʻokele ai iā lākou me ka hoʻohana ʻana i nā mea hana i hana ʻia no kēia.

3. Ka hoomalu ana i na hoonohonoho drift

E ʻoluʻolu wale ka luna inā ʻike ʻo OpenShift GitOps iā ia iho a ʻōlelo e pili ana i nā ʻokoʻa ma waena o nā hoʻonohonoho maoli a me nā mea i kuhikuhi ʻia i loko o ka waihona, i hiki iā lākou ke pane koke i ka drift.

4. Nā leka hoʻomaopopo e pili ana i ka drift hoʻonohonoho

Pono lākou i ka hihia inā makemake ka luna e aʻo koke e pili ana i nā hihia o ka drift hoʻonohonoho i mea e lawe koke ai i nā hana kūpono iā ia iho.

5. Hoʻonohonoho lima lima o nā hoʻonohonoho i ka wā e neʻe ana

E ʻae i ka luna hoʻoponopono e hoʻonohonoho i ka pūʻulu OpenShift me ka waihona Git i ka wā o ka neʻe ʻana o ka hoʻonohonoho, e hoʻihoʻi koke i ka pūʻulu i kahi mokuʻāina i ʻike mua ʻia.

6.Auto-synchronization o nā hoʻonohonoho i ka wā e holo ana

Hiki i ka luna hoʻonohonoho ke hoʻonohonoho i ka pūʻulu OpenShift e hui pū me ka waihona i ka wā e ʻike ʻia ai kahi drift, i kūpono mau ka hoʻonohonoho cluster i nā configs ma Git.

7. He mau pūʻulu - hoʻokahi waihona

Hiki i ka luna hoʻomalu ke mālama i nā hoʻonohonoho o nā pūʻulu OpenShift like ʻole i hoʻokahi waihona Git a koho pono iā lākou e like me ka mea e pono ai.

8. ʻO ka hierarchy o nā hoʻonohonoho pūʻulu (hoʻoilina)

Hiki i ka luna ke hoʻonohonoho i kahi hierarchy o nā hoʻonohonoho cluster i loko o ka waihona (pae, prod, app portfolio, etc. me ka hoʻoilina). I nā huaʻōlelo ʻē aʻe, hiki iā ia ke hoʻoholo inā pono e hoʻopili ʻia nā hoʻonohonoho i hoʻokahi a ʻoi aku paha nā pūʻulu.

No ka laʻana, inā hoʻonohonoho ka luna hoʻonohonoho i ka hierarchy "Production clusters (prod) → System X clusters → Production clusters of system X" i loko o ka waihona Git, a laila hoʻopili ʻia kahi hui o kēia mau configs i nā pūʻulu hana o ka ʻōnaehana X:

  • Confis maʻamau i nā pūʻulu hana a pau.
  • Hoʻopili no ka pūʻulu Pūnaehana X.
  • Configs no ka pūʻulu hana ʻōnaehana X.

9. Hoʻopau nā templates a me ka hoʻonohonoho hoʻonohonoho

Hiki i ka luna hoʻomalu ke hoʻopau i kahi pūʻulu o nā configs hoʻoilina a me kā lākou mau waiwai, no ka laʻana, e hoʻoponopono maikaʻi i ka hoʻonohonoho no nā pūʻulu kikoʻī kahi e hoʻohana ʻia ai.

10. Hoʻokomo a kāpae ʻia no nā hoʻonohonoho, nā hoʻonohonoho noi

Hiki i ka luna hoʻoponopono ke hoʻonohonoho i nā kūlana no ka noi a i ʻole ka hoʻohana ʻole ʻana i kekahi mau hoʻonohonoho i nā pūʻulu me kekahi mau hiʻohiʻona.

11. Kākoʻo template

E pōmaikaʻi nā mea hoʻomohala mai ka hiki ke koho pehea e wehewehe ʻia ai nā kumuwaiwai noi (Helm Chart, pure Kubernetes yaml, etc.) i mea e hoʻohana ai i ke ʻano kūpono loa no kēlā me kēia noi kikoʻī.

Nā mea hana GitOps ma ka OpenShift platform

ArgoCD

Hoʻokomo ʻo ArgoCD i ke ʻano hoʻohālike External Resource Reconcile a hāʻawi i kahi UI kikowaena no ka hoʻonohonoho ʻana i nā pilina hoʻokahi-a-nui ma waena o nā puʻupuʻu a me nā waihona Git. ʻO nā hemahema o kēia papahana ka hiki ʻole ke hoʻokele i nā noi ke hana ʻole ʻo ArgoCD.

Paena pūnaewele

kahe ana

Hoʻokomo ʻo Flux i kahi kumu hoʻohālike On-Cluster Resource Reconcile a ma muli o ka hopena, ʻaʻohe hoʻokele kikowaena o ka waihona wehewehe, he wahi nāwaliwali. Ma ka ʻaoʻao ʻē aʻe, ma muli o ka nele o ka centralization, hiki ke hoʻokele i nā noi inā ʻaʻole i hāʻule kekahi puʻupuʻu.

Paena pūnaewele

Ke hoʻokomo nei iā ArgoCD ma OpenShift

Hāʻawi ʻo ArgoCD i kahi interface laina kauoha maikaʻi loa a me ka console pūnaewele, no laila ʻaʻole mākou e uhi iā Flux a me nā mea ʻē aʻe ma aneʻi.

No ka waiho ʻana iā ArgoCD ma ka OpenShift 4 platform, e hahai i kēia mau ʻanuʻu ma ke ʻano he luna hoʻomalu:

Ke hoʻolālā nei i nā ʻāpana ArgoCD ma ke kahua OpenShift

# Create a new namespace for ArgoCD components
oc create namespace argocd
# Apply the ArgoCD Install Manifest
oc -n argocd apply -f https://raw.githubusercontent.com/argoproj/argo-cd/v1.2.2/manifests/install.yaml
# Get the ArgoCD Server password
ARGOCD_SERVER_PASSWORD=$(oc -n argocd get pod -l "app.kubernetes.io/name=argocd-server" -o jsonpath='{.items[*].metadata.name}')

Hoʻomaikaʻi i ka Server ArgoCD i ʻike ʻia e OpenShift Route

# Patch ArgoCD Server so no TLS is configured on the server (--insecure)
PATCH='{"spec":{"template":{"spec":{"$setElementOrder/containers":[{"name":"argocd-server"}],"containers":[{"command":["argocd-server","--insecure","--staticassets","/shared/app"],"name":"argocd-server"}]}}}}'
oc -n argocd patch deployment argocd-server -p $PATCH
# Expose the ArgoCD Server using an Edge OpenShift Route so TLS is used for incoming connections
oc -n argocd create route edge argocd-server --service=argocd-server --port=http --insecure-policy=Redirect

Ke hoʻohana nei i ka mea hana ArgoCD Cli

# Download the argocd binary, place it under /usr/local/bin and give it execution permissions
curl -L https://github.com/argoproj/argo-cd/releases/download/v1.2.2/argocd-linux-amd64 -o /usr/local/bin/argocd
chmod +x /usr/local/bin/argocd

Ke hoʻololi nei i ka ʻōlelo huna admin ArgoCD Server

# Get ArgoCD Server Route Hostname
ARGOCD_ROUTE=$(oc -n argocd get route argocd-server -o jsonpath='{.spec.host}')
# Login with the current admin password
argocd --insecure --grpc-web login ${ARGOCD_ROUTE}:443 --username admin --password ${ARGOCD_SERVER_PASSWORD}
# Update admin's password
argocd --insecure --grpc-web --server ${ARGOCD_ROUTE}:443 account update-password --current-password ${ARGOCD_SERVER_PASSWORD} --new-password

Ma hope o ka hoʻopau ʻana i kēia mau ʻanuʻu, hiki iā ʻoe ke hana me ArgoCD Server ma o ka ArgoCD WebUI pūnaewele console a i ʻole ka mea hana laina kauoha ArgoCD Cli.
https://blog.openshift.com/is-it-too-late-to-integrate-gitops/

GitOps - ʻAʻole i lohi loa

"Ua haʻalele ke kaʻaahi" - ʻo ia ka mea a lākou e ʻōlelo ai e pili ana i kahi kūlana i hala ka manawa e hana ai i kekahi mea. I ka hihia o OpenShift, ʻo ka makemake e hoʻomaka koke i ka hoʻohana ʻana i kēia kahua hou ʻoluʻolu e hana pinepine i kēia kūlana me ka hoʻokele a me ka mālama ʻana i nā ala, hoʻoili a me nā mea OpenShift ʻē aʻe. Akā, ua nalowale loa ka manawa?

Ke hoʻomau nei i ke ʻano o nā ʻatikala e pili ana GitOps, i kēia lā e hōʻike mākou iā ʻoe pehea e hoʻololi ai i kahi noi hana lima a me kāna mau kumuwaiwai i kahi kaʻina e mālama ʻia ai nā mea āpau e nā mea hana GitOps. No ka hana ʻana i kēia, e kau mua mākou i ka palapala httpd. Hōʻike ka paʻi kiʻi ma lalo i ke ʻano o kā mākou hana ʻana i kahi inoa inoa, hoʻolaha a me ka lawelawe, a laila hōʻike i kēia lawelawe e hana i kahi ala.

oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/namespace.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/deployment.yaml
oc create -f https://raw.githubusercontent.com/openshift/federation-dev/master/labs/lab-4-assets/service.yaml
oc expose svc/httpd -n simple-app

No laila, loaʻa iā mākou kahi noi hana lima. I kēia manawa pono e hoʻoneʻe ʻia ma lalo o ka hoʻokele GitOps me ka ʻole o ka loaʻa. I ka pōkole, hana ia i kēia:

  • E hana i kahi waihona Git no ke code.
  • Hoʻouna mākou i kā mākou mau mea i kēia manawa a hoʻouka iā lākou i ka waihona Git.
  • Ke koho ʻana a me ka hoʻohana ʻana i nā mea hana GitOps.
  • Hoʻohui mākou i kā mākou waihona i kēia pahu hana.
  • Wehewehe mākou i ka noi ma kā mākou GitOps toolkit.
  • Hana mākou i ka holo hoʻāʻo o ka noi me ka hoʻohana ʻana i ka hāmeʻa GitOps.
  • Hoʻonohonoho mākou i nā mea me ka hoʻohana ʻana i ka pahu hana GitOps.
  • E ho'ā i ka ʻoki ʻana a me ka hoʻonohonoho ʻana i nā mea.

E like me ka mea i ʻōlelo ʻia ma mua 'ōlelo, i loko o GitOps hoʻokahi wale nō kumu o ka ʻike e pili ana i nā mea a pau i loko o ka pūʻulu Kubernetes (s) - ka waihona Git. A laila, hoʻomaka mākou mai ka manaʻo ua hoʻohana mua kāu hui i kahi waihona Git. Hiki i ka lehulehu a i ʻole ka pilikino, akā pono e loaʻa i nā pūʻulu Kubernetes. Hiki i kēia ke like me ka palapala noi, a i ʻole kahi waihona ʻokoʻa i hana ʻia no nā hoʻolaha. Manaʻo ʻia e loaʻa nā ʻae koʻikoʻi i loko o ka waihona no ka mea e mālama ʻia nā mea huna, nā ala, a me nā mea palekana ʻē aʻe ma laila.

I kā mākou laʻana, e hana mākou i kahi waihona lehulehu hou ma GitHub. Hiki iā ʻoe ke kapa iā ia i kāu makemake, hoʻohana mākou i ka inoa blogpost.

Inā ʻaʻole mālama ʻia nā faila mea YAML ma ka ʻāina a i ʻole ma Git, a laila pono ʻoe e hoʻohana i nā binaries oc a i ʻole kubectl. Ma ke kiʻi kiʻi ma lalo nei ke noi nei mākou iā YAML no kā mākou inoa inoa, hoʻolaha, lawelawe a me ke ala. Ma mua o kēia, ua hoʻopili mākou i ka waihona hou i hana ʻia a cd i loko.

oc get namespace simple-app -o yaml --export > namespace.yaml
oc get deployment httpd -o yaml -n simple-app --export > deployment.yaml
oc get service httpd -o yaml -n simple-app --export > service.yaml
oc get route httpd -o yaml -n simple-app --export > route.yaml

I kēia manawa, e hoʻoponopono i ka faila deployment.yaml e wehe i ke kahua i hiki ʻole iā Argo CD ke hana.

sed -i '/sgeneration: .*/d' deployment.yaml

Eia hou, pono e hoʻololi i ke ala. E hoʻonohonoho mua mākou i kahi hoʻololi multiline a laila hoʻololi i ka ingress: null me nā ʻike o kēlā ʻano.

export ROUTE="  ingress:                                                            
    - conditions:
        - status: 'True'
          type: Admitted"

sed -i "s/  ingress: null/$ROUTE/g" route.yaml

No laila, ua hoʻokaʻawale mākou i nā faila, ʻo nā mea a pau e mālama iā lākou i ka waihona Git. Ma hope o ka lilo ʻana o kēia waihona i ke kumu o ka ʻike, a pono e pāpā loa ʻia nā hoʻololi lima i nā mea.

git commit -am ‘initial commit of objects’
git push origin master

Ke hoʻomau nei mākou mai ka ʻoiaʻiʻo ua kau ʻoe iā ArgoCD (pehea e hana ai i kēia - ʻike i ka mua leka). No laila, e hoʻohui mākou i ka CD Argo i ka waihona a mākou i hana ai, me ka code noi mai kā mākou hiʻohiʻona. E hōʻoia wale ʻoe e kuhikuhi i ka waihona kikoʻī āu i hana ai ma mua.

argocd repo add https://github.com/cooktheryan/blogpost

I kēia manawa e hana kākou i ka polokalamu. Hoʻonohonoho ka palapala noi i nā waiwai i hiki i ka GitOps toolkit ke hoʻomaopopo i ka waihona a me nā ala e hoʻohana ai, kahi OpenShift e pono ai e hoʻokele i nā mea, kahi lālā kikoʻī o ka waihona e pono ai, a inā pono e hoʻonohonoho pono nā kumuwaiwai.

argocd app create --project default 
--name simple-app --repo https://github.com/cooktheryan/blogpost.git 
--path . --dest-server https://kubernetes.default.svc 
--dest-namespace simple-app --revision master --sync-policy none

Ke hōʻike ʻia kahi noi ma ka CD Argo, hoʻomaka ka mea hana e nānā i nā mea i kau ʻia e kūʻē i nā wehewehe i loko o ka waihona. I kā mākou laʻana, hoʻopau ʻia ka auto-sync a me ka hoʻomaʻemaʻe ʻana, no laila ʻaʻole loli nā mea. E ʻoluʻolu e hoʻomaopopo ʻia ma ka interface CD Argo e loaʻa i kā mākou noi ke kūlana "Out of Sync" no ka mea ʻaʻohe lepili i hāʻawi ʻia e ArgoCD.
ʻO ia ke kumu i ka wā e hoʻomaka ai mākou i ka synchronization ma hope iki, ʻaʻole e hoʻihoʻi ʻia nā mea.

I kēia manawa, e hoʻāʻo kāua e ʻike ʻaʻohe hewa i kā mākou faila.

argocd app sync simple-app --dry-run

Inā ʻaʻohe hewa, hiki iā ʻoe ke hoʻomau i ka synchronization.

argocd app sync simple-app

Ma hope o ka holo ʻana i ke kauoha argocd loaʻa i kā mākou noi, pono mākou e ʻike ua loli ke kūlana noi i Healthy a i ʻole Synced. ʻO ia ke ʻano o nā kumuwaiwai āpau i loko o ka waihona Git i kēia manawa e pili ana i kēlā mau kumuwaiwai i kau ʻia.

argocd app get simple-app
Name:               simple-app
Project:            default
Server:             https://kubernetes.default.svc
Namespace:          simple-app
URL:                https://argocd-server-route-argocd.apps.example.com/applications/simple-app
Repo:               https://github.com/cooktheryan/blogpost.git
Target:             master
Path:               .
Sync Policy:        <none>
Sync Status:        Synced to master (60e1678)
Health Status:      Healthy
...   

I kēia manawa hiki iā ʻoe ke hoʻohana i ka auto-sync a me ka hoʻomaʻemaʻe ʻana e hōʻoia ʻaʻole i hana ʻia me ka lima a i kēlā me kēia manawa i hana ʻia a hōʻano hou ʻia kekahi mea i ka waihona, e hana ʻia kahi hoʻolālā.

argocd app set simple-app --sync-policy automated --auto-prune

No laila, ua lawe maikaʻi mākou i kahi noi ma lalo o ka mana o GitOps i hoʻohana mua ʻole i GitOps ma kekahi ʻano.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka