blob: bf90988ab3a50a514fff59dc0d89fc6dc3803099 [file] [log] [blame]
Hyunsun Mooncbc41f12020-02-27 11:23:05 -08001{{- /*
2# Copyright 2020-present Open Networking Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15*/ -}}
16
17{{/*
18Renders a set of standardised labels
19*/}}
20{{- define "phylo.metadata_labels" -}}
21{{- $application := index . 0 -}}
22{{- $context := index . 1 -}}
23release: {{ $context.Release.Name }}
24app: {{ $application }}
25{{- end -}}
26
27{{/*
28Render the given template.
29*/}}
30{{- define "phylo.template" -}}
31{{- $name := index . 0 -}}
32{{- $context := index . 1 -}}
33{{- $last := base $context.Template.Name }}
34{{- $wtf := $context.Template.Name | replace $last $name -}}
35{{ include $wtf $context }}
36{{- end -}}
37
38{{/*
39Render ServiceAccount, Role, and RoleBinding required for kubernetes-entrypoint.
40*/}}
41{{- define "phylo.service_account" -}}
42{{- $context := index . 1 -}}
43{{- $saName := index . 0 -}}
44{{- $saNamespace := $context.Release.Namespace }}
45---
46apiVersion: v1
47kind: ServiceAccount
48metadata:
49 name: {{ $saName }}
50 namespace: {{ $saNamespace }}
51 labels:
52{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
53---
54apiVersion: rbac.authorization.k8s.io/v1beta1
55kind: RoleBinding
56metadata:
57 name: {{ $saName }}
58 namespace: {{ $saNamespace }}
59 labels:
60{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
61roleRef:
62 apiGroup: rbac.authorization.k8s.io
63 kind: Role
64 name: {{ $saName }}
65subjects:
66 - kind: ServiceAccount
67 name: {{ $saName }}
68 namespace: {{ $saNamespace }}
69---
70apiVersion: rbac.authorization.k8s.io/v1beta1
71kind: Role
72metadata:
73 name: {{ $saName }}
74 namespace: {{ $saNamespace }}
75 labels:
76{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
77rules:
78 - apiGroups:
79 - ""
80 - extensions
81 - batch
82 - apps
83 verbs:
84 - get
85 - list
86 resources:
87 - statefulsets
88 - daemonsets
89 - jobs
90 - pods
91 - services
92 - endpoints
93 - configmaps
94{{- end -}}