Skip to content

Commit

Permalink
deploy: Update quay deployment manifests for py3 canary (PROJQUAY-2373)…
Browse files Browse the repository at this point in the history
… (#902)

This change adds the Deployment and Service resources required to
canary python3 in quay.io
  • Loading branch information
syed committed Oct 13, 2021
1 parent ccf6ada commit 173dfbf
Showing 1 changed file with 216 additions and 8 deletions.
224 changes: 216 additions & 8 deletions deploy/openshift/quay-app.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -73,20 +73,49 @@ objects:
- apiVersion: v1
kind: Service
metadata:
name: prometheus-proxy-loadbalancer
name: quay-load-balancer-proxy-protocol-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: ${AWS_LOAD_BALANCER_CONNECTION_IDLE_TIMEOUT}
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
spec:
type: LoadBalancer
ports:
- name: prometheus-proxy-loadbalancer
- name: http
protocol: TCP
port: 3000
targetPort: 3000
port: ${{LOADBALANCER_SERVICE_HTTP_PORT}}
targetPort: ${{LOADBALANCER_SERVICE_PROXY_TARGET_HTTP_PORT}}
- name: https
protocol: TCP
port: ${{LOADBALANCER_SERVICE_PORT}}
targetPort: ${{LOADBALANCER_SERVICE_PROXY_TARGET_PORT}}
loadBalancerIP:
type: LoadBalancer
selector:
app: prometheus
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_COMPONENT_LABEL_VALUE}}

- apiVersion: v1
kind: Service
metadata:
name: quay-load-balancer-proxy-protocol-service
name: quay-py3-canary-clusterip-service
labels:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}
spec:
type: ClusterIP
ports:
- protocol: TCP
name: clusterip
port: ${{CLUSTERIP_SERVICE_PORT}}
targetPort: ${{CLUSTERIP_SERVICE_TARGET_PORT}}
- protocol: TCP
name: metrics
port: ${{CLUSTERIP_METRICS_SERVICE_PORT}}
targetPort: ${{CLUSTERIP_METRICS_SERVICE_TARGET_PORT}}
selector:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}

- apiVersion: v1
kind: Service
metadata:
name: quay-py3-canary-load-balancer-proxy-protocol-service
annotations:
service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: ${AWS_LOAD_BALANCER_CONNECTION_IDLE_TIMEOUT}
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: '*'
Expand All @@ -103,7 +132,22 @@ objects:
loadBalancerIP:
type: LoadBalancer
selector:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_COMPONENT_LABEL_VALUE}}
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}

- apiVersion: v1
kind: Service
metadata:
name: prometheus-proxy-loadbalancer
spec:
type: LoadBalancer
ports:
- name: prometheus-proxy-loadbalancer
protocol: TCP
port: 3000
targetPort: 3000
selector:
app: prometheus

- apiVersion: apps/v1
kind: Deployment
metadata:
Expand Down Expand Up @@ -249,6 +293,7 @@ objects:
value: ${QUAY_WORKER_MULTIPLIER_REGISTRY}
- name: WORKER_CONNECTION_COUNT_REGISTRY
value: ${QUAY_WORKER_CONNECTION_COUNT_REGISTRY}

- apiVersion: apps/v1
kind: Deployment
metadata:
Expand Down Expand Up @@ -394,6 +439,153 @@ objects:
value: ${QUAY_WORKER_MULTIPLIER_REGISTRY}
- name: WORKER_CONNECTION_COUNT_REGISTRY
value: ${QUAY_WORKER_CONNECTION_COUNT_REGISTRY}

- apiVersion: apps/v1
kind: Deployment
metadata:
name: quay-app-py3-canary
labels:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}
spec:
replicas: ${{QUAY_APP_PY3_CANARY_DEPLOYMENT_REPLICAS}}
minReadySeconds: ${{QUAY_APP_DEPLOYMENT_MIN_READY_SECONDS}}
progressDeadlineSeconds: ${{QUAY_APP_DEPLOYMENT_PROGRESS_DEADLINE_SECONDS}}
revisionHistoryLimit: ${{QUAY_APP_DEPLOYMENT_REVISION_HISTORY_LIMITS}}
strategy:
type: ${{QUAY_APP_DEPLOYMENT_STRATEGY_TYPE}}
rollingUpdate:
maxUnavailable: ${{QUAY_APP_DEPLOYMENT_MAX_UNAVAILABLE}}
maxSurge: ${{QUAY_APP_DEPLOYMENT_MAX_SURGE}}
selector:
matchLabels:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}
template:
metadata:
labels:
${{QUAY_APP_COMPONENT_LABEL_KEY}}: ${{QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE}}
annotations:
${{QUAY_APP_COMPONENT_ANNOTATIONS_KEY}}: ${{QUAY_APP_COMPONENT_ANNOTATIONS_VALUE}}
spec:
volumes:
- name: configvolume
secret:
secretName: ${{QUAY_APP_PY3_CANARY_CONFIG_SECRET}}
serviceAccountName: ${{NAME}}
containers:
- name: syslog-cloudwatch-bridge
image: ${SYSLOG_IMAGE}:${SYSLOG_IMAGE_TAG}
ports:
- containerPort: ${{SYSLOG_PORT}}
protocol: UDP
name: syslog-udp-port
- containerPort: ${{SYSLOG_PORT}}
protocol: TCP
name: syslog-tcp-port
env:
- name: STREAM_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: TICKER_TIME
value: ${TICKER_TIME}
- name: PORT
value: ${SYSLOG_PORT}
- name: AWS_REGION
valueFrom:
secretKeyRef:
name: ${{CLOUDWATCH_SECRET}}
key: AWS_REGION
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: ${{CLOUDWATCH_SECRET}}
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: ${{CLOUDWATCH_SECRET}}
key: AWS_SECRET_ACCESS_KEY
- name: LOG_GROUP_NAME
valueFrom:
secretKeyRef:
name: ${{CLOUDWATCH_SECRET}}
key: LOG_GROUP_NAME
resources:
limits:
cpu: ${{QUAY_SYSLOG_CPU_LIMIT}}
memory: ${{QUAY_SYSLOG_MEMORY_LIMIT}}
requests:
cpu: ${{QUAY_SYSLOG_CPU_REQUEST}}
memory: ${{QUAY_SYSLOG_MEMORY_REQUEST}}
readinessProbe:
tcpSocket:
port: ${{SYSLOG_PORT}}
initialDelaySeconds: ${{QUAY_SYSLOG_READINESS_PROBE_INITIAL_DELAY_SECONDS}}
periodSeconds: ${{QUAY_SYSLOG_READINESS_PROBE_PERIOD_SECONDS}}
timeoutSeconds: ${{QUAY_SYSLOG_READINESS_PROBE_TIMEOUT_SECONDS}}
livenessProbe:
tcpSocket:
port: ${{SYSLOG_PORT}}
initialDelaySeconds: ${{QUAY_SYSLOG_LIVENESS_PROBE_INITIAL_DELAY_SECONDS}}
periodSeconds: ${{QUAY_SYSLOG_LIVENESS_PROBE_PERIOD_SECONDS}}
timeoutSeconds: ${{QUAY_SYSLOG_LIVENESS_PROBE_TIMEOUT_SECONDS}}
- name: quay-app-py3-canary
image: ${IMAGE_PY3_CANARY}:${IMAGE_TAG_PY3_CANARY}
imagePullPolicy: ${{IMAGE_PULL_POLICY}}
command:
- /quay-registry/quay-entrypoint.sh
- ${{QUAY_ENTRYPOINT}}
ports:
- containerPort: 8443
volumeMounts:
- name: configvolume
mountPath: /conf/stack
livenessProbe:
exec:
command:
- curl
- -k
- https://localhost:8443/health/instance
initialDelaySeconds: ${{QUAY_APP_LIVENESS_PROBE_INITIAL_DELAY_SECONDS}}
periodSeconds: ${{QUAY_APP_LIVENESS_PROBE_PERIOD_SECONDS}}
timeoutSeconds: ${{QUAY_APP_LIVENESS_PROBE_TIMEOUT_SECONDS}}
readinessProbe:
exec:
command:
- curl
- -k
- https://localhost:8443/health/endtoend
initialDelaySeconds: ${{QUAY_APP_READINESS_PROBE_INITIAL_DELAY_SECONDS}}
periodSeconds: ${{QUAY_APP_READINESS_PROBE_PERIOD_SECONDS}}
timeoutSeconds: ${{QUAY_APP_READINESS_PROBE_TIMEOUT_SECONDS}}
resources:
limits:
cpu: ${{QUAY_APP_CPU_LIMIT}}
memory: ${{QUAY_APP_MEMORY_LIMIT}}
requests:
cpu: ${{QUAY_APP_CPU_REQUEST}}
memory: ${{QUAY_APP_MEMORY_REQUEST}}
env:
- name: QE_K8S_NAMESPACE
value: ${{QUAY_APP_DEPLOYMENT_NAMESPACE}}
- name: QE_K8S_CONFIG_SECRET
value: ${{QUAY_APP_CONFIG_SECRET}}
- name: DEBUGLOG
value: ${DEBUGLOG}
- name: SYSLOG_SERVER
value: ${{SYSLOG_SERVER}}
- name: SYSLOG_PORT
value: ${SYSLOG_PORT}
- name: SYSLOG_PROTO
value: ${{SYSLOG_PROTO}}
- name: QUAY_LOGGING
value: ${{QUAY_LOGGING}}
- name: WORKER_MULTIPLIER_REGISTRY
value: ${QUAY_WORKER_MULTIPLIER_REGISTRY}
- name: WORKER_CONNECTION_COUNT_REGISTRY
value: ${QUAY_WORKER_CONNECTION_COUNT_REGISTRY}

parameters:
- name: NAME
value: "quay"
Expand All @@ -407,6 +599,10 @@ parameters:
value: ""
displayName: quay blue-deployment image
description: quay blue-deployment docker image. Defaults to quay.io/app-sre/quay.
- name: IMAGE_PY3_CANARY
value: ""
displayName: quay image
description: quay docker image. Defaults to quay.io/app-sre/quay.
- name: IMAGE_TAG
value: "latest"
displayName: quay version
Expand All @@ -415,6 +611,10 @@ parameters:
value: "latest"
displayName: quay version
description: quay version which defaults to latest
- name: IMAGE_TAG_PY3_CANARY
value: "latest"
displayName: quay version
description: quay version which defaults to latest
- name: QUAY_ENTRYPOINT
value: "registry-nomigrate"
displayName: quay container entrypoint
Expand All @@ -437,6 +637,9 @@ parameters:
- name: QUAY_APP_COMPONENT_LABEL_VALUE
value: "app"
displayName: quay app selector label value
- name: QUAY_APP_PY3_CANARY_COMPONENT_LABEL_VALUE
value: "app-py3-canary"
displayName: quay app selector label value
- name: LOADBALANCER_SERVICE_PORT
value: "443"
displayName: loadbalancer service port
Expand All @@ -458,11 +661,16 @@ parameters:
- name: QUAY_APP_CONFIG_SECRET_BLUE
value: "quay-config-secret"
displayName: quay app blue-deployment config secret
- name: QUAY_APP_PY3_CANARY_CONFIG_SECRET
value: "quay-config-secret"
displayName: quay app blue-deployment config secret
- name: QUAY_APP_DEPLOYMENT_REPLICAS
value: "1"
displayName: quay app deployment replicas
- name: QUAY_APP_DEPLOYMENT_REPLICAS_BLUE
value: "0"
- name: QUAY_APP_PY3_CANARY_DEPLOYMENT_REPLICAS
value: "0"
displayName: quay app blue deployment replicas
- name: QUAY_APP_DEPLOYMENT_NAMESPACE
value: "quay"
Expand Down

0 comments on commit 173dfbf

Please sign in to comment.