Compare commits
29 Commits
e2dbf525b3
...
f729a812df
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f729a812df | ||
|
|
0eda7b4ad2 | ||
|
|
e3587553d7 | ||
|
|
4c5dd7ae3d | ||
|
|
ee3048f478 | ||
|
|
179eb7a6dc | ||
|
|
b1103e3136 | ||
|
|
2cedf7f2b9 | ||
|
|
c1a59cb710 | ||
|
|
845ba4ead0 | ||
|
|
001138f965 | ||
|
|
5391a06e24 | ||
|
|
e7b62d426c | ||
|
|
a64bdf2ed0 | ||
|
|
4f5acfc9a6 | ||
|
|
c4754ea41a | ||
|
|
134581bcce | ||
|
|
3f3d99e8d0 | ||
|
|
5e57066ccb | ||
|
|
3e13ddb1cb | ||
|
|
16fcec670e | ||
|
|
c16d485a54 | ||
|
|
cf69895b68 | ||
|
|
e85a70957f | ||
|
|
82e626be39 | ||
|
|
aa4425cf19 | ||
|
|
06b192f780 | ||
| 7c2a40f2ac | |||
|
|
c3068f9693 |
26
catalog-info.yaml
Normal file
26
catalog-info.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Domain
|
||||||
|
metadata:
|
||||||
|
name: dgse-cloud
|
||||||
|
description: "Infrastructure for DGSE Cloud services."
|
||||||
|
spec:
|
||||||
|
owner: dgse-cloud
|
||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Location
|
||||||
|
metadata:
|
||||||
|
name: artemis-cluster
|
||||||
|
description: A collection of all entities running on the Artemis cluster
|
||||||
|
spec:
|
||||||
|
targets:
|
||||||
|
- ./clusters/artemis/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/argocd/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/cnpg/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/digital-garden/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/external-secrets/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/gitea/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/gitea-runners/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/immich/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/mailu/catalog.yaml
|
||||||
|
- ./clusters/artemis/apps/nextcloud/catalog.yaml
|
||||||
18
clusters/artemis/apps/argocd/catalog.yaml
Normal file
18
clusters/artemis/apps/argocd/catalog.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: argocd
|
||||||
|
description: "ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes."
|
||||||
|
links:
|
||||||
|
- url: https://cd.dgse.cloud
|
||||||
|
title: Dashboard
|
||||||
|
icon: dashboard
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: argocd
|
||||||
|
argocd/app-namespace: argocd
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
14
clusters/artemis/apps/cnpg/catalog.yaml
Normal file
14
clusters/artemis/apps/cnpg/catalog.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: cnpg
|
||||||
|
description: "CloudNativePG is a Kubernetes operator that manages PostgreSQL databases in a cloud-native way."
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: cnpg
|
||||||
|
argocd/app-namespace: cnpg-system
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
18
clusters/artemis/apps/digital-garden/catalog.yaml
Normal file
18
clusters/artemis/apps/digital-garden/catalog.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: digital-garden
|
||||||
|
description: "A collection of notes, essays, and other writing that is published on the web."
|
||||||
|
links:
|
||||||
|
- url: https://groothuis.io
|
||||||
|
title: Public Website
|
||||||
|
icon: web
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: digital-garden
|
||||||
|
argocd/app-namespace: digital-garden
|
||||||
|
spec:
|
||||||
|
type: website
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
14
clusters/artemis/apps/external-secrets/catalog.yaml
Normal file
14
clusters/artemis/apps/external-secrets/catalog.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: external-secrets
|
||||||
|
description: "Vault Secrets Operator to sync secrets from Vault to Kubernetes"
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: external-secrets
|
||||||
|
argocd/app-namespace: external-secrets
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
16
clusters/artemis/apps/gitea-runners/catalog.yaml
Normal file
16
clusters/artemis/apps/gitea-runners/catalog.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: gitea-runners
|
||||||
|
description: "Gitea Action Runners"
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: gitea-runners
|
||||||
|
argocd/app-namespace: gitea-runners
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
|
dependencyOf:
|
||||||
|
- component:gitea
|
||||||
20
clusters/artemis/apps/gitea/catalog.yaml
Normal file
20
clusters/artemis/apps/gitea/catalog.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: gitea
|
||||||
|
description: "Self-hosted Git Server"
|
||||||
|
links:
|
||||||
|
- url: https://git.dgse.cloud
|
||||||
|
title: Git Server
|
||||||
|
icon: web
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: gitea
|
||||||
|
argocd/app-namespace: gitea
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
|
dependsOn:
|
||||||
|
- Component:gitea-runners
|
||||||
18
clusters/artemis/apps/immich/catalog.yaml
Normal file
18
clusters/artemis/apps/immich/catalog.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: immich
|
||||||
|
description: "Self-hosted photo and video backup solution directly from your mobile phone."
|
||||||
|
links:
|
||||||
|
- url: https://photos.dgse.cloud
|
||||||
|
title: Git Server
|
||||||
|
icon: web
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: immich
|
||||||
|
argocd/app-namespace: immich
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: AppProject
|
|
||||||
metadata:
|
|
||||||
name: kener
|
|
||||||
spec:
|
|
||||||
description: Monitoring tool
|
|
||||||
sourceRepos:
|
|
||||||
- '*'
|
|
||||||
sourceNamespaces:
|
|
||||||
- '*'
|
|
||||||
destinations:
|
|
||||||
- namespace: 'kener'
|
|
||||||
server: '*'
|
|
||||||
clusterResourceWhitelist:
|
|
||||||
- group: '*'
|
|
||||||
kind: '*'
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
name: kener
|
|
||||||
namespace: kener
|
|
||||||
labels:
|
|
||||||
platform.dgse.cloud/cluster: artemis
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: kener
|
|
||||||
source:
|
|
||||||
repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git'
|
|
||||||
path: manifests/artemis/kener
|
|
||||||
targetRevision: main
|
|
||||||
destination:
|
|
||||||
namespace: kener
|
|
||||||
name: in-cluster
|
|
||||||
syncPolicy:
|
|
||||||
syncOptions:
|
|
||||||
- CreateNamespace=true
|
|
||||||
automated:
|
|
||||||
prune: true
|
|
||||||
selfHeal: true
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
||||||
kind: Kustomization
|
|
||||||
|
|
||||||
resources:
|
|
||||||
- app-project.yaml
|
|
||||||
- application.yaml
|
|
||||||
18
clusters/artemis/apps/mailu/catalog.yaml
Normal file
18
clusters/artemis/apps/mailu/catalog.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: mailu
|
||||||
|
description: "Self-hosted mail server"
|
||||||
|
links:
|
||||||
|
- url: https://mail.dgse.cloud
|
||||||
|
title: Mail Server
|
||||||
|
icon: web
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: mailu
|
||||||
|
argocd/app-namespace: mailu
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
19
clusters/artemis/apps/nextcloud/catalog.yaml
Normal file
19
clusters/artemis/apps/nextcloud/catalog.yaml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: nextcloud
|
||||||
|
description: "Self-hosted photo and video backup solution directly from your mobile phone."
|
||||||
|
links:
|
||||||
|
- url: https://nextcloud.dgse.cloud
|
||||||
|
title: Git Server
|
||||||
|
icon: web
|
||||||
|
annotations:
|
||||||
|
argocd/app-name: nextcloud
|
||||||
|
argocd/app-namespace: nextcloud
|
||||||
|
backstage.io/techdocs-ref: value
|
||||||
|
spec:
|
||||||
|
type: service
|
||||||
|
lifecycle: production
|
||||||
|
owner: owners
|
||||||
|
system: artemis-cluster
|
||||||
9
clusters/artemis/catalog.yaml
Normal file
9
clusters/artemis/catalog.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
apiVersion: backstage.io/v1alpha1
|
||||||
|
kind: System
|
||||||
|
metadata:
|
||||||
|
name: artemis-cluster
|
||||||
|
description: "The Artemis cluster is a Kubernetes cluster hosting all infra for DGSE Cloud."
|
||||||
|
spec:
|
||||||
|
owner: owners
|
||||||
|
domain: dgse-cloud
|
||||||
13
manifests/artemis/argocd/backstage-rbac.yaml
Normal file
13
manifests/artemis/argocd/backstage-rbac.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: backstage-argocd-server-access
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: backstage-argocd
|
||||||
|
namespace: argocd
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: argocd-server
|
||||||
6
manifests/artemis/argocd/backstage-sa.yaml
Normal file
6
manifests/artemis/argocd/backstage-sa.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: backstage-argocd
|
||||||
|
namespace: argocd
|
||||||
@@ -5,9 +5,11 @@ metadata:
|
|||||||
name: argocd
|
name: argocd
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
- github.com/argoproj/argo-cd/manifests/cluster-install?ref=v3.1.9
|
- github.com/argoproj/argo-cd/manifests/cluster-install?ref=v3.2.0
|
||||||
- ingressRoute.yaml
|
- ingressRoute.yaml
|
||||||
- certificate.yaml
|
- certificate.yaml
|
||||||
|
- backstage-sa.yaml
|
||||||
|
- backstage-rbac.yaml
|
||||||
|
|
||||||
patches:
|
patches:
|
||||||
- target:
|
- target:
|
||||||
@@ -45,7 +47,8 @@ patches:
|
|||||||
metadata:
|
metadata:
|
||||||
name: argocd-cm
|
name: argocd-cm
|
||||||
data:
|
data:
|
||||||
admin.enabled: "false"
|
accounts.admin: "apiKey, login"
|
||||||
|
admin.enabled: "true"
|
||||||
kustomize.buildOptions: --enable-helm
|
kustomize.buildOptions: --enable-helm
|
||||||
url: https://cd.dgse.cloud
|
url: https://cd.dgse.cloud
|
||||||
oidc.config: |
|
oidc.config: |
|
||||||
@@ -118,3 +121,23 @@ patches:
|
|||||||
apiGroup: rbac.authorization.k8s.io
|
apiGroup: rbac.authorization.k8s.io
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
name: argocd-server
|
name: argocd-server
|
||||||
|
|
||||||
|
# Map Backstage SA to Argo CD role:admin (full Argo CD permissions)
|
||||||
|
- target:
|
||||||
|
kind: ConfigMap
|
||||||
|
name: argocd-rbac-cm
|
||||||
|
patch: |-
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: argocd-rbac-cm
|
||||||
|
namespace: argocd
|
||||||
|
data:
|
||||||
|
policy.csv: |
|
||||||
|
g, argocd_admins, role:admin
|
||||||
|
p, argocd_users, applications, list, *, allow
|
||||||
|
p, argocd_users, applications, sync, *, allow
|
||||||
|
p, argocd_users, applications, refresh, *, allow
|
||||||
|
p, argocd_users, applications, get, *, allow
|
||||||
|
g, system:serviceaccount:argocd:backstage-argocd, role:admin
|
||||||
|
p, system:serviceaccount:argocd:backstage-argocd, applications, *, */*, allow
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ resources:
|
|||||||
helmCharts:
|
helmCharts:
|
||||||
- name: mailu
|
- name: mailu
|
||||||
repo: https://mailu.github.io/helm-charts/
|
repo: https://mailu.github.io/helm-charts/
|
||||||
version: 2.5.1
|
version: 2.6.0
|
||||||
releaseName: mailu
|
releaseName: mailu
|
||||||
namespace: mailu
|
namespace: mailu
|
||||||
valuesFile: values.yaml
|
valuesFile: values.yaml
|
||||||
|
|||||||
Reference in New Issue
Block a user