diff --git a/clusters/artemis/apps/backstage/app-project.yaml b/clusters/artemis/apps/backstage/app-project.yaml new file mode 100644 index 0000000..deb5ec0 --- /dev/null +++ b/clusters/artemis/apps/backstage/app-project.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: backstage +spec: + description: Developer Portal + sourceRepos: + - '*' + sourceNamespaces: + - '*' + destinations: + - namespace: 'backstage' + server: '*' + clusterResourceWhitelist: + - group: '*' + kind: '*' diff --git a/clusters/artemis/apps/backstage/application.yaml b/clusters/artemis/apps/backstage/application.yaml new file mode 100644 index 0000000..74661c7 --- /dev/null +++ b/clusters/artemis/apps/backstage/application.yaml @@ -0,0 +1,24 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: backstage + namespace: backstage + labels: + platform.dgse.cloud/cluster: artemis + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: backstage + source: + repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git' + path: manifests/artemis/backstage + targetRevision: main + destination: + namespace: backstage + name: in-cluster + syncPolicy: + syncOptions: + - CreateNamespace=true + automated: + prune: true + selfHeal: true diff --git a/clusters/artemis/apps/backstage/kustomization.yaml b/clusters/artemis/apps/backstage/kustomization.yaml new file mode 100644 index 0000000..f9b2a4b --- /dev/null +++ b/clusters/artemis/apps/backstage/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - app-project.yaml + - application.yaml diff --git a/clusters/artemis/apps/kustomization.yaml b/clusters/artemis/apps/kustomization.yaml index 32553fb..a157444 100644 --- a/clusters/artemis/apps/kustomization.yaml +++ b/clusters/artemis/apps/kustomization.yaml @@ -16,3 +16,4 @@ resources: - ntfy - penpot - immich + - backstage diff --git a/manifests/artemis/backstage/db-cluster.yaml b/manifests/artemis/backstage/db-cluster.yaml new file mode 100644 index 0000000..495ecea --- /dev/null +++ b/manifests/artemis/backstage/db-cluster.yaml @@ -0,0 +1,23 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: backstage-postgres + namespace: backstage +spec: + imageName: ghcr.io/tensorchord/cloudnative-pgvecto.rs:16.5-v0.3.0@sha256:be3f025d79aa1b747817f478e07e71be43236e14d00d8a9eb3914146245035ba + instances: 1 + managed: + roles: + - name: backstage + superuser: true + login: true + bootstrap: + initdb: + database: backstage + owner: backstage + secret: + name: backstage-postgres-user + + storage: + size: 2Gi + storageClass: local-path diff --git a/manifests/artemis/backstage/kustomization.yaml b/manifests/artemis/backstage/kustomization.yaml new file mode 100644 index 0000000..da0779c --- /dev/null +++ b/manifests/artemis/backstage/kustomization.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +metadata: + name: backstage + +resources: + - secret.yaml + - db-cluster.yaml diff --git a/manifests/artemis/backstage/secret.yaml b/manifests/artemis/backstage/secret.yaml new file mode 100644 index 0000000..b0846e6 --- /dev/null +++ b/manifests/artemis/backstage/secret.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: backstage +spec: + refreshInterval: 1h + secretStoreRef: + name: platform + kind: ClusterSecretStore + target: + name: backstage-postgres-user + data: + - secretKey: DB_USERNAME + remoteRef: + key: backstage/db + property: DB_USERNAME + - secretKey: DB_DATABASE_NAME + remoteRef: + key: backstage/db + property: DB_DATABASE_NAME + - secretKey: DB_PASSWORD + remoteRef: + key: backstage/db + property: DB_PASSWORD + - secretKey: username + remoteRef: + key: backstage/db + property: username + - secretKey: password + remoteRef: + key: backstage/db + property: password