Merge pull request #15022 from Mia-Cross/scw_refacto_instance_and_tags

scaleway: refactoring: instance and tags
This commit is contained in:
Kubernetes Prow Robot 2023-01-18 21:50:34 -08:00 committed by GitHub
commit ddd1583244
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 6 deletions

View File

@ -436,7 +436,7 @@ func (b *EtcdManagerBuilder) buildPod(etcdCluster kops.EtcdClusterSpec, instance
config.VolumeTag = []string{
fmt.Sprintf("%s=%s", scaleway.TagClusterName, b.Cluster.Name),
fmt.Sprintf("%s=%s", scaleway.TagNameEtcdClusterPrefix, etcdCluster.Name),
fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleMaster),
fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane),
}
config.VolumeNameTag = fmt.Sprintf("%s=%s", scaleway.TagInstanceGroup, instanceGroupName)
default:

View File

@ -401,7 +401,7 @@ func (b *MasterVolumeBuilder) addScalewayVolume(c *fi.CloudupModelBuilderContext
tags := []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.TagRoleMaster),
fmt.Sprintf("%s=%s", scaleway.TagNameRolePrefix, scaleway.TagRoleControlPlane),
fmt.Sprintf("%s=%s", scaleway.TagInstanceGroup, fi.ValueOf(m.InstanceGroup)),
}

View File

@ -63,6 +63,13 @@ func (d *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
},
}
if ig.IsControlPlane() {
instance.Tags = append(instance.Tags, scaleway.TagNameRolePrefix+"="+scaleway.TagRoleControlPlane)
instance.Role = fi.PtrTo(scaleway.TagRoleControlPlane)
} else {
instance.Role = fi.PtrTo(scaleway.TagRoleWorker)
}
c.AddTask(&instance)
}
return nil

View File

@ -40,8 +40,8 @@ const (
TagInstanceGroup = "instance-group"
TagNameRolePrefix = "k8s.io/role"
TagNameEtcdClusterPrefix = "k8s.io/etcd"
TagRoleMaster = "control-plane"
TagRoleVolume = "volume"
TagRoleControlPlane = "control-plane"
TagRoleWorker = "worker"
)
// ScwCloud exposes all the interfaces required to operate on Scaleway resources
@ -419,6 +419,10 @@ func (s *scwCloudImplementation) DeleteSSHKey(sshkey *iam.SSHKey) error {
SSHKeyID: sshkey.ID,
})
if err != nil {
if is404Error(err) {
klog.V(8).Infof("SSH key %q (%s) was already deleted", sshkey.Name, sshkey.ID)
return nil
}
return fmt.Errorf("failed to delete ssh key %s: %w", sshkey.ID, err)
}
return nil
@ -430,6 +434,10 @@ func (s *scwCloudImplementation) DeleteVolume(volume *instance.Volume) error {
Zone: s.zone,
})
if err != nil {
if is404Error(err) {
klog.V(8).Infof("Volume %q (%s) was already deleted", volume.Name, volume.ID)
return nil
}
return fmt.Errorf("failed to delete volume %s: %w", volume.ID, err)
}
@ -438,7 +446,7 @@ func (s *scwCloudImplementation) DeleteVolume(volume *instance.Volume) error {
Zone: s.zone,
})
if !is404Error(err) {
return fmt.Errorf("delete server %s: error waiting for volume after deletion: %w", volume.ID, err)
return fmt.Errorf("delete volume %s: error waiting for volume after deletion: %w", volume.ID, err)
}
return nil

View File

@ -32,6 +32,7 @@ type Instance struct {
Lifecycle fi.Lifecycle
Zone *string
Role *string
CommercialType *string
Image *string
Tags []string
@ -56,13 +57,20 @@ func (s *Instance) Find(c *fi.CloudupContext) (*Instance, error) {
if len(servers) == 0 {
return nil, nil
}
server := servers[0]
role := scaleway.TagRoleWorker
for _, tag := range server.Tags {
if tag == scaleway.TagNameRolePrefix+"="+scaleway.TagRoleControlPlane {
role = scaleway.TagRoleControlPlane
}
}
return &Instance{
Name: fi.PtrTo(server.Name),
Count: len(servers),
Zone: fi.PtrTo(server.Zone.String()),
Role: fi.PtrTo(role),
CommercialType: fi.PtrTo(server.CommercialType),
Image: s.Image,
Tags: server.Tags,