From 6feea89ec18da03c7831fc351c38614ffe55c0bf Mon Sep 17 00:00:00 2001 From: rblundon Date: Sun, 27 Jul 2025 18:36:13 -0500 Subject: [PATCH] add lightspeed to internal cluster --- .../openshift-lightspeed-operator-appset.yaml | 40 +++++++++++++++++++ .../base/externalsecrets.yaml | 17 ++++++++ .../base/kustomization.yaml | 15 +++++++ .../base/namespace.yaml | 15 +++++++ .../base/olsconfig.yaml | 20 ++++++++++ .../base/operatorgroup.yaml | 8 ++++ .../base/subscription.yaml | 14 +++++++ .../overlays/in-cluster/kustomization.yaml | 8 ++++ .../overlays/internal/kustomization.yaml | 8 ++++ 9 files changed, 145 insertions(+) create mode 100644 cluster/openshift-lightspeed-operator-appset.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/externalsecrets.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/kustomization.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/namespace.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/olsconfig.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/operatorgroup.yaml create mode 100644 cluster/openshift-lightspeed-operator/base/subscription.yaml create mode 100644 cluster/openshift-lightspeed-operator/overlays/in-cluster/kustomization.yaml create mode 100644 cluster/openshift-lightspeed-operator/overlays/internal/kustomization.yaml diff --git a/cluster/openshift-lightspeed-operator-appset.yaml b/cluster/openshift-lightspeed-operator-appset.yaml new file mode 100644 index 0000000..cd4c632 --- /dev/null +++ b/cluster/openshift-lightspeed-operator-appset.yaml @@ -0,0 +1,40 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: lightspeed-operator + namespace: openshift-gitops + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + goTemplate: true + goTemplateOptions: ["missingkey=error"] + generators: + - clusters: + selector: + matchLabels: + name: "internal" + template: + metadata: + name: '{{.name}}-openshift-lightspeed' + annotations: +     argocd.argoproj.io/sync-wave: "2" + spec: + project: default + source: + repoURL: https://github.com/rblundon/homelab.git + targetRevision: HEAD + path: cluster/openshift-lightspeed-operator/overlays/{{.name}} + destination: + name: '{{.name}}' + namespace: openshift-lightspeed + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - RespectIgnoreDifferences=true + - CreateNamespace=true + managedNamespaceMetadata: + labels: + argocd.argoproj.io/managed-by: openshift-gitops diff --git a/cluster/openshift-lightspeed-operator/base/externalsecrets.yaml b/cluster/openshift-lightspeed-operator/base/externalsecrets.yaml new file mode 100644 index 0000000..77457ed --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/externalsecrets.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: credentials # This is the secret name + namespace: openshift-lightspeed + annotations: + argocd.argoproj.io/sync-wave: "4" +spec: + secretStoreRef: + kind: ClusterSecretStore + name: doppler-cluster + refreshInterval: "1h" + data: + - secretKey: apitoken + remoteRef: + key: OPENAI_TOKEN diff --git a/cluster/openshift-lightspeed-operator/base/kustomization.yaml b/cluster/openshift-lightspeed-operator/base/kustomization.yaml new file mode 100644 index 0000000..167f4e0 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/kustomization.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +# Operator deployment +- namespace.yaml +- operatorgroup.yaml +- subscription.yaml +- externalsecrets.yaml +# Deploy cluster resources +- olsconfig.yaml diff --git a/cluster/openshift-lightspeed-operator/base/namespace.yaml b/cluster/openshift-lightspeed-operator/base/namespace.yaml new file mode 100644 index 0000000..00b94af --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/namespace.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + annotations: + argocd.argoproj.io/sync-wave: "1" + labels: + kubernetes.io/metadata.name: openshift-lightspeed + name: openshift-lightspeed + argocd.argoproj.io/managed-by: openshift-gitops-operator + openshift.io/cluster-monitoring: 'true' + name: openshift-lightspeed +spec: + finalizers: + - kubernetes \ No newline at end of file diff --git a/cluster/openshift-lightspeed-operator/base/olsconfig.yaml b/cluster/openshift-lightspeed-operator/base/olsconfig.yaml new file mode 100644 index 0000000..2080ba8 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/olsconfig.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: ols.openshift.io/v1alpha1 +kind: OLSConfig +metadata: + name: cluster + annotations: + argocd.argoproj.io/sync-wave: "5" +spec: + llm: + providers: + - name: myOpenai + type: openai + credentialsSecretRef: + name: credentials + url: https://api.openai.com/v1 + models: + - name: gpt-3.5-turbo + ols: + defaultModel: gpt-3.5-turbo + defaultProvider: myOpenai \ No newline at end of file diff --git a/cluster/openshift-lightspeed-operator/base/operatorgroup.yaml b/cluster/openshift-lightspeed-operator/base/operatorgroup.yaml new file mode 100644 index 0000000..d79e2e4 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/operatorgroup.yaml @@ -0,0 +1,8 @@ +--- +apiVersion: operators.coreos.com/v1 +kind: OperatorGroup +metadata: + name: openshift-lightspeed-operator + namespace: openshift-lightspeed + annotations: + argocd.argoproj.io/sync-wave: "2" diff --git a/cluster/openshift-lightspeed-operator/base/subscription.yaml b/cluster/openshift-lightspeed-operator/base/subscription.yaml new file mode 100644 index 0000000..036bcc6 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/base/subscription.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: Subscription +metadata: + name: lightspeed-operator + namespace: openshift-lightspeed + annotations: + argocd.argoproj.io/sync-wave: "3" +spec: + channel: stable + installPlanApproval: Automatic #Manual + name: lightspeed-operator + source: redhat-operators + sourceNamespace: openshift-marketplace diff --git a/cluster/openshift-lightspeed-operator/overlays/in-cluster/kustomization.yaml b/cluster/openshift-lightspeed-operator/overlays/in-cluster/kustomization.yaml new file mode 100644 index 0000000..03b3cd4 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/overlays/in-cluster/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +- ../../base \ No newline at end of file diff --git a/cluster/openshift-lightspeed-operator/overlays/internal/kustomization.yaml b/cluster/openshift-lightspeed-operator/overlays/internal/kustomization.yaml new file mode 100644 index 0000000..03b3cd4 --- /dev/null +++ b/cluster/openshift-lightspeed-operator/overlays/internal/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +commonAnnotations: + argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true + +resources: +- ../../base \ No newline at end of file