feat: output working kubeconfig for new cluster

This commit is contained in:
Julian Tölle 2022-01-03 17:16:58 +01:00
parent 70a986913c
commit 9e528c9b7b
6 changed files with 71 additions and 13 deletions

View file

@ -53,38 +53,38 @@ provider "kubernetes" {
client_key = module.k3s.kubernetes.client_key
}
resource "kubernetes_service_account" "bootstrap" {
resource "kubernetes_service_account" "admin" {
depends_on = [module.k3s.kubernetes_ready]
metadata {
name = "bootstrap"
name = "admin"
namespace = "default"
}
}
resource "kubernetes_cluster_role_binding" "boostrap" {
resource "kubernetes_cluster_role_binding" "admin" {
depends_on = [module.k3s.kubernetes_ready]
metadata {
name = "bootstrap"
name = "admin"
}
subject {
kind = "ServiceAccount"
name = "bootstrap"
name = "admin"
namespace = "default"
}
role_ref {
api_group = "rbac.authorization.k8s.io"
kind = "ClusterRole"
name = "admin"
name = "cluster-admin"
}
}
data "kubernetes_secret" "sa_credentials" {
metadata {
name = kubernetes_service_account.bootstrap.default_secret_name
name = kubernetes_service_account.admin.default_secret_name
namespace = "default"
}
}

View file

@ -2,8 +2,17 @@ output "summary" {
value = module.k3s.summary
}
output "bootstrap_sa" {
description = "Bootstrap ServiceAccount. Can be used by Terraform to provision this cluster."
value = data.kubernetes_secret.sa_credentials.data
sensitive = true
output "kubernetes" {
description = "Authentication credentials of Kubernetes (full administrator)."
value = {
token = data.kubernetes_secret.sa_credentials.data.token
cluster_ca_certificate = module.k3s.kubernetes.cluster_ca_certificate
api_endpoint = "https://${var.domain}:6443"
}
sensitive = true
}
output "kubernetes_ready" {
description = "Dependency endpoint to synchronize k3s installation and provisioning."
value = module.k3s.kubernetes_ready
}