azure: Add zone when creating etcd volumes

This commit is contained in:
Ciprian Hacman 2022-11-08 16:25:23 +02:00
parent 5ed728b805
commit 7f67dcf52b
2 changed files with 18 additions and 4 deletions

View File

@ -114,7 +114,10 @@ func (b *MasterVolumeBuilder) Build(c *fi.ModelBuilderContext) error {
return err
}
case kops.CloudProviderAzure:
b.addAzureVolume(c, name, volumeSize, zone, etcd, m, allMembers)
err = b.addAzureVolume(c, name, volumeSize, zone, etcd, m, allMembers)
if err != nil {
return err
}
default:
return fmt.Errorf("unknown cloudprovider %q", b.Cluster.Spec.GetCloudProvider())
}
@ -347,7 +350,7 @@ func (b *MasterVolumeBuilder) addAzureVolume(
etcd kops.EtcdClusterSpec,
m kops.EtcdMemberSpec,
allMembers []string,
) {
) error {
// The tags are use by Protokube to mount the volume and use it for etcd.
tags := map[string]*string{
// This is the configuration of the etcd cluster.
@ -365,7 +368,12 @@ func (b *MasterVolumeBuilder) addAzureVolume(
tags[k] = fi.String(v)
}
// TODO(kenji): Respect zone and m.EncryptedVolume.
zoneNumber, err := azure.ZoneToAvailabilityZoneNumber(zone)
if err != nil {
return err
}
// TODO(kenji): Respect m.EncryptedVolume.
t := &azuretasks.Disk{
Name: fi.String(name),
Lifecycle: b.Lifecycle,
@ -375,6 +383,9 @@ func (b *MasterVolumeBuilder) addAzureVolume(
},
SizeGB: fi.Int32(volumeSize),
Tags: tags,
Zones: &[]string{zoneNumber},
}
c.AddTask(t)
return nil
}

View File

@ -35,6 +35,7 @@ type Disk struct {
ResourceGroup *ResourceGroup
SizeGB *int32
Tags map[string]*string
Zones *[]string
}
var (
@ -74,6 +75,7 @@ func (d *Disk) Find(c *fi.Context) (*Disk, error) {
},
SizeGB: found.DiskSizeGB,
Tags: found.Tags,
Zones: found.Zones,
}, nil
}
@ -121,7 +123,8 @@ func (*Disk) RenderAzure(t *azure.AzureAPITarget, a, e, changes *Disk) error {
},
DiskSizeGB: e.SizeGB,
},
Tags: e.Tags,
Tags: e.Tags,
Zones: e.Zones,
}
return t.Cloud.Disk().CreateOrUpdate(