Canary

Definition

A canary is a deployment strategy used in software development and operations to reduce the risk of introducing a new software version into production. It involves gradually rolling out the update to a small subset of users or systems before a full-scale deployment. This approach allows teams to monitor the new version’s performance and stability, identifying any issues before they impact the entire user base.

Secure Settings Example

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 10
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app-container
        image: my-app:latest
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1

Insecure Settings Example

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 10
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app-container
        image: my-app:latest
  strategy:
    type: Recreate