Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 20 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,34 +1,39 @@
DOCKER_REPO ?= gcr.io/online-bridge-hackathon-2020
# Project / Org
GCP_PROJECT ?= globalbridge-app
GKE_ZONE ?= europe-west4-b

# Service / App
GKE_CLUSTER_NAME ?= prod-cluster
RELEASE_NAME ?= deal
K8S_NS ?= prod-${RELEASE_NAME}
EXTERNAL_ADDRESS ?= ${RELEASE_NAME}.prod.globalbridge.app

# Docker Config
DOCKER_REPO ?= gcr.io/${GCP_PROJECT}
VERSION ?= $(shell cat VERSION)
DOCKER_TAG=${DOCKER_REPO}/deal-api:${VERSION}

EXTERNAL_ADDRES ?= deal.hackathon.globalbridge.app

DDS_K8S_NS ?= deal-api
GCP_PROJECT ?= online-bridge-hackathon-2020
GKE_CLUSTER_NAME ?= hackathon-cluster
GKE_ZONE ?= europe-west3-b
DOCKER_TAG = ${DOCKER_REPO}/${RELEASE_NAME}:${VERSION}

release: build push

build:
build:
docker build -t ${DOCKER_TAG} .

push:
docker push ${DOCKER_TAG}

deploy: set_gcp_context ensure_ns
helm upgrade --install deal-api ./chart \
helm upgrade --install ${RELEASE_NAME} ./chart \
--set image="${DOCKER_TAG}" \
--set externalHostname="${EXTERNAL_ADDRES}" \
--namespace ${DDS_K8S_NS} \
--set externalHostname="${EXTERNAL_ADDRESS}" \
--namespace ${K8S_NS} \
--history-max=10

uninstall: set_gcp_context
helm del deal-api --namespace ${DDS_K8S_NS}
@echo Warning: Are you sure you want to delete this Production service ${RELEASE_NAME} [N/y]
read answer; [ "x$$answer" = "xy" ] && helm del ${RELEASE_NAME} --namespace ${K8S_NS}

set_gcp_context:
gcloud container clusters get-credentials ${GKE_CLUSTER_NAME} --zone ${GKE_ZONE} --project ${GCP_PROJECT}

ensure_ns:
kubectl create ns ${DDS_K8S_NS} || :
kubectl create ns ${K8S_NS} || :
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.1
0.1.0
4 changes: 4 additions & 0 deletions chart/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A helm chart for Deal API
name: deal
version: 0.1.0
60 changes: 60 additions & 0 deletions chart/templates/deal.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-deployment
labels:
app: {{ .Release.Name }}
spec:
replicas: {{ int .Values.replicas }}
selector:
matchLabels:
app: {{ .Release.Name }}
template:
metadata:
labels:
app: {{ .Release.Name }}
spec:
containers:
- name: {{ .Release.Name }}-api
image: {{ .Values.image }}
imagePullPolicy: Always
ports:
- containerPort: {{ .Values.targetPort }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-service
spec:
selector:
app: {{ .Release.Name }}
ports:
- port: 80
targetPort: {{ .Values.targetPort }}
protocol: TCP
name: http
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
cert-manager.io/cluster-issuer: letsencrypt-production
labels:
app: {{ .Release.Name }}
name: {{ .Release.Name }}-ingress
spec:
tls:
- hosts:
- {{ .Values.externalHostname }}
secretName: {{ .Values.tlsSecret }}
rules:
- host: "{{ .Values.externalHostname }}"
http:
paths:
- path: /
backend:
serviceName: {{ .Release.Name }}-service
servicePort: 80
5 changes: 5 additions & 0 deletions chart/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
image: gcr.io/globalbridge-app/deal
replicas: 1
externalHostname: deal.prod.globalbridge.app
tlsSecret: deal-tls-secret
targetPort: 8080