Skip to content

Commit 77ceab3

Browse files
authored
Merge pull request #134 from msau42/kustomize
Use Kustomize to manage deployment specs
2 parents 3fbde8d + 0f17a09 commit 77ceab3

23 files changed

+336
-380
lines changed

deploy/common.sh

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#!/bin/bash
22

3+
# Common variables
4+
readonly KUSTOMIZE_PATH="${PKGDIR}/bin/kustomize"
5+
36
# Common functions
47

58
function ensure_var(){
@@ -15,4 +18,11 @@ function ensure_var(){
1518
function get_needed_roles()
1619
{
1720
echo "roles/compute.storageAdmin roles/iam.serviceAccountUser projects/${PROJECT}/roles/gcp_compute_persistent_disk_csi_driver_custom_role"
18-
}
21+
}
22+
23+
# Installs kustomize in ${PKGDIR}/bin
24+
function ensure_kustomize()
25+
{
26+
ensure_var PKGDIR
27+
${PKGDIR}/deploy/kubernetes/install-kustomize.sh
28+
}

deploy/kubernetes/stable/controller.yaml renamed to deploy/kubernetes/base/controller.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,21 @@
11
kind: StatefulSet
2-
apiVersion: apps/v1beta1
2+
apiVersion: apps/v1
33
metadata:
44
name: csi-gce-pd-controller
55
spec:
66
serviceName: "csi-gce-pd"
77
replicas: 1
88
selector:
99
matchLabels:
10-
app: csi-gce-pd-driver
10+
app: gcp-compute-persistent-disk-csi-driver
1111
template:
1212
metadata:
1313
labels:
14-
app: csi-gce-pd-driver
14+
app: gcp-compute-persistent-disk-csi-driver
1515
spec:
1616
serviceAccount: csi-controller-sa
1717
containers:
1818
- name: csi-provisioner
19-
imagePullPolicy: Always
2019
image: quay.io/k8scsi/csi-provisioner:v0.4.1
2120
args:
2221
- "--v=5"
@@ -29,7 +28,6 @@ spec:
2928
- name: socket-dir
3029
mountPath: /csi
3130
- name: csi-attacher
32-
imagePullPolicy: Always
3331
image: quay.io/k8scsi/csi-attacher:v0.4.1
3432
args:
3533
- "--v=5"
@@ -41,7 +39,6 @@ spec:
4139
- name: socket-dir
4240
mountPath: /csi
4341
- name: gce-pd-driver
44-
imagePullPolicy: Always
4542
image: gcr.io/google-containers/volume-csi/gcp-compute-persistent-disk-csi-driver:v0.2.0.beta
4643
args:
4744
- "--v=5"
@@ -62,4 +59,4 @@ spec:
6259
emptyDir: {}
6360
- name: cloud-sa-volume
6461
secret:
65-
secretName: cloud-sa
62+
secretName: cloud-sa
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
commonLabels:
2+
app: gcp-compute-persistent-disk-csi-driver
3+
namespace:
4+
default
5+
resources:
6+
- node.yaml
7+
- controller.yaml
8+
- setup-cluster.yaml

deploy/kubernetes/stable/node.yaml renamed to deploy/kubernetes/base/node.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,15 @@ metadata:
66
spec:
77
selector:
88
matchLabels:
9-
app: csi-gce-pd-driver
9+
app: gcp-compute-persistent-disk-csi-driver
1010
template:
1111
metadata:
1212
labels:
13-
app: csi-gce-pd-driver
13+
app: gcp-compute-persistent-disk-csi-driver
1414
spec:
1515
serviceAccount: csi-node-sa
1616
containers:
1717
- name: csi-driver-registrar
18-
imagePullPolicy: Always
1918
image: quay.io/k8scsi/driver-registrar:v0.4.1
2019
args:
2120
- "--v=5"
@@ -36,7 +35,6 @@ spec:
3635
- name: gce-pd-driver
3736
securityContext:
3837
privileged: true
39-
imagePullPolicy: Always
4038
image: gcr.io/google-containers/volume-csi/gcp-compute-persistent-disk-csi-driver:v0.2.0.beta
4139
args:
4240
- "--v=5"

deploy/kubernetes/delete-driver.sh

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,17 @@
44
# currently available Kubernetes cluster
55
#
66
# Args:
7-
# GCE_PD_DRIVER_VERSION: The version of the GCE PD CSI Driver to deploy. Can be one of {v0.1.0, latest}
7+
# GCE_PD_DRIVER_VERSION: The kustomize overlay to deploy (located under
8+
# deploy/kubernetes/overlays). Can be one of {stable, dev}
89

910
set -o nounset
1011
set -o errexit
1112

13+
readonly DEPLOY_VERSION="${GCE_PD_DRIVER_VERSION:-stable}"
1214
readonly PKGDIR="${GOPATH}/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver"
1315
source "${PKGDIR}/deploy/common.sh"
1416

15-
ensure_var GCE_PD_DRIVER_VERSION
17+
ensure_kustomize
1618

17-
readonly KUBEDEPLOY="${PKGDIR}/deploy/kubernetes/${GCE_PD_DRIVER_VERSION}"
18-
19-
kubectl delete -f "${KUBEDEPLOY}/node.yaml" --ignore-not-found
20-
kubectl delete -f "${KUBEDEPLOY}/controller.yaml" --ignore-not-found
21-
kubectl delete -f "${KUBEDEPLOY}/setup-cluster.yaml" --ignore-not-found
22-
kubectl delete secret cloud-sa --ignore-not-found
19+
${KUSTOMIZE_PATH} build ${PKGDIR}/deploy/kubernetes/overlays/${DEPLOY_VERSION} | kubectl delete --ignore-not-found -f -
20+
kubectl delete secret cloud-sa --ignore-not-found

deploy/kubernetes/deploy-driver.sh

Lines changed: 37 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,41 @@
99

1010
# Args:
1111
# GCE_PD_SA_DIR: Directory the service account key has been saved in (generated by setup-project.sh)
12-
# GCE_PD_DRIVER_VERSION: The version of the GCE PD CSI Driver to deploy. Can be one of {stable, dev}
12+
# GCE_PD_DRIVER_VERSION: The kustomize overlay (located in
13+
# deploy/kubernetes/overlays) to deploy. Can be one of {stable, dev}
1314

1415
set -o nounset
1516
set -o errexit
17+
set -x
1618

19+
readonly NAMESPACE="${GCE_PD_DRIVER_NAMESPACE:-default}"
20+
readonly DEPLOY_VERSION="${GCE_PD_DRIVER_VERSION:-stable}"
1721
readonly PKGDIR="${GOPATH}/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver"
1822
source "${PKGDIR}/deploy/common.sh"
1923

20-
ensure_var GCE_PD_SA_DIR
21-
ensure_var GCE_PD_DRIVER_VERSION
24+
print_usage()
25+
{
26+
echo "deploy-driver.sh [--skip-sa-check]\n"
27+
echo "\t--skip-sa-check: don't check the service account for required roles"
28+
echo
29+
}
2230

23-
readonly KUBEDEPLOY="${PKGDIR}/deploy/kubernetes/${GCE_PD_DRIVER_VERSION}"
31+
skip_sa_check=
32+
while [ ! -z "${1-}" ]; do
33+
case $1 in
34+
--skip-sa-check ) shift
35+
skip_sa_check=true
36+
;;
37+
-h | --help ) print_usage
38+
exit 1
39+
;;
40+
* ) print_usage
41+
exit 1
42+
;;
43+
esac
44+
done
45+
46+
ensure_var GCE_PD_SA_DIR
2447

2548
function check_service_account()
2649
{
@@ -47,11 +70,15 @@ function check_service_account()
4770
fi
4871
}
4972

50-
check_service_account
73+
ensure_kustomize
74+
75+
if [ "$skip_sa_check" != true ]; then
76+
check_service_account
77+
fi
5178

52-
if ! kubectl get secret cloud-sa;
79+
if ! kubectl get secret cloud-sa -n ${NAMESPACE};
5380
then
54-
kubectl create secret generic cloud-sa --from-file="${GCE_PD_SA_DIR}/cloud-sa.json"
81+
kubectl create secret generic cloud-sa --from-file="${GCE_PD_SA_DIR}/cloud-sa.json" -n ${NAMESPACE}
5582
fi
5683

5784
# GKE Required Setup
@@ -60,6 +87,6 @@ then
6087
kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user $(gcloud config get-value account)
6188
fi
6289

63-
kubectl apply -f "${KUBEDEPLOY}/setup-cluster.yaml"
64-
kubectl apply -f "${KUBEDEPLOY}/node.yaml"
65-
kubectl apply -f "${KUBEDEPLOY}/controller.yaml"
90+
readonly tmp_spec=/tmp/gcp-compute-persistent-disk-csi-driver-specs-generated.yaml
91+
${KUSTOMIZE_PATH} build ${PKGDIR}/deploy/kubernetes/overlays/${DEPLOY_VERSION} | tee $tmp_spec
92+
kubectl apply -f $tmp_spec

deploy/kubernetes/dev/controller.yaml

Lines changed: 0 additions & 77 deletions
This file was deleted.

deploy/kubernetes/dev/node.yaml

Lines changed: 0 additions & 97 deletions
This file was deleted.

0 commit comments

Comments
 (0)