♻️ Some side effect refactoring

Print usage When no k3d verb was specify
Replace fake Cluster object create into getKubeConfig by realy complete object obtain thanks to cluster.GetCluster() function
Use constant variable for node Label name use into populateClusterFieldsFromLabels() function, in forecast to rename label `k3d.cluster.secret` to `k3d.cluster.token`
pull/257/head
Antoine 4 years ago
parent a6aa1ff2d2
commit f6eaf25a2e
No known key found for this signature in database
GPG Key ID: 098FB66FC0475E70
  1. 6
      cmd/get/getKubeconfig.go
  2. 2
      cmd/root.go
  3. 16
      pkg/cluster/cluster.go
  4. 2
      pkg/tools/tools.go
  5. 8
      pkg/types/types.go

@ -69,7 +69,11 @@ func NewCmdGetKubeconfig() *cobra.Command {
}
} else {
for _, clusterName := range args {
clusters = append(clusters, &k3d.Cluster{Name: clusterName})
retrievedCluster, err := cluster.GetCluster(cmd.Context(), runtimes.SelectedRuntime, &k3d.Cluster{Name: clusterName})
if err != nil {
log.Fatalln(err)
}
clusters = append(clusters, retrievedCluster)
}
}

@ -65,6 +65,8 @@ All Nodes of a k3d cluster are part of the same docker network.`,
Run: func(cmd *cobra.Command, args []string) {
if flags.version {
printVersion()
} else {
cmd.Usage()
}
},
}

@ -79,11 +79,11 @@ func CreateCluster(ctx context.Context, runtime k3drt.Runtime, cluster *k3d.Clus
}
cluster.Network.Name = networkID
extraLabels := map[string]string{
"k3d.cluster.network": networkID,
"k3d.cluster.network.external": strconv.FormatBool(cluster.Network.External),
k3d.NetworkLabelName: networkID,
k3d.NetworkExternalLabelName: strconv.FormatBool(cluster.Network.External),
}
if networkExists {
extraLabels["k3d.cluster.network.external"] = "true" // if the network wasn't created, we say that it's managed externally (important for cluster deletion)
extraLabels[k3d.NetworkExternalLabelName] = "true" // if the network wasn't created, we say that it's managed externally (important for cluster deletion)
}
/*
@ -105,7 +105,7 @@ func CreateCluster(ctx context.Context, runtime k3drt.Runtime, cluster *k3d.Clus
return err
}
extraLabels["k3d.cluster.imageVolume"] = imageVolumeName
extraLabels[k3d.ImageVolumeLabelName] = imageVolumeName
// attach volume to nodes
for _, node := range cluster.Nodes {
@ -128,7 +128,7 @@ func CreateCluster(ctx context.Context, runtime k3drt.Runtime, cluster *k3d.Clus
}
node.Labels["k3d.cluster"] = cluster.Name
node.Env = append(node.Env, fmt.Sprintf("K3S_TOKEN=%s", cluster.Secret))
node.Labels["k3d.cluster.secret"] = cluster.Secret
node.Labels[k3d.SecretLabelName] = cluster.Secret
node.Labels["k3d.cluster.url"] = connectionURL
// append extra labels
@ -419,7 +419,7 @@ func populateClusterFieldsFromLabels(cluster *k3d.Cluster) error {
// get the name of the cluster network
if cluster.Network.Name == "" {
if networkName, ok := node.Labels["k3d.cluster.network"]; ok {
if networkName, ok := node.Labels[k3d.NetworkLabelName]; ok {
cluster.Network.Name = networkName
}
}
@ -427,7 +427,7 @@ func populateClusterFieldsFromLabels(cluster *k3d.Cluster) error {
// check if the network is external
// since the struct value is a bool, initialized as false, we cannot check if it's unset
if !cluster.Network.External && !networkExternalSet {
if networkExternalString, ok := node.Labels["k3d.cluster.network.external"]; ok {
if networkExternalString, ok := node.Labels[k3d.NetworkExternalLabelName]; ok {
if networkExternal, err := strconv.ParseBool(networkExternalString); err == nil {
cluster.Network.External = networkExternal
networkExternalSet = true
@ -437,7 +437,7 @@ func populateClusterFieldsFromLabels(cluster *k3d.Cluster) error {
// get image volume // TODO: enable external image volumes the same way we do it with networks
if cluster.ImageVolume == "" {
if imageVolumeName, ok := node.Labels["k3d.cluster.imageVolume"]; ok {
if imageVolumeName, ok := node.Labels[k3d.ImageVolumeLabelName]; ok {
cluster.ImageVolume = imageVolumeName
}
}

@ -50,7 +50,7 @@ func LoadImagesIntoCluster(ctx context.Context, runtime runtimes.Runtime, images
var ok bool
for _, node := range cluster.Nodes {
if node.Role == k3d.MasterRole || node.Role == k3d.WorkerRole {
if imageVolume, ok = node.Labels["k3d.cluster.imageVolume"]; ok {
if imageVolume, ok = node.Labels[k3d.ImageVolumeLabelName]; ok {
break
}
}

@ -74,6 +74,14 @@ var DefaultObjectLabels = map[string]string{
"app": "k3d",
}
// List of k3d technical label name
const (
SecretLabelName string = "k3d.cluster.secret"
ImageVolumeLabelName string = "k3d.cluster.imageVolume"
NetworkExternalLabelName string = "k3d.cluster.network.external"
NetworkLabelName string = "k3d.cluster.network"
)
// DefaultRoleCmds maps the node roles to their respective default commands
var DefaultRoleCmds = map[Role][]string{
MasterRole: {"server"},

Loading…
Cancel
Save