Created
February 6, 2024 21:22
-
-
Save ashutosh16/f399e13bd1e5ee6acd7695be5795a4e0 to your computer and use it in GitHub Desktop.
rollout.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
# Source: meeech-old-timey-service/templates/serviceaccount.yaml | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: scratch-meeech-old-timey-service | |
labels: | |
helm.sh/chart: meeech-old-timey-service-1.0.0 | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
app.kubernetes.io/version: "1.0.0" | |
app.kubernetes.io/managed-by: Helm | |
kube_app_name: meeech-old-timey-service | |
kong_upstream: meeech-old-timey-service | |
--- | |
# Source: meeech-old-timey-service/templates/service.yaml | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: scratch-meeech-old-timey-service | |
labels: | |
helm.sh/chart: meeech-old-timey-service-1.0.0 | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
app.kubernetes.io/version: "1.0.0" | |
app.kubernetes.io/managed-by: Helm | |
kube_app_name: meeech-old-timey-service | |
kong_upstream: meeech-old-timey-service | |
spec: | |
type: ClusterIP | |
ports: | |
- port: 8080 | |
targetPort: http | |
protocol: TCP | |
name: http | |
selector: | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
service-role: "live" | |
--- | |
# Source: meeech-old-timey-service/templates/service.yaml | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: scratch-meeech-old-timey-service-canary | |
labels: | |
helm.sh/chart: meeech-old-timey-service-1.0.0 | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
app.kubernetes.io/version: "1.0.0" | |
app.kubernetes.io/managed-by: Helm | |
kube_app_name: meeech-old-timey-service | |
kong_upstream: meeech-old-timey-service | |
spec: | |
type: ClusterIP | |
ports: | |
- port: 8080 | |
targetPort: http | |
protocol: TCP | |
name: http | |
selector: | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
--- | |
# Source: meeech-old-timey-service/templates/ingress-canary.yaml | |
apiVersion: networking.k8s.io/v1 | |
kind: Ingress | |
metadata: | |
name: scratch-meeech-old-timey-service-canary | |
labels: | |
helm.sh/chart: meeech-old-timey-service-1.0.0 | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
app.kubernetes.io/version: "1.0.0" | |
app.kubernetes.io/managed-by: Helm | |
kube_app_name: meeech-old-timey-service | |
kong_upstream: meeech-old-timey-service | |
spec: | |
ingressClassName: kong | |
rules: | |
- host: "canary.k8s.m.internal" | |
http: | |
paths: | |
- path: / | |
pathType: Prefix | |
backend: | |
service: | |
name: scratch-meeech-old-timey-service-canary | |
port: | |
number: 8080 | |
--- | |
# Source: meeech-old-timey-service/templates/ingress.yaml | |
apiVersion: networking.k8s.io/v1 | |
kind: Ingress | |
metadata: | |
name: scratch-meeech-old-timey-service | |
labels: | |
helm.sh/chart: meeech-old-timey-service-1.0.0 | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
app.kubernetes.io/version: "1.0.0" | |
app.kubernetes.io/managed-by: Helm | |
kube_app_name: meeech-old-timey-service | |
kong_upstream: meeech-old-timey-service | |
spec: | |
ingressClassName: kong | |
rules: | |
- host: "k8s.m.internal" | |
http: | |
paths: | |
- path: / | |
pathType: Prefix | |
backend: | |
service: | |
name: scratch-meeech-old-timey-service | |
port: | |
number: 8080 | |
--- | |
# Source: meeech-old-timey-service/templates/ar-rollout.yaml | |
apiVersion: argoproj.io/v1alpha1 # Create a rollout resource | |
kind: Rollout | |
metadata: | |
name: scratch-meeech-old-timey-service | |
labels: | |
name: "meeech-old-timey-service-1" | |
annotations: | |
# In theory we can encode every event here, and allow end users to then only specify what they are interested in | |
notifications.argoproj.io/subscriptions: | | |
- trigger: [on-analysis-run-error, on-analysis-run-failed, on-analysis-run-running, on-rollout-aborted, on-rollout-completed, on-rollout-paused, on-rollout-step-completed, on-rollout-updated, on-scaling-replica-set] | |
destinations: | |
- service: slack | |
recipients: [davey-jones-locker] | |
spec: | |
replicas: 3 | |
revisionHistoryLimit: 10 | |
rollbackWindow: | |
revisions: 5 | |
# Make sure this will exclude any EXPERIMENT pods | |
selector: | |
matchLabels: | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
template: | |
metadata: | |
annotations: | |
randomToForceNewRS: "5md2V" | |
labels: | |
# Need this for HPA to ignore other temp pod/jobs. fml. | |
app.kubernetes.io/component: service | |
app.kubernetes.io/name: meeech-old-timey-service | |
app.kubernetes.io/instance: scratch | |
service-role: live | |
tags.datadoghq.com/env: local | |
tags.datadoghq.com/service: meeech-old-timey-service | |
tags.datadoghq.com/version: "1.0.0" | |
# to mimic CCC - this is turned into helm_chart_version | |
name: "meeech-old-timey-service-1" | |
spec: | |
serviceAccountName: scratch-meeech-old-timey-service | |
securityContext: | |
{} | |
containers: | |
- name: meeech-old-timey-service | |
securityContext: | |
{} | |
image: "ghcr.io/argocon22workshop/rollouts-demo:yellow" | |
imagePullPolicy: IfNotPresent | |
ports: | |
- name: http | |
containerPort: 8080 | |
protocol: TCP | |
env: | |
- name: HTTP_PORT | |
value: "8080" | |
- name: K8S_POD_NAME | |
valueFrom: | |
fieldRef: | |
fieldPath: metadata.name | |
- name: K8S_POD_NAMESPACE | |
valueFrom: | |
fieldRef: | |
fieldPath: metadata.namespace | |
- name: K8S_POD_IP | |
valueFrom: | |
fieldRef: | |
fieldPath: status.podIP | |
volumeMounts: | |
- mountPath: /etc/podinfo | |
name: podinfo | |
resources: | |
limits: | |
memory: 30Mi | |
requests: | |
memory: 8Mi | |
volumes: | |
- name: podinfo | |
downwardAPI: | |
items: | |
- path: "release-stage" | |
fieldRef: | |
fieldPath: metadata.labels['release-stage'] | |
strategy: | |
canary: | |
canaryService: scratch-meeech-old-timey-service-canary | |
# stableService: scratch-meeech-old-timey-service-stable | |
# add these labels for better targetting of the services | |
# we have 2 service-role buckets - experiment and live - experiements wont be picked up by the live service | |
canaryMetadata: | |
labels: | |
release-stage: canary | |
service-role: live | |
stableMetadata: | |
labels: | |
release-stage: stable | |
service-role: live | |
steps: | |
- setWeight: 25 | |
- pause: { | |
duration: 15m, | |
} | |
- setWeight: 50 | |
- pause: { | |
duration: 20m, | |
} | |
- setWeight: 100 | |
- pause: { | |
duration: 10m, | |
} | |
--- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment