Trim GCE Subnet and Disk names

This commit is contained in:
Peter Rifel 2022-04-21 17:40:29 -05:00
parent 93158aa117
commit 0481aebc2d
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
2 changed files with 17 additions and 7 deletions

View File

@ -54,7 +54,11 @@ func (c *GCEModelContext) NameForIPAliasRange(key string) string {
func (c *GCEModelContext) LinkToSubnet(subnet *kops.ClusterSubnetSpec) *gcetasks.Subnet {
name := subnet.ProviderID
if name == "" {
name = c.SafeObjectName(subnet.Name)
var err error
name, err = gce.ClusterSuffixedName(subnet.Name, c.Cluster.ObjectMeta.Name, 63)
if err != nil {
klog.Fatalf("failed to construct subnet name: %w", err)
}
}
return &gcetasks.Subnet{Name: s(name)}

View File

@ -23,6 +23,7 @@ import (
"github.com/aws/aws-sdk-go/service/ec2"
"k8s.io/klog/v2"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/apis/kops/model"
"k8s.io/kops/upup/pkg/fi"
@ -59,7 +60,8 @@ func (b *MasterVolumeBuilder) Build(c *fi.ModelBuilderContext) error {
for _, etcd := range b.Cluster.Spec.EtcdClusters {
for _, m := range etcd.Members {
// EBS volume for each member of the each etcd cluster
name := m.Name + ".etcd-" + etcd.Name + "." + b.ClusterName()
prefix := m.Name + ".etcd-" + etcd.Name
name := prefix + "." + b.ClusterName()
igName := fi.StringValue(m.InstanceGroup)
if igName == "" {
@ -102,7 +104,7 @@ func (b *MasterVolumeBuilder) Build(c *fi.ModelBuilderContext) error {
case kops.CloudProviderDO:
b.addDOVolume(c, name, volumeSize, zone, etcd, m, allMembers)
case kops.CloudProviderGCE:
b.addGCEVolume(c, name, volumeSize, zone, etcd, m, allMembers)
b.addGCEVolume(c, prefix, volumeSize, zone, etcd, m, allMembers)
case kops.CloudProviderOpenstack:
err = b.addOpenstackVolume(c, name, volumeSize, zone, etcd, m, allMembers)
if err != nil {
@ -237,7 +239,7 @@ func (b *MasterVolumeBuilder) addDOVolume(c *fi.ModelBuilderContext, name string
c.AddTask(t)
}
func (b *MasterVolumeBuilder) addGCEVolume(c *fi.ModelBuilderContext, name string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) {
func (b *MasterVolumeBuilder) addGCEVolume(c *fi.ModelBuilderContext, prefix string, volumeSize int32, zone string, etcd kops.EtcdClusterSpec, m kops.EtcdMemberSpec, allMembers []string) {
volumeType := fi.StringValue(m.VolumeType)
if volumeType == "" {
volumeType = DefaultGCEEtcdVolumeType
@ -266,9 +268,13 @@ func (b *MasterVolumeBuilder) addGCEVolume(c *fi.ModelBuilderContext, name strin
tags[gce.GceLabelNameEtcdClusterPrefix+etcd.Name] = gce.EncodeGCELabel(clusterSpec)
// GCE disk names must match the following regular expression: '[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?'
name = strings.Replace(name, ".", "-", -1)
if strings.IndexByte("0123456789-", name[0]) != -1 {
name = "d" + name
prefix = strings.Replace(prefix, ".", "-", -1)
if strings.IndexByte("0123456789-", prefix[0]) != -1 {
prefix = "d" + prefix
}
name, err := gce.ClusterSuffixedName(prefix, b.Cluster.ObjectMeta.Name, 63)
if err != nil {
klog.Fatalf("failed to construct disk name: %w", err)
}
t := &gcetasks.Disk{