From 5e89a33b9bdc397df1f3671d9f8c2967f1e0bd78 Mon Sep 17 00:00:00 2001 From: Liana Date: Sun, 24 Nov 2024 20:23:17 -0600 Subject: [PATCH] --wip-- [skipci] --- .../lianalabs/apps/games/kustomization.yaml | 7 + .../apps/games/minecraft/app/helmrelease.yaml | 120 ++++++++++++++++++ .../games/minecraft/app/kustomization.yaml | 7 + .../minecraft/app/resources/shoujomagical.png | Bin 0 -> 21212 bytes .../apps/games/minecraft/app/secret.sops.yaml | 29 +++++ .../lianalabs/apps/games/minecraft/ks.yaml | 52 ++++++++ .../minecraft/mc-router/helmrelease.yaml | 30 +++++ .../minecraft/mc-router/kustomization.yaml | 6 + .../lianalabs/apps/games/namespace.yaml | 7 + .../lianalabs/apps/home/kustomization.yaml | 2 + .../apps/home/pairdrop/app/helmrelease.yaml | 84 ++++++++++++ .../apps/home/pairdrop/app/kustomization.yaml | 6 + .../lianalabs/apps/home/pairdrop/ks.yaml | 26 ++++ .../apps/home/pingvin/app/helmrelease.yaml | 98 ++++++++++++++ .../apps/home/pingvin/app/kustomization.yaml | 6 + .../lianalabs/apps/home/pingvin/ks.yaml | 26 ++++ .../apps/labs/homepage/app/helmrelease.yaml | 1 + .../apps/labs/netbox/app/helmrelease.yaml | 2 +- .../flux/repositories/helm/itzg.yaml | 9 ++ .../flux/repositories/helm/kustomization.yaml | 1 + .../lianalabs/flux/vars/cluster-settings.yaml | 1 + 21 files changed, 519 insertions(+), 1 deletion(-) create mode 100644 kubernetes/lianalabs/apps/games/kustomization.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/app/helmrelease.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/app/kustomization.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/app/resources/shoujomagical.png create mode 100644 kubernetes/lianalabs/apps/games/minecraft/app/secret.sops.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/ks.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/mc-router/helmrelease.yaml create mode 100644 kubernetes/lianalabs/apps/games/minecraft/mc-router/kustomization.yaml create mode 100644 kubernetes/lianalabs/apps/games/namespace.yaml create mode 100644 kubernetes/lianalabs/apps/home/pairdrop/app/helmrelease.yaml create mode 100644 kubernetes/lianalabs/apps/home/pairdrop/app/kustomization.yaml create mode 100644 kubernetes/lianalabs/apps/home/pairdrop/ks.yaml create mode 100644 kubernetes/lianalabs/apps/home/pingvin/app/helmrelease.yaml create mode 100644 kubernetes/lianalabs/apps/home/pingvin/app/kustomization.yaml create mode 100644 kubernetes/lianalabs/apps/home/pingvin/ks.yaml create mode 100644 kubernetes/lianalabs/flux/repositories/helm/itzg.yaml diff --git a/kubernetes/lianalabs/apps/games/kustomization.yaml b/kubernetes/lianalabs/apps/games/kustomization.yaml new file mode 100644 index 0000000..d55fc8e --- /dev/null +++ b/kubernetes/lianalabs/apps/games/kustomization.yaml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./namespace.yaml + #- ./minecraft/ks.yaml diff --git a/kubernetes/lianalabs/apps/games/minecraft/app/helmrelease.yaml b/kubernetes/lianalabs/apps/games/minecraft/app/helmrelease.yaml new file mode 100644 index 0000000..11b16fb --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/app/helmrelease.yaml @@ -0,0 +1,120 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app minecraft +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 3.5.1 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + dependsOn: + - name: volsync + namespace: volsync-system + values: + controllers: + minecraft: + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: ghcr.io/itzg/minecraft-server + tag: 2024.10.2@sha256:8bd119f65ef6e65bdb12f756bfb44a305b36b1adf868ade8027014fabc29c755 + env: + TZ: ${TIMEZONE} + AUTOPAUSE_TIMEOUT_EST: 600 + AUTOPAUSE_TIMEOUT_INIT: 300 + DIFFICULTY: normal + ENABLE_AUTOPAUSE: TRUE + ENABLE_WHITELIST: true + EULA: true + FORCE_GAMEMODE: true + ICON: https://i.ibb.co/q7PkGt4/shoujomagical.png + JVM_XX_OPTS: "-XX:MaxRAMPercentage=75" + MAX_BUILD_HEIGHT: 320 + MAX_TICK_TIME: -1 + MAX_WORLD_SIZE: 29999984 + MEMORY: 8192M + MODE: survival + MOTD: "Minecraft Server" + OVERRIDE_ICON: TRUE + PAPER_CHANNEL: experimental + SERVER_NAME: Shoujo Magical Gamers + SKIP_SUDO: true + SPAWN_PROTECTION: 0 + SPIGET_RESOURCES: 36618 + TYPE: PAPER + VERSION: "1.21" + VIEW_DISTANCE: 12 + envFrom: + - secretRef: + name: minecraft-secret + resources: + requests: + cpu: 100m + memory: 100Mi + limits: + memory: 8192Mi + securityContext: + allowPrivilegeEscalation: true + readOnlyRootFilesystem: true + capabilities: + add: ["NET_RAW"] + drop: ["ALL"] + probes: + liveness: &probe + enabled: true + custom: true + spec: + periodSeconds: 60 + exec: &probeexec { command: ["mc-health"] } + readiness: *probe + startup: + <<: *probe + spec: + initialDelaySeconds: 30 + periodSeconds: 1 + failureThreshold: 300 + exec: *probeexec + pod: + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + runAsNonRoot: true + fsGroup: 1000 + fsGroupChangePolicy: Always + service: + app: + controller: minecraft + annotations: + external-dns.alpha.kubernetes.io/hostname: "minecraft.${SECRET_EXTERNAL_DOMAIN}" + external-dns.alpha.kubernetes.io/target: "mc-router.${SECRET_EXTERNAL_DOMAIN}" + mc-router.itzg.me/externalServerName: minecraft.${SECRET_EXTERNAL_DOMAIN} + ports: + minecraft: + port: 25565 + persistence: + data: + existingClaim: minecraft + globalMounts: + - path: /data + tmp: + type: emptyDir + medium: Memory + globalMounts: + - path: /tmp diff --git a/kubernetes/lianalabs/apps/games/minecraft/app/kustomization.yaml b/kubernetes/lianalabs/apps/games/minecraft/app/kustomization.yaml new file mode 100644 index 0000000..16a6ce3 --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/app/kustomization.yaml @@ -0,0 +1,7 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./secret.sops.yaml + - ./helmrelease.yaml diff --git a/kubernetes/lianalabs/apps/games/minecraft/app/resources/shoujomagical.png b/kubernetes/lianalabs/apps/games/minecraft/app/resources/shoujomagical.png new file mode 100644 index 0000000000000000000000000000000000000000..c115bfe267c992d1f965776ec261135007ee28d9 GIT binary patch literal 21212 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 literal 0 HcmV?d00001 diff --git a/kubernetes/lianalabs/apps/games/minecraft/app/secret.sops.yaml b/kubernetes/lianalabs/apps/games/minecraft/app/secret.sops.yaml new file mode 100644 index 0000000..0619109 --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/app/secret.sops.yaml @@ -0,0 +1,29 @@ +# yamllint disable +kind: Secret +apiVersion: v1 +type: Opaque +metadata: + name: minecraft-secret +stringData: + OPS: null + WHITELIST: null +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age19nu7uf8dageqlmzk23x7vl24fpn0l7cq20l3l4xxf2sk2xd5h98qss437p + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzY003SDgrU0JpcGxvaVZZ + OTdXcTgyVitmYk5tMGF3cVpsNkNsRHhyR2tzCmJUNWRYM2V6SG5VNU1seFovZEs0 + UnJ4K2o4ejBtL01KUnRRVW1udWRLblUKLS0tIGVWUUtnL2kxOThtcnA0VW5WSk9P + R2dOOXozc2ZFZm9DOGVqNnNlTWh3amsKx0xCZTnekhyPX6hqGBPe2iNkKGPMPWCq + vFnuh4T1EKl3ckU0yhU4cxk1KrBuFCaboPYLgTJ5kkjvtgUV2rg+9A== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2024-11-24T19:27:41Z" + mac: ENC[AES256_GCM,data:kxWbQtrVby8Nj1X1nHoS86RcL5O8x4tikbcJSLpnSoN1UXjXo3QqoHQ1eYVXMuQu58s+SgPkSF6XSTfVRDwLIGia0fzJ87c7QxGvlQsdkzXwtP0SqrSyEIhnge/rOsRhfm7B89cwhmIxISHXIIORBh3RNEdrDQBHIUFhEhUj5j8=,iv:OYnkzOkVWr8DTUyhbWinrVhe6pL8W/zKW0ufkMe8Vfk=,tag:1/Ud7OHz09QEl/CtaoMSmg==,type:str] + pgp: [] + encrypted_regex: ^(data|stringData)$ + version: 3.9.1 diff --git a/kubernetes/lianalabs/apps/games/minecraft/ks.yaml b/kubernetes/lianalabs/apps/games/minecraft/ks.yaml new file mode 100644 index 0000000..028634e --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/ks.yaml @@ -0,0 +1,52 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app minecraft + namespace: flux-system +spec: + targetNamespace: games + commonMetadata: + labels: + app.kubernetes.io/name: *app + dependsOn: + - name: traefik + path: ./kubernetes/lianalabs/apps/games/minecraft/app + prune: true + sourceRef: + kind: GitRepository + name: k8s-gitops + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m + postBuild: + substitute: + APP: *app +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app mc-router + namespace: flux-system +spec: + targetNamespace: games + commonMetadata: + labels: + app.kubernetes.io/name: *app + dependsOn: + - name: traefik + path: ./kubernetes/lianalabs/apps/games/minecraft/mc-router + prune: true + sourceRef: + kind: GitRepository + name: k8s-gitops + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m + postBuild: + substitute: + APP: *app diff --git a/kubernetes/lianalabs/apps/games/minecraft/mc-router/helmrelease.yaml b/kubernetes/lianalabs/apps/games/minecraft/mc-router/helmrelease.yaml new file mode 100644 index 0000000..8405056 --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/mc-router/helmrelease.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app mc-router +spec: + interval: 30m + chart: + spec: + chart: mc-router + version: 1.2.3 + sourceRef: + kind: HelmRepository + name: itzg + namespace: flux-system + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + services: + minecraft: + type: LoadBalancer + annotations: + external-dns.alpha.kubernetes.io/hostname: "mc-router.${SECRET_EXTERNAL_DOMAIN}" + lbipam.cilium.io/ips: "${LB_MINECRAFT}" diff --git a/kubernetes/lianalabs/apps/games/minecraft/mc-router/kustomization.yaml b/kubernetes/lianalabs/apps/games/minecraft/mc-router/kustomization.yaml new file mode 100644 index 0000000..17cbc72 --- /dev/null +++ b/kubernetes/lianalabs/apps/games/minecraft/mc-router/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/kubernetes/lianalabs/apps/games/namespace.yaml b/kubernetes/lianalabs/apps/games/namespace.yaml new file mode 100644 index 0000000..c40e183 --- /dev/null +++ b/kubernetes/lianalabs/apps/games/namespace.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: games + labels: + kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/kubernetes/lianalabs/apps/home/kustomization.yaml b/kubernetes/lianalabs/apps/home/kustomization.yaml index eb3f61b..3624416 100644 --- a/kubernetes/lianalabs/apps/home/kustomization.yaml +++ b/kubernetes/lianalabs/apps/home/kustomization.yaml @@ -6,3 +6,5 @@ resources: - ./namespace.yaml - ./actual/ks.yaml - ./stirling-pdf/ks.yaml + - ./pairdrop/ks.yaml + - ./pingvin/ks.yaml diff --git a/kubernetes/lianalabs/apps/home/pairdrop/app/helmrelease.yaml b/kubernetes/lianalabs/apps/home/pairdrop/app/helmrelease.yaml new file mode 100644 index 0000000..e1eaf57 --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pairdrop/app/helmrelease.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app pairdrop +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 3.5.1 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + maxHistory: 2 + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + controllers: + pairdrop: + replicas: 1 + strategy: RollingUpdate + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: ghcr.io/schlagmichdoch/pairdrop + tag: v1.10.10@sha256:89a19e22de00843cb47a81f95bdb68c7fa5c1357b318e571419004b6b3618252 + env: + TZ: ${TIMEZONE} + resources: + requests: + cpu: 5m + memory: 50M + limits: + memory: 250M + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + capabilities: { drop: ["ALL"] } + service: + app: + controller: pairdrop + ports: + http: + port: 3000 + ingress: + app: + className: traefik + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" + gethomepage.dev/enabled: "true" + gethomepage.dev/group: Home + gethomepage.dev/name: Pairdrop + gethomepage.dev/description: File transfers + gethomepage.dev/icon: pairdrop + hosts: + - host: &host "pairdrop.${SECRET_INTERNAL_DOMAIN}" + paths: + - path: / + service: + identifier: app + port: http + tls: + - hosts: + - *host + secretName: "pairdrop-tls" + persistence: + cache: + type: emptyDir + globalMounts: + - path: /root/.npm/_cacache + logs: + type: emptyDir + globalMounts: + - path: /root/.npm/_logs diff --git a/kubernetes/lianalabs/apps/home/pairdrop/app/kustomization.yaml b/kubernetes/lianalabs/apps/home/pairdrop/app/kustomization.yaml new file mode 100644 index 0000000..17cbc72 --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pairdrop/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/kubernetes/lianalabs/apps/home/pairdrop/ks.yaml b/kubernetes/lianalabs/apps/home/pairdrop/ks.yaml new file mode 100644 index 0000000..b7e21e5 --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pairdrop/ks.yaml @@ -0,0 +1,26 @@ +--- +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app pairdrop + namespace: flux-system +spec: + targetNamespace: home + commonMetadata: + labels: + app.kubernetes.io/name: *app + dependsOn: + - name: traefik + path: ./kubernetes/lianalabs/apps/home/pairdrop/app + prune: true + sourceRef: + kind: GitRepository + name: k8s-gitops + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m + postBuild: + substitute: + APP: *app diff --git a/kubernetes/lianalabs/apps/home/pingvin/app/helmrelease.yaml b/kubernetes/lianalabs/apps/home/pingvin/app/helmrelease.yaml new file mode 100644 index 0000000..a54d980 --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pingvin/app/helmrelease.yaml @@ -0,0 +1,98 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: &app pingvin +spec: + interval: 30m + chart: + spec: + chart: app-template + version: 3.5.1 + sourceRef: + kind: HelmRepository + name: bjw-s + namespace: flux-system + maxHistory: 2 + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + strategy: rollback + retries: 3 + values: + controllers: + pingvin: + replicas: 1 + strategy: RollingUpdate + annotations: + reloader.stakater.com/auto: "true" + containers: + app: + image: + repository: stonith404/pingvin-share + tag: v1.5.0@sha256:6ab8c404a24a48767ba73955bc9b4c44e48307a39aab8ea74ddf351de0f2e280 + env: + TZ: ${TIMEZONE} + TRUST_PROXY: true + resources: + requests: + cpu: 5m + memory: 50M + limits: + memory: 250M + service: + app: + controller: pingvin + ports: + http: + port: 3000 + backend: + port: 8080 + ingress: + app: + className: traefik + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" + gethomepage.dev/enabled: "true" + gethomepage.dev/group: Home + gethomepage.dev/name: Pingvin + gethomepage.dev/description: File share + gethomepage.dev/icon: pingvin + hosts: + - host: &host "share.${SECRET_EXTERNAL_DOMAIN}" + paths: + - path: / + service: + identifier: app + port: http + tls: + - hosts: + - *host + secretName: "pingvin-tls" + external: + className: traefik-external + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-production" + hosts: + - host: &host "share.${SECRET_EXTERNAL_DOMAIN}" + paths: + - path: / + service: + identifier: app + port: 8080 + tls: + - hosts: + - *host + secretName: "pingvin-tls" + persistence: + data: + storageClass: local-nvme + accessMode: ReadWriteOnce + size: 32Gi + retain: true + globalMounts: + - path: /opt/app/backend/data/data + - path: /opt/app/frontend/public/img diff --git a/kubernetes/lianalabs/apps/home/pingvin/app/kustomization.yaml b/kubernetes/lianalabs/apps/home/pingvin/app/kustomization.yaml new file mode 100644 index 0000000..17cbc72 --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pingvin/app/kustomization.yaml @@ -0,0 +1,6 @@ +--- +# yaml-language-server: $schema=https://json.schemastore.org/kustomization +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/kubernetes/lianalabs/apps/home/pingvin/ks.yaml b/kubernetes/lianalabs/apps/home/pingvin/ks.yaml new file mode 100644 index 0000000..6ebfc5d --- /dev/null +++ b/kubernetes/lianalabs/apps/home/pingvin/ks.yaml @@ -0,0 +1,26 @@ +--- +# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/kustomize.toolkit.fluxcd.io/kustomization_v1.json +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app pingvin + namespace: flux-system +spec: + targetNamespace: home + commonMetadata: + labels: + app.kubernetes.io/name: *app + dependsOn: + - name: traefik + path: ./kubernetes/lianalabs/apps/home/pingvin/app + prune: true + sourceRef: + kind: GitRepository + name: k8s-gitops + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m + postBuild: + substitute: + APP: *app diff --git a/kubernetes/lianalabs/apps/labs/homepage/app/helmrelease.yaml b/kubernetes/lianalabs/apps/labs/homepage/app/helmrelease.yaml index 9fd831c..7684ac3 100644 --- a/kubernetes/lianalabs/apps/labs/homepage/app/helmrelease.yaml +++ b/kubernetes/lianalabs/apps/labs/homepage/app/helmrelease.yaml @@ -20,6 +20,7 @@ spec: upgrade: cleanupOnFail: true remediation: + strategy: rollback retries: 3 values: controllers: diff --git a/kubernetes/lianalabs/apps/labs/netbox/app/helmrelease.yaml b/kubernetes/lianalabs/apps/labs/netbox/app/helmrelease.yaml index 08c9ba2..8b709ba 100644 --- a/kubernetes/lianalabs/apps/labs/netbox/app/helmrelease.yaml +++ b/kubernetes/lianalabs/apps/labs/netbox/app/helmrelease.yaml @@ -118,7 +118,7 @@ spec: annotations: cert-manager.io/cluster-issuer: "letsencrypt-production" gethomepage.dev/enabled: "true" - gethomepage.dev/group: Services + gethomepage.dev/group: Observability gethomepage.dev/name: NetBox gethomepage.dev/description: Network documentation gethomepage.dev/icon: netbox diff --git a/kubernetes/lianalabs/flux/repositories/helm/itzg.yaml b/kubernetes/lianalabs/flux/repositories/helm/itzg.yaml new file mode 100644 index 0000000..aa60eda --- /dev/null +++ b/kubernetes/lianalabs/flux/repositories/helm/itzg.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: itzg + namespace: flux-system +spec: + interval: 2h + url: https://itzg.github.io/minecraft-server-charts/ diff --git a/kubernetes/lianalabs/flux/repositories/helm/kustomization.yaml b/kubernetes/lianalabs/flux/repositories/helm/kustomization.yaml index b2f7a08..e466db4 100644 --- a/kubernetes/lianalabs/flux/repositories/helm/kustomization.yaml +++ b/kubernetes/lianalabs/flux/repositories/helm/kustomization.yaml @@ -10,6 +10,7 @@ resources: - ./cloudnative-pg.yaml - ./coredns.yaml - ./grafana.yaml + - ./itzg.yaml - ./jetstack.yaml - ./k8tz.yaml - ./metrics-server.yaml diff --git a/kubernetes/lianalabs/flux/vars/cluster-settings.yaml b/kubernetes/lianalabs/flux/vars/cluster-settings.yaml index 4bd012e..d033dd3 100644 --- a/kubernetes/lianalabs/flux/vars/cluster-settings.yaml +++ b/kubernetes/lianalabs/flux/vars/cluster-settings.yaml @@ -22,3 +22,4 @@ data: LB_TRAEFIK: 10.28.12.100 LB_TRAEFIK_EXTERNAL: 10.28.12.101 LB_POSTGRES: 10.28.12.102 + LB_MINECRAFT: 10.28.12.103