Commit aa23a6b7 authored by Pantelis Malekas's avatar Pantelis Malekas
Browse files

OCM Hub chart

parent fa2e5f58
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
dependencies:
- name: ziti-edge-tunnel
  repository: https://openziti.io/helm-charts/
  version: 1.5.0
digest: sha256:d0b6068a31a88405c194aabaef966b8bd2068e147fedb613b84202effedfca89
generated: "2026-09-01T14:25:32.639540571Z"
+14 −0
Original line number Diff line number Diff line
apiVersion: v2
name: ocm-hub-chart
description: Helm chart for installing and configuring an Open Cluster Management hub
type: application

version: 0.2.0
appVersion: "latest"


dependencies:
  - name: ziti-edge-tunnel
    version: "1.5.0"
    repository: "https://openziti.io/helm-charts/"
    condition: openziti.enabled
+7.78 KiB

File added.

No diff preview for this file type.

+11 −0
Original line number Diff line number Diff line
{{- define "ocm-hub.name" -}}
{{- .Chart.Name | trunc 63 | trimSuffix "-" }}
{{- end }}

{{- define "ocm-hub.fullname" -}}
{{- if contains .Chart.Name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
+116 −0
Original line number Diff line number Diff line
{{- if .Values.managedClusters }}
apiVersion: batch/v1
kind: CronJob
metadata:
  name: {{ include "ocm-hub.fullname" . }}-accept-clusters
  namespace: {{ .Release.Namespace }}

  labels:
    app.kubernetes.io/name: {{ include "ocm-hub.name" . }}
    app.kubernetes.io/instance: {{ .Release.Name }}

spec:
  schedule: "*/1 * * * *"
  concurrencyPolicy: Forbid

  jobTemplate:
    spec:
      backoffLimit: 1
      activeDeadlineSeconds: 180

      template:
        metadata:
          labels:
            app.kubernetes.io/name: {{ include "ocm-hub.name" . }}
            app.kubernetes.io/instance: {{ .Release.Name }}

        spec:
          restartPolicy: Never
          serviceAccountName: ocm-hub-installer

          containers:
            - name: accept-clusters
              image: alpine:3.22
              imagePullPolicy: IfNotPresent

              command:
                - /bin/sh
                - -ec
                - |
                  echo "======================================"
                  echo "Installing required packages"
                  echo "======================================"

                  apk add --no-cache \
                    curl \
                    bash \
                    ca-certificates

                  echo "======================================"
                  echo "Installing clusteradm"
                  echo "======================================"

                  curl \
                    --fail \
                    --location \
                    --show-error \
                    --connect-timeout 10 \
                    --max-time 120 \
                    https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh \
                    | bash

                  echo "clusteradm version:"
                  clusteradm version

                  echo "======================================"
                  echo "Creating hub kubeconfig"
                  echo "======================================"

                  TOKEN="$(
                    cat /var/run/secrets/kubernetes.io/serviceaccount/token
                  )"

                  cat > /tmp/hub-kubeconfig <<EOF
                  apiVersion: v1
                  kind: Config

                  clusters:
                    - name: hub
                      cluster:
                        server: https://kubernetes.default.svc
                        certificate-authority: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

                  users:
                    - name: installer
                      user:
                        token: ${TOKEN}

                  contexts:
                    - name: hub-context
                      context:
                        cluster: hub
                        user: installer

                  current-context: hub-context
                  EOF

                  echo "======================================"
                  echo "Checking configured managed clusters"
                  echo "======================================"

                  {{- range .Values.managedClusters }}

                  echo "Checking cluster: {{ . }}"

                  clusteradm accept \
                    --clusters "{{ . }}" \
                    --skip-approve-check \
                    --kubeconfig /tmp/hub-kubeconfig \
                    --context hub-context || true

                  {{- end }}

                  echo "======================================"
                  echo "Cluster acceptance check completed"
                  echo "======================================"
{{- end }}
Loading