1#!/bin/bash
2
3# Prerequisites:
4#
5# - Log in to the DigitalOcean docker registry
6# doctl registry login
7#
8# - Target the `zed-1` kubernetes cluster
9# doctl kubernetes cluster kubeconfig save zed-1
10
11set -eu
12
13if [[ $# < 1 ]]; then
14 echo "Usage: $0 [production|staging|...]"
15 exit 1
16fi
17
18export ZED_KUBE_NAMESPACE=$1
19ENV_FILE="crates/collab/k8s/environments/${ZED_KUBE_NAMESPACE}.sh"
20if [[ ! -f $ENV_FILE ]]; then
21 echo "Invalid environment name '${ZED_KUBE_NAMESPACE}'"
22 exit 1
23fi
24
25if [[ -n $(git status --short) ]]; then
26 echo "Cannot deploy with uncommited changes"
27 exit 1
28fi
29
30git_sha=$(git rev-parse HEAD)
31export ZED_IMAGE_ID=registry.digitalocean.com/zed/zed-migrator:${ZED_KUBE_NAMESPACE}-${git_sha}
32export ZED_MIGRATE_JOB_NAME=zed-migrate-${git_sha}
33
34docker build . \
35 --file ./Dockerfile.migrator \
36 --tag $ZED_IMAGE_ID
37docker push $ZED_IMAGE_ID
38
39envsubst < crates/collab/k8s/migrate.template.yml | kubectl apply -f -
40
41pod=$(kubectl --namespace=${ZED_KUBE_NAMESPACE} get pods --selector=job-name=${ZED_MIGRATE_JOB_NAME} --output=jsonpath='{.items[*].metadata.name}')
42echo "pod:" $pod