|
|
@ -3,6 +3,19 @@ |
|
|
set -Eeuo pipefail |
|
|
set -Eeuo pipefail |
|
|
trap "exit" INT |
|
|
trap "exit" INT |
|
|
|
|
|
|
|
|
|
|
|
function assert_cluster_name () { |
|
|
|
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if [ -f ".clusters/$cluster_name/local.env" ]; then |
|
|
|
|
|
source ".clusters/$cluster_name/local.env" |
|
|
|
|
|
fi |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
function init () { |
|
|
function init () { |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
@ -25,25 +38,17 @@ function init () { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function destroy () { |
|
|
function destroy () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
terraform destroy -var-file=".clusters/$cluster_name/terraform.tfvars" -state=".clusters/$cluster_name/terraform.tfstate" |
|
|
terraform destroy -var-file=".clusters/$cluster_name/terraform.tfvars" -state=".clusters/$cluster_name/terraform.tfstate" |
|
|
sed -i.bak 's/^\s*bootstrap_nodes\s*=\s*.*$/bootstrap_nodes = 1/' ".clusters/$cluster_name/terraform.tfvars" |
|
|
sed -i.bak 's/^\s*bootstrap_nodes\s*=\s*.*$/bootstrap_nodes = 1/' ".clusters/$cluster_name/terraform.tfvars" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function prepare () { |
|
|
function prepare () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
# Make a backup since the openshift-install command will consume it |
|
|
# Make a backup since the openshift-install command will consume it |
|
|
if [ -f ".clusters/$cluster_name/install-config.yaml" ]; then |
|
|
if [ -f ".clusters/$cluster_name/install-config.yaml" ]; then |
|
|
cp ".clusters/$cluster_name/install-config.yaml" ".clusters/$cluster_name/install-config.yaml.bak" |
|
|
cp ".clusters/$cluster_name/install-config.yaml" ".clusters/$cluster_name/install-config.yaml.bak" |
|
|
@ -58,13 +63,9 @@ function prepare () { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function apply () { |
|
|
function apply () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
prepare "$cluster_name" |
|
|
prepare "$cluster_name" |
|
|
|
|
|
|
|
|
# Create installation files |
|
|
# Create installation files |
|
|
@ -89,48 +90,32 @@ function apply () { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function ping () { |
|
|
function ping () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" whoami |
|
|
oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" whoami |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function approve_csr () { |
|
|
function approve_csr () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" get csr --no-headers \ |
|
|
oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" get csr --no-headers \ |
|
|
| awk '/Pending/ {print $1}' \ |
|
|
| awk '/Pending/ {print $1}' \ |
|
|
| xargs --no-run-if-empty oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" adm certificate approve |
|
|
| xargs --no-run-if-empty oc --insecure-skip-tls-verify --kubeconfig=".clusters/$cluster_name/auth/kubeconfig" adm certificate approve |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function start () { |
|
|
function start () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
ansible-playbook -i ".clusters/$cluster_name/inventory" ansible/start.yaml |
|
|
ansible-playbook -i ".clusters/$cluster_name/inventory" ansible/start.yaml |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function stop () { |
|
|
function stop () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
ansible-playbook -i ".clusters/$cluster_name/inventory" ansible/stop.yaml |
|
|
ansible-playbook -i ".clusters/$cluster_name/inventory" ansible/stop.yaml |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -193,14 +178,10 @@ EOF |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function post_install () { |
|
|
function post_install () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
shift |
|
|
shift |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if [ $# -eq 0 ]; then |
|
|
if [ $# -eq 0 ]; then |
|
|
set nfs sso le |
|
|
set nfs sso le |
|
|
fi |
|
|
fi |
|
|
@ -262,25 +243,17 @@ EOF |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function install_addon () { |
|
|
function install_addon () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
local addon="${2:-}" |
|
|
local addon="${2:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
install_addon_$addon "$cluster_name" |
|
|
install_addon_$addon "$cluster_name" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function shell () { |
|
|
function shell () { |
|
|
|
|
|
assert_cluster_name "$@" |
|
|
local cluster_name="${1:-}" |
|
|
local cluster_name="${1:-}" |
|
|
|
|
|
|
|
|
if [ ! -d ".clusters/$cluster_name" ]; then |
|
|
|
|
|
echo "Cluster '$cluster_name' does not exist!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
# Ansible |
|
|
# Ansible |
|
|
export DEFAULT_HOST_LIST="$PWD/.clusters/$cluster_name" |
|
|
export DEFAULT_HOST_LIST="$PWD/.clusters/$cluster_name" |
|
|
|
|
|
|
|
|
@ -319,7 +292,6 @@ fi |
|
|
source local.env |
|
|
source local.env |
|
|
export LC_ALL=C |
|
|
export LC_ALL=C |
|
|
export LANG=C |
|
|
export LANG=C |
|
|
export LIBVIRT_DEFAULT_URI="qemu+ssh://$LIBVIRT_USER@$LIBVIRT_SERVER/system" |
|
|
|
|
|
|
|
|
|
|
|
case "${1:-}" in |
|
|
case "${1:-}" in |
|
|
init) |
|
|
init) |
|
|
|