diff --git a/.gitignore b/.gitignore index 6816502..b9f9916 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,8 @@ !cluster-configs/*.tfvars # Kubeconfig Dateien -*kubeconfig* +*kubeconfig +*kubeconfig.yaml # Crash Log Dateien crash.log diff --git a/README.md b/README.md index 474ca07..fc25775 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,6 @@ Dieses Modul erstellt und verwaltet Kubernetes Cluster auf Harvester mit den fol Folgende Tools werden benötigt: - Terraform v1.5.0 oder höher - [Infisical CLI](https://infisical.com/docs/cli/overview) (für Secrets Management) -- Rancher CLI (für Kubeconfig-Erstellung) - kubectl (optional) Vor der ersten Verwendung muss eine kubeconfig-Datei erstellt werden: diff --git a/scripts/create_kubeconfig.sh b/scripts/create_kubeconfig.sh new file mode 100755 index 0000000..51313de --- /dev/null +++ b/scripts/create_kubeconfig.sh @@ -0,0 +1,11 @@ +# Generate harvester cloud provider kubeconfig +RANCHER_SERVER_URL=$(infisical secrets --projectId f2a18957-636b-4aa0-9cee-d2afeba7da29 get RANCHER2_API_URL --plain) +RANCHER_ACCESS_KEY=$(infisical secrets --projectId f2a18957-636b-4aa0-9cee-d2afeba7da29 get RANCHER2_ACCESS_KEY --plain) +RANCHER_SECRET_KEY=$(infisical secrets --projectId f2a18957-636b-4aa0-9cee-d2afeba7da29 get RANCHER2_SECRET_KEY --plain) +HARVESTER_CLUSTER_ID=$(infisical secrets --projectId f2a18957-636b-4aa0-9cee-d2afeba7da29 get RANCHER2_HARVESTER_CLUSTER_ID --plain) +CLUSTER_NAME=$1 +CLUSTER_ENV=$2 +curl -k -X POST ${RANCHER_SERVER_URL}/k8s/clusters/${HARVESTER_CLUSTER_ID}/v1/harvester/kubeconfig \ + -H 'Content-Type: application/json' \ + -u ${RANCHER_ACCESS_KEY}:${RANCHER_SECRET_KEY} \ + -d '{"clusterRoleName": "harvesterhci.io:cloudprovider", "namespace": "hnrx-'${CLUSTER_ENV}'-cluster", "serviceAccountName": "'${CLUSTER_NAME}-${CLUSTER_ENV}'"}' | xargs | sed 's/\\n/\n/g' > ${CLUSTER_NAME}-${CLUSTER_ENV}-kubeconfig \ No newline at end of file