Skip to content

Commit 6a6c4f6

Browse files
Example with automatic canary rollout
1 parent f49170b commit 6a6c4f6

File tree

5 files changed

+114
-0
lines changed

5 files changed

+114
-0
lines changed

carary-app-timed/host.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: getambassador.io/v2
2+
kind: Host
3+
metadata:
4+
name: demo-host
5+
spec:
6+
# Disable default TLS on ambassador
7+
acmeProvider:
8+
authority: none
9+
# Allow HTTP port to be used as is
10+
requestPolicy:
11+
insecure:
12+
action: Route
13+
14+

carary-app-timed/mapping.yaml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
apiVersion: getambassador.io/v2
3+
kind: Mapping
4+
metadata:
5+
name: summer-k8s-mapping
6+
spec:
7+
prefix: /demo/
8+
service: summer-k8s-service-stable
9+
resolver: endpoint
10+
---
11+
apiVersion: getambassador.io/v2
12+
kind: Mapping
13+
metadata:
14+
name: summer-k8s-mapping-stable
15+
spec:
16+
prefix: /stable/
17+
service: summer-k8s-service-stable
18+
resolver: endpoint
19+
---
20+
apiVersion: getambassador.io/v2
21+
kind: Mapping
22+
metadata:
23+
name: summer-k8s-mapping-unstable
24+
spec:
25+
prefix: /unstable/
26+
service: summer-k8s-service-canary
27+
resolver: endpoint

carary-app-timed/resolver.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: getambassador.io/v2
2+
kind: KubernetesEndpointResolver
3+
metadata:
4+
name: endpoint

carary-app-timed/rollout.yaml

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
apiVersion: argoproj.io/v1alpha1
3+
kind: Rollout
4+
metadata:
5+
name: simple-rollout
6+
spec:
7+
revisionHistoryLimit: 1
8+
replicas: 10
9+
selector:
10+
matchLabels:
11+
app: summer-k8s-app
12+
template:
13+
metadata:
14+
labels:
15+
app: summer-k8s-app
16+
spec:
17+
containers:
18+
- name: webserver-simple
19+
image: docker.io/kostiscodefresh/gitops-canary-app:v1.0
20+
imagePullPolicy: Always
21+
ports:
22+
- containerPort: 8080
23+
strategy:
24+
canary:
25+
stableService: summer-k8s-service-stable
26+
canaryService: summer-k8s-service-canary
27+
trafficRouting:
28+
ambassador:
29+
mappings:
30+
- summer-k8s-mapping
31+
steps:
32+
- setWeight: 30
33+
- pause: {duration: 2m}
34+
- setWeight: 60
35+
- pause: {duration: 2m}
36+
- setWeight: 100
37+
- pause: {}

carary-app-timed/service.yaml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
apiVersion: v1
3+
kind: Service
4+
metadata:
5+
name: summer-k8s-service-stable
6+
labels:
7+
app: summer-k8s-app
8+
spec:
9+
type: ClusterIP
10+
selector:
11+
app: summer-k8s-app
12+
ports:
13+
- name: http
14+
protocol: TCP
15+
port: 80
16+
targetPort: 8080
17+
---
18+
apiVersion: v1
19+
kind: Service
20+
metadata:
21+
name: summer-k8s-service-canary
22+
labels:
23+
app: summer-k8s-app
24+
spec:
25+
type: ClusterIP
26+
selector:
27+
app: summer-k8s-app
28+
ports:
29+
- name: http
30+
protocol: TCP
31+
port: 80
32+
targetPort: 8080

0 commit comments

Comments
 (0)