mirror of https://github.com/kubernetes/kops.git
scaleway resources are tagged with cloud tags
This commit is contained in:
parent
7622f0daa1
commit
3446b935c1
|
@ -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) {
|
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.TagClusterName, b.Cluster.ObjectMeta.Name),
|
||||||
fmt.Sprintf("%s=%s", scaleway.TagNameEtcdClusterPrefix, etcd.Name),
|
fmt.Sprintf("%s=%s", scaleway.TagNameEtcdClusterPrefix, etcd.Name),
|
||||||
fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane),
|
fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane),
|
||||||
fmt.Sprintf("%s=%s", scaleway.TagInstanceGroup, fi.ValueOf(m.InstanceGroup)),
|
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{
|
t := &scalewaytasks.Volume{
|
||||||
Name: fi.PtrTo(name),
|
Name: fi.PtrTo(name),
|
||||||
Lifecycle: b.Lifecycle,
|
Lifecycle: b.Lifecycle,
|
||||||
Size: fi.PtrTo(int64(volumeSize) * 1e9),
|
Size: fi.PtrTo(int64(volumeSize) * 1e9),
|
||||||
Zone: &zone,
|
Zone: &zone,
|
||||||
Tags: tags,
|
Tags: volumeTags,
|
||||||
Type: fi.PtrTo(string(instance.VolumeVolumeTypeBSSD)),
|
Type: fi.PtrTo(string(instance.VolumeVolumeTypeBSSD)),
|
||||||
}
|
}
|
||||||
c.AddTask(t)
|
c.AddTask(t)
|
||||||
|
|
|
@ -57,11 +57,14 @@ func (b *APILoadBalancerModelBuilder) Build(c *fi.CloudupModelBuilderContext) er
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("building load-balancer task: %w", err)
|
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) {
|
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", k, v))
|
||||||
}
|
}
|
||||||
lbTags = append(lbTags, fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane))
|
|
||||||
|
|
||||||
loadBalancerName := "api." + b.ClusterName()
|
loadBalancerName := "api." + b.ClusterName()
|
||||||
loadBalancer := &scalewaytasks.LoadBalancer{
|
loadBalancer := &scalewaytasks.LoadBalancer{
|
||||||
|
|
|
@ -36,31 +36,36 @@ type InstanceModelBuilder struct {
|
||||||
|
|
||||||
var _ fi.CloudupModelBuilder = &InstanceModelBuilder{}
|
var _ fi.CloudupModelBuilder = &InstanceModelBuilder{}
|
||||||
|
|
||||||
func (d *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
|
func (b *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
|
||||||
for _, ig := range d.InstanceGroups {
|
for _, ig := range b.InstanceGroups {
|
||||||
name := ig.Name
|
name := ig.Name
|
||||||
zone, err := scw.ParseZone(ig.Spec.Subnets[0])
|
zone, err := scw.ParseZone(ig.Spec.Subnets[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error building instance task for %q: %w", name, err)
|
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 {
|
if err != nil {
|
||||||
return fmt.Errorf("error building bootstrap script for %q: %w", name, err)
|
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{
|
instance := scalewaytasks.Instance{
|
||||||
Count: int(fi.ValueOf(ig.Spec.MinSize)),
|
Count: int(fi.ValueOf(ig.Spec.MinSize)),
|
||||||
Name: fi.PtrTo(name),
|
Name: fi.PtrTo(name),
|
||||||
Lifecycle: d.Lifecycle,
|
Lifecycle: b.Lifecycle,
|
||||||
Zone: fi.PtrTo(string(zone)),
|
Zone: fi.PtrTo(string(zone)),
|
||||||
CommercialType: fi.PtrTo(ig.Spec.MachineType),
|
CommercialType: fi.PtrTo(ig.Spec.MachineType),
|
||||||
Image: fi.PtrTo(ig.Spec.Image),
|
Image: fi.PtrTo(ig.Spec.Image),
|
||||||
UserData: &userData,
|
UserData: &userData,
|
||||||
Tags: []string{
|
Tags: instanceTags,
|
||||||
scaleway.TagInstanceGroup + "=" + ig.Name,
|
|
||||||
scaleway.TagClusterName + "=" + d.Cluster.Name,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ig.IsControlPlane() {
|
if ig.IsControlPlane() {
|
||||||
|
|
|
@ -187,7 +187,7 @@ resource "scaleway_instance_server" "control-plane-fr-par-1" {
|
||||||
image = "ubuntu_focal"
|
image = "ubuntu_focal"
|
||||||
ip_id = scaleway_instance_ip.control-plane-fr-par-1.id
|
ip_id = scaleway_instance_ip.control-plane-fr-par-1.id
|
||||||
name = "control-plane-fr-par-1"
|
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"
|
type = "DEV1-M"
|
||||||
user_data = {
|
user_data = {
|
||||||
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_control-plane-fr-par-1_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"
|
image = "ubuntu_focal"
|
||||||
ip_id = scaleway_instance_ip.nodes-fr-par-1.id
|
ip_id = scaleway_instance_ip.nodes-fr-par-1.id
|
||||||
name = "nodes-fr-par-1"
|
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"
|
type = "DEV1-M"
|
||||||
user_data = {
|
user_data = {
|
||||||
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_nodes-fr-par-1_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" {
|
resource "scaleway_lb" "api-scw-minimal-k8s-local" {
|
||||||
ip_id = scaleway_lb_ip.api-scw-minimal-k8s-local.id
|
ip_id = scaleway_lb_ip.api-scw-minimal-k8s-local.id
|
||||||
name = "api.scw-minimal.k8s.local"
|
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"
|
type = "LB-S"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -68,7 +68,7 @@ func (s *Instance) Find(c *fi.CloudupContext) (*Instance, error) {
|
||||||
igName := ""
|
igName := ""
|
||||||
for _, tag := range server.Tags {
|
for _, tag := range server.Tags {
|
||||||
if strings.HasPrefix(tag, scaleway.TagInstanceGroup) {
|
if strings.HasPrefix(tag, scaleway.TagInstanceGroup) {
|
||||||
igName = strings.TrimPrefix(tag, scaleway.TagInstanceGroup+"_")
|
igName = strings.TrimPrefix(tag, scaleway.TagInstanceGroup+"=")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue