diff --git a/pkg/model/master_volumes.go b/pkg/model/master_volumes.go index bee9ab7368..fc15763cd1 100644 --- a/pkg/model/master_volumes.go +++ b/pkg/model/master_volumes.go @@ -398,19 +398,22 @@ func (b *MasterVolumeBuilder) addAzureVolume( } func (b *MasterVolumeBuilder) addScalewayVolume(c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) { - tags := []string{ + volumeTags := []string{ fmt.Sprintf("%s=%s", scaleway.TagClusterName, b.Cluster.ObjectMeta.Name), fmt.Sprintf("%s=%s", scaleway.TagNameEtcdClusterPrefix, etcd.Name), fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane), fmt.Sprintf("%s=%s", scaleway.TagInstanceGroup, fi.ValueOf(m.InstanceGroup)), } + for k, v := range b.CloudTags(b.ClusterName(), false) { + volumeTags = append(volumeTags, fmt.Sprintf("%s=%s", k, v)) + } t := &scalewaytasks.Volume{ Name: fi.PtrTo(name), Lifecycle: b.Lifecycle, Size: fi.PtrTo(int64(volumeSize) * 1e9), Zone: &zone, - Tags: tags, + Tags: volumeTags, Type: fi.PtrTo(string(instance.VolumeVolumeTypeBSSD)), } c.AddTask(t) diff --git a/pkg/model/scalewaymodel/api_loadbalancer.go b/pkg/model/scalewaymodel/api_loadbalancer.go index 93fe3454b7..8ece77d2e7 100644 --- a/pkg/model/scalewaymodel/api_loadbalancer.go +++ b/pkg/model/scalewaymodel/api_loadbalancer.go @@ -57,11 +57,14 @@ func (b *APILoadBalancerModelBuilder) Build(c *fi.CloudupModelBuilderContext) er if err != nil { return fmt.Errorf("building load-balancer task: %w", err) } - lbTags := []string(nil) + + lbTags := []string{ + fmt.Sprintf("%s=%s", scaleway.TagClusterName, b.ClusterName()), + fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane), + } for k, v := range b.CloudTags(b.ClusterName(), false) { lbTags = append(lbTags, fmt.Sprintf("%s=%s", k, v)) } - lbTags = append(lbTags, fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane)) loadBalancerName := "api." + b.ClusterName() loadBalancer := &scalewaytasks.LoadBalancer{ diff --git a/pkg/model/scalewaymodel/instances.go b/pkg/model/scalewaymodel/instances.go index 8903e2d11b..9b236bed62 100644 --- a/pkg/model/scalewaymodel/instances.go +++ b/pkg/model/scalewaymodel/instances.go @@ -36,31 +36,36 @@ type InstanceModelBuilder struct { var _ fi.CloudupModelBuilder = &InstanceModelBuilder{} -func (d *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error { - for _, ig := range d.InstanceGroups { +func (b *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error { + for _, ig := range b.InstanceGroups { name := ig.Name zone, err := scw.ParseZone(ig.Spec.Subnets[0]) if err != nil { return fmt.Errorf("error building instance task for %q: %w", name, err) } - userData, err := d.BootstrapScriptBuilder.ResourceNodeUp(c, ig) + userData, err := b.BootstrapScriptBuilder.ResourceNodeUp(c, ig) if err != nil { return fmt.Errorf("error building bootstrap script for %q: %w", name, err) } + instanceTags := []string{ + scaleway.TagClusterName + "=" + b.Cluster.Name, + scaleway.TagInstanceGroup + "=" + ig.Name, + } + for k, v := range b.CloudTags(b.ClusterName(), false) { + instanceTags = append(instanceTags, fmt.Sprintf("%s=%s", k, v)) + } + instance := scalewaytasks.Instance{ Count: int(fi.ValueOf(ig.Spec.MinSize)), Name: fi.PtrTo(name), - Lifecycle: d.Lifecycle, + Lifecycle: b.Lifecycle, Zone: fi.PtrTo(string(zone)), CommercialType: fi.PtrTo(ig.Spec.MachineType), Image: fi.PtrTo(ig.Spec.Image), UserData: &userData, - Tags: []string{ - scaleway.TagInstanceGroup + "=" + ig.Name, - scaleway.TagClusterName + "=" + d.Cluster.Name, - }, + Tags: instanceTags, } if ig.IsControlPlane() { diff --git a/tests/integration/update_cluster/minimal_scaleway/kubernetes.tf b/tests/integration/update_cluster/minimal_scaleway/kubernetes.tf index aef7d2b416..88dfc22509 100644 --- a/tests/integration/update_cluster/minimal_scaleway/kubernetes.tf +++ b/tests/integration/update_cluster/minimal_scaleway/kubernetes.tf @@ -187,7 +187,7 @@ resource "scaleway_instance_server" "control-plane-fr-par-1" { image = "ubuntu_focal" ip_id = scaleway_instance_ip.control-plane-fr-par-1.id name = "control-plane-fr-par-1" - tags = ["noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/role=ControlPlane"] + tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1", "noprefix=kops.k8s.io/role=ControlPlane"] type = "DEV1-M" user_data = { "cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_control-plane-fr-par-1_user_data") @@ -198,7 +198,7 @@ resource "scaleway_instance_server" "nodes-fr-par-1" { image = "ubuntu_focal" ip_id = scaleway_instance_ip.nodes-fr-par-1.id name = "nodes-fr-par-1" - tags = ["noprefix=kops.k8s.io/instance-group=nodes-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local"] + tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/instance-group=nodes-fr-par-1"] type = "DEV1-M" user_data = { "cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_nodes-fr-par-1_user_data") @@ -222,7 +222,7 @@ resource "scaleway_instance_volume" "etcd-1-etcd-main-scw-minimal-k8s-local" { resource "scaleway_lb" "api-scw-minimal-k8s-local" { ip_id = scaleway_lb_ip.api-scw-minimal-k8s-local.id name = "api.scw-minimal.k8s.local" - tags = ["noprefix=kops.k8s.io/role=ControlPlane"] + tags = ["noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/role=ControlPlane"] type = "LB-S" } diff --git a/upup/pkg/fi/cloudup/scalewaytasks/instance.go b/upup/pkg/fi/cloudup/scalewaytasks/instance.go index c353f438c7..bf30bbd024 100644 --- a/upup/pkg/fi/cloudup/scalewaytasks/instance.go +++ b/upup/pkg/fi/cloudup/scalewaytasks/instance.go @@ -68,7 +68,7 @@ func (s *Instance) Find(c *fi.CloudupContext) (*Instance, error) { igName := "" for _, tag := range server.Tags { if strings.HasPrefix(tag, scaleway.TagInstanceGroup) { - igName = strings.TrimPrefix(tag, scaleway.TagInstanceGroup+"_") + igName = strings.TrimPrefix(tag, scaleway.TagInstanceGroup+"=") } }