-
Notifications
You must be signed in to change notification settings - Fork 0
/
entrypoint.sh
executable file
·96 lines (83 loc) · 3.8 KB
/
entrypoint.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
#!/bin/bash
function login_vault(){
source /kms_utils.sh
# Try logging in using dynamic authentication if vault token not defined.
if [[ -z "$VAULT_TOKEN" ]]; then
INFO "login using dynamic authentication with role_id: ${VAULT_ROLE_ID}"
if ! login; then
ERROR "login using dynamic authentication failed!"
exit 1
fi
fi
}
# Configure Logging
function configure_logging(){
#Import CentralizedLogging4bash functions
source /b-log.sh
#Set b-log level & set output to stdout
export DOCKER_LOG_LEVEL=${DOCKER_LOG_LEVEL:-"INFO"}
export LOGGING_TYPE=${LOGGING_TYPE:-"Centralized"}
eval "LOG_LEVEL_${DOCKER_LOG_LEVEL}"
B_LOG --stdout true
case "$LOGGING_TYPE" in
"CentralizedJSON")
INFO "Applying Centralized Logging format with messages as JSON"
;;
"Centralized")
# Define template and recalculate LOG_LEVELS.
# IMHO, this steps SHOULD be done by b-log.sh itself, maybe adding a new function to change template.
B_LOG_DEFAULT_TEMPLATE="@1@ @2@ - 0 ${BASH_SOURCE[0]} @3@:@4@ @5@"
LOG_LEVELS=(
${LOG_LEVEL_FATAL} "FATAL" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_ERROR} "ERROR" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_WARN} "WARN" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_NOTICE} "NOTICE" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_INFO} "INFO" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_DEBUG} "DEBUG" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_TRACE} "TRACE" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
)
INFO "Applying Centralized Logging format"
;;
"Development")
# Define template and recalculate LOG_LEVELS.
# IMHO, this steps SHOULD be done by b-log.sh itself, maybe adding a new function to change template.
B_LOG_DEFAULT_TEMPLATE="@2@ | @1@ | ${BASH_SOURCE[0]}:@3@:@4@ | @5@"
LOG_LEVELS=(
${LOG_LEVEL_FATAL} "FATAL" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_ERROR} "ERROR" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_WARN} "WARN" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_NOTICE} "NOTICE" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_INFO} "INFO" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_DEBUG} "DEBUG" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
${LOG_LEVEL_TRACE} "TRACE" "${B_LOG_DEFAULT_TEMPLATE}" "" ""
)
B_LOG_TS_FORMAT="%d-%m-%Y %H:%M:%S,%3N"
WARN "Applying Development Logging format. USE IT AT YOUR OWN RISK OUTSIDE DEVELOPMENT PURPOSES!"
;;
*)
WARN "Invalid Logging Type: [${LOGGING_TYPE}]"
INFO "Available types are: 'Centralized', 'CentralizedJSON' and 'Development' (last one, only for development purposes)"
WARN "Applying Default format: Centralized Logging format with messages as JSON"
export LOGGING_TYPE="CentralizedJSON"
;;
esac
INFO "Setting logging level to [${DOCKER_LOG_LEVEL}]"
}
export VAULT_HOSTS=$VAULT_HOST
export VAULT_PORT="${VAULT_PORT:-8200}"
configure_logging
if [[ ! $VAULT_HOST ]]; then
ERROR "Variable VAULT_HOST not provided!"
exit 1
fi
login_vault
getCert userland elasticrollover elasticrollover PEM /
#
export CA_REST=$(/usr/bin/curl -s -f -k -L -XGET -H "X-Vault-Token:$VAULT_TOKEN" -H 'Content-type: application/json' "https://$VAULT_HOST:$VAULT_PORT/v1/ca-trust/certificates/ca")
export CA=$(echo $MARATHON_REST jq -cMSr .data[])
echo $CA | sed -e 's/-----BEGIN CERTIFICATE-----/-----BEGIN CERTIFICATE-----\n/g' -e 's/-----END CERTIFICATE-----/\n-----END CERTIFICATE-----/g' -e 's/-----END CERTIFICATE----------BEGIN CERTIFICATE-----/-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----/g'> /ca.crt
/bin/cat /tmp/rollover.sh.tmp | envsubst > /rollover.sh
chmod +x /delete.sh
chmod +x /rollover.sh
./delete.sh &
./rollover.sh