-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathpython3-template.yaml
More file actions
160 lines (152 loc) · 4.35 KB
/
python3-template.yaml
File metadata and controls
160 lines (152 loc) · 4.35 KB
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
kind: Template
apiVersion: v1
metadata:
name: python3
annotations:
description: 'Python 3 STI with support for secrets.'
iconClass: icon-python
tags: 'instant-app,python'
labels:
template: python3
parameters:
- name: APP_NAME
description: App name
generate: expression
from: '[a-zA-Z0-9]{40}'
required: true
- name: SOURCE_REPOSITORY_URL
description: The URL of the repository with your application source code
required: true
- name: SOURCE_REPOSITORY_REF
description: 'Set this to a branch name, tag or other ref of your repository if you are not using the default branch'
- name: CONTEXT_DIR
description: Set this to the relative path to your project if it is not in the root of your repository
- name: GITHUB_WEBHOOK_SECRET
description: A secret string used to configure the GitHub webhook
generate: expression
from: '[a-zA-Z0-9]{40}'
- name: APPLICATION_DOMAIN
description: Host name
value: ''
#---------------------------------------------------------------------------------
objects:
#---------------------------------------------------------------------------------
- kind: Route
apiVersion: v1
metadata:
name: '${APP_NAME}'
labels:
name: '${APP_NAME}'
spec:
host: '${APPLICATION_DOMAIN}'
to:
kind: Service
name: '${APP_NAME}'
#---------------------------------------------------------------------------------
- kind: Service
apiVersion: v1
metadata:
name: '${APP_NAME}'
annotations:
description: Exposes and load balances the application pods
labels:
name: '${APP_NAME}'
spec:
ports:
- name: web
port: 5000
targetPort: 5000
selector:
name: '${APP_NAME}'
role: app
#---------------------------------------------------------------------------------
- kind: ImageStream
apiVersion: v1
metadata:
name: '${APP_NAME}'
annotations:
description: Keeps track of changes in the application image
#---------------------------------------------------------------------------------
- kind: BuildConfig
apiVersion: v1
metadata:
name: '${APP_NAME}'
annotations:
description: Defines how to build the application
spec:
source:
type: Git
git:
uri: '${SOURCE_REPOSITORY_URL}'
ref: '${SOURCE_REPOSITORY_REF}'
contextDir: '${CONTEXT_DIR}'
strategy:
type: Source
sourceStrategy:
from:
kind: ImageStreamTag
namespace: openshift
name: 'python:3.3'
output:
to:
kind: ImageStreamTag
name: '${APP_NAME}:latest'
triggers:
- type: ImageChange
- type: GitHub
github:
secret: '${GITHUB_WEBHOOK_SECRET}'
#---------------------------------------------------------------------------------
- kind: DeploymentConfig
apiVersion: v1
metadata:
name: '${APP_NAME}'
annotations:
description: Defines how to deploy the application server
labels:
name: '${APP_NAME}'
spec:
strategy:
type: Rolling
triggers:
- type: ImageChange
imageChangeParams:
automatic: true
containerNames:
- '${APP_NAME}'
from:
kind: ImageStreamTag
name: '${APP_NAME}:latest'
- type: ConfigChange
replicas: 1
selector:
name: '${APP_NAME}'
role: app
template:
metadata:
name: '${APP_NAME}'
labels:
name: '${APP_NAME}'
role: app
spec:
containers:
- name: '${APP_NAME}'
image: '${APP_NAME}'
ports:
- containerPort: 5000
volumeMounts:
# name must match the volume name below
- name: secret-volume
mountPath: /etc/secret-volume
readOnly: true
env:
- name: APP_NAME
value: '${APP_NAME}'
- name: APP_PORT
value: '5000'
- name: SECRET_DIR
value: '/etc/secret-volume/'
volumes:
- name: secret-volume
secret:
secretName: app-secret