# Copyright 2022 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: prod
  name: vcs-test-deployment
spec:
  # Because of the shared disk there can only be one instance.
  replicas: 1
  strategy:
    type: Recreate

  selector:
    matchLabels:
      app: vcs-test
  template:
    metadata:
      labels:
        app: vcs-test
    spec:
      serviceAccountName: vcs-test
      volumes:
      - name: vcs-test-cache
        persistentVolumeClaim:
          claimName: vcs-test-cache-claim
      containers:
      - name: vcs-test
        image: gcr.io/symbolic-datum-552/vcs-test:latest
        imagePullPolicy: Always
        command: ["/usr/bin/tini", "--", "/vcweb", "-d=/home/vcweb", "-listen-https-selfsigned=:444"]
        volumeMounts:
        - mountPath: /home/vcweb
          name: vcs-test-cache
        ports:
        - containerPort: 444
        resources:
          requests:
            cpu: "1"
            memory: "2Gi"
      - name: apache
        image: gcr.io/symbolic-datum-552/vcs-test-apache:latest
        imagePullPolicy: Always
        volumeMounts:
        - mountPath: /home/vcweb
          name: vcs-test-cache
        ports:
        - containerPort: 8888
        resources:
          requests:
            cpu: "1"
            memory: "1Gi"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  namespace: prod
  name: vcs-test-cache-claim
spec:
  storageClassName: standard-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
  namespace: prod
  name: vcs-test-internal
  annotations:
    cloud.google.com/neg: '{"ingress": false}'
    cloud.google.com/app-protocols: '{"https":"HTTP2"}'
spec:
  ports:
    - port: 444
      targetPort: 444
      name: https
  selector:
    app: vcs-test
  type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: prod
  name: vcs-test-ingress
  annotations:
    kubernetes.io/ingress.global-static-ip-name: vcs-test-global
    networking.gke.io/managed-certificates: vcs-test-cert
    kubernetes.io/ingress.class: "gce"
spec:
  rules:
  - host: vcs-test.golang.org
    http:
      paths:
      - pathType: ImplementationSpecific
        path: /*
        backend:
          service:
            name: vcs-test-internal
            port:
              number: 444
---
apiVersion: networking.gke.io/v1
kind: ManagedCertificate
metadata:
  namespace: prod
  name: vcs-test-cert
spec:
  domains:
    - vcs-test.golang.org
