Kurz: Implementace CI/CD pomocí GitOps (Flux v. 2)
V tomto kurzu nastavíte řešení CI/CD pomocí GitOps s flux v2 a clustery Kubernetes s podporou Azure Arc nebo Azure Kubernetes Service (AKS). Pomocí ukázkové aplikace Azure Vote můžete:
- Připojte své aplikace a úložiště GitOps k Azure Devops (Azure Repos) nebo GitHubu.
- Implementujte tok CI/CD pomocí Azure Pipelines nebo GitHubu.
- Připojte službu Azure Container Registry k Azure DevOps a Kubernetes.
- Vytvořte skupiny proměnných prostředí nebo tajné kódy.
- Nasaďte prostředí
dev
astage
prostředí. - Otestujte aplikační prostředí.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Požadavky
V předchozím kurzu se dozvíte, jak nasadit GitOps pro prostředí CI/CD.
Seznamte se s výhodami a architekturou této funkce.
Ověřte, že máte:
- Připojený cluster Kubernetes s podporou Azure Arc s názvem arc-cicd-cluster.
- Připojený azure Container Registry s integrací AKS nebo ověřováním clusteru bez AKS.
Nainstalujte nejnovější verze těchto rozšíření Kubernetes a Kubernetes Configuration CLI s podporou služby Azure Arc:
az extension add --name connectedk8s az extension add --name k8s-configuration
Nebo pokud chcete tato rozšíření aktualizovat na nejnovější verzi, spusťte následující příkazy:
az extension update --name connectedk8s az extension update --name k8s-configuration
Připojení služby Azure Container Registry k Kubernetes
Povolte cluster Kubernetes načítat image ze služby Azure Container Registry. Pokud je privátní, vyžaduje se ověřování.
Připojení služby Azure Container Registry k existujícím clusterům AKS
Pomocí následujícího příkazu integrujte existující službu Azure Container Registry se stávajícími clustery AKS:
az aks update -n arc-cicd-cluster -g myResourceGroup --attach-acr arc-demo-acr
Vytvoření tajného kódu pro vyžádání image
Pokud chcete připojit jiné clustery než AKS a místní clustery ke službě Azure Container Registry, vytvořte tajný klíč pro vyžádání image. Kubernetes používá tajné kódy pro vyžádání image k ukládání informací potřebných k ověření vašeho registru.
Vytvořte tajný kód pro vyžádání image pomocí následujícího kubectl
příkazu. Opakujte pro obory dev
názvů i stage
obory názvů.
kubectl create secret docker-registry <secret-name> \
--namespace <namespace> \
--docker-server=<container-registry-name>.azurecr.io \
--docker-username=<service-principal-ID> \
--docker-password=<service-principal-password>
Pokud se chcete vyhnout nastavení imagePullSecret pro každý pod, zvažte přidání imagePullSecret do účtu služby v dev
oborech názvů a stage
obory názvů. Další informace najdete v kurzu Kubernetes.
V závislosti na preferujete orchestrátoru CI/CD, můžete pokračovat pokyny pro Azure DevOps nebo pro GitHub.
Implementace CI/CD s Využitím Azure DevOps
V tomto kurzu se předpokládá znalost Azure DevOps, Azure Repos a Pipelines a Azure CLI.
Nejprve proveďte následující kroky:
- Přihlaste se ke službě Azure DevOps Services.
- Ověřte, že máte oprávnění Správce sestavení a Správce projektu pro Azure Repos a Azure Pipelines.
Import úložišť aplikací a GitOps do Azure Repos
Importujte úložiště aplikací a úložiště GitOps do Azure Repos. Pro účely tohoto kurzu použijte následující ukázková úložiště:
Úložiště aplikací arc-cicd-demo-src
- URL: https://github.com/Azure/arc-cicd-demo-src
- Obsahuje příklad aplikace Azure Vote pro nasazení pomocí GitOps.
- Import úložiště s názvem
arc-cicd-demo-src
Úložiště GitOps arc-cicd-demo-gitops
- URL: https://github.com/Azure/arc-cicd-demo-gitops
- Funguje jako základ pro prostředky clusteru, které jsou součástí aplikace Azure Vote.
- Import úložiště s názvem
arc-cicd-demo-gitops
Přečtěte si další informace o importu úložišť Git.
Poznámka:
Import a použití dvou samostatných úložišť pro aplikace a úložiště GitOps může zlepšit zabezpečení a jednoduchost. Oprávnění a viditelnost úložiště GitOps aplikace a GitOps je možné ladit jednotlivě. Správce clusteru například nemusí najít změny v kódu aplikace, které jsou relevantní pro požadovaný stav clusteru. Vývojář aplikací naopak nemusí znát konkrétní parametry pro každé prostředí – sada testovacích hodnot, které poskytují pokrytí parametrů, může být dostačující.
Připojení úložiště GitOps
Pokud chcete aplikaci průběžně nasazovat, připojte úložiště aplikací ke clusteru pomocí GitOps. Úložiště GitOps arc-cicd-demo-gitops obsahuje základní prostředky pro zprovoznění aplikace v clusteru arc-cicd-cluster .
Počáteční úložiště GitOps obsahuje pouze manifest , který vytvoří obory názvů pro vývoj a fázi odpovídající prostředím nasazení.
Připojení GitOps, které vytvoříte, automaticky synchronizuje manifesty v adresáři manifestu a aktualizuje stav clusteru.
Pracovní postup CI/CD naplní adresář manifestu dalšími manifesty pro nasazení aplikace.
Vytvořte nové připojení GitOps k nově importovanému úložišti arc-cicd-demo-gitops v Azure Repos.
az k8s-configuration flux create \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --namespace flux-system \ --resource-group myResourceGroup \ -u https://dev.azure.com/<Your organization>/<Your project>/_git/arc-cicd-demo-gitops \ --https-user <Azure Repos username> \ --https-key <Azure Repos PAT token> \ --scope cluster \ --cluster-type connectedClusters \ --branch master \ --kustomization name=cluster-config prune=true path=arc-cicd-cluster/manifests
Tip
Pro cluster AKS (místo clusteru s podporou arc) použijte
-cluster-type managedClusters
.Zkontrolujte stav nasazení na webu Azure Portal.
- V případě úspěchu se v clusteru zobrazí oba
dev
obory názvů istage
obory názvů vytvořené v clusteru. - Můžete také ověřit, že na stránce webu Azure Portal vašeho clusteru se na kartě f
GitOps
vytvoří konfiguracecluster-config
.
- V případě úspěchu se v clusteru zobrazí oba
Import kanálů CI/CD
Teď, když jste synchronizovali připojení GitOps, musíte importovat kanály CI/CD, které vytvářejí manifesty.
Úložiště aplikace obsahuje .pipeline
složku s kanály používanými pro žádosti o přijetí změn, CI a CD. Naimportujte a přejmenujte tři kanály, které jsou k dispozici v ukázkovém úložišti:
Název souboru kanálu | Popis |
---|---|
.pipelines/az-vote-pr-pipeline.yaml |
Kanál žádosti o přijetí změn aplikace s názvem arc-cicd-demo-src PR |
.pipelines/az-vote-ci-pipeline.yaml |
Kanál CI aplikace s názvem arc-cicd-demo-src CI |
.pipelines/az-vote-cd-pipeline.yaml |
Kanál CD aplikace s názvem arc-cicd-demo-src CD |
Připojení služby Azure Container Registry k Azure DevOps
Během procesu CI nasadíte kontejnery aplikací do registru. Začněte vytvořením připojení služby Azure:
- V Azure DevOps otevřete stránku připojení služby ze stránky nastavení projektu. V sadě TFS otevřete stránku Služby z ikony nastavení v horním řádku nabídek.
- Zvolte + Nové připojení služby a vyberte typ připojení služby, které potřebujete.
- Vyplňte parametry připojení služby. Pro účely tohoto kurzu:
- Pojmenujte připojení služby arc-demo-acr.
- Jako skupinu prostředků vyberte myResourceGroup .
- Vyberte oprávnění Udělit přístup všem kanálům.
- Tato možnost autorizuje soubory kanálů YAML pro připojení služeb.
- Zvolte Uložit a vytvořte připojení.
Konfigurace připojení služby PR
Kanál CD manipuluje s žádostmi o přijetí změn v úložišti GitOps, které vyžaduje připojení služby. Konfigurace tohoto připojení:
- V Azure DevOps otevřete stránku připojení služby ze stránky nastavení projektu. V sadě TFS otevřete stránku Služby z ikony nastavení v horním řádku nabídek.
- Zvolte + Nové připojení služby a vyberte
Generic
typ. - Vyplňte parametry připojení služby. Pro účely tohoto kurzu:
- Adresa URL serveru
https://dev.azure.com/<Your organization>/<Your project>/_apis/git/repositories/arc-cicd-demo-gitops
- Nechte uživatelské jméno a heslo prázdné.
- Pojmenujte připojení služby azdo-pr-connection.
- Adresa URL serveru
- Vyberte oprávnění Udělit přístup všem kanálům.
- Tato možnost autorizuje soubory kanálů YAML pro připojení služeb.
- Zvolte Uložit a vytvořte připojení.
Instalace konektoru GitOps
Přidejte úložiště konektoru GitOps do úložišť Helm:
helm repo add gitops-connector https://azure.github.io/gitops-connector/
Nainstalujte konektor do clusteru:
helm upgrade -i gitops-connector gitops-connector/gitops-connector \ --namespace flux-system \ --set gitRepositoryType=AZDO \ --set ciCdOrchestratorType=AZDO \ --set gitOpsOperatorType=FLUX \ --set azdoGitOpsRepoName=arc-cicd-demo-gitops \ --set azdoOrgUrl=https://dev.azure.com/<Your organization>/<Your project> \ --set gitOpsAppURL=https://dev.azure.com/<Your organization>/<Your project>/_git/arc-cicd-demo-gitops \ --set orchestratorPAT=<Azure Repos PAT token>
Poznámka:
Azure Repos PAT token
by měla mítBuild: Read & execute
aCode: Full
mít oprávnění.Konfigurace fluxu pro odesílání oznámení do konektoru GitOps:
cat <<EOF | kubectl apply -f - apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Alert metadata: name: gitops-connector namespace: flux-system spec: eventSeverity: info eventSources: - kind: GitRepository name: cluster-config - kind: Kustomization name: cluster-config-cluster-config providerRef: name: gitops-connector --- apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Provider metadata: name: gitops-connector namespace: flux-system spec: type: generic address: http://gitops-connector:8080/gitopsphase EOF
Podrobnosti o instalaci najdete v úložišti konektoru GitOps.
Vytvoření skupin proměnných prostředí
Skupina proměnných úložiště aplikací
Vytvořte skupinu proměnných s názvem az-vote-app-dev. Nastavte následující hodnoty:
Proměnná | Hodnota |
---|---|
AZURE_SUBSCRIPTION |
(vaše připojení ke službě Azure, které by mělo být arc-demo-acr z dřívější části kurzu) |
AZ_ACR_NAME |
Název Azure ACR, například arc-demo-acr |
ENVIRONMENT_NAME |
Vývoj |
MANIFESTS_BRANCH |
master |
MANIFESTS_REPO |
arc-cicd-demo-gitops |
ORGANIZATION_NAME |
Název organizace Azure DevOps |
PROJECT_NAME |
Název projektu GitOps v Azure DevOps |
REPO_URL |
Úplná adresa URL úložiště GitOps |
SRC_FOLDER |
azure-vote |
TARGET_CLUSTER |
arc-cicd-cluster |
TARGET_NAMESPACE |
dev |
VOTE_APP_TITLE |
Hlasovací aplikace |
AKS_RESOURCE_GROUP |
Skupina prostředků AKS Potřebné pro automatizované testování. |
AKS_NAME |
Název AKS Potřebné pro automatizované testování. |
Skupina proměnných prostředí fáze
Naklonujte skupinu proměnných az-vote-app-dev .
Změňte název na az-vote-app-stage.
Ujistěte se, že pro odpovídající proměnné platí následující hodnoty:
Proměnná Hodnota ENVIRONMENT_NAME
Fáze TARGET_NAMESPACE
stage
Teď jste připraveni k nasazení do dev
prostředí a stage
prostředí.
Vytvoření prostředí
V projektu Azure DevOps vytvořte Dev
a vytvořte prostředí Stage
. Podrobnosti najdete v tématu Vytvoření a cílová prostředí.
Udělení dalších oprávnění ke službě sestavení
Kanál CD používá token zabezpečení spuštěného sestavení k ověření v úložišti GitOps. Aby kanál vytvořil novou větev, odeslal změny a vytvořil žádosti o přijetí změn, potřebuje další oprávnění. Povolení těchto oprávnění:
- V Azure DevOps otevřete Nastavení projektu.
- V části Úložiště vyberte Úložiště.
- Vyberte Zabezpečení.
- Vyhledejte
<Project Name> Build Service (<Organization Name>)
aProject Collection Build Service (<Organization Name>)
(použijte vyhledávání, pokud je nevidíte) a povolte přispívání, přispívání k žádostem o přijetí změn a vytvoření větve. - V části Kanály vyberte Nastavení.
- Vypněte možnost Chránit přístup k úložištím v kanálech YAML.
Další informace naleznete v tématu Udělení oprávnění správy verzí ke službě sestavení a správa oprávnění účtu služby sestavení.
První nasazení vývojového prostředí
Když jsou vytvořené kanály CI a CD, spusťte kanál CI a nasaďte aplikaci poprvé.
Kanál CI
Pokud se při počátečním spuštění kanálu CI při čtení názvu připojení služby zobrazí chyba autorizace prostředků, postupujte takto:
- Ověřte, že je proměnná, ke které se přistupuje, AZURE_SUBSCRIPTION.
- Autorizuje použití.
- Znovu spusťte kanál.
Kanál CI:
- Zajišťuje, že změna aplikace projde všemi automatizovanými kontrolami kvality nasazení.
- Provede jakékoli dodatečné ověření, které se nepodařilo dokončit v kanálu žádosti o přijetí změn. Kanál také publikuje artefakty pro potvrzení, které bude kanál CD nasazovat, konkrétně pro GitOps.
- Ověří, že se image Dockeru změnila a nová image se nasdílí.
Kanál CD
Během počátečního spuštění kanálu CD musíte kanálu udělit přístup k úložišti GitOps. Po zobrazení výzvy vyberte Zobrazit , že kanál potřebuje oprávnění pro přístup k prostředku. Pak vyberte Povolit udělit oprávnění k používání úložiště GitOps pro aktuální a budoucí spuštění kanálu.
Úspěšné spuštění kanálu CI aktivuje kanál CD, aby se dokončil proces nasazení. Postupně nasazujete do každého prostředí.
Tip
Pokud se kanál CD neaktivuje automaticky:
- Ověřte, že název odpovídá triggeru větve v
.pipelines/az-vote-cd-pipeline.yaml
- Měla by mít hodnotu
arc-cicd-demo-src CI
.
- Měla by mít hodnotu
- Znovu spusťte kanál CI.
Po vygenerování šablony a změny manifestu v úložišti GitOps vytvoří kanál CD potvrzení, odešle ho a vytvoří žádost o přijetí změn ke schválení.
Vyhledejte žádost o přijetí změn vytvořenou kanálem do úložiště GitOps.
Ověřte změny v úložišti GitOps. Měli byste vidět tohle:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu. Flux nasadí tyto manifesty.
Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
Po několika minutách flux změnu převezme a spustí nasazení.
Monitorujte
git commit
stav na kartě Historie potvrzení. Jakmile jesucceeded
, kanál CD spustí automatizované testování.Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
Zobrazte aplikaci Azure Vote v prohlížeči na adrese
http://localhost:8080/
.Hlasujte pro své oblíbené položky a připravte se na provedení některých změn v aplikaci.
Nastavení schválení prostředí
Při nasazení aplikace můžete v kódu nebo šablonách provádět změny, ale cluster můžete také neúmyslně umístit do špatného stavu.
Pokud vývojové prostředí odhalí přerušení po nasazení, povolení schválení prostředí pomáhá udržet problém v pozdějších prostředích.
- V projektu Azure DevOps přejděte do prostředí, které je potřeba chránit.
- Přejděte na Schválení a Kontroly prostředku.
- Vyberte Vytvořit.
- Zadejte schvalovatele a volitelnou zprávu.
- Dalším výběrem možnosti Vytvořit dokončíte přidání kontroly ručního schvalování.
Další informace najdete v tématu Definování schválení a kontrol.
Při příštím spuštění kanálu CD se kanál pozastaví po vytvoření žádosti o přijetí změn GitOps. Ověřte, že je změna správně synchronizovaná a předává základní funkce. Schválením kontroly z kanálu umožníte toku změn do dalšího prostředí.
Provedení změny aplikace
Pomocí této základní sady šablon a manifestů představujících stav v clusteru provedete malou změnu aplikace.
V úložišti arc-cicd-demo-src upravte
azure-vote/src/azure-vote-front/config_file.cfg
soubor.Vzhledem k tomu, že "Kočky vs psi" nedostává dostatek hlasů, změňte ho na "Tabs vs Spaces", aby se počet hlasů zvýšit.
Potvrďte změnu v nové větvi, nasdílejte ji a vytvořte žádost o přijetí změn. Tato posloupnost kroků je typický vývojový tok, který spouští životní cyklus CI/CD.
Kanál ověření žádosti o přijetí změn
Kanál žádosti o přijetí změn je první linie obrany proti vadné změně. Běžné kontroly kvality kódu aplikace zahrnují lintování a statickou analýzu. Z pohledu GitOps musíte také zajistit stejnou kvalitu výsledné infrastruktury, která se má nasadit.
Grafy Dockerfile a Helm aplikace můžou podobně jako aplikace používat lintování.
Chyby zjištěné při lintování rozsahu od nesprávně formátovaných souborů YAML až po návrhy osvědčených postupů, jako je nastavení limitů procesoru a paměti pro vaši aplikaci.
Poznámka:
Pokud chcete dosáhnout nejlepšího pokrytí z lintování Helmu v reálné aplikaci, nahraďte hodnoty, které jsou přiměřeně podobné hodnotám, které by se použily ve skutečném prostředí.
Chyby zjištěné během provádění kanálu se zobrazí v části výsledků testu spuštění. Zde můžete:
- Sledujte užitečné statistiky o typech chyb.
- Najděte první potvrzení, u kterého byly zjištěny.
- Odkazy na styl trasování zásobníku na oddíly kódu, které způsobily chybu.
Spuštění kanálu se dokončí a potvrdí kvalitu kódu aplikace a šablony, která ho nasadí. Nyní můžete žádost o přijetí změn schválit a dokončit. CI se znovu spustí a před aktivací kanálu CD znovu vygeneruje šablony a manifesty.
Tip
Ve skutečném prostředí nezapomeňte nastavit zásady větví, abyste zajistili, že žádost o přijetí změn projde vašimi kontrolami kvality. Další informace najdete v tématu Zásady a nastavení větve.
Schválení procesů CD
Úspěšné spuštění kanálu CI aktivuje kanál CD, aby se dokončil proces nasazení. Tentokrát kanál vyžaduje, abyste schválili každé prostředí nasazení.
- Schvalte nasazení do
dev
prostředí. - Jakmile se šablona a manifest změní v úložišti GitOps, kanál CD vytvoří potvrzení, odešle ho a vytvoří žádost o přijetí změn ke schválení.
- Ověřte změny v úložišti GitOps. Měli byste vidět:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu.
- Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
- Počkejte, až se nasazení dokončí.
- Jako základní orientační test přejděte na stránku aplikace a ověřte, že hlasovací aplikace teď zobrazuje tabulátory a mezery.
- Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
- Prohlédněte si aplikaci Azure Vote v prohlížeči
http://localhost:8080/
a ověřte, že se možnosti hlasování změnily na Karty a Mezery.
- Přesměrujte port místně pomocí
- Opakujte kroky 1 až 7 pro
stage
prostředí.
Nasazení je teď hotové.
Podrobný přehled všech kroků a technik implementovaných v pracovních postupech CI/CD používaných v tomto kurzu najdete v diagramu toku GitOps Azure DevOps.
Implementace CI/CD pomocí GitHubu
V tomto kurzu se předpokládá znalost GitHubu, GitHub Actions.
Fork application and GitOps repositories
Vytvoření forku úložiště aplikace a úložiště GitOps Pro účely tohoto kurzu použijte následující ukázková úložiště:
Úložiště aplikací arc-cicd-demo-src
- URL: https://github.com/Azure/arc-cicd-demo-src
- Obsahuje příklad aplikace Azure Vote pro nasazení pomocí GitOps.
Úložiště GitOps arc-cicd-demo-gitops
- URL: https://github.com/Azure/arc-cicd-demo-gitops
- Funguje jako základ pro prostředky clusteru, které jsou součástí aplikace Azure Vote.
Připojení úložiště GitOps
Pokud chcete aplikaci průběžně nasazovat, připojte úložiště aplikací ke clusteru pomocí GitOps. Úložiště GitOps arc-cicd-demo-gitops obsahuje základní prostředky pro zprovoznění aplikace v clusteru arc-cicd-cluster .
Počáteční úložiště GitOps obsahuje pouze manifest , který vytvoří obory názvů pro vývoj a fázi odpovídající prostředím nasazení.
Připojení GitOps, které vytvoříte automaticky:
- Synchronizujte manifesty v adresáři manifestu.
- Aktualizujte stav clusteru.
Pracovní postup CI/CD naplní adresář manifestu dalšími manifesty pro nasazení aplikace.
Vytvořte nové připojení GitOps k nově rozvětvovanému úložišti arc-cicd-demo-gitops na GitHubu.
az k8s-configuration flux create \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --namespace cluster-config \ --resource-group myResourceGroup \ -u https://github.com/<Your organization>/arc-cicd-demo-gitops.git \ --https-user <Azure Repos username> \ --https-key <Azure Repos PAT token> \ --scope cluster \ --cluster-type connectedClusters \ --branch master \ --kustomization name=cluster-config prune=true path=arc-cicd-cluster/manifests
Zkontrolujte stav nasazení na webu Azure Portal.
- V případě úspěchu se v clusteru zobrazí oba
dev
obory názvů istage
obory názvů vytvořené v clusteru.
- V případě úspěchu se v clusteru zobrazí oba
Instalace konektoru GitOps
Přidejte úložiště konektoru GitOps do úložišť Helm:
helm repo add gitops-connector https://azure.github.io/gitops-connector/
Nainstalujte konektor do clusteru:
helm upgrade -i gitops-connector gitops-connector/gitops-connector \ --namespace flux-system \ --set gitRepositoryType=GITHUB \ --set ciCdOrchestratorType=GITHUB \ --set gitOpsOperatorType=FLUX \ --set gitHubGitOpsRepoName=arc-cicd-demo-src \ --set gitHubGitOpsManifestsRepoName=arc-cicd-demo-gitops \ --set gitHubOrgUrl=https://api.github.com/repos/<Your organization> \ --set gitOpsAppURL=https://github.com/<Your organization>/arc-cicd-demo-gitops/commit \ --set orchestratorPAT=<GitHub PAT token>
Konfigurace fluxu pro odesílání oznámení do konektoru GitOps:
cat <<EOF | kubectl apply -f - apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Alert metadata: name: gitops-connector namespace: flux-system spec: eventSeverity: info eventSources: - kind: GitRepository name: cluster-config - kind: Kustomization name: cluster-config-cluster-config providerRef: name: gitops-connector --- apiVersion: notification.toolkit.fluxcd.io/v1beta1 kind: Provider metadata: name: gitops-connector namespace: flux-system spec: type: generic address: http://gitops-connector:8080/gitopsphase EOF
Podrobnosti o instalaci najdete v úložišti konektoru GitOps.
Vytvoření tajných kódů GitHubu
Dalším krokem je vytvoření úložiště GitHub a tajných kódů prostředí.
Vytvoření tajných kódů úložiště GitHub
Pro tajné kódy úložiště GitHub použijte následující hodnoty:
Tajný | Hodnota |
---|---|
AZURE_CREDENTIALS |
Přihlašovací údaje pro Azure v následujícím formátu {"clientId":"GUID","clientSecret":"GUID","subscriptionId":"GUID","tenantId":"GUID"} |
AZ_ACR_NAME |
Název Azure ACR, například arc-demo-acr |
MANIFESTS_BRANCH |
master |
MANIFESTS_FOLDER |
arc-cicd-cluster |
MANIFESTS_REPO |
https://github.com/your-organization/arc-cicd-demo-gitops |
VOTE_APP_TITLE |
Hlasovací aplikace |
AKS_RESOURCE_GROUP |
Skupina prostředků AKS Potřebné pro automatizované testování. |
AKS_NAME |
Název AKS Potřebné pro automatizované testování. |
PAT |
Token PAT GitHubu s oprávněním k žádosti o přijetí změn do úložiště GitOps |
Vytvoření tajných kódů prostředí GitHubu
- Vytvořte
az-vote-app-dev
prostředí s následujícími tajnými kódy:
Tajný | Hodnota |
---|---|
ENVIRONMENT_NAME |
Vývoj |
TARGET_NAMESPACE |
dev |
- Vytvořte
az-vote-app-stage
prostředí s následujícími tajnými kódy:
Tajný | Hodnota |
---|---|
ENVIRONMENT_NAME |
Fáze |
TARGET_NAMESPACE |
stage |
Teď jste připraveni k nasazení do dev
prostředí a stage
prostředí.
Pracovní postup CI/CD Dev
Pokud chcete spustit pracovní postup CI/CD Dev, změňte zdrojový kód. V úložišti aplikace aktualizujte hodnoty v .azure-vote/src/azure-vote-front/config_file.cfg
souboru a nasdílete změny do úložiště.
Pracovní postup CI/CD Dev:
- Zajišťuje, že změna aplikace projde všemi automatizovanými kontrolami kvality nasazení.
- Provede jakékoli dodatečné ověření, které se nepodařilo dokončit v kanálu žádosti o přijetí změn.
- Ověří, že se image Dockeru změnila a nová image se nasdílí.
- Publikuje artefakty (značky imagí Dockeru, šablony manifestu, nástroje), které se používají v následujících fázích CD.
- Nasadí aplikaci do vývojového prostředí.
- Generuje manifesty do úložiště GitOps.
- Vytvoří žádost o přijetí změn do úložiště GitOps ke schválení.
Po dokončení těchto kroků:
Vyhledejte žádost o přijetí změn vytvořenou kanálem do úložiště GitOps.
Ověřte změny v úložišti GitOps. Měli byste vidět tohle:
- Změny šablony Helm vysoké úrovně
- Manifesty Kubernetes nízké úrovně, které zobrazují základní změny požadovaného stavu. Flux nasadí tyto manifesty.
Pokud všechno vypadá dobře, schvalte a dokončete žádost o přijetí změn.
Po několika minutách flux změnu převezme a spustí nasazení.
Monitorujte
git commit
stav na kartě Historie potvrzení. Jakmile jesucceeded
, pracovníCD Stage
postup se spustí.Přesměrujte port místně pomocí
kubectl
aplikace a ujistěte se, že aplikace funguje správně pomocí:kubectl port-forward -n dev svc/azure-vote-front 8080:80
Zobrazte aplikaci Azure Vote v prohlížeči na adrese
http://localhost:8080/
.Hlasujte pro své oblíbené položky a připravte se na provedení některých změn v aplikaci.
Pracovní postup fáze CD
Pracovní postup fáze CD se spustí automaticky, jakmile Flux úspěšně nasadí aplikaci do vývojového prostředí a prostřednictvím konektoru GitOps oznámí akce GitHubu.
Pracovní postup fáze CD:
- Spustí orientační testy aplikací pro vývojové prostředí.
- Nasadí aplikaci do prostředí Stage.
- Generuje manifesty do úložiště GitOps.
- Vytvoří žádost o přijetí změn do úložiště GitOps ke schválení.
Jakmile se manifesty PR do prostředí Fáze sloučí a Flux úspěšně použije všechny změny, stav potvrzení Gitu se aktualizuje v úložišti GitOps. Nasazení je teď hotové.
Podrobný přehled všech kroků a technik implementovaných v pracovních postupech CI/CD používaných v tomto kurzu najdete v diagramu toku GitOps GitHubu.
Vyčištění prostředků
Pokud nebudete tuto aplikaci dál používat, odstraňte všechny prostředky pomocí následujícího postupu:
Odstraňte připojení konfigurace GitOps služby Azure Arc:
az k8s-configuration flux delete \ --name cluster-config \ --cluster-name arc-cicd-cluster \ --resource-group myResourceGroup \ -t connectedClusters --yes
Odstranění konektoru GitOps:
helm uninstall gitops-connector -n flux-system kubectl delete alerts.notification.toolkit.fluxcd.io gitops-connector -n flux-system kubectl delete providers.notification.toolkit.fluxcd.io gitops-connector -n flux-system
Další kroky
V tomto kurzu nastavíte úplný pracovní postup CI/CD, který implementuje DevOps z vývoje aplikací prostřednictvím nasazení. Změny aplikace automaticky aktivují ověřování a nasazení, které jsou vyměněny ručními schváleními.
V našem koncepčním článku se dozvíte více o GitOps a konfiguracích s využitím Kubernetes s podporou Azure Arc.