From c6a4264606c4548471032f7f1ae7f8f3f44abb52 Mon Sep 17 00:00:00 2001 From: jianglai Date: Wed, 18 Apr 2018 12:44:59 -0700 Subject: [PATCH] Setup sandbox for GCP proxy 1) Clean up alpha config to only allow alpha proxy, removing test proxy client id. 2) Add sandbox service account client id to sandbox config. 3) Add sandbox config to nomulus and proxy, remove TEST environment, which is not being used anymore. (Test now uses LOCAL.) 4) Add sandbox kubenetes config ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=193400909 --- java/google/registry/proxy/ProxyConfig.java | 5 +- .../config/proxy-config-sandbox-canary.yaml | 1 + .../proxy-deployment-sandbox-canary.yaml | 65 +++++++++++++++++++ .../kubernetes/proxy-deployment-sandbox.yaml | 65 +++++++++++++++++++ .../kubernetes/proxy-service-canary.yaml | 25 +++++++ 5 files changed, 159 insertions(+), 2 deletions(-) create mode 100644 java/google/registry/proxy/config/proxy-config-sandbox-canary.yaml create mode 100644 java/google/registry/proxy/kubernetes/proxy-deployment-sandbox-canary.yaml create mode 100644 java/google/registry/proxy/kubernetes/proxy-deployment-sandbox.yaml create mode 100644 java/google/registry/proxy/kubernetes/proxy-service-canary.yaml diff --git a/java/google/registry/proxy/ProxyConfig.java b/java/google/registry/proxy/ProxyConfig.java index 3a09d4427..f040e3769 100644 --- a/java/google/registry/proxy/ProxyConfig.java +++ b/java/google/registry/proxy/ProxyConfig.java @@ -25,9 +25,9 @@ public class ProxyConfig { enum Environment { PRODUCTION, SANDBOX, + SANDBOX_CANARY, ALPHA, LOCAL, - TEST, } private static final String DEFAULT_CONFIG = "config/default-config.yaml"; @@ -119,7 +119,8 @@ public class ProxyConfig { String defaultYaml = readResourceUtf8(ProxyConfig.class, DEFAULT_CONFIG); String customYaml = readResourceUtf8( - ProxyConfig.class, String.format(CUSTOM_CONFIG_FORMATTER, env.name().toLowerCase())); + ProxyConfig.class, + String.format(CUSTOM_CONFIG_FORMATTER, env.name().toLowerCase().replace("_", "-"))); return getConfigSettings(defaultYaml, customYaml, ProxyConfig.class); } } diff --git a/java/google/registry/proxy/config/proxy-config-sandbox-canary.yaml b/java/google/registry/proxy/config/proxy-config-sandbox-canary.yaml new file mode 100644 index 000000000..ea71687e3 --- /dev/null +++ b/java/google/registry/proxy/config/proxy-config-sandbox-canary.yaml @@ -0,0 +1 @@ +# Add environment-specific proxy configuration here. diff --git a/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox-canary.yaml b/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox-canary.yaml new file mode 100644 index 000000000..07305e9ed --- /dev/null +++ b/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox-canary.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: default + name: proxy-deployment-canary + labels: + app: proxy-canary +spec: + replicas: 3 + selector: + matchLabels: + app: proxy-canary + template: + metadata: + labels: + app: proxy-canary + spec: + containers: + - name: proxy-canary + image: gcr.io/GCP_PROJECT/IMAGE_NAME:bazel + ports: + - containerPort: 30000 + name: health-check + - containerPort: 30001 + name: whois + - containerPort: 30002 + name: epp + readinessProbe: + tcpSocket: + port: health-check + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + tcpSocket: + port: health-check + initialDelaySeconds: 15 + periodSeconds: 20 + imagePullPolicy: Always + args: ["--env", "sandbox_canary"] + env: + - name: POD_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE_ID + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONTAINER_NAME + value: proxy-canary +--- +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + namespace: default + name: proxy-autoscale-canary + labels: + app: proxy-canary +spec: + scaleTargetRef: + apiVersion: extensions/v1beta1 + kind: Deployment + name: proxy-deployment-canary + maxReplicas: 5 + minReplicas: 1 diff --git a/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox.yaml b/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox.yaml new file mode 100644 index 000000000..037cb952d --- /dev/null +++ b/java/google/registry/proxy/kubernetes/proxy-deployment-sandbox.yaml @@ -0,0 +1,65 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: default + name: proxy-deployment + labels: + app: proxy +spec: + replicas: 3 + selector: + matchLabels: + app: proxy + template: + metadata: + labels: + app: proxy + spec: + containers: + - name: proxy + image: gcr.io/GCP_PROJECT/IMAGE_NAME:bazel + ports: + - containerPort: 30000 + name: health-check + - containerPort: 30001 + name: whois + - containerPort: 30002 + name: epp + readinessProbe: + tcpSocket: + port: health-check + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + tcpSocket: + port: health-check + initialDelaySeconds: 15 + periodSeconds: 20 + imagePullPolicy: Always + args: ["--env", "sandbox"] + env: + - name: POD_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE_ID + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONTAINER_NAME + value: proxy +--- +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + namespace: default + name: proxy-autoscale + labels: + app: proxy +spec: + scaleTargetRef: + apiVersion: extensions/v1beta1 + kind: Deployment + name: proxy-deployment + maxReplicas: 5 + minReplicas: 1 diff --git a/java/google/registry/proxy/kubernetes/proxy-service-canary.yaml b/java/google/registry/proxy/kubernetes/proxy-service-canary.yaml new file mode 100644 index 000000000..395591c91 --- /dev/null +++ b/java/google/registry/proxy/kubernetes/proxy-service-canary.yaml @@ -0,0 +1,25 @@ +kind: Service +apiVersion: v1 +metadata: + namespace: default + name: proxy-service-canary +spec: + selector: + app: proxy-canary + ports: + - protocol: TCP + port: 30000 + nodePort: 31000 + targetPort: health-check + name: health-check + - protocol: TCP + port: 30001 + nodePort: 31001 + targetPort: whois + name: whois + - protocol: TCP + port: 30002 + nodePort: 31002 + targetPort: epp + name: epp + type: NodePort