Compare commits
52 Commits
7c2a40f2ac
...
renovate/v
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54a4a22408 | ||
| a9dc9a5cb7 | |||
| bbe1014a37 | |||
| 8ffb57e1b7 | |||
| 09961b68f9 | |||
| 1352394ca5 | |||
| 4fd96cf953 | |||
|
|
680e0822a6 | ||
|
|
3c0f9a713d | ||
|
|
f9e156e522 | ||
|
|
5861f677a4 | ||
|
|
aa92ad14ef | ||
|
|
fd2df98297 | ||
|
|
4a17940c9f | ||
|
|
01c5b31cbb | ||
|
|
83a0e6b8ee | ||
|
|
0e40fc2ca4 | ||
|
|
36548f1ec5 | ||
|
|
c8b5e32163 | ||
|
|
14b0561828 | ||
|
|
de8b6e0001 | ||
|
|
e99d6cd772 | ||
| 9201b1ddc1 | |||
|
|
2b31072b1d | ||
|
|
3c9c55b4d3 | ||
|
|
afae9ae15b | ||
|
|
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 |
@@ -7,7 +7,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 📥Checkout
|
||||
uses: actions/checkout@v5
|
||||
uses: actions/checkout@v6
|
||||
- name: 🚀Validating the manifests
|
||||
uses: frenck/action-yamllint@v1.5.0
|
||||
with:
|
||||
|
||||
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
|
||||
@@ -18,3 +18,4 @@ resources:
|
||||
- immich
|
||||
- digital-garden
|
||||
- nextcloud
|
||||
- osx
|
||||
|
||||
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: dir:.
|
||||
spec:
|
||||
type: service
|
||||
lifecycle: production
|
||||
owner: owners
|
||||
system: artemis-cluster
|
||||
@@ -2,15 +2,15 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: kener
|
||||
name: osx
|
||||
spec:
|
||||
description: Monitoring tool
|
||||
description: osx container to proxy shortcuts
|
||||
sourceRepos:
|
||||
- '*'
|
||||
sourceNamespaces:
|
||||
- '*'
|
||||
destinations:
|
||||
- namespace: 'kener'
|
||||
- namespace: 'osx'
|
||||
server: '*'
|
||||
clusterResourceWhitelist:
|
||||
- group: '*'
|
||||
@@ -1,20 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: kener
|
||||
namespace: kener
|
||||
name: osx
|
||||
namespace: osx
|
||||
labels:
|
||||
platform.dgse.cloud/cluster: artemis
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: kener
|
||||
project: osx
|
||||
source:
|
||||
repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git'
|
||||
path: manifests/artemis/kener
|
||||
path: manifests/artemis/osx
|
||||
targetRevision: main
|
||||
destination:
|
||||
namespace: kener
|
||||
namespace: osx
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
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
|
||||
1
docs/index.md
Normal file
1
docs/index.md
Normal file
@@ -0,0 +1 @@
|
||||
# NextCloud
|
||||
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
|
||||
|
||||
resources:
|
||||
- github.com/argoproj/argo-cd/manifests/cluster-install?ref=v3.2.0
|
||||
- github.com/argoproj/argo-cd/manifests/cluster-install?ref=v3.2.2
|
||||
- ingressRoute.yaml
|
||||
- certificate.yaml
|
||||
- backstage-sa.yaml
|
||||
- backstage-rbac.yaml
|
||||
|
||||
patches:
|
||||
- target:
|
||||
@@ -45,7 +47,9 @@ patches:
|
||||
metadata:
|
||||
name: argocd-cm
|
||||
data:
|
||||
admin.enabled: "false"
|
||||
accounts.admin: "apiKey, login"
|
||||
accounts.backstage.enabled: "true"
|
||||
admin.enabled: "true"
|
||||
kustomize.buildOptions: --enable-helm
|
||||
url: https://cd.dgse.cloud
|
||||
oidc.config: |
|
||||
@@ -118,3 +122,23 @@ patches:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
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,6 +10,6 @@ resources:
|
||||
helmCharts:
|
||||
- name: external-secrets
|
||||
repo: https://charts.external-secrets.io/
|
||||
version: 0.20.4
|
||||
version: 1.2.0
|
||||
releaseName: external-secrets
|
||||
namespace: external-secrets
|
||||
|
||||
@@ -12,7 +12,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: immich
|
||||
repo: https://immich-app.github.io/immich-charts
|
||||
version: 0.10.1
|
||||
version: 0.10.3
|
||||
releaseName: immich
|
||||
namespace: immich
|
||||
valuesFile: values.yaml
|
||||
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: mailu
|
||||
repo: https://mailu.github.io/helm-charts/
|
||||
version: 2.1.2
|
||||
version: 2.6.3
|
||||
releaseName: mailu
|
||||
namespace: mailu
|
||||
valuesFile: values.yaml
|
||||
|
||||
@@ -166,7 +166,7 @@ limits:
|
||||
ipv6Mask: 56
|
||||
user: 100/day
|
||||
exemptionLength: 86400
|
||||
exemption: "10.42.0.0/16"
|
||||
exemption: "10.42.4.105"
|
||||
|
||||
# Configuration to reduce outgoing spam in case of a compromised account. See the documentation for further information: https://mailu.io/1.9/configuration.html?highlight=MESSAGE_RATELIMIT
|
||||
## @param limits.messageRatelimit.value Sets the `MESSAGE_RATELIMIT` environment variable in the `admin` pod
|
||||
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: nextcloud
|
||||
repo: https://nextcloud.github.io/helm/
|
||||
version: 8.5.1
|
||||
version: 8.5.2
|
||||
releaseName: nextcloud
|
||||
namespace: nextcloud
|
||||
valuesFile: values.yaml
|
||||
|
||||
58
manifests/artemis/osx/deployment.yaml
Normal file
58
manifests/artemis/osx/deployment.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: macos
|
||||
labels:
|
||||
name: macos
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: macos
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: macos
|
||||
spec:
|
||||
containers:
|
||||
- name: macos
|
||||
image: dockurr/macos
|
||||
env:
|
||||
- name: VERSION
|
||||
value: "14"
|
||||
- name: DISK_SIZE
|
||||
value: "64G"
|
||||
- name: KVM
|
||||
value: "N"
|
||||
ports:
|
||||
- containerPort: 8006
|
||||
name: http
|
||||
protocol: TCP
|
||||
- containerPort: 5900
|
||||
name: vnc
|
||||
protocol: TCP
|
||||
securityContext:
|
||||
capabilities:
|
||||
add:
|
||||
- NET_ADMIN
|
||||
privileged: true
|
||||
volumeMounts:
|
||||
- mountPath: /storage
|
||||
name: storage
|
||||
- mountPath: /dev/kvm
|
||||
name: dev-kvm
|
||||
- mountPath: /dev/net/tun
|
||||
name: dev-tun
|
||||
terminationGracePeriodSeconds: 120
|
||||
volumes:
|
||||
- name: storage
|
||||
persistentVolumeClaim:
|
||||
claimName: macos-pvc
|
||||
- hostPath:
|
||||
path: /dev/kvm
|
||||
name: dev-kvm
|
||||
- hostPath:
|
||||
path: /dev/net/tun
|
||||
type: CharDevice
|
||||
name: dev-tun
|
||||
22
manifests/artemis/osx/ingress.yaml
Normal file
22
manifests/artemis/osx/ingress.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
name: osx-ingress
|
||||
spec:
|
||||
rules:
|
||||
- host: osx.dgse.cloud
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
service:
|
||||
name: macos
|
||||
port:
|
||||
number: 8006
|
||||
path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- osx.dgse.cloud
|
||||
secretName: letsencrypt
|
||||
8
manifests/artemis/osx/kustomization.yaml
Normal file
8
manifests/artemis/osx/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- service.yaml
|
||||
- deployment.yaml
|
||||
- pvc.yaml
|
||||
11
manifests/artemis/osx/pvc.yaml
Normal file
11
manifests/artemis/osx/pvc.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: macos-pvc
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 64Gi
|
||||
19
manifests/artemis/osx/service.yaml
Normal file
19
manifests/artemis/osx/service.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: macos
|
||||
spec:
|
||||
internalTrafficPolicy: Cluster
|
||||
ports:
|
||||
- name: http
|
||||
port: 8006
|
||||
protocol: TCP
|
||||
targetPort: 8006
|
||||
- name: vnc
|
||||
port: 5900
|
||||
protocol: TCP
|
||||
targetPort: 5900
|
||||
selector:
|
||||
app: macos
|
||||
type: ClusterIP
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: penpot
|
||||
repo: http://helm.penpot.app
|
||||
version: 0.28.0
|
||||
version: 0.30.0
|
||||
releaseName: penpot
|
||||
namespace: penpot
|
||||
valuesFile: values.yaml
|
||||
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: vault
|
||||
repo: https://helm.releases.hashicorp.com/
|
||||
version: 0.31.0
|
||||
version: 0.32.0
|
||||
releaseName: vault
|
||||
namespace: vault
|
||||
valuesFile: values.yaml
|
||||
|
||||
7
mkdocs.yaml
Normal file
7
mkdocs.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
site_name: "Nextcloud"
|
||||
site_description: "Self-hosted file hosting service"
|
||||
nav:
|
||||
- Introduction: index.md
|
||||
plugins:
|
||||
- techdocs-core
|
||||
Reference in New Issue
Block a user