Compare commits
102 Commits
7ca7dacdaf
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e24786a075 | ||
|
|
9d7b10730d | ||
|
|
32e391a47f | ||
|
|
188dced6a2 | ||
|
|
81a4f4fb35 | ||
|
|
b32d6b70c4 | ||
|
|
22455e6b76 | ||
|
|
0aa390fd14 | ||
|
|
eeac6ecc2b | ||
|
|
2075f25f44 | ||
|
|
c0b2d0a837 | ||
|
|
16331d0dc6 | ||
|
|
467acbacd7 | ||
|
|
7d859ab6d2 | ||
|
|
a677d9c366 | ||
|
|
25238ca677 | ||
|
|
1ba2f9259b | ||
|
|
4686fb558e | ||
|
|
ff19e89d73 | ||
|
|
e8b2115aae | ||
|
|
3fe7985577 | ||
|
|
70466b447d | ||
|
|
0a0237d58f | ||
|
|
9658e3126c | ||
|
|
d02dbc2448 | ||
|
|
7313af0671 | ||
|
|
c82ddf4b24 | ||
|
|
6c233ae518 | ||
|
|
c514466716 | ||
|
|
edfbdaf3a0 | ||
|
|
bf4f867420 | ||
|
|
12290293a8 | ||
|
|
f3ac743d1b | ||
|
|
8bb6605260 | ||
|
|
c34f43b883 | ||
|
|
68afe929bb | ||
|
|
7aff9f31ec | ||
|
|
54e726c7cc | ||
|
|
d9292aeab8 | ||
|
|
986c30a694 | ||
|
|
aa58dbcc17 | ||
|
|
e74c05e423 | ||
|
|
d0cb06c9df | ||
|
|
ea926e1972 | ||
|
|
655146d6b8 | ||
|
|
6ff42ebe88 | ||
|
|
4635853af6 | ||
|
|
3191f697b5 | ||
|
|
8badd440ed | ||
|
|
2b59d7733f | ||
|
|
26170018e7 | ||
|
|
e5d7bf35b9 | ||
|
|
7c590daa75 | ||
|
|
0680d89474 | ||
|
|
8d53a603b0 | ||
|
|
46fda1f393 | ||
|
|
0d18d36d18 | ||
|
|
0737bf0e69 | ||
|
|
78e2a36859 | ||
|
|
56cb7ce6dc | ||
|
|
a6926c4b04 | ||
|
|
f82fc1252c | ||
|
|
a7facce892 | ||
|
|
2af2ceb91c | ||
|
|
c82a533c61 | ||
|
|
899dc7980f | ||
|
|
bda73afa18 | ||
|
|
705dab6e49 | ||
|
|
fd5be2805f | ||
|
|
285ae3665c | ||
|
|
87c0ed0931 | ||
|
|
9f3abebf32 | ||
|
|
07899caa9c | ||
|
|
b0037459ee | ||
|
|
1cd7e9a818 | ||
|
|
969948691f | ||
|
|
9858867bae | ||
|
|
964ddad2d0 | ||
|
|
1ba206283e | ||
|
|
e85afcbe7a | ||
|
|
46c78cc11f | ||
|
|
54591c43ef | ||
|
|
ed98974c91 | ||
|
|
ba667b9edd | ||
|
|
951b9c15a7 | ||
|
|
683f01213a | ||
|
|
68ad0a744f | ||
|
|
67def0a249 | ||
|
|
e3fe6bac3e | ||
|
|
6d73a50065 | ||
|
|
4963f26cfc | ||
|
|
2c2f18bb25 | ||
|
|
e91187cb89 | ||
|
|
c385c80cf3 | ||
|
|
f7a92e1237 | ||
|
|
da841f37e9 | ||
|
|
d3e1b398c6 | ||
|
|
73f77b2f9a | ||
|
|
a938a3dcea | ||
|
|
07dbdb5f39 | ||
|
|
17e0ffacea | ||
|
|
2614b7adcf |
@@ -6,7 +6,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://git.lunarfront.tech/ryan/lunarfront-charts.git
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: charts/lunarfront
|
path: charts/lunarfront
|
||||||
helm:
|
helm:
|
||||||
|
|||||||
20
argocd/cert-manager-app.yaml
Normal file
20
argocd/cert-manager-app.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: cert-manager-config
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: cert-manager
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: cert-manager
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
18
argocd/customers-app.yaml
Normal file
18
argocd/customers-app.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: customers
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: customers
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: argocd
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
31
argocd/dev-app.yaml
Normal file
31
argocd/dev-app.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: dev
|
||||||
|
namespace: argocd
|
||||||
|
annotations:
|
||||||
|
argocd-image-updater.argoproj.io/image-list: dev=registry.digitalocean.com/lunarfront/manager
|
||||||
|
argocd-image-updater.argoproj.io/dev.update-strategy: name
|
||||||
|
argocd-image-updater.argoproj.io/dev.allow-tags: regexp:^devpod-
|
||||||
|
argocd-image-updater.argoproj.io/write-back-method: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: dev
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: dev
|
||||||
|
ignoreDifferences:
|
||||||
|
- group: apps
|
||||||
|
kind: Deployment
|
||||||
|
name: dev
|
||||||
|
jsonPointers:
|
||||||
|
- /spec/replicas
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
@@ -19,7 +19,7 @@ spec:
|
|||||||
helm:
|
helm:
|
||||||
valueFiles:
|
valueFiles:
|
||||||
- $values/gitea/values.yaml
|
- $values/gitea/values.yaml
|
||||||
- repoURL: https://git2.lunarfront.tech/ryan/lunarfront-charts.git
|
- repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
ref: values
|
ref: values
|
||||||
destination:
|
destination:
|
||||||
|
|||||||
25
argocd/manager-app.yaml
Normal file
25
argocd/manager-app.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: manager
|
||||||
|
namespace: argocd
|
||||||
|
annotations:
|
||||||
|
argocd-image-updater.argoproj.io/image-list: manager=registry.digitalocean.com/lunarfront/manager
|
||||||
|
argocd-image-updater.argoproj.io/manager.update-strategy: semver
|
||||||
|
argocd-image-updater.argoproj.io/manager.allow-tags: regexp:^\d+\.\d+\.\d+$
|
||||||
|
argocd-image-updater.argoproj.io/write-back-method: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: manager
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: manager
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
20
argocd/pgbouncer-app.yaml
Normal file
20
argocd/pgbouncer-app.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
|
targetRevision: main
|
||||||
|
path: pgbouncer
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: pgbouncer
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
@@ -6,7 +6,7 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://git2.lunarfront.tech/ryan/lunarfront-charts.git
|
repoURL: ssh://git@git-ssh.lunarfront.tech/ryan/lunarfront-charts.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: runner
|
path: runner
|
||||||
destination:
|
destination:
|
||||||
|
|||||||
16
cert-manager/clusterissuer.yaml
Normal file
16
cert-manager/clusterissuer.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: ClusterIssuer
|
||||||
|
metadata:
|
||||||
|
name: letsencrypt-prod
|
||||||
|
spec:
|
||||||
|
acme:
|
||||||
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
|
email: ryan@lunarfront.tech
|
||||||
|
privateKeySecretRef:
|
||||||
|
name: letsencrypt-prod-key
|
||||||
|
solvers:
|
||||||
|
- dns01:
|
||||||
|
cloudflare:
|
||||||
|
apiTokenSecretRef:
|
||||||
|
name: cloudflare-api-token
|
||||||
|
key: api-token
|
||||||
@@ -28,18 +28,92 @@ spec:
|
|||||||
- name: DATABASE_URL
|
- name: DATABASE_URL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ .Values.database.secretName }}
|
name: lunarfront-secrets
|
||||||
key: url
|
key: database-url
|
||||||
- name: REDIS_URL
|
- name: REDIS_URL
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ .Values.redis.secretName }}
|
name: lunarfront-secrets
|
||||||
key: url
|
key: redis-url
|
||||||
|
- name: REDIS_KEY_PREFIX
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: redis-key-prefix
|
||||||
- name: JWT_SECRET
|
- name: JWT_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: {{ .Values.auth.secretName }}
|
name: lunarfront-secrets
|
||||||
key: secret
|
key: jwt-secret
|
||||||
|
- name: SPACES_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: spaces-key
|
||||||
|
- name: SPACES_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: spaces-secret
|
||||||
|
- name: SPACES_BUCKET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: spaces-bucket
|
||||||
|
- name: SPACES_ENDPOINT
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: spaces-endpoint
|
||||||
|
- name: SPACES_PREFIX
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: spaces-prefix
|
||||||
|
- name: ENCRYPTION_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: encryption-key
|
||||||
|
- name: RESEND_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: resend-api-key
|
||||||
|
- name: MAIL_FROM
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: mail-from
|
||||||
|
- name: BUSINESS_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: business-name
|
||||||
|
- name: INITIAL_USER_EMAIL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: initial-user-email
|
||||||
|
optional: true
|
||||||
|
- name: INITIAL_USER_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: initial-user-password
|
||||||
|
optional: true
|
||||||
|
- name: INITIAL_USER_FIRST_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: initial-user-first-name
|
||||||
|
optional: true
|
||||||
|
- name: INITIAL_USER_LAST_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: lunarfront-secrets
|
||||||
|
key: initial-user-last-name
|
||||||
|
optional: true
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.resources.backend | nindent 12 }}
|
{{- toYaml .Values.resources.backend | nindent 12 }}
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
backend:
|
backend:
|
||||||
repository: registry.lunarfront.tech/ryan/lunarfront-app
|
repository: git.lunarfront.tech/ryan/lunarfront-app
|
||||||
tag: latest
|
tag: latest
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
frontend:
|
frontend:
|
||||||
repository: registry.lunarfront.tech/ryan/lunarfront-frontend
|
repository: git.lunarfront.tech/ryan/lunarfront-frontend
|
||||||
tag: latest
|
tag: latest
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
|
|
||||||
|
|||||||
24
customers/tvs.yaml
Normal file
24
customers/tvs.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: customer-tvs
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: default
|
||||||
|
source:
|
||||||
|
repoURL: registry.digitalocean.com/lunarfront
|
||||||
|
chart: lunarfront
|
||||||
|
targetRevision: "0.1.102"
|
||||||
|
helm:
|
||||||
|
parameters:
|
||||||
|
- name: ingress.host
|
||||||
|
value: tvs.lunarfront.tech
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: customer-tvs
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
54
dev/deployment.yaml
Normal file
54
dev/deployment.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: dev
|
||||||
|
namespace: dev
|
||||||
|
spec:
|
||||||
|
replicas: 0
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: dev
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: dev
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: dev
|
||||||
|
tolerations:
|
||||||
|
- key: dedicated
|
||||||
|
value: dev
|
||||||
|
effect: NoSchedule
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: registry-lunarfront
|
||||||
|
containers:
|
||||||
|
- name: dev
|
||||||
|
image: registry.digitalocean.com/lunarfront/manager:devpod-latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: web
|
||||||
|
- containerPort: 22
|
||||||
|
name: ssh
|
||||||
|
env:
|
||||||
|
- name: SSH_AUTHORIZED_KEYS
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: dev-secrets
|
||||||
|
key: ssh-authorized-keys
|
||||||
|
- name: ANTHROPIC_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: dev-secrets
|
||||||
|
key: anthropic-api-key
|
||||||
|
volumeMounts:
|
||||||
|
- name: workspace
|
||||||
|
mountPath: /root
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 1Gi
|
||||||
|
volumes:
|
||||||
|
- name: workspace
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: dev-workspace
|
||||||
25
dev/ingress.yaml
Normal file
25
dev/ingress.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: dev
|
||||||
|
namespace: dev
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- host: dev.lunarfront.tech
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: dev
|
||||||
|
port:
|
||||||
|
number: 8080
|
||||||
|
tls:
|
||||||
|
- secretName: dev-lunarfront-tech-tls
|
||||||
|
hosts:
|
||||||
|
- dev.lunarfront.tech
|
||||||
4
dev/namespace.yaml
Normal file
4
dev/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: dev
|
||||||
12
dev/pvc.yaml
Normal file
12
dev/pvc.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: dev-workspace
|
||||||
|
namespace: dev
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 100Gi
|
||||||
|
storageClassName: do-block-storage
|
||||||
4
dev/secret.yaml
Normal file
4
dev/secret.yaml
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Managed externally — apply manually:
|
||||||
|
# kubectl create secret generic dev-secrets -n dev \
|
||||||
|
# --from-literal=code-server-password=<password> \
|
||||||
|
# --from-literal=ssh-authorized-keys="<your-public-key>"
|
||||||
25
dev/services.yaml
Normal file
25
dev/services.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dev
|
||||||
|
namespace: dev
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: dev
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: dev-ssh
|
||||||
|
namespace: dev
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: dev
|
||||||
|
ports:
|
||||||
|
- name: ssh
|
||||||
|
port: 22
|
||||||
|
targetPort: 22
|
||||||
@@ -6,20 +6,22 @@ gitea:
|
|||||||
|
|
||||||
config:
|
config:
|
||||||
server:
|
server:
|
||||||
DOMAIN: git2.lunarfront.tech
|
DOMAIN: git.lunarfront.tech
|
||||||
ROOT_URL: https://git2.lunarfront.tech
|
ROOT_URL: https://git.lunarfront.tech
|
||||||
SSH_DOMAIN: git2-ssh.lunarfront.tech
|
SSH_DOMAIN: git-ssh.lunarfront.tech
|
||||||
SSH_PORT: 22
|
SSH_PORT: 22
|
||||||
START_SSH_SERVER: true
|
START_SSH_SERVER: true
|
||||||
database:
|
database:
|
||||||
DB_TYPE: postgres
|
DB_TYPE: postgres
|
||||||
SSL_MODE: require
|
SSL_MODE: disable
|
||||||
session:
|
session:
|
||||||
PROVIDER: db
|
PROVIDER: db
|
||||||
cache:
|
cache:
|
||||||
ADAPTER: memory
|
ADAPTER: memory
|
||||||
queue:
|
queue:
|
||||||
TYPE: level
|
TYPE: level
|
||||||
|
actions:
|
||||||
|
ENABLED: true
|
||||||
|
|
||||||
additionalConfigFromEnvs:
|
additionalConfigFromEnvs:
|
||||||
- name: GITEA__database__HOST
|
- name: GITEA__database__HOST
|
||||||
@@ -67,7 +69,7 @@ service:
|
|||||||
clusterIP: None
|
clusterIP: None
|
||||||
port: 22
|
port: 22
|
||||||
annotations:
|
annotations:
|
||||||
external-dns.alpha.kubernetes.io/hostname: git2-ssh.lunarfront.tech
|
external-dns.alpha.kubernetes.io/hostname: git-ssh.lunarfront.tech
|
||||||
external-dns.alpha.kubernetes.io/target: "167.99.21.170"
|
external-dns.alpha.kubernetes.io/target: "167.99.21.170"
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
@@ -75,15 +77,23 @@ ingress:
|
|||||||
className: nginx
|
className: nginx
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
hosts:
|
hosts:
|
||||||
- host: git2.lunarfront.tech
|
- host: git.lunarfront.tech
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
tls:
|
tls:
|
||||||
- secretName: cloudflare-origin-cert
|
- secretName: git-lunarfront-tech-tls
|
||||||
hosts:
|
hosts:
|
||||||
- git2.lunarfront.tech
|
- git.lunarfront.tech
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
role: system
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
|
|||||||
@@ -5,3 +5,4 @@ metadata:
|
|||||||
namespace: ingress-nginx
|
namespace: ingress-nginx
|
||||||
data:
|
data:
|
||||||
"22": "gitea/gitea-ssh:22"
|
"22": "gitea/gitea-ssh:22"
|
||||||
|
"2222": "dev/dev-ssh:22"
|
||||||
|
|||||||
107
manager/deployment.yaml
Normal file
107
manager/deployment.yaml
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: manager
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: manager
|
||||||
|
spec:
|
||||||
|
serviceAccountName: manager
|
||||||
|
nodeSelector:
|
||||||
|
role: system
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: registry-lunarfront
|
||||||
|
containers:
|
||||||
|
- name: manager
|
||||||
|
image: registry.digitalocean.com/lunarfront/manager:0.12.2
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
env:
|
||||||
|
- name: PORT
|
||||||
|
value: "3000"
|
||||||
|
- name: DO_API_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: do-api-token
|
||||||
|
- name: DO_DB_CLUSTER_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: do-db-cluster-id
|
||||||
|
- name: GIT_SSH_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: git-ssh-key
|
||||||
|
- name: DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: database-url
|
||||||
|
- name: DOADMIN_DATABASE_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: doadmin-database-url
|
||||||
|
- name: JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: jwt-secret
|
||||||
|
- name: MANAGED_VALKEY_URL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: managed-valkey-url
|
||||||
|
- name: SPACES_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: spaces-key
|
||||||
|
- name: SPACES_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: spaces-secret
|
||||||
|
- name: CF_API_TOKEN
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: cf-api-token
|
||||||
|
- name: CF_ZONE_ID
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: cf-zone-id
|
||||||
|
- name: RESEND_API_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: manager-secrets
|
||||||
|
key: resend-api-key
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 128Mi
|
||||||
|
limits:
|
||||||
|
cpu: 500m
|
||||||
|
memory: 256Mi
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /health
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
25
manager/ingress.yaml
Normal file
25
manager/ingress.yaml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
annotations:
|
||||||
|
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
rules:
|
||||||
|
- host: manager.lunarfront.tech
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: manager
|
||||||
|
port:
|
||||||
|
number: 3000
|
||||||
|
tls:
|
||||||
|
- secretName: manager-lunarfront-tech-tls
|
||||||
|
hosts:
|
||||||
|
- manager.lunarfront.tech
|
||||||
7
manager/kustomization.yaml
Normal file
7
manager/kustomization.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- deployment.yaml
|
||||||
|
- service.yaml
|
||||||
|
- ingress.yaml
|
||||||
|
- rbac.yaml
|
||||||
125
manager/rbac.yaml
Normal file
125
manager/rbac.yaml
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
---
|
||||||
|
# pgbouncer config management
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: manager-pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
rules:
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["configmaps"]
|
||||||
|
resourceNames: ["pgbouncer-config"]
|
||||||
|
verbs: ["get", "patch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["secrets"]
|
||||||
|
resourceNames: ["pgbouncer-userlist"]
|
||||||
|
verbs: ["get", "patch"]
|
||||||
|
- apiGroups: ["apps"]
|
||||||
|
resources: ["deployments"]
|
||||||
|
resourceNames: ["pgbouncer"]
|
||||||
|
verbs: ["get", "patch"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: manager-pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
name: manager-pgbouncer
|
||||||
|
---
|
||||||
|
# ArgoCD application management
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: manager-argocd
|
||||||
|
namespace: argocd
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["argoproj.io"]
|
||||||
|
resources: ["applications"]
|
||||||
|
verbs: ["get", "create", "delete", "patch"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: manager-argocd
|
||||||
|
namespace: argocd
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
name: manager-argocd
|
||||||
|
---
|
||||||
|
# Dev pod management
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
name: manager-dev
|
||||||
|
namespace: dev
|
||||||
|
rules:
|
||||||
|
- apiGroups: ["apps"]
|
||||||
|
resources: ["deployments"]
|
||||||
|
verbs: ["get", "list", "patch", "update"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["pods"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["secrets"]
|
||||||
|
resourceNames: ["dev-secrets"]
|
||||||
|
verbs: ["get", "patch"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: manager-dev
|
||||||
|
namespace: dev
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
name: manager-dev
|
||||||
|
---
|
||||||
|
# Cluster-wide: create/delete customer namespaces and manage secrets within them
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: manager-customer-provisioner
|
||||||
|
rules:
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["namespaces"]
|
||||||
|
verbs: ["get", "create", "delete"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["secrets"]
|
||||||
|
verbs: ["get", "create", "delete", "patch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["pods"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: manager-customer-provisioner
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
name: manager-customer-provisioner
|
||||||
11
manager/service.yaml
Normal file
11
manager/service.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: manager
|
||||||
|
namespace: manager
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: manager
|
||||||
|
ports:
|
||||||
|
- port: 3000
|
||||||
|
targetPort: 3000
|
||||||
26
pgbouncer/configmap.yaml
Normal file
26
pgbouncer/configmap.yaml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer-config
|
||||||
|
namespace: pgbouncer
|
||||||
|
data:
|
||||||
|
pgbouncer.ini: |
|
||||||
|
[databases]
|
||||||
|
gitea = host=lunarfront-postgres-do-user-35277853-0.e.db.ondigitalocean.com port=25060 dbname=gitea user=gitea pool_mode=session pool_size=3
|
||||||
|
manager = host=lunarfront-postgres-do-user-35277853-0.e.db.ondigitalocean.com port=25060 dbname=manager user=manager pool_mode=session pool_size=3
|
||||||
|
|
||||||
|
[pgbouncer]
|
||||||
|
listen_port = 5432
|
||||||
|
listen_addr = 0.0.0.0
|
||||||
|
auth_type = plain
|
||||||
|
auth_file = /etc/pgbouncer/userlist.txt
|
||||||
|
pool_mode = transaction
|
||||||
|
max_client_conn = 200
|
||||||
|
default_pool_size = 3
|
||||||
|
min_pool_size = 0
|
||||||
|
reserve_pool_size = 1
|
||||||
|
server_tls_sslmode = require
|
||||||
|
server_reset_query = DISCARD ALL
|
||||||
|
ignore_startup_parameters = extra_float_digits
|
||||||
|
log_connections = 0
|
||||||
|
log_disconnections = 0
|
||||||
54
pgbouncer/deployment.yaml
Normal file
54
pgbouncer/deployment.yaml
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: pgbouncer
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: pgbouncer
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: system
|
||||||
|
containers:
|
||||||
|
- name: pgbouncer
|
||||||
|
image: pgbouncer/pgbouncer:latest
|
||||||
|
command: ["/opt/pgbouncer/pgbouncer", "/etc/pgbouncer/pgbouncer.ini"]
|
||||||
|
ports:
|
||||||
|
- containerPort: 5432
|
||||||
|
volumeMounts:
|
||||||
|
- name: config
|
||||||
|
mountPath: /etc/pgbouncer/pgbouncer.ini
|
||||||
|
subPath: pgbouncer.ini
|
||||||
|
- name: userlist
|
||||||
|
mountPath: /etc/pgbouncer/userlist.txt
|
||||||
|
subPath: userlist.txt
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 32Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 64Mi
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 5432
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: 5432
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
volumes:
|
||||||
|
- name: config
|
||||||
|
configMap:
|
||||||
|
name: pgbouncer-config
|
||||||
|
- name: userlist
|
||||||
|
secret:
|
||||||
|
secretName: pgbouncer-userlist
|
||||||
11
pgbouncer/service.yaml
Normal file
11
pgbouncer/service.yaml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: pgbouncer
|
||||||
|
namespace: pgbouncer
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: pgbouncer
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
targetPort: 5432
|
||||||
@@ -7,9 +7,9 @@ data:
|
|||||||
config.yaml: |
|
config.yaml: |
|
||||||
runner:
|
runner:
|
||||||
labels:
|
labels:
|
||||||
- "ubuntu-latest:host"
|
- "ubuntu-latest:docker://catthehacker/ubuntu:act-22.04"
|
||||||
- "ubuntu-22.04:host"
|
- "ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04"
|
||||||
- "ubuntu-24.04:host"
|
- "ubuntu-24.04:docker://catthehacker/ubuntu:act-24.04"
|
||||||
container:
|
container:
|
||||||
docker_host: tcp://localhost:2375
|
docker_host: tcp://localhost:2375
|
||||||
network: host
|
network: host
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ metadata:
|
|||||||
namespace: runner
|
namespace: runner
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: gitea-runner
|
app: gitea-runner
|
||||||
@@ -13,9 +15,17 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: gitea-runner
|
app: gitea-runner
|
||||||
spec:
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: system
|
||||||
|
hostAliases:
|
||||||
|
- ip: 127.0.0.1
|
||||||
|
hostnames:
|
||||||
|
- git.lunarfront.tech
|
||||||
containers:
|
containers:
|
||||||
- name: runner
|
- name: runner
|
||||||
image: gitea/act_runner:latest
|
image: gitea/act_runner:latest
|
||||||
|
workingDir: /data
|
||||||
|
command: ["sh", "-c", "until nc -z localhost 2375 2>/dev/null; do echo 'waiting for dind...'; sleep 2; done && if [ ! -f /data/.runner ]; then /usr/local/bin/act_runner register --no-interactive --instance \"$GITEA_INSTANCE_URL\" --token \"$GITEA_RUNNER_REGISTRATION_TOKEN\" --name \"$GITEA_RUNNER_NAME\" --config \"$CONFIG_FILE\"; fi && exec /usr/local/bin/act_runner daemon --config \"$CONFIG_FILE\""]
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
@@ -25,7 +35,7 @@ spec:
|
|||||||
memory: 2Gi
|
memory: 2Gi
|
||||||
env:
|
env:
|
||||||
- name: GITEA_INSTANCE_URL
|
- name: GITEA_INSTANCE_URL
|
||||||
value: https://git2.lunarfront.tech
|
value: http://gitea-http.gitea.svc.cluster.local:3000
|
||||||
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
- name: GITEA_RUNNER_REGISTRATION_TOKEN
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -42,6 +52,23 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: runner-config
|
- name: runner-config
|
||||||
mountPath: /etc/runner
|
mountPath: /etc/runner
|
||||||
|
- name: runner-data
|
||||||
|
mountPath: /data
|
||||||
|
|
||||||
|
- name: registry-proxy
|
||||||
|
image: haproxy:alpine
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 32Mi
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 128Mi
|
||||||
|
volumeMounts:
|
||||||
|
- name: haproxy-config
|
||||||
|
mountPath: /usr/local/etc/haproxy
|
||||||
|
|
||||||
- name: dind
|
- name: dind
|
||||||
image: docker:dind
|
image: docker:dind
|
||||||
@@ -63,3 +90,9 @@ spec:
|
|||||||
- name: runner-config
|
- name: runner-config
|
||||||
configMap:
|
configMap:
|
||||||
name: gitea-runner-config
|
name: gitea-runner-config
|
||||||
|
- name: runner-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: gitea-runner-data
|
||||||
|
- name: haproxy-config
|
||||||
|
configMap:
|
||||||
|
name: runner-haproxy-config
|
||||||
|
|||||||
24
runner/haproxy-configmap.yaml
Normal file
24
runner/haproxy-configmap.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: runner-haproxy-config
|
||||||
|
namespace: runner
|
||||||
|
data:
|
||||||
|
haproxy.cfg: |
|
||||||
|
global
|
||||||
|
daemon
|
||||||
|
log stdout format raw local0
|
||||||
|
|
||||||
|
defaults
|
||||||
|
mode tcp
|
||||||
|
log global
|
||||||
|
timeout connect 5s
|
||||||
|
timeout client 30s
|
||||||
|
timeout server 30s
|
||||||
|
|
||||||
|
frontend registry
|
||||||
|
bind 0.0.0.0:443
|
||||||
|
default_backend nginx
|
||||||
|
|
||||||
|
backend nginx
|
||||||
|
server nginx ingress-nginx-controller.ingress-nginx.svc.cluster.local:443 send-proxy
|
||||||
12
runner/pvc.yaml
Normal file
12
runner/pvc.yaml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: gitea-runner-data
|
||||||
|
namespace: runner
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: do-block-storage
|
||||||
Reference in New Issue
Block a user