# Copyright 2015 Google Inc. # # 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 # This file configures the ctrack application . The frontend serves # public web traffic. # The bookshelf frontend replication controller ensures that at least 3 # instances of the bookshelf app are running on the cluster. # For more info about Pods see: # https://cloud.google.com/container-engine/docs/pods/ # For more info about Deployments: # https://kubernetes.io/docs/user-guide/deployments/ # [START kubernetes_deployment] apiVersion: apps/v1 kind: Deployment metadata: name: ctrack labels: app: ctrack spec: replicas: 3 selector: matchLabels: app: ctrack template: metadata: labels: app: ctrack spec: containers: - name: ctrack-app # Replace with your project ID or use `make template` image: gcr.io/ctrack-291710/ctrack # This setting makes nodes pull the docker image every time before # starting the pod. This is useful when debugging, but should be turned # off in production. imagePullPolicy: Always env: # [START cloudsql_secrets] - name: DATABASE_USER valueFrom: secretKeyRef: name: cloudsql key: ctrack - name: DATABASE_PASSWORD valueFrom: secretKeyRef: name: cloudsql key: password # [END cloudsql_secrets] ports: - containerPort: 8080 # [START proxy_container] - image: gcr.io/cloudsql-docker/gce-proxy:1.16 name: cloudsql-proxy command: ["/cloud_sql_proxy", "--dir=/cloudsql", "-instances=ctrack-291710:europe-west2:ctrack=tcp:5432", "-credential_file=/secrets/cloudsql/credentials.json"] volumeMounts: - name: cloudsql-oauth-credentials mountPath: /secrets/cloudsql readOnly: true - name: ssl-certs mountPath: /etc/ssl/certs - name: cloudsql mountPath: /cloudsql # [END proxy_container] # [START volumes] volumes: - name: cloudsql-oauth-credentials secret: secretName: cloudsql-oauth-credentials - name: ssl-certs hostPath: path: /etc/ssl/certs - name: cloudsql emptyDir: # [END volumes] # [END kubernetes_deployment] --- # [START service] # The ctrack service provides a load-balancing proxy over the ctrack app # pods. By specifying the type as a 'LoadBalancer', Container Engine will # create an external HTTP load balancer. # For more information about Services see: # https://cloud.google.com/container-engine/docs/services/ # For more information about external HTTP load balancing see: # https://cloud.google.com/container-engine/docs/load-balancer apiVersion: v1 kind: Service metadata: name: ctrack labels: app: ctrack spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: ctrack # [END service]