Commit 6147f28a authored by George Papathanail's avatar George Papathanail
Browse files

chore(fm): remove MongoDB and the FM 1.x config file

FM 2.0 reads FM_* env vars and uses PostgreSQL; the config.cfg ConfigMap, its secret init container, the openvpn sidecar and the separate namespace are gone.
parent 15a07083
Loading
Loading
Loading
Loading
+2 −63
Changes for oop-platform-chart/charts/federation-manager/templates/_helpers.tpl: 2 added lines, 63 removed lines.
Original line number Diff line number Diff line
@@ -53,74 +53,13 @@ app.kubernetes.io/instance: {{ .Release.Name }}

{{/*
"true" unless global.auth.enabled is false. Federation needs authenticated partners, so with
login turned off for the platform Federation Manager and its MongoDB are not deployed.
login turned off for the platform Federation Manager is not deployed.
Empty otherwise, so it works directly in an `if`.
*/}}
{{- define "federation-manager.authEnabled" -}}
{{- if dig "auth" "enabled" true (.Values.global | default dict) }}true{{ end -}}
{{- end }}

{{/*
Keycloak settings: this chart's own value when set, else the umbrella chart's `global` block,
else a built-in default, so the chart also installs on its own.
*/}}
{{- define "federation-manager.keycloak.host" -}}
{{- .Values.federationManager.config.keycloak.host | default (dig "keycloak" "host" "keycloak" (.Values.global | default dict)) -}}
{{- end }}

{{- define "federation-manager.keycloak.port" -}}
{{- .Values.federationManager.config.keycloak.port | default (dig "keycloak" "port" 8080 (.Values.global | default dict)) -}}
{{- end }}

{{- define "federation-manager.client1Id" -}}
{{- $clients := dig "federation" "clients" (list) (.Values.global | default dict) -}}
{{- .Values.federationManager.config.keycloak.client1_id | default (first $clients) | default "" -}}
{{- end }}

{{- define "federation-manager.client2Id" -}}
{{- $clients := dig "federation" "clients" (list) (.Values.global | default dict) -}}
{{- if .Values.federationManager.config.keycloak.client2_id -}}
{{- .Values.federationManager.config.keycloak.client2_id -}}
{{- else if gt (len $clients) 1 -}}
{{- index $clients 1 -}}
{{- end -}}
{{- end }}

{{/*
Audience partner tokens must carry (the keycloak chart adds it to the federation clients).
*/}}
{{- define "federation-manager.audience" -}}
{{- .Values.federationManager.config.keycloak.audience | default (dig "federation" "audience" "federation-manager" (.Values.global | default dict)) -}}
{{- end }}

{{/*
Secret holding the client secrets: `existingSecret` (e.g. keycloak-credentials, filled by the
keycloak chart, keys federation-<client id>-secret) or this chart's own Secret.
*/}}
{{- define "federation-manager.clientSecretName" -}}
{{- .Values.federationManager.config.keycloak.existingSecret | default "federation-manager-secrets" -}}
{{- end }}

{{- define "federation-manager.client1SecretKey" -}}
{{- with .Values.federationManager.config.keycloak -}}
{{- if .existingSecret -}}
{{- .client1SecretKey | default (printf "federation-%s-secret" (include "federation-manager.client1Id" $)) -}}
{{- else -}}
client1_secret
{{- end -}}
{{- end -}}
{{- end }}

{{- define "federation-manager.client2SecretKey" -}}
{{- with .Values.federationManager.config.keycloak -}}
{{- if .existingSecret -}}
{{- .client2SecretKey | default (printf "federation-%s-secret" (include "federation-manager.client2Id" $)) -}}
{{- else -}}
client2_secret
{{- end -}}
{{- end -}}
{{- end }}

{{/*
Federation Manager labels
*/}}
@@ -140,5 +79,5 @@ app: federation-manager
Namespace
*/}}
{{- define "federation-manager.namespace" -}}
{{- default .Values.global.namespace .Release.Namespace }}
{{- .Release.Namespace }}
{{- end }}
+0 −83
Changes for oop-platform-chart/charts/federation-manager/templates/federation-manager-configmap.yaml: 0 added lines, 83 removed lines.
Original line number Diff line number Diff line
{{- if and .Values.federationManager.enabled (include "federation-manager.authEnabled" .) }}
apiVersion: v1
kind: ConfigMap
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 }}
data:
  config.cfg: |
    [keycloak]
    client1_id = {{ include "federation-manager.client1Id" . }}
    client1_secret = ${CLIENT1_SECRET}
    client2_id = {{ include "federation-manager.client2Id" . }}
    client2_secret = ${CLIENT2_SECRET}
    scope = {{ .Values.federationManager.config.keycloak.scope }}
    host = {{ include "federation-manager.keycloak.host" . }}
    port = {{ include "federation-manager.keycloak.port" . }}
    realm = {{ .Values.federationManager.config.keycloak.realm }}
    issuer = {{ .Values.federationManager.config.keycloak.issuer }}
    audience = {{ include "federation-manager.audience" . }}

    [server]
    host = {{ .Values.federationManager.config.server.host }}
    port = {{ .Values.federationManager.config.server.port }}
    prefix = {{ .Values.federationManager.config.server.prefix }}
    version = {{ .Values.federationManager.config.server.version }}
    protocol = {{ .Values.federationManager.config.server.protocol }}

    [mongodb]
    host = {{ .Values.federationManager.config.mongodb.host }}
    port = {{ .Values.federationManager.config.mongodb.port }}

    [i2edge]
    host = {{ .Values.federationManager.config.i2edge.host }}
    port = {{ .Values.federationManager.config.i2edge.port }}

    [edge_cloud_platform]
    host = {{ .Values.federationManager.config.edgeCloudPlatform.host }}
    port = {{ .Values.federationManager.config.edgeCloudPlatform.port }}
    client_name = {{ .Values.federationManager.config.edgeCloudPlatform.client_name }}
    flavour_id = {{ .Values.federationManager.config.edgeCloudPlatform.flavour_id }}

    [service_resource_manager]
    host = {{ .Values.federationManager.config.serviceResourceManager.host }}
    port = {{ .Values.federationManager.config.serviceResourceManager.port }}
    server = {{ .Values.federationManager.config.serviceResourceManager.server }}

    [artefact_manager]
    host = {{ .Values.federationManager.config.artefactManager.host }}
    port = {{ .Values.federationManager.config.artefactManager.port }}
    enabled = {{ .Values.federationManager.config.artefactManager.enabled }}
    dst_registry = {{ .Values.federationManager.config.artefactManager.dst_registry }}
    dst_username = {{ .Values.federationManager.config.artefactManager.dst_username }}
    dst_password = {{ .Values.federationManager.config.artefactManager.dst_password }}
    dst_token = {{ .Values.federationManager.config.artefactManager.dst_token }}

    [op_data]
    partnerOPFederationId = {{ .Values.federationManager.config.op_data.partnerOPFederationId }}
    partnerOPCountryCode = {{ .Values.federationManager.config.op_data.partnerOPCountryCode }}
    partnerOPMobileNetworkCode_MCC = {{ .Values.federationManager.config.op_data.partnerOPMobileNetworkCode_MCC }}
    partnerOPMobileNetworkCode_MNC = {{ .Values.federationManager.config.op_data.partnerOPMobileNetworkCode_MNC }}
    partnerOPFixedNetworkCode = {{ .Values.federationManager.config.op_data.partnerOPFixedNetworkCode }}
    platformCaps = {{ .Values.federationManager.config.op_data.platformCaps }}
    edgeDiscoveryServiceEndPoint_port = {{ .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_port }}
    edgeDiscoveryServiceEndPoint_fqdn = {{ .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_fqdn }}
    edgeDiscoveryServiceEndPoint_ipv4Addresses = {{ .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_ipv4Addresses }}
    edgeDiscoveryServiceEndPoint_ipv6Addresses = {{ .Values.federationManager.config.op_data.edgeDiscoveryServiceEndPoint_ipv6Addresses }}
    lcmServiceEndPoint_port = {{ .Values.federationManager.config.op_data.lcmServiceEndPoint_port }}
    lcmServiceEndPoint_fqdn = {{ .Values.federationManager.config.op_data.lcmServiceEndPoint_fqdn }}
    lcmServiceEndPoint_ipv4Addresses = {{ .Values.federationManager.config.op_data.lcmServiceEndPoint_ipv4Addresses }}
    lcmServiceEndPoint_ipv6Addresses = {{ .Values.federationManager.config.op_data.lcmServiceEndPoint_ipv6Addresses }}

    [partner_op]
    partner_op_host = {{ .Values.federationManager.config.partner_op.host }}
    partner_op_server = {{ .Values.federationManager.config.partner_op.server }}
    partner_op_port = {{ .Values.federationManager.config.partner_op.port }}
    role = {{ .Values.federationManager.config.partner_op.role }}
{{- end }}
+0 −102
Changes for oop-platform-chart/charts/federation-manager/templates/federation-manager-deployment.yaml: 0 added lines, 102 removed lines.
Original line number Diff line number Diff line
@@ -25,119 +25,17 @@ spec:
        {{- toYaml . | nindent 8 }}
      {{- end }}

      initContainers:
        - name: config-merge
          image: busybox:stable
          imagePullPolicy: IfNotPresent
          command:
            - /bin/sh
            - -c
          args:
            - |
              sed "s|\${CLIENT1_SECRET}|$CLIENT1_SECRET|g; s|\${CLIENT2_SECRET}|$CLIENT2_SECRET|g" \
                /configmap/config.cfg > /work/config.cfg
          env:
            - name: CLIENT1_SECRET
              valueFrom:
                secretKeyRef:
                  name: {{ include "federation-manager.clientSecretName" . }}
                  key: {{ include "federation-manager.client1SecretKey" . }}
            - name: CLIENT2_SECRET
              valueFrom:
                secretKeyRef:
                  name: {{ include "federation-manager.clientSecretName" . }}
                  key: {{ include "federation-manager.client2SecretKey" . }}
          volumeMounts:
            - name: configmap
              mountPath: /configmap
              readOnly: true
            - name: config
              mountPath: /work

      containers:


        - name: federation-manager
          image: "{{ .Values.federationManager.image.repository }}:{{ .Values.federationManager.image.tag }}"
          imagePullPolicy: {{ .Values.federationManager.image.pullPolicy }}
          env:
            - name: FM_CONFIG_FILE
              value: /usr/app/src/conf/config.cfg
            - name: NATS_URL
              value: {{ .Values.federationManager.config.nats.url | quote }}
          ports:
            - name: http
              containerPort: {{ .Values.federationManager.service.targetPort }}
              protocol: TCP
          volumeMounts:
            - name: config
              readOnly: true
              mountPath: /usr/app/src/conf/
          resources:
            {{- toYaml .Values.federationManager.resources | nindent 12 }}

        {{- 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 }}

      volumes:
        - name: config
          emptyDir: {}

        - name: configmap
          configMap:
            name: federation-manager-config
            defaultMode: 420

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

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

{{- end }}
+0 −17
Changes for oop-platform-chart/charts/federation-manager/templates/federation-manager-secret.yaml: 0 added lines, 17 removed lines.
Original line number Diff line number Diff line
{{- if and .Values.federationManager.enabled (include "federation-manager.authEnabled" .) (not .Values.federationManager.config.keycloak.existingSecret) }}
apiVersion: v1
kind: Secret
metadata:
  name: federation-manager-secrets
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    {{- include "federation-manager.fm.labels" . | nindent 4 }}
  {{- with .Values.commonAnnotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
type: Opaque
data:
  client1_secret: {{ required "federationManager.config.keycloak.client1_secret is required unless existingSecret is set" .Values.federationManager.config.keycloak.client1_secret | b64enc }}
  client2_secret: {{ required "federationManager.config.keycloak.client2_secret is required unless existingSecret is set" .Values.federationManager.config.keycloak.client2_secret | b64enc }}
{{- end }}
+0 −34
Changes for oop-platform-chart/charts/federation-manager/templates/mongodb-deployment.yaml: 0 added lines, 34 removed lines.
Original line number Diff line number Diff line
{{- if and .Values.mongodb.enabled (include "federation-manager.authEnabled" .) }}
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Values.mongodb.name }}
  namespace: {{ include "federation-manager.namespace" . }}
  labels:
    app: {{ .Values.mongodb.name }}
spec:
  replicas: 1
  selector:
    matchLabels:
      app: {{ .Values.mongodb.name }}
  template:
    metadata:
      labels:
        app: {{ .Values.mongodb.name }}
    spec:
      containers:
        - name: mongodb
          image: "{{ .Values.mongodb.image.repository }}:{{ .Values.mongodb.image.tag }}"
          imagePullPolicy: {{ .Values.mongodb.image.pullPolicy }}
          ports:
            - containerPort: {{ .Values.mongodb.service.port }}
          resources:
            {{- toYaml .Values.mongodb.resources | nindent 12 }}
          volumeMounts:
            - name: mongo-data
              mountPath: /data/db
      volumes:
        - name: mongo-data
          persistentVolumeClaim:
            claimName: {{ .Values.mongodb.name }}-pvc
{{- end }}
Loading