-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathdeploy.yml
200 lines (200 loc) · 5.87 KB
/
deploy.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
---
- name: Openshift integration
hosts: all
tasks:
- name: Create a Openshift namespace--Guestbook
redhat.openshift.k8s:
name: guestbook
api_version: v1
kind: Namespace
state: present
delegate_to: localhost
- name: Create a Service for Redis Leader application
redhat.openshift.k8s:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: redis-leader
namespace: guestbook
labels:
app: redis
tier: backend
role: leader
spec:
ports:
- port: 6379
targetPort: 6379
selector:
app: redis
tier: backend
role: leader
delegate_to: localhost
- name: Create deployment of Redis Leader application
redhat.openshift.k8s:
state: present
definition:
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1
kind: Deployment
metadata:
name: redis-leader
namespace: guestbook
spec:
selector:
matchLabels:
app: redis
role: leader
tier: backend
replicas: 1
template:
metadata:
labels:
app: redis
role: leader
tier: backend
spec:
containers:
- name: leader
image: k8s.gcr.io/redis:e2e # or just image: redis
resources:
requests:
cpu: 100m
memory: 100Mi
ports:
- containerPort: 6379
delegate_to: localhost
- name: Create service for Redis-Follower
redhat.openshift.k8s:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: redis-follower
namespace: guestbook
labels:
app: redis
tier: backend
role: follower
spec:
ports:
- port: 6379
selector:
app: redis
tier: backend
role: follower
delegate_to: localhost
- name: Create Deployment for Redis Follower
redhat.openshift.k8s:
state: present
definition:
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1
kind: Deployment
metadata:
name: redis-follower
namespace: guestbook
spec:
selector:
matchLabels:
app: redis
role: follower
tier: backend
replicas: 2
template:
metadata:
labels:
app: redis
role: follower
tier: backend
spec:
containers:
- name: follower
image: gcr.io/google_samples/gb-redisslave:v1
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 6379
delegate_to: localhost
- name: Create service for front end application
redhat.openshift.k8s:
state: present
definition:
apiVersion: v1
kind: Service
metadata:
name: frontend
namespace: guestbook
labels:
app: guestbook
tier: frontend
spec:
# comment or delete the following line if you want to use a LoadBalancer
type: NodePort
# if your cluster supports it, uncomment the following to automatically create
# an external load-balanced IP for the frontend service.
# type: LoadBalancer
ports:
- port: 80
selector:
app: guestbook
tier: frontend
delegate_to: localhost
- name: Deploy front end application
redhat.openshift.k8s:
state: present
definition:
apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1
kind: Deployment
metadata:
name: frontend
namespace: guestbook
spec:
selector:
matchLabels:
app: guestbook
tier: frontend
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
# If your cluster config does not include a dns service, then to
# instead access environment variables to find service host
# info, comment out the 'value: dns' line above, and uncomment the
# line below:
# value: env
ports:
- containerPort: 80
delegate_to: localhost
- name: Create route for front end application
redhat.openshift.k8s:
state: present
definition:
apiVersion: v1
kind: Route
metadata:
name: frontend
namespace: guestbook
spec:
to:
kind: Service
name: frontend
delegate_to: localhost