From d77328ba145d5860153e327908f0322c053977d0 Mon Sep 17 00:00:00 2001 From: SeraphimNoob01 Date: Tue, 23 Jun 2026 02:27:54 +0100 Subject: [PATCH] Add faf-coop-deployer Helm chart Deploys the new faf-coop-deployer service which replaces the manual CoopMapDeployer.kt and CoopDeployer.kt scripts. Campaign team members with the COOP_DEPLOYER role can deploy maps and patches via REST API without requiring direct database or shell access. Source: https://github.com/TimMasalme/coop-deployer --- apps/faf-coop-deployer/Chart.yaml | 7 +++ apps/faf-coop-deployer/templates/config.yaml | 11 +++++ .../templates/deployment.yaml | 47 +++++++++++++++++++ .../templates/local-secret.yaml | 9 ++++ apps/faf-coop-deployer/templates/service.yaml | 10 ++++ apps/faf-coop-deployer/values-prod.yaml | 1 + apps/faf-coop-deployer/values.yaml | 9 ++++ 7 files changed, 94 insertions(+) create mode 100644 apps/faf-coop-deployer/Chart.yaml create mode 100644 apps/faf-coop-deployer/templates/config.yaml create mode 100644 apps/faf-coop-deployer/templates/deployment.yaml create mode 100644 apps/faf-coop-deployer/templates/local-secret.yaml create mode 100644 apps/faf-coop-deployer/templates/service.yaml create mode 100644 apps/faf-coop-deployer/values-prod.yaml create mode 100644 apps/faf-coop-deployer/values.yaml diff --git a/apps/faf-coop-deployer/Chart.yaml b/apps/faf-coop-deployer/Chart.yaml new file mode 100644 index 00000000..1ae62715 --- /dev/null +++ b/apps/faf-coop-deployer/Chart.yaml @@ -0,0 +1,7 @@ +apiVersion: v2 +name: faf-coop-deployer +version: 1.0.0 +dependencies: +- name: infisical-secret + version: 1.0.0 + repository: file://../../common/infisical-secret diff --git a/apps/faf-coop-deployer/templates/config.yaml b/apps/faf-coop-deployer/templates/config.yaml new file mode 100644 index 00000000..ee06a2eb --- /dev/null +++ b/apps/faf-coop-deployer/templates/config.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: faf-coop-deployer +data: + PORT: "8080" + FAF_HYDRA_BASE: "https://hydra.faforever.com" + COOP_MAP_REPO: "https://github.com/FAForever/faf-coop-maps" + GIT_WORKDIR: "/tmp/coop-maps" + MAP_DIR: "/maps" + DRY_RUN: "false" diff --git a/apps/faf-coop-deployer/templates/deployment.yaml b/apps/faf-coop-deployer/templates/deployment.yaml new file mode 100644 index 00000000..828c1701 --- /dev/null +++ b/apps/faf-coop-deployer/templates/deployment.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: faf-coop-deployer + labels: + app: faf-coop-deployer +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: faf-coop-deployer + template: + metadata: + labels: + app: faf-coop-deployer + spec: + containers: + - name: faf-coop-deployer + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 8080 + envFrom: + - configMapRef: + name: faf-coop-deployer + - secretRef: + name: faf-coop-deployer + resources: + requests: + memory: 128Mi + cpu: 100m + limits: + memory: 512Mi + cpu: 500m + livenessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /health + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 diff --git a/apps/faf-coop-deployer/templates/local-secret.yaml b/apps/faf-coop-deployer/templates/local-secret.yaml new file mode 100644 index 00000000..5640c577 --- /dev/null +++ b/apps/faf-coop-deployer/templates/local-secret.yaml @@ -0,0 +1,9 @@ +{{- if .Values.localSecret }} +apiVersion: v1 +kind: Secret +metadata: + name: faf-coop-deployer +stringData: + DATABASE_URL: {{ .Values.localSecret.databaseUrl | quote }} + PATCH_VERSION: {{ .Values.localSecret.patchVersion | default "latest" | quote }} +{{- end }} diff --git a/apps/faf-coop-deployer/templates/service.yaml b/apps/faf-coop-deployer/templates/service.yaml new file mode 100644 index 00000000..9d8e5ede --- /dev/null +++ b/apps/faf-coop-deployer/templates/service.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: faf-coop-deployer +spec: + selector: + app: faf-coop-deployer + ports: + - port: 8080 + targetPort: 8080 diff --git a/apps/faf-coop-deployer/values-prod.yaml b/apps/faf-coop-deployer/values-prod.yaml new file mode 100644 index 00000000..ebf6be86 --- /dev/null +++ b/apps/faf-coop-deployer/values-prod.yaml @@ -0,0 +1 @@ +replicaCount: 1 diff --git a/apps/faf-coop-deployer/values.yaml b/apps/faf-coop-deployer/values.yaml new file mode 100644 index 00000000..b8307eed --- /dev/null +++ b/apps/faf-coop-deployer/values.yaml @@ -0,0 +1,9 @@ +replicaCount: 1 + +image: + repository: faforever/faf-coop-deployer + tag: latest + pullPolicy: Always + +infisical-secret: + name: faf-coop-deployer