-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmk-rabbit-san.sh
executable file
·72 lines (59 loc) · 1.93 KB
/
mk-rabbit-san.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
#!/bin/bash
# Copyright 2025 Hewlett Packard Enterprise Development LP
# Other additional copyright holders may be indicated within.
#
# The entirety of this work is licensed under the Apache License,
# Version 2.0 (the "License"); you may not use this file except
# in compliance with the License.
#
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -e
set -o pipefail
CERTDIR="$1"
if [[ -z $CERTDIR ]]; then
echo "Must specify cert dir"
exit 1
fi
SAN_CONF="$2"
if [[ -z $SAN_CONF ]]; then
echo "Must specify name for SAN conf"
exit 1
fi
make_rabbit_san_conf()
{
local NAMES_TXT="$1"
local SAN_CONF="$2"
local names_san
names_san="$NAMES_TXT-san"
if ! kubectl get systemconfiguration default -o json | jq -rM '.spec.storageNodes[] | select(.type == "Rabbit") | .name' > "$NAMES_TXT"; then
echo "Unable to collect names of Rabbits"
exit 1
fi
if ! cat -n "$NAMES_TXT" | sed -e 's/^ */DNS./' | awk '{print $1" = "$2}' > "$names_san"; then
echo "Unable to decorate the Rabbit names"
exit 1
fi
if [[ $(wc -l "$NAMES_TXT" | awk '{print $1}') != $(wc -l "$names_san" | awk '{print $1}') ]]; then
echo "$NAMES_TXT and $names_san not the same length"
exit 1
fi
if ! echo "[v3_req]
subjectAltName = @alt_names
[alt_names]" > "$SAN_CONF"; then
echo "Unable to start the SAN conf file"
exit 1
fi
if ! cat "$names_san" >> "$SAN_CONF"; then
echo "Unable to add Rabbits to SAN conf file"
exit 1
fi
}
make_rabbit_san_conf "$CERTDIR/rabbits.txt" "$SAN_CONF"