Compare commits
29 Commits
4c90239cc7
...
renovate/n
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce434e673a | ||
|
|
3289b293fc | ||
|
|
976d444f39 | ||
|
|
ccb692b891 | ||
|
|
9eb1a81f42 | ||
|
|
70eb7c30c3 | ||
|
|
637d64f2f9 | ||
|
|
94d5da4794 | ||
|
|
224112cc4a | ||
|
|
55902e0276 | ||
|
|
35c5c790e2 | ||
|
|
5b10f582fc | ||
|
|
da9d29fe26 | ||
|
|
bf5f932981 | ||
|
|
fbc1ecacc6 | ||
|
|
43d0002e60 | ||
|
|
ed27f98cc8 | ||
|
|
8cc3b60ee8 | ||
|
|
9855c6ce17 | ||
|
|
e5c1087b94 | ||
|
|
cdbf31d6af | ||
|
|
8c8c2e0ff3 | ||
|
|
ae0d7ae162 | ||
|
|
ccb968f726 | ||
|
|
62ba062784 | ||
|
|
ab72c756f2 | ||
|
|
8e2ee556c1 | ||
|
|
840e744689 | ||
|
|
6eb0bfaea5 |
17
clusters/artemis/apps/grainlab-production/app-project.yaml
Normal file
17
clusters/artemis/apps/grainlab-production/app-project.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: grainlab-production
|
||||
spec:
|
||||
description: GrianLab Production environment
|
||||
sourceRepos:
|
||||
- '*'
|
||||
sourceNamespaces:
|
||||
- '*'
|
||||
destinations:
|
||||
- namespace: 'grainlab-production'
|
||||
server: '*'
|
||||
clusterResourceWhitelist:
|
||||
- group: '*'
|
||||
kind: '*'
|
||||
24
clusters/artemis/apps/grainlab-production/application.yaml
Normal file
24
clusters/artemis/apps/grainlab-production/application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: grainlab-production
|
||||
namespace: grainlab-production
|
||||
labels:
|
||||
platform.dgse.cloud/cluster: artemis
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: grainlab-production
|
||||
source:
|
||||
repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git'
|
||||
path: manifests/artemis/grainlab-production
|
||||
targetRevision: main
|
||||
destination:
|
||||
namespace: grainlab-production
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- app-project.yaml
|
||||
- application.yaml
|
||||
17
clusters/artemis/apps/grainlab-staging/app-project.yaml
Normal file
17
clusters/artemis/apps/grainlab-staging/app-project.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: grainlab-staging
|
||||
spec:
|
||||
description: GrianLab Staging environment
|
||||
sourceRepos:
|
||||
- '*'
|
||||
sourceNamespaces:
|
||||
- '*'
|
||||
destinations:
|
||||
- namespace: 'grainlab-staging'
|
||||
server: '*'
|
||||
clusterResourceWhitelist:
|
||||
- group: '*'
|
||||
kind: '*'
|
||||
24
clusters/artemis/apps/grainlab-staging/application.yaml
Normal file
24
clusters/artemis/apps/grainlab-staging/application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: grainlab-staging
|
||||
namespace: grainlab-staging
|
||||
labels:
|
||||
platform.dgse.cloud/cluster: artemis
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: grainlab-staging
|
||||
source:
|
||||
repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git'
|
||||
path: manifests/artemis/grainlab-staging
|
||||
targetRevision: main
|
||||
destination:
|
||||
namespace: grainlab-staging
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- app-project.yaml
|
||||
- application.yaml
|
||||
17
clusters/artemis/apps/homebox/app-project.yaml
Normal file
17
clusters/artemis/apps/homebox/app-project.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: homebox
|
||||
spec:
|
||||
description: Inventory for the home
|
||||
sourceRepos:
|
||||
- '*'
|
||||
sourceNamespaces:
|
||||
- '*'
|
||||
destinations:
|
||||
- namespace: 'homebox'
|
||||
server: '*'
|
||||
clusterResourceWhitelist:
|
||||
- group: '*'
|
||||
kind: '*'
|
||||
24
clusters/artemis/apps/homebox/application.yaml
Normal file
24
clusters/artemis/apps/homebox/application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: homebox
|
||||
namespace: homebox
|
||||
labels:
|
||||
platform.dgse.cloud/cluster: artemis
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: homebox
|
||||
source:
|
||||
repoURL: 'https://git.dgse.cloud/DGSE/kubernetes.git'
|
||||
path: manifests/artemis/homebox
|
||||
targetRevision: main
|
||||
destination:
|
||||
namespace: homebox
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
7
clusters/artemis/apps/homebox/kustomization.yaml
Normal file
7
clusters/artemis/apps/homebox/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- app-project.yaml
|
||||
- application.yaml
|
||||
@@ -16,4 +16,6 @@ resources:
|
||||
- penpot
|
||||
- immich
|
||||
- digital-garden
|
||||
- kaneo
|
||||
- homebox
|
||||
- grainlab-staging
|
||||
- grainlab-production
|
||||
|
||||
59
manifests/artemis/grainlab-production/app-deployment.yaml
Normal file
59
manifests/artemis/grainlab-production/app-deployment.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-production
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: grainlab
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: grainlab
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-cred
|
||||
containers:
|
||||
- name: grainlab
|
||||
image: ghcr.io/daniel-luke/grainlab:1.1.6
|
||||
imagePullPolicy: Always
|
||||
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: "production"
|
||||
- name: PORT
|
||||
value: "3000"
|
||||
- name: HOST
|
||||
value: "0.0.0.0"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: grainlab-app
|
||||
- secretRef:
|
||||
name: grainlab-database
|
||||
- secretRef:
|
||||
name: grainlab-s3
|
||||
- secretRef:
|
||||
name: grainlab-smtp
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
failureThreshold: 6
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
memory: 512Mi
|
||||
25
manifests/artemis/grainlab-production/app-ingress.yaml
Normal file
25
manifests/artemis/grainlab-production/app-ingress.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-production
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
spec:
|
||||
rules:
|
||||
- host: www.grainlab.app
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: grainlab
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- www.grainlab.app
|
||||
- grainlab.app
|
||||
secretName: letsencrypt
|
||||
11
manifests/artemis/grainlab-production/app-service.yaml
Normal file
11
manifests/artemis/grainlab-production/app-service.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-production
|
||||
spec:
|
||||
selector:
|
||||
app: grainlab
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 3000
|
||||
4
manifests/artemis/grainlab-production/namespace.yaml
Normal file
4
manifests/artemis/grainlab-production/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: grainlab-production
|
||||
24
manifests/artemis/grainlab-production/postgres-cluster.yaml
Normal file
24
manifests/artemis/grainlab-production/postgres-cluster.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: grainlab-db
|
||||
namespace: grainlab-production
|
||||
spec:
|
||||
instances: 1
|
||||
|
||||
bootstrap:
|
||||
initdb:
|
||||
database: grainlab
|
||||
owner: grainlab
|
||||
secret:
|
||||
name: grainlab-db-credentials
|
||||
|
||||
storage:
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
memory: 512Mi
|
||||
26
manifests/artemis/grainlab-production/www-redirect.yaml
Normal file
26
manifests/artemis/grainlab-production/www-redirect.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: www-redirect
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- kind: Rule
|
||||
match: Host(`grainlab.app`)
|
||||
middlewares:
|
||||
- name: redirect-to-www
|
||||
services:
|
||||
- kind: TraefikService
|
||||
name: noop@internal
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: redirect-to-www
|
||||
spec:
|
||||
redirectRegex:
|
||||
permanent: true
|
||||
regex: "^https?://(?:www\\.)?(.+)"
|
||||
replacement: "https://www.${1}"
|
||||
59
manifests/artemis/grainlab-staging/app-deployment.yaml
Normal file
59
manifests/artemis/grainlab-staging/app-deployment.yaml
Normal file
@@ -0,0 +1,59 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-staging
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: grainlab
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: grainlab
|
||||
spec:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-cred
|
||||
containers:
|
||||
- name: grainlab
|
||||
image: ghcr.io/daniel-luke/grainlab:staging
|
||||
imagePullPolicy: Always
|
||||
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
env:
|
||||
- name: NODE_ENV
|
||||
value: "production"
|
||||
- name: PORT
|
||||
value: "3000"
|
||||
- name: HOST
|
||||
value: "0.0.0.0"
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: grainlab-app
|
||||
- secretRef:
|
||||
name: grainlab-database
|
||||
- secretRef:
|
||||
name: grainlab-s3
|
||||
- secretRef:
|
||||
name: grainlab-smtp
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 5
|
||||
failureThreshold: 6
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: 3000
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 10
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
memory: 512Mi
|
||||
24
manifests/artemis/grainlab-staging/app-ingress.yaml
Normal file
24
manifests/artemis/grainlab-staging/app-ingress.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-staging
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
spec:
|
||||
rules:
|
||||
- host: staging.grainlab.app
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: grainlab
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- staging.grainlab.app
|
||||
secretName: letsencrypt
|
||||
11
manifests/artemis/grainlab-staging/app-service.yaml
Normal file
11
manifests/artemis/grainlab-staging/app-service.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: grainlab
|
||||
namespace: grainlab-staging
|
||||
spec:
|
||||
selector:
|
||||
app: grainlab
|
||||
ports:
|
||||
- port: 80
|
||||
targetPort: 3000
|
||||
4
manifests/artemis/grainlab-staging/namespace.yaml
Normal file
4
manifests/artemis/grainlab-staging/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: grainlab-staging
|
||||
24
manifests/artemis/grainlab-staging/postgres-cluster.yaml
Normal file
24
manifests/artemis/grainlab-staging/postgres-cluster.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: grainlab-db
|
||||
namespace: grainlab-staging
|
||||
spec:
|
||||
instances: 1
|
||||
|
||||
bootstrap:
|
||||
initdb:
|
||||
database: grainlab
|
||||
owner: grainlab
|
||||
secret:
|
||||
name: grainlab-db-credentials
|
||||
|
||||
storage:
|
||||
size: 10Gi
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
memory: 512Mi
|
||||
27
manifests/artemis/homebox/deployment.yaml
Normal file
27
manifests/artemis/homebox/deployment.yaml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: homebox
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: homebox
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: homebox
|
||||
spec:
|
||||
containers:
|
||||
- name: homebox
|
||||
image: ghcr.io/sysadminsmedia/homebox:latest
|
||||
ports:
|
||||
- containerPort: 7745
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: homebox-data
|
||||
volumes:
|
||||
- name: homebox-data
|
||||
persistentVolumeClaim:
|
||||
claimName: homebox-pvc
|
||||
23
manifests/artemis/homebox/ingress.yaml
Normal file
23
manifests/artemis/homebox/ingress.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: homebox-ingress
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: letsencrypt
|
||||
spec:
|
||||
rules:
|
||||
- host: inventory.dgse.cloud
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: homebox-svc
|
||||
port:
|
||||
number: 7745
|
||||
tls:
|
||||
- hosts:
|
||||
- inventory.dgse.cloud
|
||||
secretName: letsencrypt
|
||||
9
manifests/artemis/homebox/kustomization.yaml
Normal file
9
manifests/artemis/homebox/kustomization.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
- deployment.yaml
|
||||
- pvc.yaml
|
||||
12
manifests/artemis/homebox/pvc.yaml
Normal file
12
manifests/artemis/homebox/pvc.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: homebox-pvc
|
||||
spec:
|
||||
storageClassName: local-path
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 25Gi
|
||||
12
manifests/artemis/homebox/service.yaml
Normal file
12
manifests/artemis/homebox/service.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: homebox-svc
|
||||
spec:
|
||||
selector:
|
||||
app: homebox
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 7745
|
||||
targetPort: 7745
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: mailu
|
||||
repo: https://mailu.github.io/helm-charts/
|
||||
version: 2.6.3
|
||||
version: 2.1.2
|
||||
releaseName: mailu
|
||||
namespace: mailu
|
||||
valuesFile: values.yaml
|
||||
|
||||
@@ -1350,11 +1350,11 @@ postfix:
|
||||
## my_variable = my_value
|
||||
overrides:
|
||||
postfix.cf: |
|
||||
inet_protocols = ipv4
|
||||
smtp_address_preference = ipv4
|
||||
smtpd_helo_restrictions = reject_unknown_helo_hostname
|
||||
smtpd_sender_restrictions = reject_unknown_sender_domain
|
||||
smtpd_client_restrictions = permit_mynetworks
|
||||
smtp_data_restrictions = reject_unauth_pipelining
|
||||
smtp_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination
|
||||
smtpd_relay_restrictions = permit_sasl_authenticated, reject_unauth_destination
|
||||
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_unauth_destination
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ resources:
|
||||
helmCharts:
|
||||
- name: nextcloud
|
||||
repo: https://nextcloud.github.io/helm/
|
||||
version: 8.5.2
|
||||
version: 9.0.4
|
||||
releaseName: nextcloud
|
||||
namespace: nextcloud
|
||||
valuesFile: values.yaml
|
||||
|
||||
Reference in New Issue
Block a user