learn-rollouts/hello-world/deployments/deployment.yaml
2024-03-12 20:11:56 -05:00

122 lines
2.7 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: null
name: hello-world
namespace: hello-world
spec: {}
status: {}
---
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: hello-world-bluegreen
namespace: hello-world
spec:
replicas: 2
revisionHistoryLimit: 2
selector:
matchLabels:
app: rollout-bluegreen
template:
metadata:
labels:
app: rollout-bluegreen
spec:
containers:
- name: hello-world
image: docker.io/waylonwalker/learn-rollouts:v2
ports:
- containerPort: 5000
strategy:
blueGreen:
# activeService specifies the service to update with the new template hash at time of promotion.
# This field is mandatory for the blueGreen update strategy.
activeService: hello-world-active
# previewService specifies the service to update with the new template hash before promotion.
# This allows the preview stack to be reachable without serving production traffic.
# This field is optional.
previewService: hello-world-preview
# autoPromotionEnabled disables automated promotion of the new stack by pausing the rollout
# immediately before the promotion. If omitted, the default behavior is to promote the new
# stack as soon as the ReplicaSet are completely ready/available.
# Rollouts can be resumed using: `kubectl argo rollouts promote ROLLOUT`
autoPromotionEnabled: false
---
apiVersion: v1
kind: Service
metadata:
name: hello-world-active
namespace: hello-world
spec:
ports:
- name: "5000"
port: 5000
targetPort: 5000
---
apiVersion: v1
kind: Service
metadata:
name: hello-world-preview
namespace: hello-world
spec:
# selector:
# app: hello-world
ports:
- name: "5000"
port: 5000
targetPort: 5000
# ---
#
# apiVersion: apps/v1
# kind: Deployment
# metadata:
# labels:
# app: hello-world
# name: hello-world-deployment
# namespace: hello-world
# spec:
# replicas: 1
# selector:
# matchLabels:
# app: hello-world
# template:
# metadata:
# labels:
# app: hello-world
# spec:
# containers:
# - image: docker.io/waylonwalker/learn-rollouts:v2
# name: hello-world
# ports:
# - containerPort: 5000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
labels:
service: hello-world
name: hello-world-ingress
namespace: hello-world
spec:
rules:
- host: localhost
http:
paths:
- backend:
service:
name: hello-world-active
port:
number: 5000
path: /active
pathType: Prefix
status:
loadBalancer: {}