Use correct cluster name when importing images into k3d

This commit is contained in:
Alejandro Ruiz 2025-01-21 16:27:23 +01:00
parent e6156ad134
commit f6b58e5c86
5 changed files with 12 additions and 11 deletions

View File

@ -162,8 +162,7 @@ func importImageIntoK3d(tf *tofu.Tofu, image string, cluster tofu.Cluster) error
} }
if len(images) > 0 { if len(images) > 0 {
err = k3d.ImageImport(cluster, images[0]) if err := k3d.ImageImport(cluster.Name, images[0]); err != nil {
if err != nil {
return err return err
} }
} }

View File

@ -21,12 +21,11 @@ import (
"os" "os"
"strings" "strings"
"github.com/rancher/dartboard/internal/tofu"
"github.com/rancher/dartboard/internal/vendored" "github.com/rancher/dartboard/internal/vendored"
) )
func ImageImport(cluster tofu.Cluster, image string) error { func ImageImport(k3dClusterName string, image string) error {
args := []string{"image", "import", "--cluster", strings.Replace(cluster.Context, "k3d-", "", -1), image} args := []string{"image", "import", "--cluster", k3dClusterName, image}
cmd := vendored.Command("k3d", args...) cmd := vendored.Command("k3d", args...)
var errStream strings.Builder var errStream strings.Builder

View File

@ -52,6 +52,7 @@ type Addresses struct {
type Cluster struct { type Cluster struct {
AppAddresses ClusterAppAddresses `json:"app_addresses"` AppAddresses ClusterAppAddresses `json:"app_addresses"`
Name string `json:"name"`
Context string `json:"context"` Context string `json:"context"`
IngressClassName string `json:"ingress_class_name"` IngressClassName string `json:"ingress_class_name"`
Kubeconfig string `json:"kubeconfig"` Kubeconfig string `json:"kubeconfig"`

View File

@ -325,6 +325,7 @@ resource "k3d_cluster" "cluster" {
locals { locals {
local_kubernetes_api_url = nonsensitive(k3d_cluster.cluster[0].credentials[0].host) local_kubernetes_api_url = nonsensitive(k3d_cluster.cluster[0].credentials[0].host)
k3d_cluster_name = "${var.project_name}-${var.name}"
} }
resource "local_file" "kubeconfig" { resource "local_file" "kubeconfig" {
@ -337,19 +338,19 @@ resource "local_file" "kubeconfig" {
certificate-authority-data = base64encode(k3d_cluster.cluster[0].credentials[0].cluster_ca_certificate) certificate-authority-data = base64encode(k3d_cluster.cluster[0].credentials[0].cluster_ca_certificate)
server = local.local_kubernetes_api_url server = local.local_kubernetes_api_url
} }
name = "k3d-${var.project_name}-${var.name}" name = "k3d-${local.k3d_cluster_name}"
} }
] ]
contexts = [ contexts = [
{ {
context = { context = {
cluster = "k3d-${var.project_name}-${var.name}" cluster = "k3d-${local.k3d_cluster_name}"
user : "admin@k3d-${var.project_name}-${var.name}" user : "admin@k3d-${local.k3d_cluster_name}"
} }
name = "k3d-${var.project_name}-${var.name}" name = "k3d-${local.k3d_cluster_name}"
} }
] ]
current-context = "k3d-${var.project_name}-${var.name}" current-context = "k3d-${local.k3d_cluster_name}"
kind = "Config" kind = "Config"
preferences = {} preferences = {}
users = [ users = [
@ -358,7 +359,7 @@ resource "local_file" "kubeconfig" {
client-certificate-data : base64encode(k3d_cluster.cluster[0].credentials[0].client_certificate) client-certificate-data : base64encode(k3d_cluster.cluster[0].credentials[0].client_certificate)
client-key-data : base64encode(k3d_cluster.cluster[0].credentials[0].client_key) client-key-data : base64encode(k3d_cluster.cluster[0].credentials[0].client_key)
} }
name : "admin@k3d-${var.project_name}-${var.name}" name : "admin@k3d-${local.k3d_cluster_name}"
} }
] ]
}) })

View File

@ -2,6 +2,7 @@ output "config" {
value = { value = {
kubeconfig = var.server_count > 0 ? abspath(local_file.kubeconfig[0].filename) : null kubeconfig = var.server_count > 0 ? abspath(local_file.kubeconfig[0].filename) : null
context = var.name context = var.name
name = local.k3d_cluster_name
// addresses of the Kubernetes API server // addresses of the Kubernetes API server
kubernetes_addresses = { kubernetes_addresses = {