Skip to content

Repository files navigation

Usage on travis

Install tool

source <(curl -s -H 'Accept: application/vnd.github.v3.raw' https://api.github.com/repos/wendigo/gcp-builder/contents/installer.sh)

Create project descriptor file (service.yml)

project:
  name: test
  domain: test
  context: test
  versionPrefix: test-

variables:
  - name: replicas
    value: 1
  - name: containerPort
    value: 9000

environments:
  - name: test
    gcloud:
      registry: eu.gcr.io/project-test
      project: project-test
    kubernetes:
      cluster: container-test
      zone: europe-west1-b
      template: deployment.yml
      variables:
         - name: replicas
           value: 2
images:
  - build: dockerfiles/1
    name: container1
  - build: dockerfiles/2
    name: container2

Create project deployment template for kubernetes (deployment.yml) - this is example only :)

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: {{ .Config.Project.FullName }}
  labels:
    domain: {{ .Config.Project.Domain }}
    context: {{ .Config.Project.Context }}
    name: {{ .Config.Project.Name }}
    environment: {{ .EnvironmentName }}
spec:
  replicas: {{ .Variable "replicas" }}
  selector:
    matchLabels:
      domain: {{ .Config.Project.Domain }}
      context: {{ .Config.Project.Context }}
      name: {{ .Config.Project.Name }}
      environment: {{ .EnvironmentName }}
  template:
    metadata:
      labels:
        domain: {{ .Config.Project.Domain }}
        context: {{ .Config.Project.Context }}
        name: {{ .Config.Project.Name }}
        environment: {{ .EnvironmentName }}
    spec:
      volumes:
        - name: chat-brain-service-sql-credentials
          secret:
            secretName: chat-brain-service-sql-credentials
        - name: cloudsql
          emptyDir:
        - name: ssl-certs
          hostPath:
            path: /etc/ssl/certs
      containers:
      - name: brain
        image: {{ .Container "container1" }}
        imagePullPolicy: Always
        ports:
        - containerPort: {{ .Variable "containerPort" }}
---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Config.Project.FullName }}
  labels:
    domain: {{ .Config.Project.Domain }}
    context: {{ .Config.Project.Context }}
    name: {{ .Config.Project.Name }}
    environment: {{ .EnvironmentName }}
spec:
  type: NodePort
  ports:
  - port: {{ .Variable "containerPort" }}
    targetPort: {{ .Variable "containerPort" }}
    protocol: TCP
    name: http
  selector:
    domain: {{ .Config.Project.Domain }}
    context: {{ .Config.Project.Context }}
    name: {{ .Config.Project.Name }}
    environment: {{ .EnvironmentName }}

About

Very opinionated cloud build and deployment tool

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages