( c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string, )
| 365 | } |
| 366 | |
| 367 | func (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 | |
| 421 | func (b *MasterVolumeBuilder) addScalewayVolume(c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) { |
| 422 | volumeTags := []string{ |
no test coverage detected