Kube (#163)
* Initial kube * Added testing docker image * Added docker building * Deploy the branch * Deploy to production * hiddent maybe * Faster build please * One charachter * We need to use yaml in standard way * Bring test back again * Added command arguments * Move to tus project * Domain expired * Added King Marius recommendation * Added pvc * Change branch name * Added HPA * Extended memory @Acconut * Separete gcloud from kubernetes * remove test for quicker iteration * Remove garbage ignore * Move back to old trusty * Debug base64 * Remove docker build and test again base64 * Bring it back * Wrong * we don't need helm * Update domain * Increase body size * Add long timeouts because we don't want another nginx instance * Get the tests running again
This commit is contained in:
parent
ef64437ccc
commit
adddcf752d
|
@ -0,0 +1,5 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: tus
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: tusd
|
||||||
|
namespace: tus
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: tusd
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: docker.io/tusproject/tusd:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
args: ["-port=8080","-behind-proxy","-max-size=1000000000"]
|
||||||
|
name: tusd
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 0.7
|
||||||
|
memory: "2Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.5
|
||||||
|
memory: "1Gi"
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
volumeMounts:
|
||||||
|
- name: tusd-disk
|
||||||
|
mountPath: /srv/tusd-data
|
||||||
|
volumes:
|
||||||
|
- name: tusd-disk
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: tusd
|
|
@ -0,0 +1,14 @@
|
||||||
|
|
||||||
|
apiVersion: autoscaling/v1
|
||||||
|
kind: HorizontalPodAutoscaler
|
||||||
|
metadata:
|
||||||
|
name: tusd
|
||||||
|
namespace: tus
|
||||||
|
spec:
|
||||||
|
scaleTargetRef:
|
||||||
|
apiVersion: apps/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
name: tusd
|
||||||
|
minReplicas: 1
|
||||||
|
maxReplicas: 5
|
||||||
|
targetCPUUtilizationPercentage: 90
|
|
@ -0,0 +1,27 @@
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: tusd
|
||||||
|
namespace: tus
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/tls-acme: "true"
|
||||||
|
kubernetes.io/ingress.class: "nginx"
|
||||||
|
ingress.kubernetes.io/proxy-request-buffering: 'off'
|
||||||
|
ingress.kubernetes.io/proxy-body-size: '400m'
|
||||||
|
ingress.kubernetes.io/proxy-connect-timeout: "300"
|
||||||
|
ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||||
|
ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||||
|
spec:
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- tusd.kiloreux.me
|
||||||
|
secretName: tusd-tls
|
||||||
|
rules:
|
||||||
|
- host: tusd.kiloreux.me
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
backend:
|
||||||
|
serviceName: tusd
|
||||||
|
servicePort: 80
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: tusd
|
||||||
|
namespace: tus
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 50Gi
|
||||||
|
storageClassName: standard
|
|
@ -0,0 +1,13 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: tusd
|
||||||
|
namespace: tus
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: tusd
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -o pipefail
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
# set -o xtrace
|
||||||
|
|
||||||
|
# Set magic variables for current FILE & DIR
|
||||||
|
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
__root="$(cd "$(dirname "${__dir}")" && pwd)"
|
||||||
|
|
||||||
|
|
||||||
|
echo "Storing ca.crt inside HOME"
|
||||||
|
echo $CA_CRT | base64 --decode -i > ${HOME}/ca.crt
|
||||||
|
echo "ca.crt is saved"
|
||||||
|
|
||||||
|
#Store the new image in docker hub
|
||||||
|
docker build --quiet -t tusproject/tusd:latest -t tusproject/tusd:$TRAVIS_COMMIT ${__root};
|
||||||
|
docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD";
|
||||||
|
docker push tusproject/tusd:$TRAVIS_COMMIT;
|
||||||
|
docker push tusproject/tusd:latest;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
gcloud config set container/use_client_certificate True
|
||||||
|
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
|
||||||
|
|
||||||
|
kubectl config set-cluster transloadit-cluster --embed-certs=true --server=${CLUSTER_ENDPOINT} --certificate-authority=${HOME}/ca.crt
|
||||||
|
kubectl config set-credentials travis --token=$SA_TOKEN
|
||||||
|
kubectl config set-context travis --cluster=$CLUSTER_NAME --user=travis --namespace=tus
|
||||||
|
kubectl config use-context travis
|
||||||
|
|
||||||
|
|
||||||
|
kubectl apply -f "${__root}/.infra/kube/pvc.yaml"
|
||||||
|
kubectl apply -f "${__root}/.infra/kube/deployment.yaml"
|
||||||
|
kubectl apply -f "${__root}/.infra/kube/service.yaml"
|
||||||
|
kubectl apply -f "${__root}/.infra/kube/ingress-tls.yaml"
|
||||||
|
|
||||||
|
kubectl set image deployment/tusd --namespace=tus tusd=docker.io/tusproject/tusd:$TRAVIS_COMMIT
|
||||||
|
|
||||||
|
kubectl get pods --namespace=tus
|
||||||
|
kubectl get service --namespace=tus
|
||||||
|
kubectl get deployment --namespace=tus
|
||||||
|
|
||||||
|
|
||||||
|
function cleanup {
|
||||||
|
printf "Cleaning up...\n"
|
||||||
|
printf "Cleaning done."
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
15
.travis.yml
15
.travis.yml
|
@ -6,11 +6,14 @@ go:
|
||||||
- 1.8
|
- 1.8
|
||||||
- 1.9
|
- 1.9
|
||||||
sudo: required
|
sudo: required
|
||||||
|
dist: trusty
|
||||||
|
group: deprecated-2017Q4
|
||||||
cache:
|
cache:
|
||||||
apt: true
|
apt: true
|
||||||
directories:
|
directories:
|
||||||
- $HOME/.gimme
|
- $HOME/.gimme
|
||||||
- $HOME/.frey
|
- $HOME/.frey
|
||||||
|
- "$HOME/google-cloud-sdk/"
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- GO15VENDOREXPERIMENT=1
|
- GO15VENDOREXPERIMENT=1
|
||||||
|
@ -25,6 +28,12 @@ script:
|
||||||
- ./.scripts/test_all.sh
|
- ./.scripts/test_all.sh
|
||||||
before_deploy:
|
before_deploy:
|
||||||
- if [[ "$TRAVIS_TAG" != "" ]]; then ./.scripts/build_all.sh; fi
|
- if [[ "$TRAVIS_TAG" != "" ]]; then ./.scripts/build_all.sh; fi
|
||||||
|
- if [ ! -d "$HOME/google-cloud-sdk/bin" ]; then rm -rf $HOME/google-cloud-sdk; curl https://sdk.cloud.google.com | bash; fi
|
||||||
|
- source /home/travis/google-cloud-sdk/path.bash.inc
|
||||||
|
- gcloud --quiet version
|
||||||
|
- gcloud --quiet components update
|
||||||
|
- gcloud --quiet components update kubectl
|
||||||
|
- curl https://raw.githubusercontent.com/kubernetes/helm/8478fb4fc723885b155c924d1c8c410b7a9444e6/scripts/get | bash
|
||||||
deploy:
|
deploy:
|
||||||
- provider: releases
|
- provider: releases
|
||||||
api_key:
|
api_key:
|
||||||
|
@ -42,3 +51,9 @@ deploy:
|
||||||
branch: master
|
branch: master
|
||||||
go: 1.8
|
go: 1.8
|
||||||
repo: tus/tusd
|
repo: tus/tusd
|
||||||
|
- provider: script
|
||||||
|
script: .scripts/deploy_gcloud.sh
|
||||||
|
on:
|
||||||
|
branch: kube
|
||||||
|
go: 1.8
|
||||||
|
repo: tus/tusd
|
||||||
|
|
|
@ -16,9 +16,7 @@ RUN addgroup -g 1000 tusd \
|
||||||
&& GOOS=linux GOARCH=amd64 go build \
|
&& GOOS=linux GOARCH=amd64 go build \
|
||||||
-ldflags="-X github.com/tus/tusd/cmd/tusd/cli.VersionName=${version} -X github.com/tus/tusd/cmd/tusd/cli.GitCommit=${commit} -X 'github.com/tus/tusd/cmd/tusd/cli.BuildDate=$(date --utc)'" \
|
-ldflags="-X github.com/tus/tusd/cmd/tusd/cli.VersionName=${version} -X github.com/tus/tusd/cmd/tusd/cli.GitCommit=${commit} -X 'github.com/tus/tusd/cmd/tusd/cli.BuildDate=$(date --utc)'" \
|
||||||
-o "/go/bin/tusd" ./cmd/tusd/main.go \
|
-o "/go/bin/tusd" ./cmd/tusd/main.go \
|
||||||
&& mkdir -p /srv/tusd-data \
|
|
||||||
&& mkdir -p /srv/tusd-hooks \
|
&& mkdir -p /srv/tusd-hooks \
|
||||||
&& chown tusd:tusd /srv/tusd-data \
|
|
||||||
&& rm -r /go/src/* \
|
&& rm -r /go/src/* \
|
||||||
&& apk del git
|
&& apk del git
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue