Feature/helm

Merge request reports

Loading
+89 −0
Changes for helm/oop-platform-chart/charts/federation-manager/templates/_helpers.tpl: 89 added lines, 0 removed lines.
Original line number Diff line number Diff line
{{/*
Expand the name of the chart.
*/}}
{{- define "federation-manager.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
*/}}
{{- define "federation-manager.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "federation-manager.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "federation-manager.labels" -}}
helm.sh/chart: {{ include "federation-manager.chart" . }}
{{ include "federation-manager.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.commonLabels }}
{{ toYaml . }}
{{- end }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "federation-manager.selectorLabels" -}}
app.kubernetes.io/name: {{ include "federation-manager.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Keycloak labels
*/}}
{{- define "federation-manager.keycloak.labels" -}}
{{ include "federation-manager.labels" . }}
app: keycloak
{{- end }}

{{/*
Keycloak selector labels
*/}}
{{- define "federation-manager.keycloak.selectorLabels" -}}
app: keycloak
{{- end }}

{{/*
Federation Manager labels
*/}}
{{- define "federation-manager.fm.labels" -}}
{{ include "federation-manager.labels" . }}
app: federation-manager
{{- end }}

{{/*
Federation Manager selector labels
*/}}
{{- define "federation-manager.fm.selectorLabels" -}}
app: federation-manager
{{- end }}

{{/*
Namespace
*/}}
{{- define "federation-manager.namespace" -}}
{{- default .Values.global.namespace .Release.Namespace }}
{{- end }}
+144 −0
Changes for helm/oop-platform-chart/charts/federation-manager/templates/federation-manager-deployment.yaml: 144 added lines, 0 removed lines.
Original line number Diff line number Diff line
{{- if .Values.federationManager.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.federationManager.name }}
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    {{- include "federation-manager.fm.labels" . | nindent 4 }}
  {{- with .Values.commonAnnotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
  replicas: {{ .Values.federationManager.replicaCount }}
  selector:
    matchLabels:
      {{- include "federation-manager.fm.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      labels:
        {{- include "federation-manager.fm.selectorLabels" . | nindent 8 }}
    spec:
      {{- with .Values.federationManager.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
      {{- end }}

      containers:

        #####################################################################
        # 1) KEYCLOAK CONTAINER  (runs INSIDE the federation-manager pod)
        #####################################################################
        - name: keycloak
          image: "{{ .Values.keycloak.image.repository }}:{{ .Values.keycloak.image.tag }}"
          imagePullPolicy: {{ .Values.keycloak.image.pullPolicy }}
          args:
            - start-dev
            - --import-realm
          env:
            - name: KC_BOOTSTRAP_ADMIN_USERNAME
              value: {{ .Values.keycloak.admin.username | quote }}
            - name: KC_BOOTSTRAP_ADMIN_PASSWORD
              value: {{ .Values.keycloak.admin.password | quote }}
            - name: KC_IMPORT
              value: /opt/keycloak/data/import/realm-import.json
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          volumeMounts:
            - name: realm-import
              mountPath: /opt/keycloak/data/import/

        #####################################################################
        # 2) FEDERATION MANAGER MAIN CONTAINER
        #####################################################################
        - name: federation-manager
          image: "{{ .Values.federationManager.image.repository }}:{{ .Values.federationManager.image.tag }}"
          imagePullPolicy: {{ .Values.federationManager.image.pullPolicy }}
          ports:
            - name: http
              containerPort: {{ .Values.federationManager.service.targetPort }}
              protocol: TCP
          volumeMounts:
            - name: config
              readOnly: false
              mountPath: /usr/app/src/conf/
          resources:
            {{- toYaml .Values.federationManager.resources | nindent 12 }}

        #####################################################################
        # 3) OPENVPN SIDECAR CONTAINER
        #####################################################################
        {{- if .Values.openvpn.enabled }}
        - name: openvpn
          image: "{{ .Values.openvpn.image.repository }}:{{ .Values.openvpn.image.tag }}"
          imagePullPolicy: {{ .Values.openvpn.image.pullPolicy }}
          command:
            - /bin/sh
            - -c
          args:
            - |
              apk add --no-cache openvpn iproute2 bind-tools \
              && echo "Starting OpenVPN..." \
              && openvpn --config /vpn/{{ .Values.openvpn.configFile }} \
                         --auth-user-pass /vpn/{{ .Values.openvpn.authFile }} \
                         --verb 3 \
                         --writepid /var/run/openvpn.pid

          {{- if .Values.openvpn.readinessProbe.enabled }}
          readinessProbe:
            exec:
              command:
                - /bin/sh
                - -c
                - |
                  ip link show dev tun0 >/dev/null 2>&1 || exit 1
                  ip route | grep -q 'tun0' || exit 1
            initialDelaySeconds: {{ .Values.openvpn.readinessProbe.delay }}
            timeoutSeconds: {{ .Values.openvpn.readinessProbe.timeout }}
            periodSeconds: {{ .Values.openvpn.readinessProbe.period }}
            failureThreshold: {{ .Values.openvpn.readinessProbe.failureThreshold }}
          {{- end }}

          volumeMounts:
            - name: ovpn
              mountPath: /vpn
              readOnly: true
            - name: dev-net-tun
              mountPath: /dev/net/tun

          securityContext:
            capabilities:
              add:
                - NET_ADMIN
        {{- end }}

      #######################################################################
      # VOLUME DEFINITIONS
      #######################################################################
      volumes:
        # Mount federation-manager config.yml
        - name: config
          secret:
            secretName: federation-manager-config
            defaultMode: 420

        # Keycloak realm import ConfigMap
        - name: realm-import
          configMap:
            name: keycloak-config

        {{- if .Values.openvpn.enabled }}
        - name: ovpn
          secret:
            secretName: {{ .Values.openvpn.secretName }}

        - name: dev-net-tun
          hostPath:
            path: /dev/net/tun
            type: CharDevice
        {{- end }}

{{- end }}
+16 −0
Changes for helm/oop-platform-chart/charts/federation-manager/templates/federation-manager-secret.yaml: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
{{- if .Values.federationManager.enabled }}
apiVersion: v1
kind: Secret
metadata:
  name: federation-manager-config
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    {{- include "federation-manager.fm.labels" . | nindent 4 }}
  {{- with .Values.commonAnnotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
type: Opaque
data:
  config.cfg: {{ printf "[keycloak]\nclient1_id = %s\nclient1_secret = %s\nclient2_id = %s\nclient2_secret = %s\nscope = %s\n\n[server]\nhost = %s\nport = %s\nprefix = %s\nversion = %s\nprotocol = %s\n\n[mongodb]\nhost = %s\nport = %s\n\n[i2edge]\nhost = %s\nport = %s\n\n[op_data]\npartnerOPFederationId = %s\npartnerOPCountryCode = %s\npartnerOPMobileNetworkCode_MCC = %s\npartnerOPMobileNetworkCode_MNC = %s\npartnerOPFixedNetworkCode = %s\nplatformCaps = %s\nedgeDiscoveryServiceEndPoint_port = %s\nedgeDiscoveryServiceEndPoint_fqdn = %s\nedgeDiscoveryServiceEndPoint_ipv4Addresses = %s\nedgeDiscoveryServiceEndPoint_ipv6Addresses = %s\nlcmServiceEndPoint_port = %s\nlcmServiceEndPoint_fqdn = %s\nlcmServiceEndPoint_ipv4Addresses = %s\nlcmServiceEndPoint_ipv6Addresses = %s\n\n[partner_op]\npartner_op_host = %s\npartner_op_server = %s\npartner_op_port = %s\nrole = %s\n" .Values.federationManager.config.keycloak.client1_id .Values.federationManager.config.keycloak.client1_secret .Values.federationManager.config.keycloak.client2_id .Values.federationManager.config.keycloak.client2_secret .Values.federationManager.config.keycloak.scope .Values.federationManager.config.server.host .Values.federationManager.config.server.port .Values.federationManager.config.server.prefix .Values.federationManager.config.server.version .Values.federationManager.config.server.protocol .Values.federationManager.config.mongodb.host .Values.federationManager.config.mongodb.port .Values.federationManager.config.i2edge.host .Values.federationManager.config.i2edge.port .Values.federationManager.config.op_data.partnerOPFederationId .Values.federationManager.config.op_data.partnerOPCountryCode .Values.federationManager.config.op_data.partnerOPMobileNetworkCode_MCC .Values.federationManager.config.op_data.partnerOPMobileNetworkCode_MNC .Values.federationManager.config.op_data.partnerOPFixedNetworkCode .Values.federationManager.config.op_data.platformCaps .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_port .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_fqdn .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_ipv4Addresses .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_ipv6Addresses .Values.federationManager.config.op_data.lcmServiceEndPoint_port .Values.federationManager.config.op_data.lcmServiceEndPoint_fqdn .Values.federationManager.config.op_data.lcmServiceEndPoint_ipv4Addresses .Values.federationManager.config.op_data.lcmServiceEndPoint_ipv6Addresses .Values.federationManager.config.partner_op.host .Values.federationManager.config.partner_op.server .Values.federationManager.config.partner_op.port .Values.federationManager.config.partner_op.role | b64enc }}
{{- end }}
+25 −0
Changes for helm/oop-platform-chart/charts/federation-manager/templates/federation-manager-service.yaml: 25 added lines, 0 removed lines.
Original line number Diff line number Diff line
{{- if .Values.federationManager.enabled }}
apiVersion: v1
kind: Service
metadata:
  name: {{ .Values.federationManager.service.name }}
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    {{- include "federation-manager.fm.labels" . | nindent 4 }}
  {{- with .Values.commonAnnotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
spec:
  type: {{ .Values.federationManager.service.type }}
  ports:
    - name: http
      protocol: TCP
      port: {{ .Values.federationManager.service.port }}
      targetPort: {{ .Values.federationManager.service.targetPort }}
      {{- if and (eq .Values.federationManager.service.type "NodePort") .Values.federationManager.service.nodePort }}
      nodePort: {{ .Values.federationManager.service.nodePort }}
      {{- end }}
  selector:
    {{- include "federation-manager.fm.selectorLabels" . | nindent 4 }}
{{- end }}
+41 −0
Changes for helm/oop-platform-chart/charts/federation-manager/templates/keycloak-configmap.yaml: 41 added lines, 0 removed lines.
Original line number Diff line number Diff line
{{- if .Values.keycloak.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
  name: keycloak-config
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    {{- include "federation-manager.keycloak.labels" . | nindent 4 }}
  {{- with .Values.commonAnnotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
data:
  realm-import.json: |
    {
      "realm": "{{ .Values.keycloak.realm.name }}",
      "enabled": {{ .Values.keycloak.realm.enabled }},
      "clientScopes": [
        {
          "id": "{{ .Values.keycloak.realm.clientScope.id }}",
          "name": "{{ .Values.keycloak.realm.clientScope.name }}",
          "protocol": "{{ .Values.keycloak.realm.clientScope.protocol }}",
          "description": "{{ .Values.keycloak.realm.clientScope.description }}"
        }
      ],
      "clients": [
        {
          "clientId": "{{ .Values.keycloak.realm.client.clientId }}",
          "enabled": {{ .Values.keycloak.realm.client.enabled }},
          "clientAuthenticatorType": "client-secret",
          "secret": "{{ .Values.keycloak.realm.client.secret }}",
          "redirectUris": {{ .Values.keycloak.realm.client.redirectUris | toJson }},
          "publicClient": {{ .Values.keycloak.realm.client.publicClient }},
          "directAccessGrantsEnabled": {{ .Values.keycloak.realm.client.directAccessGrantsEnabled }},
          "serviceAccountsEnabled": {{ .Values.keycloak.realm.client.serviceAccountsEnabled }},
          "defaultClientScopes": {{ .Values.keycloak.realm.client.defaultClientScopes | toJson }},
          "webOrigins": {{ .Values.keycloak.realm.client.webOrigins | toJson }}
        }
      ]
    }
{{- end }}
Loading
Loading