diff --git a/tools/deployment/provider_common/03_install_pip.sh b/tools/deployment/provider_common/03_install_pip.sh new file mode 100755 index 000000000..189ef2e76 --- /dev/null +++ b/tools/deployment/provider_common/03_install_pip.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# 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 -ex + +sudo apt-get install python3-pip -y diff --git a/tools/deployment/provider_common/04_install_yq.sh b/tools/deployment/provider_common/04_install_yq.sh new file mode 100755 index 000000000..3a613b26e --- /dev/null +++ b/tools/deployment/provider_common/04_install_yq.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# 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 -ex + +sudo pip3 install yq diff --git a/tools/deployment/provider_common/41_check_certificate_expiration.sh b/tools/deployment/provider_common/41_check_certificate_expiration.sh new file mode 100755 index 000000000..02d669a62 --- /dev/null +++ b/tools/deployment/provider_common/41_check_certificate_expiration.sh @@ -0,0 +1,133 @@ +#!/usr/bin/env bash + +# 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 -xe + +export KUBECONFIG=${KUBECONFIG:-"$HOME/.airship/kubeconfig"} +export TARGET_CLUSTER_NAME=${TARGET_CLUSTER_NAME:-"target-cluster"} +export KUBECONFIG_TARGET_CONTEXT=${KUBECONFIG_TARGET_CONTEXT:-"target-cluster"} + +check_nodecerts(){ + nodecerts="" + if $2; then + nodecerts=$(airshipctl --kubeconfig "/tmp/${TARGET_CLUSTER_NAME}.kubeconfig" cluster check-certificate-expiration --threshold $1 -o json | jq .nodeCerts) + else + nodecerts=$(airshipctl --kubeconfig ${KUBECONFIG} cluster check-certificate-expiration --threshold $1 -o json | jq .nodeCerts) + fi + nodecert=$(echo $nodecerts | jq '. | length') + if [ -z $nodecert ]; then + echo "Unable to verify node certificate expiration. Exiting!" + exit 1 + else + verify=false + for ((i=0;i