mirror of
https://github.com/optim-enterprises-bv/homelab.git
synced 2025-10-30 17:37:59 +00:00
feat(homepage): add homepage and blog
Add Vue Homepage, Hugo blog and Remark 42 for comments
This commit is contained in:
34
remodel/k8s/apps/homepage/application-set.yaml
Normal file
34
remodel/k8s/apps/homepage/application-set.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: ApplicationSet
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: argocd
|
||||
labels:
|
||||
dev.stonegarden: application
|
||||
spec:
|
||||
generators:
|
||||
- git:
|
||||
repoURL: https://github.com/vehagn/homelab
|
||||
revision: remodel
|
||||
directories:
|
||||
- path: remodel/k8s/apps/homepage/*
|
||||
template:
|
||||
metadata:
|
||||
name: '{{ path.basename }}'
|
||||
labels:
|
||||
dev.stonegarden: application
|
||||
finalizers:
|
||||
- resources-finalizer.argocd.argoproj.io
|
||||
spec:
|
||||
project: homepage
|
||||
source:
|
||||
repoURL: https://github.com/vehagn/homelab
|
||||
targetRevision: remodel
|
||||
path: '{{ path }}'
|
||||
destination:
|
||||
name: in-cluster
|
||||
namespace: argocd
|
||||
syncPolicy:
|
||||
automated:
|
||||
selfHeal: true
|
||||
prune: true
|
||||
48
remodel/k8s/apps/homepage/blog/hugo/deployment.yaml
Normal file
48
remodel/k8s/apps/homepage/blog/hugo/deployment.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: hugo
|
||||
namespace: blog
|
||||
labels:
|
||||
app: hugo
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: hugo
|
||||
template:
|
||||
metadata:
|
||||
namespace: blog
|
||||
labels:
|
||||
app: hugo
|
||||
spec:
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
runAsGroup: 65534
|
||||
fsGroup: 65534
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
containers:
|
||||
- name: hugo
|
||||
image: registry.gitlab.com/vehagn/blog
|
||||
imagePullPolicy: Always
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: hugo-env
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 128Mi
|
||||
19
remodel/k8s/apps/homepage/blog/hugo/http-route.yaml
Normal file
19
remodel/k8s/apps/homepage/blog/hugo/http-route.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: hugo-http-route
|
||||
namespace: blog
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: euclid
|
||||
namespace: gateway
|
||||
hostnames:
|
||||
- "blog.euclid.stonegarden.dev"
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- name: hugo
|
||||
port: 80
|
||||
15
remodel/k8s/apps/homepage/blog/hugo/kustomization.yaml
Normal file
15
remodel/k8s/apps/homepage/blog/hugo/kustomization.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
configMapGenerator:
|
||||
- name: hugo-env
|
||||
namespace: blog
|
||||
literals:
|
||||
- TZ=Europe/Oslo
|
||||
- SERVER_LOG_LEVEL=warn
|
||||
- SERVER_PORT=8080
|
||||
|
||||
resources:
|
||||
- svc.yaml
|
||||
- deployment.yaml
|
||||
- http-route.yaml
|
||||
12
remodel/k8s/apps/homepage/blog/hugo/svc.yaml
Normal file
12
remodel/k8s/apps/homepage/blog/hugo/svc.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: hugo
|
||||
namespace: blog
|
||||
spec:
|
||||
selector:
|
||||
app: hugo
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: http
|
||||
7
remodel/k8s/apps/homepage/blog/kustomization.yaml
Normal file
7
remodel/k8s/apps/homepage/blog/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- ns.yaml
|
||||
- hugo
|
||||
- remark42
|
||||
4
remodel/k8s/apps/homepage/blog/ns.yaml
Normal file
4
remodel/k8s/apps/homepage/blog/ns.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: blog
|
||||
63
remodel/k8s/apps/homepage/blog/remark42/deployment.yaml
Normal file
63
remodel/k8s/apps/homepage/blog/remark42/deployment.yaml
Normal file
@@ -0,0 +1,63 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: remark42
|
||||
namespace: blog
|
||||
labels:
|
||||
app: remark42
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: remark42
|
||||
strategy:
|
||||
type: Recreate
|
||||
template:
|
||||
metadata:
|
||||
namespace: remark42
|
||||
labels:
|
||||
app: remark42
|
||||
spec:
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
runAsGroup: 65534
|
||||
fsGroup: 65534
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
containers:
|
||||
- name: remark42
|
||||
image: umputun/remark42:v1.12.1
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: remark42-env
|
||||
- secretRef:
|
||||
name: remark42-secret
|
||||
- secretRef:
|
||||
name: remark42-github
|
||||
- secretRef:
|
||||
name: remark42-google
|
||||
volumeMounts:
|
||||
- name: remark42
|
||||
mountPath: /srv/var
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 128Mi
|
||||
volumes:
|
||||
- name: remark42
|
||||
persistentVolumeClaim:
|
||||
claimName: remark42
|
||||
|
||||
19
remodel/k8s/apps/homepage/blog/remark42/http-route.yaml
Normal file
19
remodel/k8s/apps/homepage/blog/remark42/http-route.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: remark42-http-route
|
||||
namespace: blog
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: euclid
|
||||
namespace: gateway
|
||||
hostnames:
|
||||
- "remark42.euclid.stonegarden.dev"
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- name: remark42
|
||||
port: 80
|
||||
19
remodel/k8s/apps/homepage/blog/remark42/kustomization.yaml
Normal file
19
remodel/k8s/apps/homepage/blog/remark42/kustomization.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
configMapGenerator:
|
||||
- name: remark42-env
|
||||
namespace: blog
|
||||
literals:
|
||||
- TIME_ZONE=Europe/Oslo
|
||||
- REMARK_URL=https://remark42.euclid.stonegarden.dev
|
||||
- SITE=stonegarden.dev
|
||||
|
||||
resources:
|
||||
- svc.yaml
|
||||
- pvc.yaml
|
||||
- secret-github.yaml
|
||||
- secret-google.yaml
|
||||
- secret-remark42.yaml
|
||||
- deployment.yaml
|
||||
- http-route.yaml
|
||||
13
remodel/k8s/apps/homepage/blog/remark42/pvc.yaml
Normal file
13
remodel/k8s/apps/homepage/blog/remark42/pvc.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: remark42
|
||||
namespace: blog
|
||||
spec:
|
||||
storageClassName: proxmox-csi
|
||||
volumeName: pv-remark42
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1G
|
||||
14
remodel/k8s/apps/homepage/blog/remark42/secret-github.yaml
Normal file
14
remodel/k8s/apps/homepage/blog/remark42/secret-github.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
name: remark42-github
|
||||
namespace: blog
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: remark42-github
|
||||
namespace: blog
|
||||
type: Opaque
|
||||
encryptedData:
|
||||
AUTH_GITHUB_CID: AgCXAD8duSmHjp2yvx+vLBhzTDj6t1Qi+H7IreCMX4jcIbNYRvcuPl5/QqklNAqsx9depqK2tdiGpm/OlKPvhcaspndiFEGpMPh4II+NM7LojM547f+tJGGd03zQO3x4pHMnQLgE4JOhq4zDU+YSZT/g8MVDZmQuw+XHZfLH+6TpvfVrgqsH74ylWol7e6LpXo+qfv64GODN2s6PJwEXgLUYB5EcukqFz3fuHOtbaz1EbgfwznNU2n3UW7mXg712zg05CZ/JN+6zPgDXV+9sQyk9UBmy5zSka9WJISNPI5akXR5nyRLYOfGmv0J2KuAcnbIUVpkUpqAoWBy1dO2PvwWxyvc+ME8F+ZgHPajqAHx9oB7F5BoSCYUsRr/fVgGby+A9qld7Rio8LoMMEKS8fe6A9TMDPkXOyil4WuvtcQuFlfssCAHfg2bjP05TblnMIPxsQEjDh1iqj+eKE8Kmka/uX7yR7MKJxhU7prCN/kpWbWGbZIR4ECl6R1xB8MJdN6I+VG9Ipv59NeeDGUo5UZvj8/DtHvc+67fGQV3oOiBUinYxiByLDrRjacipk3oCIe14j7yclzj/rXaHaJvGpySXQrx/BTfisUuCoLpENCr7bTT2PDsK4H5vfUoo/SG8c65dlrQuF91C3ILeS0ZZMKsa90U4+OkSDZw+2O5QO+5IXWIbztI8RAPq+DrlkcQJTg+Z2Duah1A4q0JVANamiFNLUM4GkA==
|
||||
AUTH_GITHUB_CSEC: AgCPS02vJBCvE3OvNOWg7jWXTYqPEEibShhDc+RnhORY5o3GZ0IFpaflsGEJo4dNObNFhlaMZuZp1IZ9XceFqebX65CjwtM7HfHCgLRPI4Y2x5dmUcK0RnDtqbQsc1ecr5A3A10kMYTxa8gzPkEMM/R/pb/6/hOY4CO2DgvPP6386eyrKDL41hRAXQHJm/tceg7Nq0GRRFG+kA51VeVmQavAejeyyqgatYlOkz6wiZOs4bdNRyUbA2IuidQJaivfwcFWu8+vNw73RNQBZEkw938xQPoDvcbSt1tlSm3g6oMwTrUgrcQaiKv9g1MgfgKDq6MMLQSIjB1zYse8927r7668Robtd80wkwZPdOhUdYpmOHI4uSS9x6mxqaNlTjTxeg1bjgULTKl9NAeY9djpjJRDaMGnyZhAcsnsY15MWlTlX6SazrtvYdFlkDEnUbA5ahQBltV6pFr4RE9eoi16tsKRQFKGWnLx3vZo7zNpQKbxcFHoY64swXGNNgFCg3xIFeXsuu3CeQkDnC6mwjfXZOjc6B2T25sgnPCnPT3IRi0UDlwAO1mCO+gikDta4WyP+uPQ0frhkt5nezJQc8Y/mgCLjANvIY1zeP3k2StndOS5fefB+56iBLNPxABMQxXwjNacZ+/ONwe5lDb4fpY/2EGxR4nACY+7wPbE2YPFzLv/gAYoBbxus1muSF3l4Is25r5urJE6Th3RHtCMS+VSA/4WYxxRN4ctvkmUAJ9nfzM0YrwIwXJtCW0l
|
||||
14
remodel/k8s/apps/homepage/blog/remark42/secret-google.yaml
Normal file
14
remodel/k8s/apps/homepage/blog/remark42/secret-google.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
name: remark42-google
|
||||
namespace: blog
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: remark42-google
|
||||
namespace: blog
|
||||
type: Opaque
|
||||
encryptedData:
|
||||
AUTH_GOOGLE_CID: AgAa1H8GiVeeW1IfzSa8IgqmgdH7FOJBJ+ymfXTLjzuXSc38WaqegeY2PFL+ekE4fGTozBE5aNK1tgVL6oL4ir+bAZD04FKUkQAlvwQtvX8ROPhn6+bV3YS1041rxKDn11e/S5GC2cEzYmtqI2VH/TOPuEbm74FTwcMvi/SImDWWsxT6RzpBoGhQf7mSFLLkRXibhO67iWnvI+/v7KEFIxuhb6t5BCmRc8tq3PVJZX1CSMXoxbo0S5xIHK0BO2Ruy6wyUKNDGS192E4a2fueM/Iyf3+DmC0jbw18W18BvwiA8aS5tSp9xOJ+qkK1qsowhi6QubOKK6yuQAEPxczp7J3LhrdZ2zfQkHIl7mR6sTjrGM8i9GFgxOcUdTsP5Rr/x+okjPgezMpoTKuVUfdZ9ide9nCHVWELRp5YQUPWk7sWskuYepfMvI/x6M62NuWGJWATy4tfBSB/psCi9amJXwL4akb6NKzzsjHcTtRnL6wpLRlLrNyN7kCtfLg8qOjxovLzEWydJznRnAs9v8gqjlUD7U7kh+k+9Nc1Rqrn8WEfb1lPHtUgoB0G+4SCzeYqHqBOgjN6RIXP4y74wSB72aN8ZFzpbfCbMlSU9gMFN+alQ0GoWGTQ4mlkuy6t8rV+C7joM/KXdvBVQ/nARyXgyde5Uoh1E8gKYaZXAFCaZySdUCznwdm1Ue+q2X33Pobf4Gqpuu9WxKWENphPs2c6iS2yMw6T4mPU4yyLunipLqRrXf4VQMiwxD1YP1QK7ZkeCkoMQOqS6pOKDFaP4u/NVAxANH2otoha5VM=
|
||||
AUTH_GOOGLE_CSEC: AgB5ZOQUZgptMzvi3IR+XWq6a2FA5NeBg8kxEJBbRhtRRevoQ0p+puHtyT1skX9t4rhdFgRKpJPuEAzus63t4mrv9PPJ9l3XXvmztFsXLTpJdDWXoskaFD9kks+BJzlS6kCFYmLnljm5E3rHk1B1ImrePus1YtMbjOev8Arzxkks2EqFW9k88LpXsgVyya2ueUNvCdE6LmSjIKa9W33+Tm5qgoNYbXY6zAaMQzhiN2PA46oHBccabxKSzVbdaDj7Xz3IAzb5TF7GSQlHCClU3p0hgBninL9nuuVyICH2I+5m0Vv9LnmJ+CItkA/8FZNbxUX4Z7ZMaG9gl3jAtBJqbz54KeTCgOz9HZarEI5EepWKom0VqBY8/05BqMQz1om7Y7FlCx5lZ6FjnJVBD2cGc/g7q824Q1X8POQnh46gnLySd2FCOSv38QoJjdkzdMjT61LTqSnPT7R8ZE0+lMCkmBopsBs8DbuM5/YxjFUzsVj9zs5mq/EWl5G835l+aHXkQWOmlE9UOiD7nPWQX58sL8QZdt0Maj/Q84CMHWS1ZWtV+lmA98XnT5oHwE9GL3SNCVWW33Ld6KQlxPyuMol0PsiNySJVzu+yX2S/BzMrmcrgLqAiZvI5dXX5RfUE3uQmyekxMPYh9B5BBmr9SS3WB0o5kEdEF4stt1UhWRj/Sazdh5TWJ8NP6brkS+CXhX9RA9pAW3wvFAPUbu7w+Be/cRm4wJpm8J6ekm+4PIKUVoE5J7EnIw==
|
||||
14
remodel/k8s/apps/homepage/blog/remark42/secret-remark42.yaml
Normal file
14
remodel/k8s/apps/homepage/blog/remark42/secret-remark42.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
name: remark42-secret
|
||||
namespace: blog
|
||||
spec:
|
||||
template:
|
||||
metadata:
|
||||
name: remark42-secret
|
||||
namespace: blog
|
||||
type: Opaque
|
||||
encryptedData:
|
||||
ADMIN_SHARED_ID: AgB/aNJf9wbGvxZjqooeNaCTGSSi+Mq9ihYlI8bnendht9BRpT1Kil2x9S+J1FSnzpW0xYFjCM6wYPUxBFU8G+/vU7ZdmUHUt+ID/aHDju5HmL28OIMdgijJBK0KXXs+qZGM5TzYl7nu4fUAc/qM0S4dGket6Sfb8haJEW3DOpgJ1LqGptaAhHwHLdT91qjkGSw/vEK9GtQFVbcF6q+O699gXKY52u+D8JrfItp+LIOqhcpDnGA7R9alwCBOtsw0cFxUTyYTojlmU4EKggqgzP0vssLYBiv9Du8k0IUUZw8lU/lsOVTR8xJB0ZdeIB6tSwUO+T1WhmTzv0MoJM2picujHVdfWMXA2SGPVnAFCXqopnqXpFLv/oDGgqDAV8PxAO3HlyYV3+yir6LnurEZgtSoyVG5RErJRLwsjZthfAUeJyl/uo7fSQQ1bFRIUaMk/8qmxOv/h0EiDg/nWZlJaD3Bdi+xGt8m+SpzUQitsEPR98L8ccRPyKDRUGp37+JbPDQzYxLnLwmvb1GLcNkApvpGD/IimlHLMM9M5HiMILUEoJL7KU5BX5epgSA5T2VVrdLu00kjQK5f8iRGXUWc4R8/t+BFPgm0PIu2aUeC1p59Gk82gVL8uTI8CBehjWeRvhtVFl/U4fqpyvgKy6hrAu89Bs+WrJ7YdwYs9CJfQ87WTaSW+b2z6YBcOTbFrtbd1hvDSypr9O+L4FxorvB78F7K7ixiaugCreFWX1x85J2tzVl8Aal+JQXezszXMuCJ4Oeqe2Aykvr1SXek/jdEdbXUb0tIvwZWOEdvXD4a+g6i/5v2iEhWk1suEwdEBRpW7Q==
|
||||
SECRET: AgAINe0r/Bk3kMdrMba/+kCiMsAuNE5OIptTnmzBlZfpTWuAo9ozKRVBBvo+/zGDmlETQMlq4C1MsrvcPHXnJols8DCfufMVuIyMWosxzhVOiApoEc6MGwy6QfgI19AbliBes5fCTqGHc39WKg+UA64OkEl5H+LtMezPC6EGnezL7sD5rrc3Vqdi7x/XfrwBI6xJ044aE8wRH6syuH1Py2FPdn8Y07DaV2Wuz9jNIhhjNQdDy80G+q6GHYKi0PsMe8zdLyd9rCxWmMk6SW8pyjTf2xn48Tp1ep9zfauhCnUQWDwPTz3JWe6GmPpTAH+xKDk5Glhyl6h0E/ScQJzdhUKcfh0idw8yALnzQhYPRQD4g/CcBXeu7DGURw8TM4VpwFPQAHVDfD2qvqfEaVoXCZkLpPGTotj8wr7MnB1nK8Ibcj4KbgGqIM6SlCS/AmlpmIBWlEQrAPYF9Hj/JR74+F43HZrwx2Ux8/8GBJCYlBgX9QAqrfffIBsDH89PPXyJgwTK3T1PMrRFRf7fx71NmOFogy7cBgiYYMka0VmCtDLvUfegO1KcQ1rjaNYkLai48u/CP/7Nyvz6LrF1tXe6w0AoEgRMGGZpB9InoF+5Xo8ZL9eZcz6dKyO1tUbIIEE5xbU7dGruWfcDh2upGAjbKQDcnZE+RaWallxaX+jfubwTh8G0Vah9wxt08ifTzF7R0AnAahS/8JQuo4R+kylczMNMTelOaelIN9Obx82JQBiAGrPTmXPW2RYr
|
||||
12
remodel/k8s/apps/homepage/blog/remark42/svc.yaml
Normal file
12
remodel/k8s/apps/homepage/blog/remark42/svc.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: remark42
|
||||
namespace: blog
|
||||
spec:
|
||||
selector:
|
||||
app: remark42
|
||||
ports:
|
||||
- name: web
|
||||
port: 80
|
||||
targetPort: http
|
||||
10
remodel/k8s/apps/homepage/kustomization.yaml
Normal file
10
remodel/k8s/apps/homepage/kustomization.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: argocd
|
||||
commonLabels:
|
||||
dev.stonegarden: app-management
|
||||
app.kubernetes.io/managed-by: argocd
|
||||
|
||||
resources:
|
||||
- project.yaml
|
||||
- application-set.yaml
|
||||
18
remodel/k8s/apps/homepage/project.yaml
Normal file
18
remodel/k8s/apps/homepage/project.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: AppProject
|
||||
metadata:
|
||||
name: homepage
|
||||
namespace: argocd
|
||||
spec:
|
||||
sourceRepos:
|
||||
- 'https://github.com/vehagn/homelab'
|
||||
destinations:
|
||||
- namespace: 'argocd'
|
||||
server: '*'
|
||||
- namespace: 'blog'
|
||||
server: '*'
|
||||
- namespace: 'stonegarden'
|
||||
server: '*'
|
||||
clusterResourceWhitelist:
|
||||
- group: '*'
|
||||
kind: '*'
|
||||
36
remodel/k8s/apps/homepage/stonegarden/deployment.yaml
Normal file
36
remodel/k8s/apps/homepage/stonegarden/deployment.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: stonegarden
|
||||
namespace: stonegarden
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: stonegarden
|
||||
template:
|
||||
metadata:
|
||||
namespace: stonegarden
|
||||
labels:
|
||||
app: stonegarden
|
||||
spec:
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 65534
|
||||
runAsGroup: 65534
|
||||
fsGroup: 65534
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
containers:
|
||||
- name: stonegarden
|
||||
image: registry.gitlab.com/vehagn/stonegarden:latest
|
||||
imagePullPolicy: Always
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
capabilities:
|
||||
drop: [ "ALL" ]
|
||||
ports:
|
||||
- name: web
|
||||
containerPort: 3000
|
||||
19
remodel/k8s/apps/homepage/stonegarden/http-route.yaml
Normal file
19
remodel/k8s/apps/homepage/stonegarden/http-route.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: stonegarden
|
||||
namespace: stonegarden
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: stonegarden
|
||||
namespace: gateway
|
||||
hostnames:
|
||||
- "stonegarden.dev"
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
backendRefs:
|
||||
- name: stonegarden
|
||||
port: 3000
|
||||
8
remodel/k8s/apps/homepage/stonegarden/kustomization.yaml
Normal file
8
remodel/k8s/apps/homepage/stonegarden/kustomization.yaml
Normal file
@@ -0,0 +1,8 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- ns.yaml
|
||||
- service.yaml
|
||||
- deployment.yaml
|
||||
- http-route.yaml
|
||||
6
remodel/k8s/apps/homepage/stonegarden/ns.yaml
Normal file
6
remodel/k8s/apps/homepage/stonegarden/ns.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: stonegarden
|
||||
labels:
|
||||
dev.stonegarden.app: homepage
|
||||
12
remodel/k8s/apps/homepage/stonegarden/service.yaml
Normal file
12
remodel/k8s/apps/homepage/stonegarden/service.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: stonegarden
|
||||
namespace: stonegarden
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: web
|
||||
port: 3000
|
||||
selector:
|
||||
app: stonegarden
|
||||
@@ -121,6 +121,10 @@ module "volumes" {
|
||||
node = "euclid"
|
||||
size = "1G"
|
||||
}
|
||||
pv-remark42 = {
|
||||
node = "euclid"
|
||||
size = "1G"
|
||||
}
|
||||
pv-jellyfin-config = {
|
||||
node = "euclid"
|
||||
size = "12G"
|
||||
|
||||
Reference in New Issue
Block a user