-
Notifications
You must be signed in to change notification settings - Fork 6
/
ocp-openldap-demo.sh
151 lines (129 loc) · 2.48 KB
/
ocp-openldap-demo.sh
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
137
138
139
140
141
142
143
144
145
146
147
148
#!/bin/bash
function help
{
echo "OpenLDAP demo install/uninstall script."
echo ""
echo "Usage: $0 install [<cmd-options>]"
echo ""
echo "Commands:"
echo ""
echo " help - This help."
echo " install <NAMESPACE> - Install OpenLDAP demo to given namespace."
echo " uninstall <NAMESPACE> - Uninstall OpenLDAP demo from given namespace."
echo ""
exit 1
}
function error
{
echo "ERROR: $1"
exit 1
}
if [[ "$1" == "" ]]; then
#echo "No commands."
help
fi
function namespaceOperation
{
local OPERATION=$1
local NAMESPACE=$2
cat << EOF | oc $OPERATION -f -
apiVersion: v1
kind: Namespace
metadata:
name: $NAMESPACE
spec:
finalizers:
- kubernetes
EOF
}
function deploymentOperation
{
local OPERATION=$1
cat << EOF | oc $OPERATION -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: openldap-demo-deployment
labels:
app: openldap-demo
spec:
replicas: 1
selector:
matchLabels:
app: openldap-demo
template:
metadata:
labels:
app: openldap-demo
spec:
containers:
- name: openldap
image: kazhar/openldap-demo:latest
imagePullPolicy: Always
securityContext:
privileged: true
ports:
- containerPort: 1389
name: ldap-port
- containerPort: 1636
name: ldaps-port
EOF
cat << EOF | oc $OPERATION -f -
apiVersion: v1
kind: Service
metadata:
name: openldap-demo
labels:
app: openldap-demo
spec:
selector:
app: openldap-demo
ports:
- port: 389
targetPort: 1389
name: ldap-port
- port: 636
targetPort: 1636
name: ldaps-port
EOF
}
function installOpenLDAPDemo
{
local NAMESPACE=$1
if [ "$NAMESPACE" = "" ]; then
error "Namespace not given."
fi
#create new namespace
namespaceOperation apply $NAMESPACE
#change to project
oc project $NAMESPACE
oc adm policy add-scc-to-user privileged -z default
deploymentOperation apply
}
function uninstallOpenLDAPDemo
{
local NAMESPACE=$1
if [ "$NAMESPACE" = "" ]; then
error "Namespace not given."
fi
deploymentOperation delete
namespaceOperation delete $NAMESPACE
}
#call functions
#note 'shift' command moves ARGS to the left
case "$1" in
install)
shift
installOpenLDAPDemo $1
;;
uninstall)
shift
uninstallOpenLDAPDemo $1
;;
help)
help
;;
*)
help
;;
esac