áᏠáľá GitOps ááááá˝ áĽá áá´áá˝, áĽáá˛áá áĽááá
áá´áá˝ á OpenShift ááľá¨á áá áĽáá´áľ áĽáá°áá°áá አáĽáááááŤáá. á áá
áááľ áá á ááá°ááá áááŞáŤ á á
á á áá á ááááᣠGitOps á¨áá á¨á° áááľ áĽá á¨áá°áá áŞáŤ áá
áŽá˝á áááľá°áłá°á Git pull áĽáŤááá˝á ááá áá á¨á°ááŁá áľáĽáľáĽ ááᢠá GitOps ááľáĽ áŤáá á¨ááľ áá¨ááť áĽáá° á¨áľáááą áááł áĽáá° á ááľ á¨áá¨á ááá áá á¨ááá°á°áᣠáĽá á áá
áááľ áá á¨áá°á¨á ááá¸áá áááŚá˝ áá á áá ááłáŠ áĽá ááá¨áአá¨áá˝á áá¸áá˘
á GitOps ááľáĽ á¨áá¨áłá°áŤ ááἠááłáĽ á á˛áľ á áá°áá ᣠáá
á áŤááľ á¨áá°áá áŞáŤ ááá áŽáľ áá á˛á°áŤ á¨áá áá°á á á áá á áá á°á¨á áĽá
á áá áááᢠGitOps á ááá á°ááłáłá áŁá
áŞáŤáľá (áááááá˝á, áĽáŤááá˝á, áááŤáá˝á, ááá°) á áá á¨á° áááľ áĽá á áá°áá áŞáŤ áá
á¨áľ á áľá°áłá°á ááľáĽ á°ááŁáŤá áŤá°ááá áĽá áĽáá° ááá áŽáľ á áľá°áłá°á áááł á°ááłáłá áĽá
áá˝á áá°áŁá.
á GitOps ááá á¨á áŤáłáá ááş ááá á¨á¸á°á á°ááŚá˝ áľáĽáľáĽ á¨ááᣠáá á á°áŤá á¨á°áááŁáŁá¸á á¨áááá˝ áľáĽáľáĽ áĽáťáĄ-
- á¨áľáááą ááá ááá፠á Git áá¨ááť ááľáĽ á°á¨áá˝áˇá (áááá ᣠááľáľá ᣠááá°)á˘
- á¨áááľ áááŚá˝ á¨áá°á¨ááľ á ááá°áť áĽáŤááá˝ ááá˘
- á¨áľááá° áááá áááł á¨ááľ áááľ áĽáŤááá˝á á áá áá á áá áŤáááŤá ááľáĽ áŤáá áá¨á áá áĽáá˛áľáá á°á°áááá˘
GitOps ááááá˝
- á¨áľáááľ áľááááá˝ áĽáá° ááá áŽáľ á°ááá¸ááá˘
á¨áľáááśá˝ áá á¨áľ áĽáá° áŽáľ ááá áŤá áľááá áĽáá˛á¨áá˝ áĽá á áŤáľ-á°á á ááľ áá¨ááť ááľáĽ áĽáá˛áá¨áᣠáá á áĽáá° áá á á¨áĽáááľ ááá áá áŤáááááᢠáá á áŤááľ á áľáááśá˝ ááľáĽ áááŚá˝á á áłáá° áááľ áĽá áá° áá áááááľ ááá áŤá°ááááá˘
- á¨ááááá áááł áĽá á¨áľáááśá˝ áá á á ááľ ááľáĽ á°ááá á°á á°ááá á°ááá˘
á¨áááááá á¨áľáááśá˝ áááł á ááľ ááľáĽ á áá¨áá¸áľ áĽá á ááá¨áᣠá áľáááśá˝ áĽá á áááŹá˝áá˝ áá áááŚá˝á á ááá áááá áĽá ááááľ áĽáá˝áááᢠá¨áŽáľ áŁáá¤áľááľá ááááŁá á áĽá áľááááááąá ááá¨ááἠá¨ááľ á¨á°á áááľ áá´áá˝á ááá áá áĽáá˝áááá˘
- á¨áááá áááŚá˝ á áŤáľ-á°á á ááá°áľ áĽáŤááá˝ áá°áá አáá˝ááá˘
á¨ááľ ááłáĽ áĽáŤááá˝á á áá ááᣠá áá¨ááťá ááľáĽ áŁá áá áŽá˝ áá áááŚá˝ áĽáá´áľ áĽáá°áá°áá አá ááá áááŁá á áĽáá˝áááᢠáááłáᣠáááá˝ á¨áĄáľá á áŁááľ ááááá áá°áĄ ááá á CI áá¨áŤáá˝áŁ ááá°.
áĽá á á°ááłáłá áá á¨á áľá°áłáłáŞ áľááŁáá˝á áá° á፠áĽá áá áá°áŤá¨áľ á áŤáľáááá. á¨áá á¨áľ áááŚá˝á áááľá¨á á°á áááá˝ á Git áá¨ááť ááľáĽ áĽáá፠áá á¨áśá˝ á á°á¨áášá áľ á ááŁáĽááľ áŤáá¸á áááśá˝ áĽáť áŤáľáááá¸ááá˘
- á¨ááĽáĽá áá á¨áá á¨á áá áśá˝ á°áá¸áŤáłá˝ á˝ááá ááľá°áŤá¨á
á¨ááááá á¨áľáááą áááł á ááľ áá¨ááť ááľáĽ á¨á°á¨áḠáĽá ááľá¨á áŤááĽá á¨áľáááą áá áłá áááł á¨á°áááá áááł áá á¨ááááľ áááá á¨ááŤá¨ááἠáśááľáá ááááľ ááᢠááłáŠ áá áŤáááᣠáá áśááľáá - áĽáá° á áá áśáš á¨ááá°á áá - áá á ááááŁáŁáąá á áŤáą ááľáááľ ááá áľá áá á¨áľ ááá¸áŤá°áľ áŤáłááááá˘
ᨠGitOps áá´áá˝ áOpenShift
á áááľá°á áŞáśááľ á áľáłáŤá
á áá áá´á áá á¨áľ áááľá°á á Git áá¨ááť ááľáĽ á¨áŠá áááľáľ ááĽáśá˝á (YAML áááá˝á) á¨áááľá°á áĽááá°á ááĽáśá˝ áá á¨ááááá áááááľ áŤáá á°ááŁáŁáŞ á ááᢠááŠááśá˝ á¨á°áá á°ááŁáŁáŞá ááłáááŤáá˝á áááŤá áĽá ááááŁáľ ááŠááśá˝á áááľá°áŤá¨á áĽááá áááľáłáᢠáá á¨ááľáŚááľ áá´á á Anthos Config Management áĽá Weaveworks Flux ááľáĽ áĽá á áá ááááá˘
á¨áá áááá፠á áľáłáŤá (áá)
á "Git repository - Kubernetes cluster" áĽááśá˝ ááľáĽ ááĽáśá˝á á¨áááłá°á áááááľ á ááľ ááá á¨á፠á áá á°ááŁáŁáŞáá˝ á˛áá¨á áá áá´á áĽáá° ááłáá ááŠááľ ááá á áá˝ááᢠáĽáá áŤáá ááŠááľ áĽáŤááłááą á¨áá°áłá°á áááľá°á á¨ááľ á¨áŤáą á¨á°áᨠá°ááŁáŁáŞ á¨áááᢠGit - k8s áááľá°á áĽááśá˝ áĽááá áá áĽáá° á˛á áá˛áá˝ (áĽá á¨áá¨á ááşáá˝) ááááťáᣠáá á á°ááŁáŁáŞá áááłá°áá áĽáá´áľ áá¨ááá áĽááłáá áľ áááá˝ áá˝ááᢠá áá áá´á ááľáĽ á°ááŁáŁáŞáá˝ á á˛á áᲠááľáĽ á¨á°ááá¸áá á¨ááľ áá¨áᝠᨠKubernetes áááľá°á ááĽáśá˝ áá áŤááłáľáŤáᣠáĽááá á á CRD ááľáĽ á¨á°ááášáľ áĽá á áá á á áá¤áśá˝ áá á°ááľáá°á á°áᢠáĽááááá˝á áŤá°áááᢠá á°ááá áá ᨠGitOps áá´á á ArgoCD ááľáĽ áĽá á áá áááá.
GitOps á OpenShift ááľá¨á áá
á¨áĽáá áááľá°á áŠá áááľáľ áá á¨á° áááľ á áľá°áłá°á
á Kubernetes ááľáááľ áĽá á¨áĽáá-á°áá áľááśá˝ áĽá á¨á áá ááľááľ áłááááľ áĽáŤá°á á áááŁáą á ááŤá á¨OpenShift áááľá°á á á ááľ á°áá á ááĽáá áĽá¨á¨áᨠááá˘
áááłá á¨á áá áľááľ á˛á áá á¨á ááľ á°áá á áľáĽáľáŚá˝ á ááśáá˝ á áá á°ááá á áşáá˝ áá°áአáá˝ááᢠá áá ááááŤáľ á ááἠá°áá áĽá á áá˘á ááľáĽ á ááŤáł áááá°á ááá á¨á°ááá á¨OpenShift áľáĽáľáŚá˝á áááľá°áłá°á á°ááľáˇáá˘
á áá áááł áĽá á˝ááŽá˝ áááłáľ á ááŁá¸á ᣠá á°ááá-
- áááááš á á°ááłáłá áááł ááľáĽ áááá¸áá áááŁá አ(ááááᣠááľáľáᣠáá¨ááťáŁ ááá°.)
- á ááłáá áááł áá á áááľá¨áľ áľáĽáľáŚá˝á áĽáá°áá ááá አ(ááá áá°áá áŠá áľ ááááą)á˘
- á ááłáá áááł áá á áááľá¨áľ á á˛áľ áľáĽáľáŚá˝á ááá áŠá˘
- áááŚá˝á áá° áĽá á¨OpenShift áľáĽáľáŚá˝ áŤááĄá˘
- á á ááŤáł á¨OpenShift áľáĽáľáŚá˝ áá áááŚá˝á áá° áá áŤááŠá˘
- á áĽááľ á¨á°á°á¨á áá áŽá˝á áá°á°ááŤáŠ á áŤáŁá˘áá˝ áŤáááá˘
á¨áá°áá áŞáŤ áá áŽá˝
á á áááľ áá°áłá¸á áá áľáŁ á áááŹá˝áá˝ áĽááá áá áá° áááľ áááľá°á á¨áá¨ááŤá¸á á ááľ á áááľá°á á°áá°ááľ (á´áᣠááľá¨áᣠááá°) ááľáĽ áŤáááᢠá á°á¨ááŞáᣠá á°ááááľ áĽá á áá á áááá ááľáááśá˝áŁ á°áá áá˝ áĽá áá á áááŹá˝áá˝á á á°ááŤáŠ á¨áᢠáááľá°á ááá á áĽá á¨á áἠá°áá ááľá¨á áá áŤá°ááŤáá˘
á áá áááł, á¨áá¨á°ááľ á°ááŁáŤáľ áááłáľ á ááŁá¸á.
- á¨áá°áá áŞáŤáá˝ áĽáá áľáá´ (áááľáŽá˝áŁ áá áŽá˝áŁ ááá°) á áááľá°á (devᣠá°á¨áᣠááá°) ááŤá¨á ááááłááąá áŤá¨áááĄá˘
- á á ááŤáł á¨OpenShift áľáĽáľáŚá˝ ááľáĽ á áá°áá áŞáŤáá˝ áá áááŚá˝á (áááľáŽá˝áŁ ááááᣠááá°) ááá á˘
- áá° ááľáá á¨áłáá áááł áááŚá˝á áá° áľáá áŤáá˝ áááąá˘
OpenShift GitOps ááłáŽá˝á áá áá
1. áááŚá˝á ᨠGit áá¨ááť áá°áá á
á¨áááľá°á á áľá°áłáłáŞ á¨OpenShift áááľá°á á ááááŽá˝á á Git áá¨ááť ááľáĽ áá¨áá¸áľ áĽá á áłá˛áľ áľáĽáľáŚá˝á áááá á áĽá á Git áá¨ááť ááľáĽ á¨á°á¨áḠáá°ááłáá áááł áá áá°áááłá°á áááł á áŤáľ-á°á á°ááŁáŤá ááľá¨á áá˝ááá˘
2. ááľáĽáŤá á áľá°áłáłáŞ áá áááłá°á
á áľá°áłáłáŞá á á°áá ááá á¨á°áá አááłáŞáŤáá˝á á áá áá áááľá°áłá°á á¨OpenShift ááľáĽáŤá áááŽá˝á áĽáá° áŽááľ áŤá á°áᢠáśááľááŽá˝ áá á¨áááłá°á á˝ááł á°á áá ááááá˘
3. á¨á°áá¸áŤáłá˝ á ááááŽá˝á áááŁá á
á áľá°áłáłáŞá á¨áá°ááá OpenShift GitOps áŤáą á áĽááá°á áá áŽá˝ áĽá á áá¨ááťá ááľáĽ á á°ááášáľ ááŤá¨á áľááá á ááááŁáŁáśá˝ áŤáá áĽá áŤáľá ááá áĽáť áá áľááá áááá¸áŤá°áľ á ááĽááľ ááá˝ ááľá áľ áá˝ááá˘
4. áľá áá á¨áľ á°áá¸áŤáłá˝ ááłáááŤáá˝
á ááĽááľ á áŤáą á°áá˘áá áĽááá áááá°áľ á áľá°áłáłáŞá áľá áá á¨áľ á°ááłáá ááłáŽá˝ á ááĽááľ ááá á ááááá áľ áá áĽááą á áá áá¸á á˘
5. á ááá¸áŤá°áąá áľ áá á¨áá á¨áśá˝á á áĽá áááłá°á
á¨á áľá°áłáłáŞá á¨OpenShift áááľá°á ᨠGit áá¨ááť áá áĽáá˛áŤááłáľá áŤáľá˝áááá˘
á ááá¸áŤá°áąá áľ áá áá áŽá˝á 6.Auto-synchronization
á áľá°áłáłáŞá á°áá¸áŤáłá˝ á˛áá á¨áá¨ááťá áá á áŤáľ á°á áĽáá˛ááłá°á á¨OpenShift áááľá°áá áááá áá˝áááŁáá á á¨áááľá°á áá á áá áá á ááľ ááľáĽ áŤá áá áŽá˝ áá ááááłáá˘
7. á ááŤáł áľáĽáľáŚá˝ - á ááľ áá¨ááť
á áľá°áłáłáŞá á¨á ááŤáł á¨á°ááŤáŠ á¨OpenShift áľáĽáľáŚá˝ á ááááŽá˝á á á ááľ Git áá¨ááť ááľáĽ áá¨áá¸áľ áĽá áĽáá° á áľáááááą áĽá¨áá¨á áá°áá á áá˝ááá˘
8. á¨áááľá°á áá áŽá˝ á°áá¨áľ (áááľ)
á áľá°áłáłáŞá á áá¨ááťá ááľáĽ á¨áááľá°á áá á¨áśá˝ á°áá¨áľ (á°á¨áᣠááŽáľáŁ á¨áá°áá áŞáŤ áááľáááŽáŁ ááá°. á¨áááľ áá) áááá áá˝ááᢠá áá á ááááᣠáá á¨áśá˝ áá ááľ ááá á¨á፠á áá ááááá˝ áá°áá á áĽááłááŁá¸á áááľá áá˝ááá˘
áááłá á ááľ á áľá°áłáłáŞ á ááľ áá¨ááť ááľáĽ âá¨áááľ áááľá°á (áááľ) â á˛áľá°á X áááľá°á â á¨áľáááľ X á¨áááľ áľáĽáľáŚá˝áâ á°áá¨áľ áŤááᨠá¨áá¨á°ááľ áá áŽá˝ áĽáá¨áľ á áľáááľ X á¨áááľ áľáĽáľáŚá˝ áá áá°áá áŤáá˘
- áááá á¨áááľ áľáĽáľáŚá˝ á¨á°áááą áá áŽá˝á˘
- áá˛áľá°á X áááľá°á áá áŽá˝á˘
- áX áľáááľ ááá¨áť áááľá°á áá áŽá˝á˘
9. á áĽááśá˝ áĽá áá á áá˝áŤá
á áľá°áłáłáŞá á¨á°áá¨áąáľá á¨á°ááአáľáĽáľáŚá˝á áĽá áĽá´áśáťá¸áá ááťá áá˝ááᣠáááłáᣠá¨áá°áá áŠáŁá¸áá á¨á°áá°á ááááá˝ áá á áááľá°áŤá¨áá˘
10. áá áŽá˝áᣠá¨áá°áá áŞáŤ áá áŽá˝á ááá¨áĽ áĽá ááŤá°áľ
á áľá°áłáłáŞá á¨á°áá°á áá á¨áśá˝á áá° áááľá°á ááááá¨áľ ááá áááá°áá á áááłáá˝á áááááľ áá˝ááá˘
11. á¨á áĽááľ áľáá
ááĽáŤááłááą á¨á°áᨠáá°áá áŞáŤ á áŁá á°áá˘áá á áá¸áľ ááá áá ááá˘áá˝ á¨áá°áá áŞáŤ ááĽááśá˝ áĽáá´áľ áĽáá°ááááš (Helm Chartᣠpure Kubernetes yamlᣠááá°) á¨ááá¨áĽ á˝ááł á°á áá ááááá˘
ᨠGitOps ááłáŞáŤáá˝ á OpenShift ááľá¨á áá
á ááá˛á˛
ArgoCD á¨á᪠áŞáśááľ ááľáłá¨á áá´áá á°ááŁáŤá áŤá°ááá áĽá á áááľá°á áĽá á ááľ áá¨ááťáá˝ ááŤá¨á á¨á ááľ áĽáľá¨ áĽá áááááśá˝á ááááááľ á¨á°áá¨á UI áŤáááŁáᢠá¨áá ááŽááŤá ááłáśá˝ ArgoCD á ááá°áŤá áľ áá á áááŹá˝áá˝á ááľá°áłá°á á áááťáá áŤá ááááá˘
á¨ááŤáááĽ
Flux á áááľá°á áŞáśááľ áŞáśááľ áá´áá áá°ááĽáŤáᣠá áá¤áąáᣠá¨áľááá áá¨ááťá á¨á°áá¨á á áľá°áłá°á á¨ááᣠáá á°áŤá ááĽáĽ ááᢠá áá á áŠáᣠá áľááá á ááá¨ááááľ áĽáĽá¨áľ ááááŤáľáŁ á ááľ ááá áŁááłáŤá áá°áá áŞáŤáá˝á á¨ááľá°áłá°á á˝ááł áááŤáá˘
á OpenShift áá ArgoCD á á ááŤá áá
ArgoCD á áŁá áĽáŠ á¨áľááá ááľáá á áááá˝ áĽá á¨áľá áŽááśá áŤáááŁáᣠáľááá Flux áĽá ááá˝ á ááŤáŽá˝á áĽáá á áá¸ááááá˘
ArgoCDá á OpenShift 4 ááľá¨á áá ááá°ááŤáľ áĽáá° áááľá°á á áľá°áłáłáŞ áĽááá á á°á¨ááá˝ áá¨á°áá˘
ᨠArgoCD áááá˝á á 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}')
á OpenShift Route áĽáá˛áłá ᨠArgoCD á ááááá ááťáťá
# 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
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
ᨠArgoCD á áááá á áľá°áłáłáŞ ááá áá ááááĽ
# 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
áĽááá
á áĽááááá˝ á¨á¨á¨áą á áá á ArgoCD WebUI áἠáŽááśá ááá á ArgoCD Cli á¨áľáĽáá ááľáá ááłáŞáŤ á áŠá á¨á ááá˛á˛ á áááá áá ááľáŤáľ áá˝ááá˘
GitOps - á áŁá ááááś á áŤáá á
"áŁáĄáŠ ááĽáˇá" - á ááľ ááá áááľá¨á áĽáľá á˛á á áľá á ááľ áááł á¨ááááŠáľ áá áá. á OpenShift áá᳠ᣠáá áá á áŞá á á˛áľ ááľá¨áá áá˛áŤáá á¨áááá ááááľ áĽááá áá á¨ááááśá˝ ᣠá¨áá°ááŤáľ áĽá ááὠᨠOpenShift áááá˝á á áŤáŤá áĽá áĽáá á áľááá áá áá áááł áááĽáŤáᢠáá ááľá áá áá áá á áá áá áá?
áľá á°á¨áłáłá ááŁáĽáá˝ ááá á
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
áľááá á áĽá á¨á°á°áŤ áá°áá áŞáŤ á ááᢠá áá áŤáááááľ áłáá á á GitOps á áľá°áłá°á áľá ááľá°ááá áŤáľáááááᢠáŁáአáá á áŤá°ááááĄ-
- ááŽáą ᨠGit áá¨ááť ááá áŠá˘
- á¨á áá ááááťá˝áá áá° áá áĽáááŤáá áĽá áá° Git áá¨ááť áĽáá°á áá¸áááá˘
- ᨠGitOps ááłáŞáŤáá˝á ááá¨áĽ áĽá áá°ááŤáľá˘
- á¨áĽáá áá¨ááť áá°áá ááŁáŞáŤ áľáĽáľáĽ áĽáá¨áá¨áááá˘
- á áááŹá˝áá á áĽá ᨠGitOps ááŁáŞáŤ áľáĽáľáĽ ááľáĽ áĽááááááá˘
- ᨠGitOps Toolkitá á áá áá á¨áá°áá áŞáŤáá á¨áá¨áŤ áá áĽáá¨áááááá˘
- ᨠGitOps Toolkitá á áá áá áááŽá˝á áĽáááłáľáááá˘
- á¨áááŽá˝á ááá¨áĽ áĽá á áŤáľ-áááłá°áá á ááá˘
áŁááá áĽáá°á°á áá°á
á áĽá ááłá á GitHub áá á á˛áľ á¨á áἠáá¨ááť áĽáááĽáŤááᢠá¨ááá¨áá áá°áá áľá˝ááá ᣠá¨áĽáá ááľáľ á¨áááá áľá áĽáá ááááá˘
ᨠYAML ááá áááá˝ á á áá ááľáĽ ááá á ááľ ááľáĽ áŤáá°áááĄáŁ ᨠoc ááá kubectl áááľáŽážá˝á áá áá ááááĽááłáᢠá¨áłá˝ áŁáá á á˝á áłá áá˝ áĽááł YAML ááľá áŚáłá˝áᣠááá°ááŤáľáŁ áá áááááľ áĽá áááááľ áĽáá ááááᢠá¨áá á ááľ, á á˛áľ á¨á°áá á¨áá áá¨ááť áĽá á˛á˛ áá° ááľáĽ á á°á¨ááá.
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
á áá á¨á áá á˛á˛ áááłá°á á¨ááá˝ááá ááľá áááľááᾠᨠdeployment.yaml áááá áĽáááľáá˘
sed -i '/sgeneration: .*/d' deployment.yaml
á á°á¨ááŞá ááááąá ááá¨á áŤáľáááá. ááááŞáŤ áŁááĽá ááľáá á°áááá áĽáááááá áĽá áááŁáąá áĽáá°áŤááᥠá á°áááá áááśá˝ áŁáśá˘
export ROUTE=" ingress:
- conditions:
- status: 'True'
type: Admitted"
sed -i "s/ ingress: null/$ROUTE/g" route.yaml
áľááá , áááášá á áľá°áŤáááá, á¨áá¨á ááá áá° Git áá¨ááť ááľááἠáĽáť áá. á¨á፠á áá áá áá¨ááť áĽá¸áá á¨áá¨á ááá áááá, áĽá á áĽááá˝ áá áááá¸áá á áĽá á¨áá°á¨á áááŚá˝ á áĽáĽá á¨á°á¨áá¨á ááá á ááŁá¸á.
git commit -am âinitial commit of objectsâ
git push origin master
á¨áá
á á°á¨á᪠á ááá˛á˛ (áĽáá´áľ ááľá¨á áĽáá°ááťá - ááłááá áááá¨áą) áĽááľá áá°á áĽáá áŤá°ááŠáľá áĽáááł áĽáááĽááá
argocd repo add https://github.com/cooktheryan/blogpost
á áá áá°áá áŞáŤáá áĽááá á. á áááŹá˝á áĽá´áśá˝á áŤáááá ᨠGitOps Toolkit á¨áľáášá áá¨ááťáá˝ áĽá ááááśá˝ áá áá áĽááłááĽáᣠáááŽá˝á áááľá°áłá°á á¨áľáá OpenShift áĽáá°ááŤáľáááᣠá¨áľáá á¨áá¨á áá¨ááť ááá áĽáá°ááŤáľááá áĽá ááĽáśá˝ á áŤáľ-áááłá°á á ááŁá¸á áá á¨áááá áĽáá˛á¨áłá˘
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
á ááľ áá°áá áŞáŤ á á áá á˛á˛ ááľáĽ á¨á°ááḠá áá á¨ááłáŞáŤ áŞáą áá°á á˛á á¨á°á°áአáááŽá˝á á áá áŤáááŤá ááľáĽ áŤááľ ááşáá˝ áá ááá°á˝ ááááŤáᢠá áĽá ááłáᣠáŤáľ-áááłá°á áĽá áá˝áłáľ á°á°áááááᣠáľááá
ááĽá¨ áááŽáš áá á áá°áá¨áŠáᢠáĽáŁááá á á áá á˛á˛ á áááá˝ ááľáĽ á¨áĽá áá°áá áŞáŤ "á¨áľáá¨áľ áá" á¨áá á°á¨á ááá¨áá ááááŤáąá á áá á˛á˛ á¨ááŤááá á áá፠á¨ááá˘
ááá
á áá áľáá˝ áááś áááłá°áá áľáááá áĽáááš áĽáá°áá á áá°áŠáá˘
á áá á ááááťá˝á ááľáĽ ááá áľá á°áśá˝ á ááááŤá¸áá ááá¨ááἠá¨áá¨áŤ áŠáŤ áĽááľááá˘
argocd app sync simple-app --dry-run
ááá áľá á°áśá˝ á¨áá, á¨á፠áá° áááłá°á ááá á áá˝áá.
argocd app sync simple-app
á á áááŹá˝á áá ᨠargocd get áľáĽááá áŤá°áŤá á áá á¨áááá¨áťá áááł áá° á¤áá ááá synced ááá¨áŠá áá¨áľ á ááĽáᢠáá áááľ á ááľ áá¨ááť ááľáĽ áŤááľ ááá ááĽáśá˝ á áá á¨á°á°ááŠáľ ááĽáśá˝ áá ááááłá áááľ ááá˘
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
...
á áá ááá ááá á áĽá áĽááłááá á áĽá á ááľ ááá á á°áá ᨠááá á á°ááá ááĽá áá° áá¨ááťá á ááá ááĽá áĽáá˛á°á፠áááľá¨á á áá áŤáľ-áááłá°áá áĽá áá˝áłáľá ááááľ áá˝ááá˘
argocd app set simple-app --sync-policy automated --auto-prune
áľááá
ᣠááááŞáŤ áá á ááá ááአGitOpsá áŤáá°á áá áá°áá áŞáŤ á GitOps ááĽáĽá áľá á ááĽá°ááá˘
ááá: hab.com