summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD6
-rwxr-xr-xcapo-shell20
3 files changed, 23 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 766d56f3bb1b..3890cf4a8128 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,12 +1,12 @@
pkgbase = capo-shell
pkgdesc = Wrapper to start a tool or shell with KUBECONFIG and OS_ environment variables to interact with cluster-api-provider-openstack clusters
- pkgver = 1.0.1
- pkgrel = 1
+ pkgver = 1.0.2
+ pkgrel = 0
arch = x86_64
license = APACHE
depends = kubectl
depends = yq
source = capo-shell
- sha512sums = 6a95e39ce48707ca6b678cf0a4daba0402db897db7922064ecf07a85d49249eb207716fa2c6c5cdadb1acd6462f2e0d6aeddaa9450c15550705007fd8c3b3360
+ sha512sums = db8bac0a69c75a1b3d267600aadddce3d5d67c503b9441e0d1bc236da3c3060df7e83d90fe74baa54958916998ae3b6348fdd47a262e4d938cde3ae95fbb06b0
pkgname = capo-shell
diff --git a/PKGBUILD b/PKGBUILD
index 1bbb5eb44263..603a4c0cefcf 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,14 +1,14 @@
# Maintainer Chris Werner Rau <aur@cwrau.io>
pkgname=capo-shell
-pkgver=1.0.1
-pkgrel=1
+pkgver=1.0.2
+pkgrel=0
pkgdesc="Wrapper to start a tool or shell with KUBECONFIG and OS_ environment variables to interact with cluster-api-provider-openstack clusters"
license=('APACHE')
arch=('x86_64')
depends=('kubectl' 'yq')
source=("$pkgname")
-sha512sums=('6a95e39ce48707ca6b678cf0a4daba0402db897db7922064ecf07a85d49249eb207716fa2c6c5cdadb1acd6462f2e0d6aeddaa9450c15550705007fd8c3b3360')
+sha512sums=('db8bac0a69c75a1b3d267600aadddce3d5d67c503b9441e0d1bc236da3c3060df7e83d90fe74baa54958916998ae3b6348fdd47a262e4d938cde3ae95fbb06b0')
package() {
install -D -m 0755 -t $pkgdir/usr/bin/ $srcdir/$pkgname
diff --git a/capo-shell b/capo-shell
index b8cadc6acfcb..7d5916c66237 100755
--- a/capo-shell
+++ b/capo-shell
@@ -9,8 +9,14 @@ shift
shift
envs=()
+function cleanup() {
+ [[ -v NEW_KUBECONFIG ]] && [[ -f "$NEW_KUBECONFIG" ]] && rm -f "$NEW_KUBECONFIG"
+ [[ -v PROXY_PID ]] && kill "$PROXY_PID"
+}
+
+trap 'EC=$?; cleanup || true; exit $EC' EXIT INT TERM
NEW_KUBECONFIG="$(mktemp -p "$XDG_RUNTIME_DIR")"
-trap 'rm -f $NEW_KUBECONFIG' EXIT
+
if kubectl -n "$namespace" get secrets "${name}-kubeconfig" -o jsonpath='{.data.value}' 2>/dev/null | base64 -d >"$NEW_KUBECONFIG"; then
hasKubeconfig=true
envs+=(KUBECONFIG="$NEW_KUBECONFIG")
@@ -18,9 +24,9 @@ else
hasKubeconfig=false
envs+=(KUBECONFIG="")
fi
-if secretName="$(kubectl -n "$namespace" get openstackcluster -l cluster.x-k8s.io/cluster-name="$name" -o yaml 2>/dev/null | yq -r '.items[0].spec.identityRef.name')"; then
+if secretName="$(kubectl -n "$namespace" get openstackcluster -l cluster.x-k8s.io/cluster-name="$name" -o yaml 2>/dev/null | yq -er '.items[0].spec.identityRef.name')"; then
hasOSConfig=true
- mapfile -t osEnvs < <(kubectl -n "$namespace" get secret "$secretName" -o jsonpath='{.data.clouds\.yaml}' | base64 -d | yq -r '.clouds.openstack | {OS_AUTH_TYPE: .["auth_type"], OS_AUTH_URL: .auth["auth_url"], OS_APPLICATION_CREDENTIAL_ID: .auth["application_credential_id"], OS_APPLICATION_CREDENTIAL_SECRET: .auth["application_credential_secret"], OS_REGION_NAME: .["region_name"], OS_INTERFACE: .interface, OS_IDENTITY_API_VERSION: .["identity_api_version"]} | to_entries[] | "\(.key)=\(.value)"')
+ mapfile -t osEnvs < <(kubectl -n "$namespace" get secret "$secretName" -o jsonpath='{.data.clouds\.yaml}' | base64 -d | yq -er '.clouds.openstack | {OS_AUTH_TYPE: .["auth_type"], OS_AUTH_URL: .auth["auth_url"], OS_APPLICATION_CREDENTIAL_ID: .auth["application_credential_id"], OS_APPLICATION_CREDENTIAL_SECRET: .auth["application_credential_secret"], OS_REGION_NAME: .["region_name"], OS_INTERFACE: .interface, OS_IDENTITY_API_VERSION: .["identity_api_version"]} | to_entries[] | "\(.key)=\(.value)"')
envs+=(OS_SHELL=true "${osEnvs[@]}")
else
hasOSConfig=false
@@ -35,5 +41,13 @@ if [[ "$hasOSConfig" == false ]]; then
fi
if [[ "$hasKubeconfig" == false ]]; then
echo "KUBECONFIG missing, only setting OpenStack env" >/dev/stderr
+#elif kubectl -n "$namespace" get openstackcluster -l cluster.x-k8s.io/cluster-name="$name" -o yaml 2>/dev/null | yq -er '.items[0] | if .spec.apiServerLoadBalancer.allowedCidrs then .spec.controlPlaneEndpoint.host else null end' &>/dev/null; then
+# proxyPodName="proxy-$name"
+# if ! kubectl -n "$namespace" get pod "$proxyPodName" &>/dev/null; then
+# kubectl -n "$namespace" run --image docker.io/kalaksi/tinyproxy "$proxyPodName" --restart=Never
+# fi
+# kubectl -n "$namespace" port-forward "$proxyPodName" 8888 &>/dev/null &
+# export HTTPS_PROXY=http://localhost:8888
+# PROXY_PID=$!
fi
env "${envs[@]}" "${@:-${SHELL:-/usr/bin/env bash}}"