Skip to content
This repository has been archived by the owner on Nov 10, 2021. It is now read-only.

Commit

Permalink
Add travis deploy to k8s
Browse files Browse the repository at this point in the history
  • Loading branch information
inDream committed Jun 7, 2018
1 parent c85480e commit 797141b
Show file tree
Hide file tree
Showing 4 changed files with 213 additions and 0 deletions.
176 changes: 176 additions & 0 deletions .k8s/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ipfs-pv-claim
namespace: likecoin
labels:
app: puttyimage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pgsql-pv-claim
namespace: likecoin
labels:
app: puttyimage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: puttyimage-ipfs
namespace: likecoin
spec:
selector:
matchLabels:
app: puttyimage-ipfs
replicas: 1
template:
metadata:
labels:
app: puttyimage-ipfs
spec:
containers:
- name: ipfs
image: ipfs/go-ipfs:v0.4.15
ports:
- containerPort: 8080
volumeMounts:
- name: ipfs-persistent-storage
mountPath: /data/ipfs
volumes:
- name: ipfs-persistent-storage
persistentVolumeClaim:
claimName: ipfs-pv-claim
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: puttyimage-db
namespace: likecoin
spec:
selector:
matchLabels:
app: puttyimage-db
replicas: 1
template:
metadata:
labels:
app: puttyimage-db
spec:
containers:
- name: pgsql
image: postgres:10.4
ports:
- containerPort: 5432
volumeMounts:
- name: pgsql-persistent-storage
mountPath: /data
volumes:
- name: pgsql-persistent-storage
persistentVolumeClaim:
claimName: pgsql-pv-claim
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: puttyimage-web
namespace: likecoin
spec:
selector:
matchLabels:
app: puttyimage-web
replicas: 1
template:
metadata:
labels:
app: puttyimage-web
spec:
containers:
- name: web
image: indream/puttyimages-web:latest
ports:
- containerPort: 3000
env:
- name: HOST
value: 0.0.0.0
- name: IPFS_HOST
value: ipfs
---
apiVersion: v1
kind: Service
metadata:
labels:
app: web
name: web
namespace: likecoin
spec:
ports:
- port: 80
protocol: TCP
targetPort: 3000
selector:
app: puttyimage-web
sessionAffinity: None
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
name: ipfs
namespace: likecoin
labels:
app: puttyimage-ipfs
spec:
ports:
- port: 8080
selector:
app: puttyimage-ipfs
clusterIP: None
---
apiVersion: v1
kind: Service
metadata:
name: db
namespace: likecoin
labels:
app: puttyimage-db
spec:
ports:
- port: 5432
selector:
app: puttyimage-db
clusterIP: None
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: puttyimage
name: puttyimage
namespace: likecoin
annotations:
ingress.kubernetes.io/proxy-body-size: 10m
spec:
rules:
- host: puttyimage.pandawork.com
http:
paths:
- path: /
backend:
serviceName: web
servicePort: 80
tls:
- hosts:
- puttyimage.pandawork.com
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ deploy:
- provider: script
script: ./scripts/deploy-docker-hub.sh
skip_cleanup: true
after_deploy:
- ./scripts/trigger-github-deploy.sh
env:
global:
# DOCKER_USERNAME
Expand Down
17 changes: 17 additions & 0 deletions fabfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from fabric.api import env, settings
from fabric.decorators import task
from fabric.operations import local, put, run

env.shell = '/bin/sh -l -c'
env.user = 'unimportant'
env.roledefs.update({
'pandawork': ['puttyimage.pandawork.com'] # this is also unimportant
})

def short_sha():
return local("git rev-parse --short HEAD", capture=True)

@task
def deploy(branch_name):
image_tag = short_sha()
local("kubectl --namespace likecoin set image deployment/puttyimage-web web=oursky/puttyimage-web:%s" % (image_tag,))
18 changes: 18 additions & 0 deletions scripts/trigger-github-deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash -e

GITHUB_TRIGGER_URL=https://api.github.com/repos/$TRAVIS_REPO_SLUG/deployments
>&2 echo "Trigger build on Github..."
curl -H "Authorization: token $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
--data '{"ref": "master", "task": "deploy", "environment": "pandawork",
"payload": {
"name": "puttyimages",
"config": {
"provider": "fabric",
"auto_merge": false,
"repository": "oursky/puttyimages-web",
"environments": ["pandawork"],
"allowed_rooms": ["deployment", "likecoin-internal"]
}
}}' \
-X POST $GITHUB_TRIGGER_URL

0 comments on commit 797141b

Please sign in to comment.