| {{- /* |
| # Copyright 2018-present Open Networking Foundation |
| # Copyright 2018 Intel Corporation |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| */ -}} |
| |
| {{/* |
| Renders a set of standardised labels |
| */}} |
| {{- define "omec-control-plane.metadata_labels" -}} |
| {{- $application := index . 0 -}} |
| {{- $context := index . 1 -}} |
| release: {{ $context.Release.Name }} |
| app: {{ $application }} |
| {{- end -}} |
| |
| {{/* |
| Render the given template. |
| */}} |
| {{- define "omec-control-plane.template" -}} |
| {{- $name := index . 0 -}} |
| {{- $context := index . 1 -}} |
| {{- $last := base $context.Template.Name }} |
| {{- $wtf := $context.Template.Name | replace $last $name -}} |
| {{ include $wtf $context }} |
| {{- end -}} |
| |
| {{/* |
| Return s6a service for Diameter identity, realm, and hostname for a given application. |
| */}} |
| {{- define "omec-control-plane.diameter_endpoint" -}} |
| {{- $service := index . 0 -}} |
| {{- $type := index . 1 -}} |
| {{- $context := index . 2 -}} |
| {{- if eq $type "identity" -}} |
| {{- printf "%s-s6a.%s.svc.%s" $service $context.Release.Namespace "cluster.local" -}} |
| {{- else if eq $type "realm" -}} |
| {{- printf "%s.svc.%s" $context.Release.Namespace "cluster.local" -}} |
| {{- else if eq $type "host" -}} |
| {{- printf "%s-s6a" $service -}} |
| {{- end -}} |
| {{- end -}} |
| |
| {{/* |
| Render ServiceAccount, Role, and RoleBinding required for kubernetes-entrypoint. |
| */}} |
| {{- define "omec-control-plane.service_account" -}} |
| {{- $context := index . 1 -}} |
| {{- $saName := index . 0 -}} |
| {{- $saNamespace := $context.Release.Namespace }} |
| --- |
| apiVersion: v1 |
| kind: ServiceAccount |
| metadata: |
| name: {{ $saName }} |
| namespace: {{ $saNamespace }} |
| labels: |
| {{ tuple $saName $context | include "omec-control-plane.metadata_labels" | indent 4 }} |
| --- |
| apiVersion: rbac.authorization.k8s.io/v1beta1 |
| kind: RoleBinding |
| metadata: |
| name: {{ $saName }} |
| namespace: {{ $saNamespace }} |
| labels: |
| {{ tuple $saName $context | include "omec-control-plane.metadata_labels" | indent 4 }} |
| roleRef: |
| apiGroup: rbac.authorization.k8s.io |
| kind: Role |
| name: {{ $saName }} |
| subjects: |
| - kind: ServiceAccount |
| name: {{ $saName }} |
| namespace: {{ $saNamespace }} |
| --- |
| apiVersion: rbac.authorization.k8s.io/v1beta1 |
| kind: Role |
| metadata: |
| name: {{ $saName }} |
| namespace: {{ $saNamespace }} |
| labels: |
| {{ tuple $saName $context | include "omec-control-plane.metadata_labels" | indent 4 }} |
| rules: |
| - apiGroups: |
| - "" |
| - extensions |
| - batch |
| - apps |
| verbs: |
| - get |
| - list |
| - patch |
| resources: |
| - statefulsets |
| - daemonsets |
| - jobs |
| - pods |
| - services |
| - endpoints |
| - configmaps |
| {{- end -}} |