diff --git a/default/haven-notify.yaml b/default/haven-notify.yaml new file mode 100644 index 0000000..f4dab22 --- /dev/null +++ b/default/haven-notify.yaml @@ -0,0 +1,81 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: haven-notify + namespace: default + labels: + app: haven-notify +spec: + replicas: 1 + selector: + matchLabels: + app: haven-notify + template: + metadata: + labels: + app: haven-notify + spec: + containers: + - name: haven-notify + image: git.ivanch.me/ivanch/haven-notify:latest + imagePullPolicy: Always + ports: + - containerPort: 8080 + env: + - name: WEBHOOK_URL + valueFrom: + secretKeyRef: + name: discord-webhook + key: HAVEN_WEBHOOK_URL + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + httpGet: + path: /live + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 200m + memory: 128Mi + +--- +apiVersion: v1 +kind: Service +metadata: + name: haven-notify + namespace: default +spec: + selector: + app: haven-notify + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: haven-notify + namespace: default +spec: + ingressClassName: nginx + rules: + - host: notify.haven + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: haven-notify + port: + number: 8080 diff --git a/default/vaultwarden.yaml b/default/vaultwarden.yaml index 285f8ab..6cc5ace 100644 --- a/default/vaultwarden.yaml +++ b/default/vaultwarden.yaml @@ -30,6 +30,31 @@ spec: ports: - containerPort: 80 name: vault-port + # /alive requires no authentication and verifies the Vaultwarden process + startupProbe: + httpGet: + path: /alive + port: vault-port + scheme: HTTP + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 30 + readinessProbe: + httpGet: + path: /alive + port: vault-port + scheme: HTTP + periodSeconds: 10 + timeoutSeconds: 3 + failureThreshold: 3 + livenessProbe: + httpGet: + path: /alive + port: vault-port + scheme: HTTP + periodSeconds: 15 + timeoutSeconds: 3 + failureThreshold: 6 volumeMounts: - name: vaultwarden-data mountPath: /data @@ -87,9 +112,9 @@ metadata: spec: ingressClassName: nginx tls: - - hosts: - - vault.haven - secretName: vaultwarden-tls + - hosts: + - vault.haven + secretName: vaultwarden-tls rules: - host: vault.haven http: @@ -120,4 +145,4 @@ spec: service: name: vaultwarden port: - number: 80 \ No newline at end of file + number: 80 diff --git a/dev/gitea-runner.yaml b/dev/gitea-runner.yaml index 3e5bf13..190826b 100644 --- a/dev/gitea-runner.yaml +++ b/dev/gitea-runner.yaml @@ -14,6 +14,10 @@ data: - "ubuntu-amd64:docker://docker.gitea.com/runner-images:ubuntu-latest" - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "ubuntu-slim:docker://docker.gitea.com/runner-images:ubuntu-latest-slim" + - "runner-full:docker://git.ivanch.me/ivanch/runner-images:full" + - "runner-slim:docker://git.ivanch.me/ivanch/runner-images:slim" + - "runner-full-amd64:docker://git.ivanch.me/ivanch/runner-images:full" + - "runner-slim-amd64:docker://git.ivanch.me/ivanch/runner-images:slim" --- # --- ConfigMap for the ARM64 Runner --- apiVersion: v1 @@ -28,6 +32,8 @@ data: timeout: 1h labels: - "ubuntu-arm64:docker://docker.gitea.com/runner-images:ubuntu-latest" + - "runner-full-arm64:docker://git.ivanch.me/ivanch/runner-images:full" + - "runner-slim-arm64:docker://git.ivanch.me/ivanch/runner-images:slim" --- # PersistentVolumeClaim for AMD64 apiVersion: v1 @@ -78,55 +84,55 @@ spec: app: gitea-runner-amd64 spec: containers: - - name: gitea-runner - image: gitea/act_runner:latest - imagePullPolicy: Always - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "4000m" - memory: "4Gi" - volumeMounts: - - name: config-volume - mountPath: /etc/gitea-runner/config.yaml - subPath: config.yaml - - name: docker-socket - mountPath: /var/run/docker.sock - - name: gitea-runner-amd64-pvc - mountPath: /data - env: - - name: GITEA_RUNNER_REGISTRATION_TOKEN - valueFrom: - secretKeyRef: - name: gitea-runner-token - key: REGISTRATION_TOKEN - - name: GITEA_INSTANCE_URL - value: https://git.ivanch.me - - name: GITEA_RUNNER_NAME - value: k8s-runner-amd64 - - name: CONFIG_FILE - value: /etc/gitea-runner/config.yaml + - name: gitea-runner + image: gitea/act_runner:latest + imagePullPolicy: Always + resources: + requests: + cpu: "500m" + memory: "512Mi" + limits: + cpu: "4000m" + memory: "4Gi" + volumeMounts: + - name: config-volume + mountPath: /etc/gitea-runner/config.yaml + subPath: config.yaml + - name: docker-socket + mountPath: /var/run/docker.sock + - name: gitea-runner-amd64-pvc + mountPath: /data + env: + - name: GITEA_RUNNER_REGISTRATION_TOKEN + valueFrom: + secretKeyRef: + name: gitea-runner-token + key: REGISTRATION_TOKEN + - name: GITEA_INSTANCE_URL + value: https://git.ivanch.me + - name: GITEA_RUNNER_NAME + value: k8s-runner-amd64 + - name: CONFIG_FILE + value: /etc/gitea-runner/config.yaml volumes: - - name: config-volume - configMap: - name: gitea-runner-amd64-config - - name: docker-socket - hostPath: - path: /var/run/docker.sock - - name: gitea-runner-amd64-pvc - persistentVolumeClaim: - claimName: gitea-runner-amd64-pvc + - name: config-volume + configMap: + name: gitea-runner-amd64-config + - name: docker-socket + hostPath: + path: /var/run/docker.sock + - name: gitea-runner-amd64-pvc + persistentVolumeClaim: + claimName: gitea-runner-amd64-pvc affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: In - values: - - iris + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - iris --- # --- Deployment for the ARM64 Runner --- apiVersion: apps/v1 @@ -145,52 +151,52 @@ spec: app: gitea-runner-arm64 spec: containers: - - name: gitea-runner - image: gitea/act_runner:latest - imagePullPolicy: Always - resources: - requests: - cpu: "500m" - memory: "512Mi" - limits: - cpu: "4000m" - memory: "4Gi" - volumeMounts: - - name: config-volume - mountPath: /etc/gitea-runner/config.yaml - subPath: config.yaml - - name: docker-socket - mountPath: /var/run/docker.sock - - name: gitea-runner-arm64-pvc - mountPath: /data - env: - - name: GITEA_RUNNER_REGISTRATION_TOKEN - valueFrom: - secretKeyRef: - name: gitea-runner-token - key: REGISTRATION_TOKEN - - name: GITEA_INSTANCE_URL - value: https://git.ivanch.me - - name: GITEA_RUNNER_NAME - value: k8s-runner-arm64 - - name: CONFIG_FILE - value: /etc/gitea-runner/config.yaml + - name: gitea-runner + image: gitea/act_runner:latest + imagePullPolicy: Always + resources: + requests: + cpu: "500m" + memory: "512Mi" + limits: + cpu: "4000m" + memory: "4Gi" + volumeMounts: + - name: config-volume + mountPath: /etc/gitea-runner/config.yaml + subPath: config.yaml + - name: docker-socket + mountPath: /var/run/docker.sock + - name: gitea-runner-arm64-pvc + mountPath: /data + env: + - name: GITEA_RUNNER_REGISTRATION_TOKEN + valueFrom: + secretKeyRef: + name: gitea-runner-token + key: REGISTRATION_TOKEN + - name: GITEA_INSTANCE_URL + value: https://git.ivanch.me + - name: GITEA_RUNNER_NAME + value: k8s-runner-arm64 + - name: CONFIG_FILE + value: /etc/gitea-runner/config.yaml volumes: - - name: config-volume - configMap: - name: gitea-runner-arm64-config - - name: docker-socket - hostPath: - path: /var/run/docker.sock - - name: gitea-runner-arm64-pvc - persistentVolumeClaim: - claimName: gitea-runner-arm64-pvc + - name: config-volume + configMap: + name: gitea-runner-arm64-config + - name: docker-socket + hostPath: + path: /var/run/docker.sock + - name: gitea-runner-arm64-pvc + persistentVolumeClaim: + claimName: gitea-runner-arm64-pvc affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - - matchExpressions: - - key: kubernetes.io/hostname - operator: In - values: - - nexus \ No newline at end of file + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - nexus