-
Notifications
You must be signed in to change notification settings - Fork 50
Expand file tree
/
Copy pathset_up_kustomize.sh
More file actions
executable file
·137 lines (123 loc) · 2.63 KB
/
set_up_kustomize.sh
File metadata and controls
executable file
·137 lines (123 loc) · 2.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#!/bin/bash
#
# set_up_kustomize.sh
#
# Create a Kustomize app
# ----------------------
APP_NAME=my-kustomize-app
echo ""
echo -n "--> Run this script at the top level of your GitOps repository. Continue? [Yn] "
read INPUT
case $INPUT in
Y | y | "")
;;
*)
echo "Canceling"
exit 1
esac
echo "Creating directory tree ${APP_NAME}..."
mkdir -p ${APP_NAME}/base ${APP_NAME}/overlays/dev ${APP_NAME}/overlays/test ${APP_NAME}/overlays/prod
cat <<EOF > ${APP_NAME}/base/kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
EOF
cat <<EOF > ${APP_NAME}/base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
selector:
matchLabels:
app: httpd
replicas: 3
template:
metadata:
labels:
app: httpd
spec:
containers:
- name: httpd
image: >-
image-registry.openshift-image-registry.svc:5000/openshift/httpd:latest
ports:
- containerPort: 8080
protocol: TCP
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
EOF
cat <<EOF > ${APP_NAME}/overlays/dev/kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
- configmap.yaml
patches:
- path: patch.deployment.yaml
EOF
cat <<EOF > ${APP_NAME}/overlays/dev/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: ${APP_NAME}
data:
foo: bar
EOF
cat <<EOF > ${APP_NAME}/overlays/dev/patch.deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
replicas: 1
EOF
cat <<EOF > ${APP_NAME}/overlays/test/kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
patches:
- path: patch.deployment.yaml
EOF
cat <<EOF > ${APP_NAME}/overlays/test/patch.deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: httpd
spec:
replicas: 2
EOF
cat <<EOF > ${APP_NAME}/overlays/prod/kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../base
EOF
echo ""
echo "Here is the layout of your new Kustomize app:
my-kustomize-app
├── base
│ ├── deployment.yaml
│ └── kustomization.yaml
└── overlays
├── dev
│ ├── configmap.yaml
│ ├── kustomization.yaml
│ └── patch.deployment.yaml
├── prod
│ └── kustomization.yaml
└── test
├── kustomization.yaml
└── patch.deployment.yaml
5 directories, 8 files
"
echo "Done"