From 053e4591004573e9569b0d7c75f1f912f5e4c213 Mon Sep 17 00:00:00 2001 From: codex-bot Date: Sat, 7 Mar 2026 05:57:58 +0900 Subject: [PATCH 1/2] feat(gitops): onboard experiment-platform manifests --- apps/prod/services/experiment-platform.yaml | 22 +++++++++++++ .../base/backend-deployment.yaml | 22 +++++++++++++ .../base/backend-service.yaml | 12 +++++++ .../base/frontend-deployment.yaml | 22 +++++++++++++ .../base/frontend-service.yaml | 12 +++++++ .../base/kustomization.yaml | 7 +++++ .../overlays/prod/ingress.yaml | 31 +++++++++++++++++++ .../overlays/prod/kustomization.yaml | 20 ++++++++++++ .../overlays/prod/namespace.yaml | 4 +++ 9 files changed, 152 insertions(+) create mode 100644 apps/prod/services/experiment-platform.yaml create mode 100644 services/experiment-platform/base/backend-deployment.yaml create mode 100644 services/experiment-platform/base/backend-service.yaml create mode 100644 services/experiment-platform/base/frontend-deployment.yaml create mode 100644 services/experiment-platform/base/frontend-service.yaml create mode 100644 services/experiment-platform/base/kustomization.yaml create mode 100644 services/experiment-platform/overlays/prod/ingress.yaml create mode 100644 services/experiment-platform/overlays/prod/kustomization.yaml create mode 100644 services/experiment-platform/overlays/prod/namespace.yaml diff --git a/apps/prod/services/experiment-platform.yaml b/apps/prod/services/experiment-platform.yaml new file mode 100644 index 0000000..06bb9fe --- /dev/null +++ b/apps/prod/services/experiment-platform.yaml @@ -0,0 +1,22 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: experiment-platform + namespace: argocd + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + project: default + source: + repoURL: https://github.com/Pseudo-Lab/DevFactory-Ops.git + targetRevision: main + path: services/experiment-platform/overlays/prod + destination: + server: https://kubernetes.default.svc + namespace: apps-experiment-platform + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true \ No newline at end of file diff --git a/services/experiment-platform/base/backend-deployment.yaml b/services/experiment-platform/base/backend-deployment.yaml new file mode 100644 index 0000000..1172c23 --- /dev/null +++ b/services/experiment-platform/base/backend-deployment.yaml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: experiment-platform-backend +spec: + replicas: 1 + selector: + matchLabels: + app: experiment-platform + component: backend + template: + metadata: + labels: + app: experiment-platform + component: backend + spec: + containers: + - name: backend + image: ghcr.io/pseudo-lab/experiment-platform-backend + imagePullPolicy: Always + ports: + - containerPort: 8000 diff --git a/services/experiment-platform/base/backend-service.yaml b/services/experiment-platform/base/backend-service.yaml new file mode 100644 index 0000000..eacab1e --- /dev/null +++ b/services/experiment-platform/base/backend-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: experiment-platform-backend +spec: + type: ClusterIP + selector: + app: experiment-platform + component: backend + ports: + - port: 8000 + targetPort: 8000 diff --git a/services/experiment-platform/base/frontend-deployment.yaml b/services/experiment-platform/base/frontend-deployment.yaml new file mode 100644 index 0000000..bf4411d --- /dev/null +++ b/services/experiment-platform/base/frontend-deployment.yaml @@ -0,0 +1,22 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: experiment-platform-frontend +spec: + replicas: 1 + selector: + matchLabels: + app: experiment-platform + component: frontend + template: + metadata: + labels: + app: experiment-platform + component: frontend + spec: + containers: + - name: frontend + image: ghcr.io/pseudo-lab/experiment-platform-frontend + imagePullPolicy: Always + ports: + - containerPort: 80 diff --git a/services/experiment-platform/base/frontend-service.yaml b/services/experiment-platform/base/frontend-service.yaml new file mode 100644 index 0000000..48cfd4a --- /dev/null +++ b/services/experiment-platform/base/frontend-service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: experiment-platform-frontend +spec: + type: ClusterIP + selector: + app: experiment-platform + component: frontend + ports: + - port: 80 + targetPort: 80 diff --git a/services/experiment-platform/base/kustomization.yaml b/services/experiment-platform/base/kustomization.yaml new file mode 100644 index 0000000..17af0b5 --- /dev/null +++ b/services/experiment-platform/base/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - frontend-deployment.yaml + - frontend-service.yaml + - backend-deployment.yaml + - backend-service.yaml diff --git a/services/experiment-platform/overlays/prod/ingress.yaml b/services/experiment-platform/overlays/prod/ingress.yaml new file mode 100644 index 0000000..26887c2 --- /dev/null +++ b/services/experiment-platform/overlays/prod/ingress.yaml @@ -0,0 +1,31 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: experiment-platform-ingress + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + ingressClassName: nginx + tls: + - hosts: + - exp.pseudolab-devfactory.com + secretName: experiment-platform-tls + rules: + - host: exp.pseudolab-devfactory.com + http: + paths: + - path: /api + pathType: Prefix + backend: + service: + name: experiment-platform-backend + port: + number: 8000 + - path: / + pathType: Prefix + backend: + service: + name: experiment-platform-frontend + port: + number: 80 diff --git a/services/experiment-platform/overlays/prod/kustomization.yaml b/services/experiment-platform/overlays/prod/kustomization.yaml new file mode 100644 index 0000000..6902998 --- /dev/null +++ b/services/experiment-platform/overlays/prod/kustomization.yaml @@ -0,0 +1,20 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: apps-experiment-platform + +resources: + - ../../base + - namespace.yaml + - ingress.yaml + +commonLabels: + environment: production + project: experiment-platform + +images: + - name: ghcr.io/pseudo-lab/experiment-platform-frontend + newName: ghcr.io/pseudo-lab/experiment-platform-frontend + newTag: PLACEHOLDER + - name: ghcr.io/pseudo-lab/experiment-platform-backend + newName: ghcr.io/pseudo-lab/experiment-platform-backend + newTag: PLACEHOLDER \ No newline at end of file diff --git a/services/experiment-platform/overlays/prod/namespace.yaml b/services/experiment-platform/overlays/prod/namespace.yaml new file mode 100644 index 0000000..40dc30c --- /dev/null +++ b/services/experiment-platform/overlays/prod/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: apps-experiment-platform From 2f612d496ef2dc2408f6cd72a431291518a9c68d Mon Sep 17 00:00:00 2001 From: codex-bot Date: Sat, 7 Mar 2026 06:08:00 +0900 Subject: [PATCH 2/2] fix(gitops): use experiment-platform namespace --- apps/prod/services/experiment-platform.yaml | 2 +- services/experiment-platform/overlays/prod/kustomization.yaml | 2 +- services/experiment-platform/overlays/prod/namespace.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/prod/services/experiment-platform.yaml b/apps/prod/services/experiment-platform.yaml index 06bb9fe..66fa906 100644 --- a/apps/prod/services/experiment-platform.yaml +++ b/apps/prod/services/experiment-platform.yaml @@ -13,7 +13,7 @@ spec: path: services/experiment-platform/overlays/prod destination: server: https://kubernetes.default.svc - namespace: apps-experiment-platform + namespace: experiment-platform syncPolicy: automated: prune: true diff --git a/services/experiment-platform/overlays/prod/kustomization.yaml b/services/experiment-platform/overlays/prod/kustomization.yaml index 6902998..9c7e81a 100644 --- a/services/experiment-platform/overlays/prod/kustomization.yaml +++ b/services/experiment-platform/overlays/prod/kustomization.yaml @@ -1,6 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization -namespace: apps-experiment-platform +namespace: experiment-platform resources: - ../../base diff --git a/services/experiment-platform/overlays/prod/namespace.yaml b/services/experiment-platform/overlays/prod/namespace.yaml index 40dc30c..224ee75 100644 --- a/services/experiment-platform/overlays/prod/namespace.yaml +++ b/services/experiment-platform/overlays/prod/namespace.yaml @@ -1,4 +1,4 @@ apiVersion: v1 kind: Namespace metadata: - name: apps-experiment-platform + name: experiment-platform