Add support for prometheus
[ric-plt/ric-dep.git] / helm / infrastructure / templates / deployment-tiller.yaml
1 {{/*
2    Copyright (c) 2019 AT&T Intellectual Property.
3    Copyright (c) 2019 Nokia.
4
5    Licensed under the Apache License, Version 2.0 (the "License");
6    you may not use this file except in compliance with the License.
7    You may obtain a copy of the License at
8
9        http://www.apache.org/licenses/LICENSE-2.0
10
11    Unless required by applicable law or agreed to in writing, software
12    distributed under the License is distributed on an "AS IS" BASIS,
13    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14    See the License for the specific language governing permissions and
15    limitations under the License.
16 */}}
17 {{- if .Values.common }}
18 {{- if .Values.common.tillers }}
19 {{- $topCtx :=  . }}
20 {{- range keys .Values.common.tillers }}
21 {{- $key := . }}
22 {{- with index $topCtx.Values.common.tillers . }}
23 {{- $nameSpace := .nameSpace }}
24 {{- $deployNameSpace := .deployNameSpace }}
25 {{- $img := .image.tiller }}
26 {{- $secretName := default "tiller-secret" .secret.tillerSecretName }}
27 {{- $imgPullPolicy := .imagePullPolicy }}
28 {{- $ctx := dict "ctx" $topCtx "key" $key }}
29 ---
30 apiVersion: v1
31 kind: ServiceAccount
32 metadata:
33   name: {{ include "common.serviceaccountname.tiller" $ctx }}
34   namespace: {{ $deployNameSpace }}
35 ---  
36 apiVersion: rbac.authorization.k8s.io/v1beta1
37 kind: Role
38 metadata:
39   name: {{ include "common.tillerName" $ctx }}-tiller-base
40   namespace: {{ $nameSpace }}
41 rules:
42 - apiGroups: [""]
43   resources: ["secrets"]
44   resourceNames: [ {{ $secretName }} ]
45   verbs: ["get"]
46 - apiGroups: [""]
47   resources: ["pods/portforward"]
48   verbs: ["create"]
49 - apiGroups: [""]
50   resources: ["namespaces"]
51   verbs: ["get"]
52 - apiGroups: [""]  
53   resources: ["pods", "configmaps", "deployments", "services"]
54   verbs: ["get", "list", "create", "delete"]
55 ---
56 apiVersion: rbac.authorization.k8s.io/v1beta1
57 kind: RoleBinding
58 metadata:
59   name: {{ include "common.serviceaccountname.tiller" $ctx }}-{{ $nameSpace }}-tiller-base
60   namespace: {{ $nameSpace }}
61 roleRef:
62   apiGroup: rbac.authorization.k8s.io
63   kind: Role
64   name: {{ include "common.tillerName" $ctx }}-tiller-base
65 subjects:
66   - kind: ServiceAccount
67     name: {{ include "common.serviceaccountname.tiller" $ctx }}
68     namespace: {{ $deployNameSpace }}
69 ---  
70 apiVersion: rbac.authorization.k8s.io/v1beta1
71 kind: Role
72 metadata:
73   name: {{ include "common.tillerName" $ctx }}-tiller-operation
74   namespace: {{ $deployNameSpace }}
75 rules:
76 - apiGroups: [""]  
77   resources: ["configmaps"]
78   verbs: ["get", "list", "create", "delete", "update"]
79 ---
80 apiVersion: rbac.authorization.k8s.io/v1beta1
81 kind: RoleBinding
82 metadata:
83   name: {{ include "common.serviceaccountname.tiller" $ctx }}-{{ $nameSpace }}-tiller-operation
84   namespace: {{ $deployNameSpace }}
85 roleRef:
86   apiGroup: rbac.authorization.k8s.io
87   kind: Role
88   name: {{ include "common.tillerName" $ctx }}-tiller-operation
89 subjects:
90   - kind: ServiceAccount
91     name: {{ include "common.serviceaccountname.tiller" $ctx }}
92     namespace: {{ $deployNameSpace }}
93 {{- if .serviceAccount.role }}
94 ---
95 apiVersion: rbac.authorization.k8s.io/v1beta1
96 kind: Role
97 metadata:
98   name: {{ include "common.tillerName" $ctx }}-tiller-deployer
99   namespace: {{ $nameSpace }}
100 rules:
101 {{ toYaml .serviceAccount.role }}
102 ---
103 apiVersion: rbac.authorization.k8s.io/v1beta1
104 kind: RoleBinding
105 metadata:
106   name: {{ include "common.serviceaccountname.tiller" $ctx }}-{{ $nameSpace }}-tiller-deployer
107   namespace: {{ $nameSpace }}
108 roleRef:
109   apiGroup: rbac.authorization.k8s.io
110   kind: Role
111   name: {{ include "common.tillerName" $ctx }}-tiller-deployer
112 subjects:
113   - kind: ServiceAccount
114     name: {{ include "common.serviceaccountname.tiller" $ctx }}
115     namespace: {{ $deployNameSpace }}
116 {{- end }}
117 ---
118 apiVersion: apps/v1
119 kind: Deployment
120 metadata:
121   labels:
122     app: helm
123     name: tiller
124   name: {{ include "common.deploymentname.tiller" $ctx }}
125   namespace: {{ $deployNameSpace }}
126 spec:
127   replicas: 1
128   selector:
129     matchLabels:
130       app: helm
131       name: tiller
132   template:
133     metadata:
134       labels:
135         app: helm
136         name: tiller
137     spec:
138       automountServiceAccountToken: true
139       {{- $newctx := dict "ctx" $topCtx "defaultregistry" $img.registry }}
140       imagePullSecrets:
141         - name: {{ include "common.dockerregistry.credential" $newctx }}
142       containers:
143       - env:
144         - name: TILLER_NAMESPACE
145           value: {{ $deployNameSpace }}
146         - name: TILLER_HISTORY_MAX
147           value: "0"
148         - name: TILLER_TLS_VERIFY
149           value: "1"
150         - name: TILLER_TLS_ENABLE
151           value: "1"
152         - name: TILLER_TLS_CERTS
153           value: /etc/certs
154         image: {{ include "common.dockerregistry.url" $newctx }}/{{- $img.name -}}:{{- $img.tag }}
155         {{- $newctx := dict "ctx" $topCtx "defaultpullpolicy" $imgPullPolicy }}
156         imagePullPolicy: {{ include "common.dockerregistry.pullpolicy" $newctx }}
157         livenessProbe:
158           httpGet:
159             path: /liveness
160             port: 44135
161           initialDelaySeconds: 1
162           timeoutSeconds: 1
163         name: tiller
164         ports:
165         - containerPort: 44134
166           name: tiller
167         - containerPort: 44135
168           name: http
169         readinessProbe:
170           httpGet:
171             path: /readiness
172             port: 44135
173           initialDelaySeconds: 1
174           timeoutSeconds: 1
175         volumeMounts:
176         - mountPath: /etc/certs
177           name: tiller-certs
178           readOnly: true
179       serviceAccountName: {{ include "common.serviceaccountname.tiller" $ctx }}
180       volumes:
181       - name: tiller-certs
182         secret:
183           secretName: {{ $secretName }}
184 ---
185 apiVersion: v1
186 kind: Service
187 metadata:
188   creationTimestamp: null
189   labels:
190     app: helm
191     name: tiller
192   name: {{ include "common.servicename.tiller" $ctx }}
193   namespace: {{ $deployNameSpace }}
194 spec:
195   ports:
196   - name: tiller
197     port: {{ default 44134 .port }}
198     targetPort: tiller
199   selector:
200     app: helm
201     name: tiller
202   type: ClusterIP
203 {{- end }}
204 {{- end }}
205 {{- end }}
206 {{- end }}