Taw qhia rau GitOps rau OpenShift

Niaj hnub no peb yuav tham txog cov hauv paus ntsiab lus thiab cov qauv ntawm GitOps, nrog rau yuav ua li cas cov qauv no tau siv rau ntawm OpenShift platform. Muaj ib daim ntawv qhia kev sib tham ntawm lub ncauj lus no txuas.

Taw qhia rau GitOps rau OpenShift

Hauv kev txiav txim siab, GitOps yog cov txheej txheem ntawm kev siv Git rub cov lus thov los tswj cov txheej txheem thiab cov ntawv thov teeb tsa. Git repository nyob rau hauv GitOps yog kho raws li ib qho chaw ntawm cov ntaub ntawv hais txog lub xeev ntawm lub system, thiab tej kev hloov rau lub xeev no yog tag nrho traceable thiab auditable.

Lub tswv yim ntawm kev hloov pauv hauv GitOps yog los ntawm tsis muaj qhov tshiab; txoj hauv kev no tau ntev tau siv yuav luag thoob plaws ntiaj teb thaum ua haujlwm nrog daim ntawv thov qhov chaws. GitOps tsuas yog siv cov yam ntxwv zoo sib xws (kev tshuaj xyuas, rub cov lus thov, cim npe, thiab lwm yam) hauv kev tswj hwm kev tsim kho vaj tse thiab daim ntawv thov kev teeb tsa thiab muab cov txiaj ntsig zoo sib xws xws li kev tswj hwm qhov chaws.

Tsis muaj kev txhais lus los yog kev pom zoo ntawm cov cai rau GitOps, tsuas yog cov txheej txheem ntawm kev coj ua no:

  • Cov lus piav qhia ntawm lub kaw lus yog khaws cia hauv Git repository (configs, saib xyuas, thiab lwm yam).
  • Kev hloov hauv xeev yog ua los ntawm kev thov rub.
  • Lub xeev ntawm kev khiav haujlwm tau coj mus rau hauv txoj kab nrog cov ntaub ntawv hauv chaw cia khoom siv Git thawb thov.

GitOps Cov Cai

  • Cov lus txhais tau piav raws li qhov chaws

Cov txheej txheem kev teeb tsa raug kho raws li cov cai yog li nws tuaj yeem khaws cia thiab txiav tawm hauv Git repository, uas yog ib qho ntawm qhov tseeb. Txoj kev no ua rau nws yooj yim rau rollout thiab rollback hloov hauv cov tshuab.

  • Lub xeev xav tau thiab teeb tsa ntawm cov tshuab tau teeb tsa thiab hloov kho hauv Git

Los ntawm kev khaws cia thiab hloov kho lub xeev xav tau ntawm cov tshuab hauv Git, peb tuaj yeem yooj yim yob tawm thiab yob rov qab hloov pauv rau cov tshuab thiab kev siv. Peb kuj tuaj yeem siv Git cov txheej txheem kev ruaj ntseg los tswj cov tswv cuab ntawm tus lej thiab txheeb xyuas nws qhov tseeb.

  • Kev hloov pauv tuaj yeem siv tau los ntawm kev thov rub

Siv Git rub cov lus thov, peb tuaj yeem tswj tau yooj yim li cas cov kev hloov pauv tau siv rau kev teeb tsa hauv qhov chaw cia khoom. Piv txwv li, lawv tuaj yeem muab rau lwm tus neeg hauv pab pawg los tshuaj xyuas lossis khiav los ntawm kev xeem CI, thiab lwm yam.

Thiab nyob rau tib lub sijhawm, tsis tas yuav faib cov cai tswj hwm sab laug thiab sab xis. Txhawm rau ua qhov kev hloov pauv, cov neeg siv tsuas yog xav tau kev tso cai tsim nyog hauv Git repository uas cov kev teeb tsa no tau khaws cia.

  • Txhim kho qhov teeb meem ntawm uncontrolled drift ntawm configurations

Thaum lub xeev xav tau ntawm lub kaw lus khaws cia rau hauv Git repository, txhua yam peb yuav tsum ua yog nrhiav software uas yuav xyuas kom meej tias lub xeev tam sim no ntawm lub kaw lus sib tw nws lub xeev xav tau. Yog tias qhov no tsis yog qhov teeb meem, ces qhov software no yuav tsum - nyob ntawm qhov chaw - tshem tawm qhov tsis sib xws ntawm nws tus kheej, lossis ceeb toom rau peb txog kev teeb tsa drift.

GitOps Models rau OpenShift

On-Cluster Resource Reconciler

Raws li cov qauv no, pawg muaj tus tswj hwm uas yog lub luag haujlwm rau kev sib piv Kubernetes cov peev txheej (YAML cov ntaub ntawv) hauv Git repository nrog cov peev txheej tiag tiag ntawm pawg. Yog tias pom qhov tsis sib xws, tus maub los yuav xa cov ntawv ceeb toom thiab tej zaum yuav siv los kho qhov tsis sib xws. Tus qauv GitOps no yog siv hauv Anthos Config Management thiab Weaveworks Flux.

Taw qhia rau GitOps rau OpenShift

Sab nraud Resource Reconciler (Push)

Cov qauv no tuaj yeem suav tias yog qhov hloov pauv ntawm yav dhau los, thaum peb muaj ib lossis ntau tus tswj hwm lub luag haujlwm rau synchronizing cov peev txheej hauv "Git repository - Kubernetes pawg" khub. Qhov txawv ntawm no yog tias txhua pawg tswj hwm tsis tas yuav muaj nws tus kheej tswj hwm. Git - k8s pawg pawg feem ntau txhais tau tias yog CRDs (kev cai txhais cov ntsiab lus), uas tuaj yeem piav qhia seb tus maub los yuav tsum ua li cas synchronization. Nyob rau hauv cov qauv no, cov tswj sib piv Git repository teev nyob rau hauv CRD nrog Kubernetes pawg pab pawg, uas kuj tau teev tseg hauv CRD, thiab ua qhov tsim nyog raws li cov txiaj ntsig ntawm kev sib piv. Tshwj xeeb, tus qauv GitOps no yog siv hauv ArgoCD.

Taw qhia rau GitOps rau OpenShift

GitOps ntawm OpenShift platform

Kev tswj hwm ntawm ntau pawg Kubernetes infrastructure

Nrog rau kev sib kis ntawm Kubernetes thiab qhov muaj koob meej loj hlob ntawm ntau lub tswv yim huab thiab ntug kev suav, qhov nruab nrab ntawm OpenShift pawg rau ib tus neeg siv khoom kuj tseem nce ntxiv.

Piv txwv li, thaum siv ntug kev suav, ib tus neeg siv khoom tuaj yeem siv tau ntau pua lossis ntau txhiab. Raws li qhov tshwm sim, nws raug yuam kom tswj hwm ntau qhov kev ywj pheej lossis kev sib koom ua ke OpenShift pawg hauv huab cua pej xeem thiab hauv tsev.

Hauv qhov no, ntau yam teeb meem yuav tsum tau daws, tshwj xeeb:

  • Tswj kom cov pawg nyob hauv ib lub xeev zoo ib yam (config, saib xyuas, cia, thiab lwm yam)
  • Rov tsim dua (lossis rov qab) pawg raws li lub xeev paub.
  • Tsim cov pawg tshiab raws li lub xeev paub.
  • Yob tawm kev hloov pauv rau ntau pawg OpenShift.
  • Yob rov qab hloov pauv hla ntau OpenShift pawg.
  • Txuas templated configurations rau ntau qhov chaw.

Application Configurations

Thaum lub sijhawm lawv lub neej, cov ntawv thov feem ntau dhau los ntawm cov saw ntawm pawg (dev, theem, thiab lwm yam) ua ntej xaus rau hauv pawg tsim khoom. Tsis tas li ntawd, vim muaj cov kev xav tau thiab kev ua kom muaj peev xwm, cov neeg siv khoom feem ntau xa cov ntawv thov hla ntau pawg hauv tsev lossis ntau thaj tsam ntawm cov huab huab platform.

Hauv qhov no, cov haujlwm hauv qab no yuav tsum tau daws:

  • Xyuas kom lub zog ntawm cov ntawv thov (binaries, configs, thiab lwm yam) ntawm pawg (dev, theem, thiab lwm yam).
  • Yob tawm cov kev hloov pauv rau cov ntawv thov (binaries, configs, thiab lwm yam) hauv ob peb OpenShift pawg.
  • Yob rov qab hloov rau cov ntawv thov mus rau lub xeev paub dhau los.

OpenShift GitOps Siv Cases

1. Siv cov kev hloov pauv los ntawm Git repository

Tus thawj tswj hwm pawg tuaj yeem khaws OpenShift pawg teeb tsa hauv Git repository thiab cia li siv lawv los tsim cov pawg tshiab thiab coj lawv mus rau hauv lub xeev zoo ib yam rau lub xeev paub khaws cia hauv Git repository.

2. Synchronization nrog tus thawj tswj zais cia

Tus thawj coj tseem yuav tau txais txiaj ntsig los ntawm lub peev xwm los synchronize OpenShift cov khoom zais cia nrog software tsim nyog xws li Vault txhawm rau tswj lawv siv cov cuab yeej tshwj xeeb tsim rau qhov no.

3. Tswj cov kev teeb tsa drift

Tus thawj coj tsuas yog pom zoo yog tias OpenShift GitOps nws tus kheej txheeb xyuas thiab ceeb toom txog qhov tsis sib xws ntawm kev teeb tsa tiag tiag thiab cov uas tau teev tseg hauv qhov chaw cia khoom, kom lawv tuaj yeem teb sai sai.

4. Cov ntawv ceeb toom txog kev teeb tsa drift

Lawv muaj txiaj ntsig nyob rau hauv rooj plaub thaum tus thawj tswj hwm xav kawm sai sai txog cov xwm txheej ntawm kev teeb tsa drift kom sai sai rau kev ntsuas tsim nyog ntawm nws tus kheej.

5. Kev ceev synchronization ntawm configurations thaum drifting

Tso cai rau tus thawj tswj hwm los synchronize OpenShift pawg nrog Git repository nyob rau hauv cov xwm txheej ntawm kev teeb tsa drift, kom ceev cov pawg rov qab mus rau lub xeev paub dhau los.

6.Auto-synchronization ntawm configurations thaum drifting

Tus thawj coj kuj tseem tuaj yeem teeb tsa OpenShift pawg kom tau txais synchronize nrog lub chaw cia khoom thaum kuaj pom qhov drift, yog li cov pawg teeb tsa ib txwm sib phim cov teeb tsa hauv Git.

7. Ob peb pawg - ib lub chaw cia khoom

Tus thawj coj tuaj yeem khaws cov kev teeb tsa ntawm ntau qhov sib txawv OpenShift pawg hauv ib qho chaw cia Git thiab xaiv siv lawv raws li xav tau.

8. Hierarchy ntawm pawg configurations (inheritance)

Tus thawj coj tuaj yeem teeb tsa hierarchy ntawm pawg configurations nyob rau hauv repository (theem, prod, app portfolio, thiab lwm yam. nrog qub txeeg qub teg). Hauv lwm lo lus, nws tuaj yeem txiav txim siab seb qhov kev teeb tsa yuav tsum tau siv rau ib lossis ntau pawg.

Piv txwv li, yog tias tus thawj coj teeb tsa lub hierarchy "Production clusters (prod) β†’ System X pawg β†’ Ntau lawm pawg ntawm system X" nyob rau hauv Git repository, ces ib tug ua ke ntawm cov nram qab no configs yog siv rau zus tau tej cov pawg ntawm system X:

  • Configs ntau rau txhua pawg ntau lawm.
  • Configs rau System X pawg.
  • Configs rau X system ntau lawm pawg.

9. Templates thiab configuration overrides

Tus thawj coj tuaj yeem hla cov txheej txheem ntawm cov khoom qub qub thiab lawv cov txiaj ntsig, piv txwv li, txhawm rau kho qhov kev teeb tsa rau cov pawg tshwj xeeb uas lawv yuav siv.

10. Kev xaiv suav nrog thiab tsis suav nrog rau kev teeb tsa, kev teeb tsa daim ntawv thov

Tus thawj coj tuaj yeem teeb tsa cov xwm txheej rau daim ntawv thov lossis tsis yog daim ntawv thov ntawm qee qhov kev teeb tsa rau pawg nrog qee yam yam ntxwv.

11. Kev them nyiaj yug Template

Cov neeg tsim khoom yuav tau txais txiaj ntsig los ntawm lub peev xwm los xaiv seb yuav siv cov peev txheej li cas (Helm Chart, pure Kubernetes yaml, thiab lwm yam) txhawm rau siv cov qauv tsim nyog tshaj plaws rau txhua daim ntawv thov tshwj xeeb.

GitOps cov cuab yeej ntawm OpenShift platform

ArgoCD

ArgoCD siv lub External Resource Reconcile qauv thiab muab ib tug centralized UI rau orchestrating ib-rau-ntau kev sib raug zoo ntawm pawg thiab Git repositories. Qhov tsis zoo ntawm txoj haujlwm no suav nrog kev tswj tsis tau cov ntawv thov thaum ArgoCD tsis ua haujlwm.

Official lub website

ntws

Flux siv tus qauv On-Cluster Resource Reconcile thiab, vim li ntawd, tsis muaj kev tswj hwm hauv nruab nrab ntawm lub ntsiab lus repository, uas yog qhov tsis muaj zog. Ntawm qhov tod tes, precisely vim tsis muaj centralization, lub peev xwm los tswj cov ntawv thov tseem nyob txawm tias ib pawg ua tsis tiav.

Official lub website

Txhim kho ArgoCD ntawm OpenShift

ArgoCD muaj cov kab hais kom ua zoo tshaj plaws thiab lub vev xaib console, yog li peb yuav tsis npog Flux thiab lwm yam kev xaiv ntawm no.

Txhawm rau xa ArgoCD ntawm OpenShift 4 platform, ua raws li cov kauj ruam no ua tus tswj hwm pawg:

Deploying ArgoCD Cheebtsam ntawm OpenShift platform

# 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}')

Kev txhim kho ntawm ArgoCD Server kom nws tuaj yeem pom los ntawm 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

Deploying ArgoCD Cli Tool

# 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

Hloov tus ArgoCD Server admin lo lus zais

# 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

Tom qab ua tiav cov kauj ruam no, koj tuaj yeem ua haujlwm nrog ArgoCD Server los ntawm ArgoCD WebUI web console lossis ArgoCD Cli cov cuab yeej hais kom ua kab.
https://blog.openshift.com/is-it-too-late-to-integrate-gitops/

GitOps - Nws Tsis Yog Ib Leeg

"Lub tsheb ciav hlau tau tawm mus" - qhov no yog qhov lawv hais txog qhov xwm txheej thaum lub sijhawm ua ib yam dab tsi tsis tau. Nyob rau hauv rooj plaub ntawm OpenShift, lub siab xav tam sim ntawd pib siv lub platform tshiab txias no feem ntau tsim raws nraim qhov xwm txheej no nrog rau kev tswj thiab kev saib xyuas cov kev, kev xa mus thiab lwm yam khoom OpenShift. Tab sis yog lub caij nyoog ib txwm ploj lawm?

Txuas ntxiv cov kab lus hais txog GitOps, hnub no peb yuav qhia koj yuav ua li cas hloov daim ntawv thov handcrafted thiab nws cov peev txheej rau hauv cov txheej txheem uas txhua yam yog tswj hwm los ntawm GitOps cov cuab yeej. Txhawm rau ua qhov no, peb yuav ua ntej manually xa daim ntawv thov httpd. Lub screenshot hauv qab no qhia tau hais tias peb tsim lub npe chaw, kev xa tawm thiab kev pabcuam, thiab tom qab ntawd nthuav tawm cov kev pabcuam no los tsim txoj hauv kev.

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

Yog li peb muaj ib daim ntawv thov handcrafted. Tam sim no nws yuav tsum tau hloov mus rau hauv GitOps kev tswj hwm yam tsis muaj kev poob. Hauv luv luv, nws ua li no:

  • Tsim Git repository rau tus lej.
  • Peb xa peb cov khoom tam sim no thiab xa lawv mus rau Git repository.
  • Xaiv thiab siv cov cuab yeej GitOps.
  • Peb ntxiv peb qhov chaw cia khoom rau cov cuab yeej no.
  • Peb txhais cov ntawv thov hauv peb cov cuab yeej GitOps.
  • Peb ua qhov kev xeem khiav ntawm daim ntawv thov siv GitOps toolkit.
  • Peb synchronize cov khoom siv GitOps toolkit.
  • Pab kom pruning thiab nws pib-synchronization ntawm cov khoom.

Raws li tau hais hauv yav dhau los Tshooj, hauv GitOps muaj ib qho thiab tsuas yog ib qho ntawm cov ntaub ntawv hais txog txhua yam khoom hauv Kubernetes pawg (s) - Git repository. Tom ntej no, peb pib los ntawm qhov chaw uas koj lub koom haum twb siv Git repository. Nws tuaj yeem yog pej xeem lossis ntiag tug, tab sis nws yuav tsum nkag mus rau Kubernetes pawg. Qhov no tuaj yeem yog tib qhov chaw cia khoom raws li daim ntawv thov code, lossis ib qho chaw cia khoom cais tsim tshwj xeeb rau kev xa tawm. Nws raug nquahu kom muaj kev tso cai nruj nyob rau hauv qhov chaw khaws cia txij li cov ntaub ntawv zais cia, txoj hauv kev, thiab lwm yam kev ruaj ntseg yuav raug muab khaws cia rau ntawd.

Hauv peb qhov piv txwv, peb yuav tsim cov chaw khaws ntaub ntawv pej xeem tshiab ntawm GitHub. Koj tuaj yeem hu nws yam koj nyiam, peb siv lub npe blogpost.

Yog tias YAML cov ntaub ntawv tsis tau khaws cia hauv zos lossis hauv Git, ces koj yuav tau siv oc lossis kubectl binaries. Hauv lub screenshot hauv qab no peb tab tom thov YAML rau peb lub npe chaw, xa tawm, kev pabcuam thiab txoj hauv kev. Ua ntej no, peb cloned lub tshiab repository thiab cd rau hauv nws.

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

Tam sim no cia peb hloov kho cov ntaub ntawv deployment.yaml kom tshem tawm cov teb uas Argo CD tsis tuaj yeem sync.

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

Tsis tas li ntawd, txoj kev yuav tsum tau hloov. Peb mam li ua ntej teeb tsa ntau kab sib txawv thiab tom qab ntawd hloov ingress: null nrog cov ntsiab lus ntawm qhov sib txawv ntawd.

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

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

Yog li, peb tau txheeb tawm cov ntaub ntawv, txhua yam uas tseem tshuav yog khaws cia rau hauv Git repository. Tom qab ntawd qhov chaw khaws cia no dhau los ua cov ntaub ntawv nkaus xwb, thiab txhua qhov kev hloov pauv rau cov khoom yuav tsum raug txwv nruj heev.

git commit -am β€˜initial commit of objects’
git push origin master

Ntxiv mus, peb pib los ntawm qhov tseeb tias koj twb tau siv ArgoCD (yuav ua li cas rau qhov no - saib yav dhau los tswg). Yog li ntawd, peb yuav ntxiv rau Argo CD qhov chaw cia peb tsim, muaj cov ntawv thov code los ntawm peb qhov piv txwv. Tsuas yog xyuas kom tseeb tias koj qhia meej qhov chaw cia khoom uas koj tau tsim ua ntej.

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

Tam sim no cia peb tsim daim ntawv thov. Daim ntawv thov teeb tsa cov txiaj ntsig kom cov cuab yeej GitOps nkag siab txog qhov chaw khaws cia thiab cov kev siv, uas yuav tsum tau siv OpenShift los tswj cov khoom, uas yuav tsum muaj cov ceg tshwj xeeb ntawm cov chaw khaws cia, thiab seb cov peev txheej puas yuav tsum tau pib-sync.

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

Thaum ib daim ntawv thov tau teev nyob rau hauv Argo CD, cov cuab yeej pib tshawb xyuas cov khoom siv uas twb muaj lawm tawm tsam cov lus txhais hauv qhov chaw cia khoom. Hauv peb qhov piv txwv, nws pib synchronization thiab ntxuav tau raug kaw, yog li cov ntsiab lus tseem tsis tau hloov pauv. Thov nco ntsoov tias hauv Argo CD interface peb daim ntawv thov yuav muaj cov xwm txheej "Tawm ntawm Sync" vim tias tsis muaj daim ntawv lo uas ArgoCD muab.
Qhov no yog vim li cas thaum peb pib synchronization me ntsis tom qab, cov khoom yuav tsis raug xa rov qab.

Tam sim no cia peb ua qhov kev sim ua kom paub tseeb tias tsis muaj qhov yuam kev hauv peb cov ntaub ntawv.

argocd app sync simple-app --dry-run

Yog tias tsis muaj qhov yuam kev, koj tuaj yeem mus rau synchronization.

argocd app sync simple-app

Tom qab khiav lub argocd tau hais kom ua ntawm peb daim ntawv thov, peb yuav tsum pom tias daim ntawv thov raug hloov mus rau Healthy lossis Synced. Qhov no yuav txhais tau tias tag nrho cov peev txheej hauv Git repository tam sim no sib haum rau cov peev txheej uas twb tau siv lawm.

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
...   

Tam sim no koj tuaj yeem ua kom nws pib-sync thiab ntxuav kom ntseeg tau tias tsis muaj dab tsi raug tsim los ntawm tes thiab txhua zaus ib qho khoom tsim lossis hloov kho rau lub chaw cia khoom, kev xa tawm yuav tshwm sim.

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

Yog li, peb tau ua tiav ib daim ntawv thov nyob rau hauv GitOps tswj uas pib tsis siv GitOps nyob rau hauv ib txoj kev.

Tau qhov twg los: www.hab.com

Ntxiv ib saib