mirror of https://github.com/kubernetes/kops.git
Merge pull request #15022 from Mia-Cross/scw_refacto_instance_and_tags
scaleway: refactoring: instance and tags
This commit is contained in:
commit
ddd1583244
|
@ -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:
|
||||
|
|
|
@ -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)),
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue