Blue-Green Deployments with Spinnaker: Difference between revisions
Line 53: | Line 53: | ||
Name: "Stage - Manual Testing - Prod" (no "→" allowed in name) | Name: "Stage - Manual Testing - Prod" (no "→" allowed in name) | ||
Add stage → Bake (Manifest). This stage will render the helm chart, apply the configuration overlay and overwrite the image tag. For more details, see: {{InternalSpinnaker_Stage_Bake_(Manifest)#Overview|Bake (Manifest)}} | |||
=Organizatorium= | =Organizatorium= |
Revision as of 04:10, 9 March 2022
External
Internal
Overview
This article documents a pipeline that deploys a release in a Stage environment, waits for testing, the deploys the same release in Prod. The application is a Helm-packaged Kubernetes application, but some of the Kuberentes resources are created manually directly in Spinnaker.
Create Services
Create two Services ("stage" and "prod") within the Spinnaker Application.
Load Balancers → Create Load Balancer
Select the right "account" (Kubernetes cluster)
Manifest (do not forget to adjust the namespace):
apiVersion: v1
kind: Service
metadata:
name: stage
namespace: of02
spec:
type: ClusterIP
selector:
stage: 'true' # this label will be dynamically applied to the workload pods
ports:
- port: 8080
name: http
targetPort: 8080
apiVersion: v1
kind: Service
metadata:
name: prod
namespace: of02
spec:
type: ClusterIP
selector:
prod: 'true' # this label will be dynamically applied to the workload pods
ports:
- port: 8080
name: http
targetPort: 8080
Create the Pipeline
It will be a "deploy to stage → manual testing → manual judgement → deploy to prod" pipeline.
Name: "Stage - Manual Testing - Prod" (no "→" allowed in name)
Add stage → Bake (Manifest). This stage will render the helm chart, apply the configuration overlay and overwrite the image tag. For more details, see: Template:InternalSpinnaker Stage Bake (Manifest)
Organizatorium
TO PROCESS:
- https://blog.spinnaker.io/introducing-rollout-strategies-in-the-kubernetes-v2-provider-8bbffea109a
- https://spinnaker.io/docs/guides/user/kubernetes-v2/rollout-strategies/#redblack-rollouts
- https://spinnaker.io/docs/guides/user/kubernetes-v2/traffic-management/
- https://www.opsmx.com/blog/spinnaker-pipeline-blue-green-strategy-with-external-versioning-and-kubernetes-deployment-object/
- https://www.opsmx.com/blog/spinnaker-integration-with-istio/