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

Method addOpenstackVolume

pkg/model/master_volumes.go:335–365  ·  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

333}
334
335func (b *MasterVolumeBuilder) addOpenstackVolume(c *fi.CloudupModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) error {
336 volumeType := fi.ValueOf(m.VolumeType)
337
338 // The tags are how protokube knows to mount the volume and use it for etcd
339 tags := make(map[string]string)
340 // Apply all user defined labels on the volumes
341 for k, v := range b.Cluster.Spec.CloudLabels {
342 tags[k] = v
343 }
344 // This is the configuration of the etcd cluster
345 tags[openstack.TagNameEtcdClusterPrefix+etcd.Name] = m.Name + "/" + strings.Join(allMembers, ",")
346 // This says "only mount on a control plane node"
347 tags[openstack.TagNameRolePrefix+openstack.TagRoleControlPlane] = "1"
348 tags[openstack.TagNameRolePrefix+"master"] = "1"
349
350 // override zone
351 if b.Cluster.Spec.CloudProvider.Openstack.BlockStorage != nil && b.Cluster.Spec.CloudProvider.Openstack.BlockStorage.OverrideAZ != nil {
352 zone = fi.ValueOf(b.Cluster.Spec.CloudProvider.Openstack.BlockStorage.OverrideAZ)
353 }
354 t := &openstacktasks.Volume{
355 Name: fi.PtrTo(name),
356 AvailabilityZone: fi.PtrTo(zone),
357 VolumeType: fi.PtrTo(volumeType),
358 SizeGB: fi.PtrTo(int64(volumeSize)),
359 Tags: tags,
360 Lifecycle: b.Lifecycle,
361 }
362 c.AddTask(t)
363
364 return nil
365}
366
367func (b *MasterVolumeBuilder) addAzureVolume(
368 c *fi.CloudupModelBuilderContext,

Callers 1

BuildMethod · 0.95

Calls 4

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

Tested by

no test coverage detected