extras/postgres-hpa/kubernetes-manifests/frontend.yaml (142 lines of code) (raw):

# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. --- apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: selector: matchLabels: app: frontend strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 0 template: metadata: labels: app: frontend spec: serviceAccountName: default terminationGracePeriodSeconds: 60 securityContext: fsGroup: 1000 runAsGroup: 1000 runAsNonRoot: true runAsUser: 1000 containers: - name: front lifecycle: preStop: exec: # if SIGTERM triggers a quick exit; keep serving traffic instead command: ["sleep", "60"] securityContext: allowPrivilegeEscalation: false capabilities: drop: - all privileged: false readOnlyRootFilesystem: true image: gcr.io/bank-of-anthos-ci/frontend:v0.5.11@sha256:db94f51b613214d8999bbd2318a4ccad54f44fea319da55f17d80186424df646 imagePullPolicy: Always volumeMounts: - name: publickey mountPath: "/tmp/.ssh" readOnly: true - mountPath: /tmp name: tmp env: - name: VERSION value: "v0.5.9" - name: PORT value: "8080" - name: ENABLE_TRACING value: "true" - name: SCHEME value: "http" # Valid levels are debug, info, warning, error, critical. If no valid level is set, gunicorn will default to info. - name: LOG_LEVEL value: "info" - name: BACKEND_TIMEOUT value: "15" # Set to "true" to enable the CymbalBank logo + title # - name: CYMBAL_LOGO # value: "false" # Customize the bank name used in the header. Defaults to 'Bank of Anthos' - when CYMBAL_LOGO is true, uses 'CymbalBank' # - name: BANK_NAME # value: "" # Customize the cluster name if it cannot be retrieved from the metadata server #- name: CLUSTER_NAME # value: "my-cluster" - name: DEFAULT_USERNAME valueFrom: configMapKeyRef: name: demo-data-config key: DEMO_LOGIN_USERNAME - name: DEFAULT_PASSWORD valueFrom: configMapKeyRef: name: demo-data-config key: DEMO_LOGIN_PASSWORD - name: REGISTERED_OAUTH_CLIENT_ID valueFrom: configMapKeyRef: name: oauth-config key: DEMO_OAUTH_CLIENT_ID optional: true - name: ALLOWED_OAUTH_REDIRECT_URI valueFrom: configMapKeyRef: name: oauth-config key: DEMO_OAUTH_REDIRECT_URI optional: true # Customize the metadata server hostname to query for metadata #- name: METADATA_SERVER # value: "my-metadata-server" # Customize the pod zone if it cannot be retrieved from the metadata server #- name: POD_ZONE # value: "my-zone" # Customize the platform banner, options [alibaba, aws, azure, gcp, local, onprem] # - name: ENV_PLATFORM # value: "gcp" envFrom: - configMapRef: name: environment-config - configMapRef: name: service-api-config readinessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 10 periodSeconds: 15 timeoutSeconds: 30 livenessProbe: httpGet: path: /ready port: 8080 initialDelaySeconds: 10 periodSeconds: 15 timeoutSeconds: 30 resources: requests: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi limits: cpu: 250m memory: 512Mi ephemeral-storage: 1Gi volumes: - name: publickey secret: secretName: jwt-key items: - key: jwtRS256.key.pub path: publickey - emptyDir: {} name: tmp --- apiVersion: v1 kind: Service metadata: name: frontend spec: type: NodePort selector: app: frontend ports: - name: http port: 8080 targetPort: 8080 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: frontend spec: defaultBackend: service: name: frontend port: number: 8080