| {{- /* |
| # 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 domain name 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.%s.svc.%s" $service $context.Release.Namespace $context.Values.config.clusterDomain -}} |
| {{- else if eq $type "realm" -}} |
| {{- printf "%s.svc.%s" $context.Release.Namespace $context.Values.config.clusterDomain -}} |
| {{- else if eq $type "host" -}} |
| {{- printf "%s" $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 -}} |
| |
| {{/* |
| Render init container for coredump. |
| */}} |
| {{- define "omec-control-plane.coredump_init" -}} |
| {{- $pod := index . 0 -}} |
| {{- $context := index . 1 -}} |
| - name: {{ $pod }}-coredump-init |
| image: {{ $context.Values.images.tags.init | quote }} |
| imagePullPolicy: {{ $context.Values.images.pullPolicy }} |
| securityContext: |
| privileged: true |
| runAsUser: 0 |
| command: ["bash", "-xc"] |
| args: |
| - echo '/tmp/coredump/core.%h.%e.%t' > /mnt/host-rootfs/proc/sys/kernel/core_pattern |
| volumeMounts: |
| - name: host-rootfs |
| mountPath: /mnt/host-rootfs |
| {{- end -}} |