Compare commits
2 Commits
689038a808
...
feature/af
Author | SHA1 | Date | |
---|---|---|---|
ab96719964 | |||
0215ecaf87 |
@@ -10,7 +10,7 @@ resources:
|
||||
images:
|
||||
- name: adguard/adguardhome
|
||||
newName: adguard/adguardhome
|
||||
newTag: v0.107.51
|
||||
newTag: v0.107.48
|
||||
|
||||
namespace: adguard
|
||||
|
||||
|
58
apps/affine/deployment.yaml
Normal file
58
apps/affine/deployment.yaml
Normal file
@@ -0,0 +1,58 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: affine
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
app: affine
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: affine
|
||||
spec:
|
||||
containers:
|
||||
- name: affine
|
||||
image: affine
|
||||
resources:
|
||||
limits:
|
||||
memory: "512Mi"
|
||||
cpu: "1"
|
||||
env:
|
||||
- name: AFFINE_SERVER_HOST
|
||||
value: "affine.kluster.moll.re"
|
||||
- name: AFFINE_SERVER_PORT
|
||||
value: "443"
|
||||
- name: AFFINE_SERVER_HTTPS
|
||||
value: "true"
|
||||
- name: AFFINE_CONFIG_PATH
|
||||
value: "/root/.affine/config"
|
||||
- name: AFFINE_ADMIN_EMAIL
|
||||
value: "me@moll.re"
|
||||
- name: AFFINE_ADMIN_PASSWORD
|
||||
value: "password"
|
||||
- name: TELEMETRY_ENABLE
|
||||
value: "false"
|
||||
- name: DATABASE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: postgres-credentials
|
||||
key: url
|
||||
- name: NODE_OPTIONS
|
||||
value: "--import=./scripts/register.js"
|
||||
- name: NODE_ENV
|
||||
value: "production"
|
||||
ports:
|
||||
- containerPort: 3010
|
||||
volumeMounts:
|
||||
- name: affine-data
|
||||
mountPath: /root/.affine/storage
|
||||
- name: affine-config
|
||||
mountPath: /root/.affine/config
|
||||
volumes:
|
||||
- name: affine-data
|
||||
persistentVolumeClaim:
|
||||
claimName: affine-data
|
||||
- name: affine-config
|
||||
persistentVolumeClaim:
|
||||
claimName: affine-config
|
15
apps/affine/ingress.yaml
Normal file
15
apps/affine/ingress.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: affine-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`affine.kluster.moll.re`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: affine-web
|
||||
port: 3010
|
||||
tls:
|
||||
certResolver: default-tls
|
20
apps/affine/kustomization.yaml
Normal file
20
apps/affine/kustomization.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
|
||||
namespace: affine
|
||||
|
||||
resources:
|
||||
- namespace.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
- ingress.yaml
|
||||
- postgres.yaml
|
||||
- pvc.yaml
|
||||
- postgres-credentials.secret.yaml
|
||||
|
||||
|
||||
images:
|
||||
- name: affine
|
||||
newName: ghcr.io/toeverything/affine-graphql
|
||||
newTag: stable
|
4
apps/affine/namespace.yaml
Normal file
4
apps/affine/namespace.yaml
Normal file
@@ -0,0 +1,4 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: placeholder
|
20
apps/affine/postgres.yaml
Normal file
20
apps/affine/postgres.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: postgresql.cnpg.io/v1
|
||||
kind: Cluster
|
||||
metadata:
|
||||
name: affine-postgres
|
||||
spec:
|
||||
instances: 1
|
||||
bootstrap:
|
||||
initdb:
|
||||
owner: affine
|
||||
database: affine
|
||||
secret:
|
||||
name: postgres-credentials
|
||||
|
||||
storage:
|
||||
size: 1Gi
|
||||
pvcTemplate:
|
||||
storageClassName: "nfs-client"
|
||||
resources:
|
||||
requests:
|
||||
storage: "1Gi"
|
23
apps/affine/pvc.yaml
Normal file
23
apps/affine/pvc.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: affine-data
|
||||
spec:
|
||||
storageClassName: "nfs-client"
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 15Gi
|
||||
---
|
||||
kind: PersistentVolumeClaim
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: affine-config
|
||||
spec:
|
||||
storageClassName: "nfs-client"
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
10
apps/affine/service.yaml
Normal file
10
apps/affine/service.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: affine-web
|
||||
spec:
|
||||
selector:
|
||||
app: affine
|
||||
ports:
|
||||
- port: 3010
|
||||
targetPort: 3010
|
@@ -13,4 +13,4 @@ namespace: files
|
||||
images:
|
||||
- name: ocis
|
||||
newName: owncloud/ocis
|
||||
newTag: "5.0.5"
|
||||
newTag: "5.0.3"
|
||||
|
@@ -13,4 +13,4 @@ resources:
|
||||
images:
|
||||
- name: actualbudget
|
||||
newName: actualbudget/actual-server
|
||||
newTag: 24.6.0
|
||||
newTag: 24.5.0
|
||||
|
@@ -15,4 +15,4 @@ resources:
|
||||
images:
|
||||
- name: homeassistant/home-assistant
|
||||
newName: homeassistant/home-assistant
|
||||
newTag: "2024.6"
|
||||
newTag: "2024.5"
|
||||
|
@@ -14,4 +14,4 @@ resources:
|
||||
images:
|
||||
- name: homepage
|
||||
newName: ghcr.io/gethomepage/homepage
|
||||
newTag: v0.9.2
|
||||
newTag: v0.8.13
|
||||
|
@@ -19,6 +19,6 @@ helmCharts:
|
||||
|
||||
images:
|
||||
- name: ghcr.io/immich-app/immich-machine-learning
|
||||
newTag: v1.105.1
|
||||
newTag: v1.103.1
|
||||
- name: ghcr.io/immich-app/immich-server
|
||||
newTag: v1.105.1
|
||||
newTag: v1.103.1
|
||||
|
@@ -14,7 +14,7 @@ resources:
|
||||
images:
|
||||
- name: jellyfin/jellyfin
|
||||
newName: jellyfin/jellyfin
|
||||
newTag: 10.9.5
|
||||
newTag: 10.9.0
|
||||
- name: ghcr.io/jellyfin/jellyfin-vue
|
||||
newName: ghcr.io/jellyfin/jellyfin-vue
|
||||
newTag: stable-rc.0.3.1
|
||||
|
@@ -1,16 +0,0 @@
|
||||
---
|
||||
apiVersion: bitnami.com/v1alpha1
|
||||
kind: SealedSecret
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: curseforge-api
|
||||
namespace: minecraft
|
||||
spec:
|
||||
encryptedData:
|
||||
key: AgBYeAiejdmxDBorvgnxQX5YvUhR3NId2vfWybMKlc27e6D/bKglLNyZMk70xSnFAPjcDmZ20mYjFPYvDOr9T6IU/REJ8QlzoKAn0xW779R4SkIxRToT+dJv+OM2avgQ9uqp7vja29xeXMjYAnQML+QGZKcrT8mE04G/Ty8rdUiv3yUXK5HFAR3SUF35aVLdlthLjpRkv1s0R7GAP4L2pNzBJNV3i37viceUSSjU0zpOa23fsQOkPAs67AIukAJBqh/hyF/hR9H1GeYZNTI3OcHcvC2iNk/XGstvv0Zy6ApzoebsfWGdsbVn+QUI0EBw+mSTPqpl71cbkz0v4S4XAVndosxWpe6AIgm5MBTU0FXIyGyoFDe1aMPq8BXiQikYVwB48oVNh9KF0xXX5AOG0whB/FEsL3OJsiNQvQ3R/Hru43JBn64oxjVtLfM3E7u8v/xr1VQahX8dylDmb4s5EV01U6O4y19Ou4td1eEMlhpJb0fBPDRUYuWxZAEDGmp+U4tAakyPed11VkcZPPn9fKAAcv8sGs3TYAbbF18hqsBnv2Wd+i7ZEvKwmdmfR/T0r1TJGsvKI7jaW0QtH256XrSxQp7a52qMKMVQWOSKw2k27t/IkRhxT2Prw4GfJvaVr4RozUaBf3LV/hfDWlDfmM2zg3X9W8HkzjotGg021OLxsa0Wzmhffvb8h4bvZwxeq3U1xaJocqXui7z0rT2pF4z3wYHR/lPtexHcOA2M8gfBGKb1rBKh+kW+N+/ZfVLNI0mokg5vrTO2nR2rb4c=
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
name: curseforge-api
|
||||
namespace: minecraft
|
||||
type: Opaque
|
@@ -16,31 +16,28 @@ spec:
|
||||
image: minecraft
|
||||
resources:
|
||||
limits:
|
||||
memory: "6000Mi"
|
||||
cpu: "3"
|
||||
memory: "4000Mi"
|
||||
cpu: "2500m"
|
||||
requests:
|
||||
memory: "1500Mi"
|
||||
memory: "1000Mi"
|
||||
cpu: "500m"
|
||||
ports:
|
||||
- containerPort: 25565
|
||||
env:
|
||||
- name: EULA
|
||||
value: "TRUE"
|
||||
- name: TYPE
|
||||
value: "AUTO_CURSEFORGE"
|
||||
- name: CF_API_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: curseforge-api
|
||||
key: key
|
||||
- name: CF_SLUG
|
||||
value: "vault-hunters-1-18-2"
|
||||
- name: MODPACK
|
||||
value: "https://www.curseforge.com/api/v1/mods/711537/files/5076228/download"
|
||||
- name: VERSION
|
||||
value: "1.18.2"
|
||||
# - name: VERSION
|
||||
# value: "1.16.5"
|
||||
# - name: MODPACK
|
||||
# value: "https://mediafilez.forgecdn.net/files/3602/5/VaultHunters-OfficialModpack-1.12.1-Server.zip"
|
||||
- name: INIT_MEMORY
|
||||
value: "1G"
|
||||
- name: MAX_MEMORY
|
||||
value: "5G"
|
||||
value: "3G"
|
||||
- name: MOTD
|
||||
value: "VaultHunters baby!"
|
||||
- name: ENABLE_RCON
|
||||
@@ -49,10 +46,6 @@ spec:
|
||||
value: "true"
|
||||
- name: ONLINE_MODE
|
||||
value: "true"
|
||||
- name: ENABLE_AUTOPAUSE
|
||||
value: "true"
|
||||
- name: AUTOPAUSE_TIMEOUT_EST
|
||||
value: "1800"
|
||||
volumeMounts:
|
||||
- name: minecraft-data
|
||||
mountPath: /data
|
||||
|
@@ -8,8 +8,6 @@ resources:
|
||||
- pvc.yaml
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
- curseforge.sealedsecret.yaml
|
||||
|
||||
|
||||
images:
|
||||
- name: minecraft
|
||||
|
@@ -16,5 +16,5 @@ helmCharts:
|
||||
- releaseName: grafana
|
||||
name: grafana
|
||||
repo: https://grafana.github.io/helm-charts
|
||||
version: 8.0.0
|
||||
version: 7.3.9
|
||||
valuesFile: grafana.values.yaml
|
||||
|
@@ -13,4 +13,4 @@ resources:
|
||||
images:
|
||||
- name: binwiederhier/ntfy
|
||||
newName: binwiederhier/ntfy
|
||||
newTag: v2.11.0
|
||||
newTag: v2.10.0
|
||||
|
@@ -12,5 +12,5 @@ resources:
|
||||
|
||||
images:
|
||||
- name: mealie
|
||||
newTag: v1.8.0
|
||||
newTag: v1.6.0
|
||||
newName: ghcr.io/mealie-recipes/mealie
|
@@ -15,4 +15,4 @@ images:
|
||||
|
||||
- name: git
|
||||
newName: alpine/git
|
||||
newTag: "v2.45.1"
|
||||
newTag: "2.43.0"
|
2
infrastructure/external/kustomization.yaml
vendored
2
infrastructure/external/kustomization.yaml
vendored
@@ -8,4 +8,4 @@ resources:
|
||||
- namespace.yaml
|
||||
- omv-s3.ingress.yaml
|
||||
- openmediavault.ingress.yaml
|
||||
- proxmox.ingress.yaml
|
||||
- proxmox.ingress.yaml
|
@@ -1,31 +0,0 @@
|
||||
# Using gitea actions
|
||||
The actions deployment allows to use gitea actions from repositories within this instance.
|
||||
|
||||
### Building docker images
|
||||
Docker builds use the kubernetes runner to build the images. For this to work, the pipeline needs to be able to access the kube-api. A service-account is created for this purpose.
|
||||
|
||||
To use the correct docker builder use the following action
|
||||
```yaml
|
||||
...
|
||||
|
||||
- name: Create Kubeconfig
|
||||
run: |
|
||||
mkdir $HOME/.kube
|
||||
echo "${{ secrets.BUILDX_KUBECONFIG }}" > $HOME/.kube/config
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
driver: kubernetes
|
||||
driver-opts: |
|
||||
namespace=act-runner
|
||||
qemu.install=true
|
||||
|
||||
...
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
<other config>
|
||||
```
|
@@ -1,23 +1,25 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: act-runner
|
||||
name: act-runner
|
||||
name: actions-runner
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: act-runner
|
||||
app: actions-runner
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: act-runner
|
||||
app: actions-runner
|
||||
spec:
|
||||
restartPolicy: Always
|
||||
hostname: kube-runner
|
||||
serviceAccountName: actions-runner
|
||||
containers:
|
||||
- name: runner
|
||||
image: vegardit/gitea-act-runner:dind-latest
|
||||
- name: actions-runner
|
||||
image: actions-runner
|
||||
resources:
|
||||
requests:
|
||||
memory: "128Mi"
|
||||
cpu: "500m"
|
||||
env:
|
||||
- name: GITEA_INSTANCE_URL
|
||||
value: "https://git.kluster.moll.re"
|
||||
@@ -26,35 +28,12 @@ spec:
|
||||
secretKeyRef:
|
||||
name: actions-runner-secret
|
||||
key: runner-token
|
||||
- name: ACTIONS_RUNNER_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: GITEA_RUNNER_UID
|
||||
value: '1000'
|
||||
- name: GITEA_RUNNER_GID
|
||||
value: '1000'
|
||||
- name: GITEA_RUNNER_JOB_CONTAINER_PRIVILEGED
|
||||
value: 'true'
|
||||
securityContext:
|
||||
privileged: true
|
||||
- name: GITEA_RUNNER_LABELS
|
||||
value: k8s
|
||||
volumeMounts:
|
||||
- name: runner-data
|
||||
mountPath: /data
|
||||
volumes:
|
||||
- name: runner-data
|
||||
persistentVolumeClaim:
|
||||
claimName: runner-data
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: runner-data
|
||||
spec:
|
||||
resources:
|
||||
requests:
|
||||
storage: 5Gi
|
||||
storageClassName: "nfs-client"
|
||||
volumeMode: Filesystem
|
||||
accessModes:
|
||||
- ReadWriteMany
|
||||
emptyDir: {}
|
||||
|
||||
|
38
infrastructure/gitea/actions.rbac.yaml
Normal file
38
infrastructure/gitea/actions.rbac.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: actions-runner
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: Role
|
||||
metadata:
|
||||
name: actions-role
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["pods"]
|
||||
verbs: ["get", "list", "create", "delete"]
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/exec"]
|
||||
verbs: ["get", "create"]
|
||||
- apiGroups: [""]
|
||||
resources: ["pods/log"]
|
||||
verbs: ["get", "list", "watch",]
|
||||
- apiGroups: ["batch"]
|
||||
resources: ["jobs"]
|
||||
verbs: ["get", "list", "create", "delete"]
|
||||
- apiGroups: [""]
|
||||
resources: ["secrets"]
|
||||
verbs: ["get", "list", "create", "delete"]
|
||||
---
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: actions-role-binding
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: actions-runner
|
||||
apiGroup: ""
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: actions-role
|
||||
apiGroup: rbac.authorization.k8s.io
|
@@ -7,7 +7,7 @@ metadata:
|
||||
namespace: gitea
|
||||
spec:
|
||||
encryptedData:
|
||||
runner-token: AgCexZDTtbYOdG3XgvmOh9CwxzTT+dhPVCPYv/arp8cM9R45PFIfwDvFCThnTHQYZJIYpsaUvoxdXSYYdhLyBVhmuAdD0NeH47q7qRh4U6WYUF6RMqUV3Dpri00nrROx2MN8Q+uGN+wq2xloSbkDzLiS+0sD8m+ItIKhEjIMcn9PyA2OheUmbCVfyOVzCEEaOt98nweTlOXgQLJBLPhxUJFCMePfGHudAlu2lZO3dH+T8G9cC86akZnAODuI69iScuIVOtGJvj1EhPNg9d7QjmjWZOKlk0ryPdwEoR/+kD069Jp4STX7IsVqKxZcvnY8yUICbmvj2TzJWzUDMit3leBopO+8+ECSng4uANGwp3QyankmyWD8SXN3fTuASoeoWa5mYN/qCih9m5ih7FxsDNqAFumUzX1QtAN3LDmzgcomdC7D6FHc1PIaOjoEF96TaDgBc8ODMRBWDtjCzD5sTLQ3zGLRieFsOxkdb0d9E+E4pestmnbdtwNTpfgtyT0pr2847FyAmS0DhA6bb4i+JohNswo+83koJQWf1UNyKhQ14kPhPiBRp1cnYieswFjSuvBbWAjB+SYrFIns97qJon2UjwcnlJ6/KewKj5KTOWnTel1Sgxgn4y7qXFnLvReIEKc6SCz+aFFEa4qAqJVmS1STMEwcqkiM7gA+he/8mdEB0BmfwdnGK0pA1I+RD4hOhDqIQlGyTtWGQINqFulbNUS2PcLmf5nX/ERRRPLlwmZNwR27pP3iQg29
|
||||
runner-token: AgBHwek/Aj/0oOnI/bnZ4FgtRoeJw4tIKvcDzBhaPdQ7bMVHyHUKYUNP7lkPgZrIN+7rhMY7C/j13iGWx4iTdhTgipLiJvyZ70pXKLSix4IpcypJTElggWkW0JW79x1HyJfBtn9iJiHnEZXPi7sEnyKhA0asAOR0ae8NS6mxxei0TIImaPaC2RHL6MOi40xsXpHz2ZaVhDQaTSRWjv0U6+WkCGcueqM2HLYfF1gqqkzGCjjhdOTK1CKvIvApZ5n8x6x94IiywCXJraDCwLz+acF2c2vA/Jb/3p7TwyyRZ5uIF5LZufhTJ6+5sFJSReHYxO4CpPA8KvM880vtiEjN7LxVo/Jruj2459OvjviKZS03ZwLHHrjanom1+HA9Sx2ffRLiR5ayGkfj/6kvpIRt5x1F7BbPp+a0LXuxJX+1nGDyEa1D1WzVKvZASav6/v7cXcom/nKGO91Zb8qHlOv7ZTs5guGQ9G9VCOHOG8szwpW3ZmQwWfFoWsShzqbDqszBYOGeIjIiDllLzTZ8A9dv9J2ELngZ1IPGIkfpQNEW8hsbNXTYhdVIrkh7BIFkRWfYDNWxqZd4iE6XllQcT1rqndusgiNEJX2r+P4nT8dPewATXQ79wzvZU3kB+VHzM8cLymlVGADi7v/qTY9RcrhuE0oMLzHRShr6JU05VfLGbMsttrYKmW7smvBp3lRJitO5A8+r8cRniS1+Xr8mIx87vCvnoWSH6BKkl9pCdDeCGylAWfkJN9UpkaKg
|
||||
template:
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
|
84
infrastructure/gitea/drone-kube-runner.deployment.yaml
Normal file
84
infrastructure/gitea/drone-kube-runner.deployment.yaml
Normal file
@@ -0,0 +1,84 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: drone-runner
|
||||
---
|
||||
kind: Role
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: drone-runner
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- pods/log
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- delete
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
|
||||
---
|
||||
|
||||
kind: RoleBinding
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
metadata:
|
||||
name: drone-runner
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: drone-runner
|
||||
roleRef:
|
||||
kind: Role
|
||||
name: drone-runner
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
|
||||
---
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: drone-runner
|
||||
labels:
|
||||
app.kubernetes.io/name: drone-runner
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/name: drone-runner
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/name: drone-runner
|
||||
spec:
|
||||
serviceAccountName: drone-runner
|
||||
containers:
|
||||
- name: runner
|
||||
image: drone/drone-runner-kube:latest
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
env:
|
||||
- name: DRONE_RPC_HOST
|
||||
value: drone-server:80
|
||||
- name: DRONE_RPC_PROTO
|
||||
value: http
|
||||
- name: DRONE_RPC_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drone-server-secret
|
||||
key: rpc_secret
|
||||
- name: DRONE_NAMESPACE_DEFAULT
|
||||
value: gitea
|
||||
# - name: DRONE_NAMESPACE_RULES
|
||||
# value: "drone-runner:*"
|
||||
- name: DRONE_SERVICE_ACCOUNT_DEFAULT
|
||||
value: drone-runner
|
117
infrastructure/gitea/drone-server.deployment.yaml
Normal file
117
infrastructure/gitea/drone-server.deployment.yaml
Normal file
@@ -0,0 +1,117 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: drone-server
|
||||
labels:
|
||||
app: drone-server
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: drone-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: drone-server
|
||||
spec:
|
||||
containers:
|
||||
- name: drone
|
||||
image: drone/drone:latest
|
||||
env:
|
||||
- name: DRONE_SERVER_PORT # because the deployment is called drone-server, override this var again!
|
||||
value: ":80"
|
||||
- name: DRONE_GITEA_SERVER
|
||||
value: https://git.kluster.moll.re
|
||||
- name: DRONE_USER_CREATE
|
||||
value: username:remoll,admin:true
|
||||
- name: DRONE_GITEA_CLIENT_ID
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drone-server-secret
|
||||
key: client_id
|
||||
- name: DRONE_GITEA_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drone-server-secret
|
||||
key: client_secret
|
||||
- name: DRONE_RPC_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: drone-server-secret
|
||||
key: rpc_secret
|
||||
- name: DRONE_SERVER_HOST
|
||||
value: drone.kluster.moll.re
|
||||
- name: DRONE_SERVER_PROTO
|
||||
value: https
|
||||
resources:
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: 1.5
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: drone-data-nfs
|
||||
volumes:
|
||||
- name: drone-data-nfs
|
||||
persistentVolumeClaim:
|
||||
claimName: drone-data-nfs
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: drone-server
|
||||
labels:
|
||||
app: drone-server
|
||||
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- port: 80
|
||||
name: http
|
||||
selector:
|
||||
app: drone-server
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: drone-server-ingress
|
||||
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`drone.kluster.moll.re`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: drone-server
|
||||
port: 80
|
||||
tls:
|
||||
certResolver: default-tls
|
||||
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolume
|
||||
metadata:
|
||||
name: drone-data-nfs
|
||||
spec:
|
||||
capacity:
|
||||
storage: "1Gi"
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
nfs:
|
||||
path: /export/kluster/drone
|
||||
server: 192.168.1.157
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: drone-data-nfs
|
||||
spec:
|
||||
storageClassName: ""
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: "1Gi"
|
||||
volumeName: drone-data-nfs
|
23
infrastructure/gitea/drone-server.sealedsecret.yaml
Normal file
23
infrastructure/gitea/drone-server.sealedsecret.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"kind": "SealedSecret",
|
||||
"apiVersion": "bitnami.com/v1alpha1",
|
||||
"metadata": {
|
||||
"name": "drone-server-secret",
|
||||
"namespace": "gitea",
|
||||
"creationTimestamp": null
|
||||
},
|
||||
"spec": {
|
||||
"template": {
|
||||
"metadata": {
|
||||
"name": "drone-server-secret",
|
||||
"namespace": "gitea",
|
||||
"creationTimestamp": null
|
||||
}
|
||||
},
|
||||
"encryptedData": {
|
||||
"client_id": "AgA53a7kGJ6zZcx2ooTvTNwxaW2FvfzHJnxg6co54+HXinTJKsc4+GJ1PtdIbsZ7Dgu/sLi/4X90fT+PT2sgEx9jIilmHPdJeRtwV1UID3Y46A7cJlfcAKwNOFzp2PWvBvizbNp7tbJwxeAYnVX8GfN6fi700QxBGqAI3u8qQvLpU6UGW2RM96gCXI7s1QhE1Le6TgoESy5HX95pB7csDRNSwVE02OWfDHKEjH8QD8UvBB9xct6uwDfu7KrsJiNJvWMP6arvpfhy/X+UtCTFmj5wmFYL7oc6vSiCkq+QyHgQTEHTmGpEjEGKcQxPQaus3KhbhcxQBYLMEMYRlLPH0AEAA4dzbSpoVXM3LuIe9FppgrTCknK1uRB8wyrHUeInWO8mG7UraV6m5PUS+UYODMvfjwY3PyiGhTSf6LgMlhMl8e+2rb+OsWphT8Pbeom33PucrYaRFr9RpQkJSwE6HU3JEh25YLfIJ7caqRND8C/p8kD679C8UMcNpBN8WS4Cswn5jzmwbeJNM5DGp9yQVZNx7Bv3dHzx9i3ShjJ6QQnR/zWJZ/dWLy6weGYmdZMMXRAO8CCdruvcX5YyeieXZfchSIlZ/GqqBHptdcLpwLiZsfmyTWeBvk5pMAsZaKJ1tfWpQ84s4epzMoieTfhTueGXmeRKX+DJBBcriU+5YoqNxpU1lPL+LoInorJSKN7c3ouFx78N3GDOCq7mlWI94lY0bIs5zhrfUN137ITCcED62AJ7vks=",
|
||||
"client_secret": "AgDQXU7x6RLhE9Hc+goeR2+3rW316SLLLA8tfqx3tsykL+vxhRkY5UCEaak3Rgei0k14jB/Rmme+/O/D1/5tc/i885+sGn0yjU7Jo4L5nkIssUOHlmRSGkRJDb9ABPauFXAjap9KLix9bd8ewI7R0lS3tOK9ZhThYhcfDUqV9qkkbSHzwNptkH7gYWt9qzG/rqqqpFP+PCtjzKVve4LCBgaxetcnh1t+d5oh7VAFnSI9Bt1G/DRzi+K3YZ+YG5+XKevBp06GMiLUMiv/eUvmOfAB/KO79LnNVbOcRsAHfnqLbXgNjFzspr5xDiGMC/ma1245LavywqXDp0S9jjNEe48i51PPQMwHWV8XEovsM6LHcteluNogt+VkL4mOnmP+sba/V3NO51rt1WXl+ca+U4kBq4dLMsdpWUKemz9BlIRC4etEXjwKJ5DznT7u6GUTrXx2RCm1j0OYWM++P10SdyD6tGjKnZf88a33Wrwm8Y7c47JrPTlP4PqLq9gzvD310uVfs1vGYGULaToGy+D/th8qiWWlu7BIfwqlIj8lruVnOhQ4GeEZmUAsqYf8JfsBwuDc0Y+8qbwjFrr2z+5x+2XBL8KGZVopyme45SHijlBZs7YsJqTBsg5oW09grM8/oO731GtzSYmpat2VZlaILuTjALqo/cu//kxwmqh7UX+jnTJ/2N3bKKSAfHWbHDeHeS2XJ+eKaI4onNYW9J70EfAP3vOpU+zmQ8rOzJuJjRt0HarLwzc5CXb1Xhlgsaoj7zKXPQMnqIDngg==",
|
||||
"rpc_secret": "AgAcJNCFtOhK28vnLredkTgsVpnMPwaXss5NT5ysc0IbVid2vWRk2CTjBZc5DzjxxLwI1Ok88MFXHP08ZGCYy4rIbwoi7Ei1OEevGWfaI4n5CvAxr4ZamQHSfIX9dVAm9BSSx2M/mDtCKqVEGJEzyHCedrxf6LXM/YTNgjD43BuCZZMu35mRsHItpYFZQSttlHiUvR8y2YKrhV2P7fiWRD3cCVao8ldzKfGuvRfal8ByGoxpsYLj2D9CdtPvRF/TQsWUJJWwzbI9DmbW1MMI4/b26Jfa5TBvHxS1MQxFJpSXuMIengO+b0bi7WaR36y/FrKSNxIrQDHI7XCb00yYaSfj3RkSBVoAD0a2p8vNupHCqsKBoaWd8tMv/wGP8wbBk4DgGeQiTIvfhbQZU/Q2/LVDDficjXVn3IuKP/cqgGVf6lUh5YsUSs8qwpMil7XySiHvaZn+iFAnsXoejd4S2e/pbRvyaxP1aa7TCxnINjpU7IrnUEUiI4glQmAte3MqZWLXcc0Uk3Qz9PP0cD+V8qCOryrPMP2kTAI8LT/K4DgcEMAEGes4Vx1l0oBMF0xJvhM2kZXcEcf0NzuQJvYTgZpQF5xp0TchezLshmEUSIkII9NvAvn+iEYJeHsJUDijjmBloSYe4+QTgdYh6FakVUwYI5U4ztDNrvgqhWjExfbn8HxaFzsNTsuzGoYs+jwXH8Wk2z1Q1oQjDdO5YTjmdqvkSTdin/5CiuCDHaQX6a4gNQ=="
|
||||
}
|
||||
}
|
||||
}
|
@@ -5,13 +5,21 @@ resources:
|
||||
- gitea.pvc.yaml
|
||||
- gitea.ingress.yaml
|
||||
- gitea.servicemonitor.yaml
|
||||
- drone-kube-runner.deployment.yaml
|
||||
- drone-server.deployment.yaml
|
||||
- drone-server.sealedsecret.yaml
|
||||
- actions.deployment.yaml
|
||||
- actions.sealedsecret.yaml
|
||||
# - actions.rbac.yaml
|
||||
- actions.rbac.yaml
|
||||
|
||||
|
||||
namespace: gitea
|
||||
|
||||
images:
|
||||
- name: actions-runner
|
||||
newName: ghcr.io/christopherhx/gitea-actions-runner
|
||||
newTag: v0.0.11
|
||||
|
||||
|
||||
helmCharts:
|
||||
- name: gitea
|
||||
|
@@ -32,7 +32,6 @@ resources:
|
||||
- immich/
|
||||
- journal/
|
||||
- media/
|
||||
- minecraft/application.yaml
|
||||
- monitoring/
|
||||
- ntfy/
|
||||
- recipes/
|
||||
|
@@ -1,18 +0,0 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minecraft-application
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: apps
|
||||
source:
|
||||
repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git
|
||||
targetRevision: main
|
||||
path: apps/minecraft
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: minecraft
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: false
|
Reference in New Issue
Block a user