diff --git a/java/google/registry/proxy/ProxyConfig.java b/java/google/registry/proxy/ProxyConfig.java index 11213cef8..ceecad627 100644 --- a/java/google/registry/proxy/ProxyConfig.java +++ b/java/google/registry/proxy/ProxyConfig.java @@ -25,6 +25,7 @@ public class ProxyConfig { enum Environment { PRODUCTION, + PRODUCTION_CANARY, SANDBOX, SANDBOX_CANARY, ALPHA, diff --git a/java/google/registry/proxy/ProxyModule.java b/java/google/registry/proxy/ProxyModule.java index aa478b148..c4f1c8aae 100644 --- a/java/google/registry/proxy/ProxyModule.java +++ b/java/google/registry/proxy/ProxyModule.java @@ -141,7 +141,7 @@ public class ProxyModule { throw e; } checkArgument( - !log || env != Environment.PRODUCTION, + !log || (env != Environment.PRODUCTION && env != Environment.PRODUCTION_CANARY), "Logging cannot be enabled for production environment"); configureLogging(); return this; diff --git a/java/google/registry/proxy/config/proxy-config-production-canary.yaml b/java/google/registry/proxy/config/proxy-config-production-canary.yaml new file mode 100644 index 000000000..ea71687e3 --- /dev/null +++ b/java/google/registry/proxy/config/proxy-config-production-canary.yaml @@ -0,0 +1 @@ +# Add environment-specific proxy configuration here. diff --git a/java/google/registry/proxy/kubernetes/proxy-deployment-production-canary.yaml b/java/google/registry/proxy/kubernetes/proxy-deployment-production-canary.yaml new file mode 100644 index 000000000..922d6a5fa --- /dev/null +++ b/java/google/registry/proxy/kubernetes/proxy-deployment-production-canary.yaml @@ -0,0 +1,51 @@ +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", "production_canary"] + env: + - name: POD_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE_ID + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONTAINER_NAME + value: proxy-canary + diff --git a/java/google/registry/proxy/kubernetes/proxy-deployment-production.yaml b/java/google/registry/proxy/kubernetes/proxy-deployment-production.yaml new file mode 100644 index 000000000..084b4f174 --- /dev/null +++ b/java/google/registry/proxy/kubernetes/proxy-deployment-production.yaml @@ -0,0 +1,51 @@ +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", "production"] + env: + - name: POD_ID + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: NAMESPACE_ID + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONTAINER_NAME + value: proxy +