Om een pijplijn met continue integratie en continue levering (CICD) in Code Stream te maken, kunt u de slimme CICD-pijplijnsjabloon gebruiken. Om uw native build voor CICD te plannen, verzamelt u de informatie die u nodig heeft om de slimme pijplijnsjabloon in te vullen voordat u de pijplijn in dit voorbeeldplan maakt.
Als u een CICD-pijplijn wilt maken, moet u zowel de fase voor continue integratie (CI) als de fase voor continue levering (CD) van uw pijplijn plannen.
Nadat u de informatie in de slimme pijplijnsjabloon hebt ingevoerd en de sjabloon opslaat, wordt een pijplijn gemaakt die fasen en taken bevat. Deze geeft ook de implementatiebestemming van uw image aan op basis van de typen omgeving die u selecteert, zoals ontwikkeling (Dev) en productie (Prod). De pijplijn publiceert uw containerimage en voltooit de acties die nodig zijn om deze uit te voeren. Nadat uw pijplijn is uitgevoerd, kunt u trends volgen over alle pijplijn-uitvoeringen.
Wanneer een pijplijn een image van Docker Hub bevat, moet u ervoor zorgen dat cURL of wget in de image is ingesloten voordat u de pijplijn uitvoert. Wanneer de pijplijn wordt uitgevoerd, downloadt Code Stream een binair bestand dat gebruikmaakt van cURL of wget om commando's uit te voeren.
Zie De pijplijnwerkplek configureren voor meer informatie over het configureren van de werkplek.
De fase voor continue integratie (CI) plannen
Om de CI-fase van uw pijplijn te plannen, stelt u de externe en interne vereisten in en bepaalt u de informatie die nodig is voor het CI-gedeelte van de slimme pijplijnsjabloon. Hier volgt een overzicht.
In dit voorbeeld wordt een Docker-werkplek gebruikt.
Eindpunten en opslagplaatsen die u nodig heeft:
- Een opslagplaats voor broncode waar ontwikkelaars hun code inchecken. Code Stream haalt de meest recente code op in de pijplijn wanneer ontwikkelaars wijzigingen doorvoeren.
- Een eindpunt van het servicetype GitHub-Enterprise, GitLab-Enterprise of Bitbucket-Enterprise voor de opslagplaats waar de broncode van de ontwikkelaar zich bevindt.
- Een Docker-eindpunt voor de Docker-buildhost die de bouwcommando’s in een container uitvoert.
- Een Kubernetes-eindpunt zodat Code Stream uw image kan implementeren op een Kubernetes-cluster.
- Een builderimage die de container maakt waarop de continue integratietests worden uitgevoerd.
- Een imageregister-eindpunt zodat de Docker-buildhost daar de builderimage kan ophalen.
U heeft toegang tot een project nodig. Het project groepeert al uw werk, inclusief uw pijplijn, eindpunten en dashboards. Controleer of u lid bent van een project in Code Stream. Als u geen beheerder bent, vraagt u de Code Stream-beheerder om u als lid toe te voegen aan een project. Zie Hoe voeg ik een project toe in Code Stream?.
U zult een Git-webhook nodig hebben waarmee Code Stream de Git-trigger kan gebruiken om uw pijplijn te activeren wanneer ontwikkelaars codewijzigingen doorvoeren. Zie Hoe gebruik ik de Git-trigger in Code Stream om een pijplijn uit te voeren?.
Uw build-toolsets:
- Uw buildtype, zoals Maven.
- Alle buildtools voor de naverwerking die u gebruikt, inclusief JUnit, JaCoCo, Checkstyle en FindBugs.
Uw publicatietool:
- Een tool, zoals Docker, die uw buildcontainer implementeert.
- Een imagetag, ofwel de commit-ID ofwel het buildnummer.
Uw werkruimte voor het bouwen:
- Een Docker-buildhost, oftewel het Docker-eindpunt.
- Een imageregister. Het CI-gedeelte van de pijplijn haalt de image op van het geselecteerde registereindpunt. De container voert de CI-taken uit en implementeert uw image. Als het register verificatiegegevens vereist, moet u een imageregistereindpunt maken en dit vervolgens hier selecteren, zodat de host de image uit het register kan ophalen.
- URL voor de builderimage die de container maakt waarop de taken voor continue integratie worden uitgevoerd.
De fase voor continue levering (CD) plannen
Om de CD-fase van uw pijplijn te plannen, stelt u de externe en interne vereisten in en bepaalt u de informatie die moet worden ingevoerd in het CD-gedeelte van de slimme pijplijnsjabloon.
Eindpunten die u nodig heeft:
- Een Kubernetes-eindpunt zodat Code Stream uw image kan implementeren op een Kubernetes-cluster.
Omgevingstypen en -bestanden:
- Alle omgevingstypen waar Code Stream uw applicatie implementeert, zoals ontwikkeling en productie. De slimme pijplijnsjabloon maakt de fasen en taken in uw pijplijn op basis van de door u geselecteerde omgevingstypen.
Tabel 1. Pijplijnfasen die door de slimme CICD-pijplijnsjabloon worden gemaakt Pijplijn-inhoud Wat het doet Bouw-publicatiefase Bouwt en test uw code, maakt de builderimage en publiceert de image naar uw Docker-host. Ontwikkelingsfase Gebruikt een Amazon Web Services (AWS)-cluster voor ontwikkeling om uw image te maken en te implementeren. In deze fase kunt u een naamruimte op het cluster maken en een geheime sleutel maken. Productiefase Gebruikt een productieversie van de VMware Tanzu Kubernetes Grid Integrated Edition (voorheen VMware Enterprise PKS) om uw image naar een Kubernetes-cluster in productie te implementeren. - Een Kubernetes YAML-bestand dat u selecteert in de Cd-sectie van de slimme CICD-pijplijnsjabloon.
Het Kubernetes YAML-bestand bevat drie vereiste secties voor naamruimte, service en implementatie en een optionele sectie voor Geheim. Als u van plan bent een pijplijn te maken door een image te downloaden uit een privéopslagplaats, moet u een sectie met het Docker-configuratiegeheim opnemen. Als de pijplijn die u maakt, alleen openbaar beschikbare images gebruikt, is geen geheim vereist. Het volgende YAML-voorbeeldbestand bevat vier secties.
apiVersion: v1 kind: Namespace metadata: name: codestream namespace: codestream --- apiVersion: v1 data: .dockerconfigjson: eyJhdXRocyI6eyJodHRwczovL2luZ1234567890lci5pby92MS8iOnsidXNlcm5hbWUiOiJhdXRvbWF0aW9uYmV0YSIsInBhc3N3b3JkIjoiVk13YXJlQDEyMyIsImVtYWlsIjoiYXV0b21hdGlvbmJldGF1c2VyQGdtYWlsLmNvbSIsImF1dGgiOiJZWFYwYjIxaGRHbHZibUpsZEdFNlZrMTNZWEpsUURFeU13PT0ifX19 kind: Secret metadata: name: dockerhub-secret namespace: codestream type: kubernetes.io/dockerconfigjson --- apiVersion: v1 kind: Service metadata: name: codestream-demo namespace: codestream labels: app: codestream-demo spec: ports: - port: 80 selector: app: codestream-demo tier: frontend type: LoadBalancer --- apiVersion: apps/v1 kind: Deployment metadata: name: codestream-demo namespace: codestream labels: app: codestream-demo spec: replicas: 10 selector: matchLabels: app: codestream-demo tier: frontend template: metadata: labels: app: codestream-demo tier: frontend spec: containers: - name: codestream-demo image: automationbeta/codestream-demo:01 ports: - containerPort: 80 name: codestream-demo imagePullSecrets: - name: dockerhub-secret
Opmerking: Het Kubernetes YAML-bestand wordt ook gebruikt in de slimme CD-pijplijnsjabloon, zoals in de volgende voorbeelden van gebruiksscenario's:Als u het bestand in de slimme sjabloon wilt toepassen, klikt u op Selecteren en selecteert u het Kubernetes YAML-bestand. Klik vervolgens op Proces. In de slimme pijplijnsjabloon worden de beschikbare services en implementatieomgevingen weergegeven. U selecteert een service, het clustereindpunt en de implementatiestrategie. Als u bijvoorbeeld het Canary-implementatiemodel wilt gebruiken, selecteert u Canary en voert u een percentage in voor de implementatiefase.
Zie Hoe implementeer ik mijn applicatie in Code Stream naar mijn Blue-Green-implementatie? als u een voorbeeld wilt zien van het gebruik van de slimme pijplijnsjabloon om een pijplijn te maken voor een Blue-Green-implementatie.
Hoe u de CICD-pijplijn maakt met behulp van de slimme pijplijnsjabloon
Nadat u alle informatie hebt verzameld en het benodigde hebt ingesteld, kunt u op de volgende manier een pijplijn maken op basis van de slimme CICD-pijplijnsjabloon.
In pijplijnen selecteert u
.
U selecteert de slimme CICD-pijplijnsjabloon.
U vult de sjabloon in en slaat de pijplijn op met de fasen die deze maakt. Als u nog laatste wijzigingen moet aanbrengen, kunt u de pijplijn bewerken en opslaan.
Vervolgens schakelt u de pijplijn in en voert u deze uit. Nadat deze is uitgevoerd, kunt u de volgende zaken nog bekijken:
- Controleer of uw pijplijn is geslaagd. Klik op Uitvoeringen en zoek naar uw pijplijn. Als de pijplijn is mislukt, corrigeert u eventuele fouten en voert u deze opnieuw uit.
- Controleer of de Git-webhook goed werkt. Op het tabblad Activiteit in Git worden de gebeurtenissen weergegeven. Klik op .
- Bekijk het pijplijndashboard en onderzoek de trends. Klik op Dashboards en zoek naar uw pijplijndashboard. U kunt ook een custom dashboard maken om te rapporteren over aanvullende KPI's.
Zie Hoe kan ik code vanuit mijn GitHub- of GitLab-opslagplaats continu integreren in mijn pijplijn in Code Stream? voor een gedetailleerd voorbeeld.