From 201c90b27e798252da47024451f85ff030af3c8d Mon Sep 17 00:00:00 2001 From: Erich Blume Date: Wed, 21 Jan 2026 13:44:30 -0800 Subject: [PATCH] Add mise task for minikube-indri kubectl config Creates reusable script that fetches certificates from indri and sets up kubeconfig at ~/.kube/minikube-indri/config.yml for remote kubectl access. Part of P5.1 migration to docker driver. Co-Authored-By: Claude Opus 4.5 --- .../ensure-minikube-indri-kubectl-config | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 mise-tasks/ensure-minikube-indri-kubectl-config diff --git a/mise-tasks/ensure-minikube-indri-kubectl-config b/mise-tasks/ensure-minikube-indri-kubectl-config new file mode 100755 index 0000000..131bc4d --- /dev/null +++ b/mise-tasks/ensure-minikube-indri-kubectl-config @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +#MISE description="Ensure kubectl config for minikube-indri is set up on this workstation" + +set -euo pipefail + +CONFIG_DIR="$HOME/.kube/minikube-indri" +CONFIG_FILE="$CONFIG_DIR/config.yml" + +echo "Ensuring minikube-indri kubectl config..." + +# Create directory if needed +mkdir -p "$CONFIG_DIR" + +# Fetch certificates from indri +echo "Fetching certificates from indri..." +CA_CERT=$(ssh indri 'cat ~/.minikube/ca.crt') +CLIENT_CERT=$(ssh indri 'cat ~/.minikube/profiles/minikube/client.crt') +CLIENT_KEY=$(ssh indri 'cat ~/.minikube/profiles/minikube/client.key') + +# Write certificate files +echo "$CA_CERT" > "$CONFIG_DIR/ca.crt" +echo "$CLIENT_CERT" > "$CONFIG_DIR/client.crt" +echo "$CLIENT_KEY" > "$CONFIG_DIR/client.key" +chmod 600 "$CONFIG_DIR/client.key" + +# Write kubeconfig +cat > "$CONFIG_FILE" << EOF +apiVersion: v1 +kind: Config +clusters: +- cluster: + certificate-authority: $CONFIG_DIR/ca.crt + server: https://k8s.tail8d86e.ts.net + name: minikube-indri +contexts: +- context: + cluster: minikube-indri + user: minikube-indri + name: minikube-indri +current-context: minikube-indri +users: +- name: minikube-indri + user: + client-certificate: $CONFIG_DIR/client.crt + client-key: $CONFIG_DIR/client.key +EOF + +echo "Config written to $CONFIG_FILE" + +# Warn if KUBECONFIG doesn't include this file +if [[ -z "${KUBECONFIG:-}" ]] || [[ ":$KUBECONFIG:" != *":$CONFIG_FILE:"* ]]; then + echo "" + echo "WARNING: KUBECONFIG does not include $CONFIG_FILE" + echo "Add this to your shell config:" + echo " export KUBECONFIG=\"\$KUBECONFIG:$CONFIG_FILE\"" +fi + +echo "" +echo "Test with: kubectl --context=minikube-indri get nodes"