diff --git a/apps/prod/services/experiment-platform.yaml b/apps/prod/services/experiment-platform.yaml new file mode 100644 index 0000000..66fa906 --- /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: 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..9c7e81a --- /dev/null +++ b/services/experiment-platform/overlays/prod/kustomization.yaml @@ -0,0 +1,20 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: 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..224ee75 --- /dev/null +++ b/services/experiment-platform/overlays/prod/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: experiment-platform