blob: 5cf9f84d10fccd55bab1cab63a84db1e39152c4d [file] [log] [blame]
Jeremy Ronquillo223db002020-06-05 10:28:22 -07001{{- /*
Jeremy Ronquilloec2d3e42020-06-05 11:33:39 -07002
Jeremy Ronquillo223db002020-06-05 10:28:22 -07003# Copyright 2020-present Open Networking Foundation
4#
Jeremy Ronquilloec2d3e42020-06-05 11:33:39 -07005# SPDX-License-Identifier: Apache-2.0
6# SPDX-License-Identifier: LicenseRef-ONF-Member-Only
7
Jeremy Ronquillo223db002020-06-05 10:28:22 -07008*/ -}}
9
10{{/*
11Renders a set of standardised labels
12*/}}
13{{- define "phylo.metadata_labels" -}}
14{{- $application := index . 0 -}}
15{{- $context := index . 1 -}}
16release: {{ $context.Release.Name }}
17app: {{ $application }}
18{{- end -}}
19
20{{/*
21Render the given template.
22*/}}
23{{- define "phylo.template" -}}
24{{- $name := index . 0 -}}
25{{- $context := index . 1 -}}
26{{- $last := base $context.Template.Name }}
27{{- $wtf := $context.Template.Name | replace $last $name -}}
28{{ include $wtf $context }}
29{{- end -}}
30
31{{/*
32Render ServiceAccount, Role, and RoleBinding required for kubernetes-entrypoint.
33*/}}
34{{- define "phylo.service_account" -}}
35{{- $context := index . 1 -}}
36{{- $saName := index . 0 -}}
37{{- $saNamespace := $context.Release.Namespace }}
38---
39apiVersion: v1
40kind: ServiceAccount
41metadata:
42 name: {{ $saName }}
43 namespace: {{ $saNamespace }}
44 labels:
45{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
46---
47apiVersion: rbac.authorization.k8s.io/v1beta1
48kind: RoleBinding
49metadata:
50 name: {{ $saName }}
51 namespace: {{ $saNamespace }}
52 labels:
53{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
54roleRef:
55 apiGroup: rbac.authorization.k8s.io
56 kind: Role
57 name: {{ $saName }}
58subjects:
59 - kind: ServiceAccount
60 name: {{ $saName }}
61 namespace: {{ $saNamespace }}
62---
63apiVersion: rbac.authorization.k8s.io/v1beta1
64kind: Role
65metadata:
66 name: {{ $saName }}
67 namespace: {{ $saNamespace }}
68 labels:
69{{ tuple $saName $context | include "phylo.metadata_labels" | indent 4 }}
70rules:
71 - apiGroups:
72 - ""
73 - extensions
74 - batch
75 - apps
76 verbs:
77 - get
78 - list
79 resources:
80 - statefulsets
81 - daemonsets
82 - jobs
83 - pods
84 - services
85 - endpoints
86 - configmaps
87{{- end -}}