MCPcopy
hub / github.com/kubernetes/kops / addAzureVolume

Method addAzureVolume

pkg/model/master_volumes.go:367–419  ·  view source on GitHub ↗
(
	c *fi.CloudupModelBuilderContext,
	name string,
	volumeSize int32,
	zone string,
	etcd kops.EtcdClusterSpec,
	m kops.EtcdMemberSpec,
	allMembers []string,
)

Source from the content-addressed store, hash-verified

365}
366
367func (b *MasterVolumeBuilder) addAzureVolume(
368 c *fi.CloudupModelBuilderContext,
369 name string,
370 volumeSize int32,
371 zone string,
372 etcd kops.EtcdClusterSpec,
373 m kops.EtcdMemberSpec,
374 allMembers []string,
375) error {
376 volumeType := fi.ValueOf(m.VolumeType)
377 if volumeType == "" {
378 volumeType = DefaultAZUREEtcdVolumeType
379 }
380 // The tags are use by Protokube to mount the volume and use it for etcd.
381 tags := map[string]*string{
382 // This is the configuration of the etcd cluster.
383 azure.TagNameEtcdClusterPrefix + etcd.Name: fi.PtrTo(m.Name + "/" + strings.Join(allMembers, ",")),
384 // This says "only mount on a control plane node".
385 azure.TagNameRolePrefix + azure.TagRoleControlPlane: fi.PtrTo("1"),
386 azure.TagNameRolePrefix + azure.TagRoleMaster: fi.PtrTo("1"),
387 // We always add an owned tags (these can't be shared).
388 // Use dash (_) as a splitter. Other CSPs use slash (/), but slash is not
389 // allowed as a tag key in Azure.
390 "kubernetes.io_cluster_" + b.Cluster.ObjectMeta.Name: fi.PtrTo("owned"),
391 }
392
393 // Apply all user defined labels on the volumes.
394 for k, v := range b.Cluster.Spec.CloudLabels {
395 tags[k] = fi.PtrTo(v)
396 }
397
398 zoneNumber, err := azure.ZoneToAvailabilityZoneNumber(zone)
399 if err != nil {
400 return err
401 }
402
403 // TODO(kenji): Respect m.EncryptedVolume.
404 t := &azuretasks.Disk{
405 Name: fi.PtrTo(name),
406 Lifecycle: b.Lifecycle,
407 // We cannot use AzureModelContext.LinkToResourceGroup() here because of cyclic dependency.
408 ResourceGroup: &azuretasks.ResourceGroup{
409 Name: fi.PtrTo(b.Cluster.AzureResourceGroupName()),
410 },
411 SizeGB: fi.PtrTo(volumeSize),
412 Tags: tags,
413 VolumeType: fi.PtrTo(armcompute.DiskStorageAccountTypes(volumeType)),
414 Zones: []*string{&zoneNumber},
415 }
416 c.AddTask(t)
417
418 return nil
419}
420
421func (b *MasterVolumeBuilder) addScalewayVolume(c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) {
422 volumeTags := []string{

Callers 1

BuildMethod · 0.95

Calls 6

ValueOfFunction · 0.92
PtrToFunction · 0.92
AddTaskMethod · 0.80
JoinMethod · 0.65

Tested by

no test coverage detected