mirror of https://github.com/kubernetes/kops.git
unique instance names to comply with CCM
This commit is contained in:
parent
dc6e6b41de
commit
1e20a4c629
|
|
@ -1798,8 +1798,8 @@ func (i *integrationTest) runTestTerraformScaleway(t *testing.T) {
|
||||||
"aws_s3_object_"+i.clusterName+"-addons-limit-range.addons.k8s.io_content",
|
"aws_s3_object_"+i.clusterName+"-addons-limit-range.addons.k8s.io_content",
|
||||||
"aws_s3_object_"+i.clusterName+"-addons-networking.cilium.io-k8s-1.16_content",
|
"aws_s3_object_"+i.clusterName+"-addons-networking.cilium.io-k8s-1.16_content",
|
||||||
"aws_s3_object_"+i.clusterName+"-addons-rbac.addons.k8s.io-k8s-1.8_content",
|
"aws_s3_object_"+i.clusterName+"-addons-rbac.addons.k8s.io-k8s-1.8_content",
|
||||||
"scaleway_instance_server_control-plane-fr-par-1-masters-scw-minimal-k8s-local_user_data",
|
"scaleway_instance_server_control-plane-fr-par-1_user_data",
|
||||||
"scaleway_instance_server_nodes-fr-par-1-scw-minimal-k8s-local_user_data",
|
"scaleway_instance_server_nodes-fr-par-1_user_data",
|
||||||
)
|
)
|
||||||
|
|
||||||
i.runTest(t, ctx, h, expectedFilenames, "", "", nil)
|
i.runTest(t, ctx, h, expectedFilenames, "", "", nil)
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ var _ fi.CloudupModelBuilder = &InstanceModelBuilder{}
|
||||||
|
|
||||||
func (d *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
|
func (d *InstanceModelBuilder) Build(c *fi.CloudupModelBuilderContext) error {
|
||||||
for _, ig := range d.InstanceGroups {
|
for _, ig := range d.InstanceGroups {
|
||||||
name := d.AutoscalingGroupName(ig)
|
name := ig.Name
|
||||||
zone, err := scw.ParseZone(ig.Spec.Subnets[0])
|
zone, err := scw.ParseZone(ig.Spec.Subnets[0])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error building instance task for %q: %w", name, err)
|
return fmt.Errorf("error building instance task for %q: %w", name, err)
|
||||||
|
|
|
||||||
|
|
@ -177,31 +177,31 @@ resource "scaleway_iam_ssh_key" "kubernetes-scw-minimal-k8s-local-be_9e_c3_eb_cb
|
||||||
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKqbVEozfAqng0gx8HTUu69EppcE5SWet6MpwrGShqMVUC4wkoiuVtJDPhMmWmdt7B7Ttc5pvnAZAZaQ6TKMguyBoAyS7qOTLU9/hM803XtSiwQUftOXiJfmsqAXEc8yDyb7UnrF8X7aA3gQJsnQBGJGdp+C88dPHNZenw4PnQc8BNYTCXG9d8F5vJ3xQ5qbiG4HVNoQ2CZh2ht+GedZJ3hl9lMJ24kE/cbMCLKxabMP4ROetECG6PU251jnm84NA8rm0Av/JMmn/c9CFAe0D0D1dGDlHWPsk4mbhGKJ0yU0YliatmPfmgSasismbYzIFf7VPq91ARzRUbavd1fYMBmkMsce0YR/5FdtrpzRhqDzuvwQgQRsoTcttdvp0puFcrtNefMfk8NCbBedIlkzOFxfGiBbe6jde4wqsqEnSrNHwZ2b+Er8z7vjcDPBqYk3gubmMBCrYxg6o1lOS6tTN0kJDUlyKO2AN1ZDr3mpkbhkvZV/N7gLglcClM0X5X7iM= leila@leila-ThinkPad-T14s-Gen-2i"
|
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDKqbVEozfAqng0gx8HTUu69EppcE5SWet6MpwrGShqMVUC4wkoiuVtJDPhMmWmdt7B7Ttc5pvnAZAZaQ6TKMguyBoAyS7qOTLU9/hM803XtSiwQUftOXiJfmsqAXEc8yDyb7UnrF8X7aA3gQJsnQBGJGdp+C88dPHNZenw4PnQc8BNYTCXG9d8F5vJ3xQ5qbiG4HVNoQ2CZh2ht+GedZJ3hl9lMJ24kE/cbMCLKxabMP4ROetECG6PU251jnm84NA8rm0Av/JMmn/c9CFAe0D0D1dGDlHWPsk4mbhGKJ0yU0YliatmPfmgSasismbYzIFf7VPq91ARzRUbavd1fYMBmkMsce0YR/5FdtrpzRhqDzuvwQgQRsoTcttdvp0puFcrtNefMfk8NCbBedIlkzOFxfGiBbe6jde4wqsqEnSrNHwZ2b+Er8z7vjcDPBqYk3gubmMBCrYxg6o1lOS6tTN0kJDUlyKO2AN1ZDr3mpkbhkvZV/N7gLglcClM0X5X7iM= leila@leila-ThinkPad-T14s-Gen-2i"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "scaleway_instance_ip" "control-plane-fr-par-1-masters-scw-minimal-k8s-local" {
|
resource "scaleway_instance_ip" "control-plane-fr-par-1" {
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "scaleway_instance_ip" "nodes-fr-par-1-scw-minimal-k8s-local" {
|
resource "scaleway_instance_ip" "nodes-fr-par-1" {
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "scaleway_instance_server" "control-plane-fr-par-1-masters-scw-minimal-k8s-local" {
|
resource "scaleway_instance_server" "control-plane-fr-par-1" {
|
||||||
image = "ubuntu_focal"
|
image = "ubuntu_focal"
|
||||||
ip_id = scaleway_instance_ip.control-plane-fr-par-1-masters-scw-minimal-k8s-local.id
|
ip_id = scaleway_instance_ip.control-plane-fr-par-1.id
|
||||||
name = "control-plane-fr-par-1.masters.scw-minimal.k8s.local"
|
name = "control-plane-fr-par-1"
|
||||||
tags = ["noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/role=ControlPlane"]
|
tags = ["noprefix=kops.k8s.io/instance-group=control-plane-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local", "noprefix=kops.k8s.io/role=ControlPlane"]
|
||||||
type = "DEV1-M"
|
type = "DEV1-M"
|
||||||
user_data = {
|
user_data = {
|
||||||
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_control-plane-fr-par-1-masters-scw-minimal-k8s-local_user_data")
|
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_control-plane-fr-par-1_user_data")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "scaleway_instance_server" "nodes-fr-par-1-scw-minimal-k8s-local" {
|
resource "scaleway_instance_server" "nodes-fr-par-1" {
|
||||||
image = "ubuntu_focal"
|
image = "ubuntu_focal"
|
||||||
ip_id = scaleway_instance_ip.nodes-fr-par-1-scw-minimal-k8s-local.id
|
ip_id = scaleway_instance_ip.nodes-fr-par-1.id
|
||||||
name = "nodes-fr-par-1.scw-minimal.k8s.local"
|
name = "nodes-fr-par-1"
|
||||||
tags = ["noprefix=kops.k8s.io/instance-group=nodes-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local"]
|
tags = ["noprefix=kops.k8s.io/instance-group=nodes-fr-par-1", "noprefix=kops.k8s.io/cluster=scw-minimal.k8s.local"]
|
||||||
type = "DEV1-M"
|
type = "DEV1-M"
|
||||||
user_data = {
|
user_data = {
|
||||||
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_nodes-fr-par-1-scw-minimal-k8s-local_user_data")
|
"cloud-init" = filebase64("${path.module}/data/scaleway_instance_server_nodes-fr-par-1_user_data")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,13 @@ func (s *Instance) Find(c *fi.CloudupContext) (*Instance, error) {
|
||||||
}
|
}
|
||||||
server := servers[0]
|
server := servers[0]
|
||||||
|
|
||||||
|
igName := ""
|
||||||
|
for _, tag := range server.Tags {
|
||||||
|
if strings.HasPrefix(tag, scaleway.TagInstanceGroup) {
|
||||||
|
igName = strings.TrimPrefix(tag, scaleway.TagInstanceGroup+"_")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
role := scaleway.TagRoleWorker
|
role := scaleway.TagRoleWorker
|
||||||
for _, tag := range server.Tags {
|
for _, tag := range server.Tags {
|
||||||
if tag == scaleway.TagNameRolePrefix+"="+scaleway.TagRoleControlPlane {
|
if tag == scaleway.TagNameRolePrefix+"="+scaleway.TagRoleControlPlane {
|
||||||
|
|
@ -73,7 +80,7 @@ func (s *Instance) Find(c *fi.CloudupContext) (*Instance, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return &Instance{
|
return &Instance{
|
||||||
Name: fi.PtrTo(server.Name),
|
Name: fi.PtrTo(igName),
|
||||||
Count: len(servers),
|
Count: len(servers),
|
||||||
Zone: fi.PtrTo(server.Zone.String()),
|
Zone: fi.PtrTo(server.Zone.String()),
|
||||||
Role: fi.PtrTo(role),
|
Role: fi.PtrTo(role),
|
||||||
|
|
@ -141,11 +148,17 @@ func (_ *Instance) RenderScw(t *scaleway.ScwAPITarget, actual, expected, changes
|
||||||
|
|
||||||
// If newInstanceCount > 0, we need to create new instances for this group
|
// If newInstanceCount > 0, we need to create new instances for this group
|
||||||
for i := 0; i < newInstanceCount; i++ {
|
for i := 0; i < newInstanceCount; i++ {
|
||||||
|
// We create a unique name for each server
|
||||||
|
actualCount := 0
|
||||||
|
if actual != nil {
|
||||||
|
actualCount = actual.Count
|
||||||
|
}
|
||||||
|
uniqueName := fmt.Sprintf("%s-%d", fi.ValueOf(expected.Name), i+actualCount)
|
||||||
|
|
||||||
// We create the instance
|
// We create the instance
|
||||||
srv, err := instanceService.CreateServer(&instance.CreateServerRequest{
|
srv, err := instanceService.CreateServer(&instance.CreateServerRequest{
|
||||||
Zone: zone,
|
Zone: zone,
|
||||||
Name: fi.ValueOf(expected.Name),
|
Name: uniqueName,
|
||||||
CommercialType: fi.ValueOf(expected.CommercialType),
|
CommercialType: fi.ValueOf(expected.CommercialType),
|
||||||
Image: fi.ValueOf(expected.Image),
|
Image: fi.ValueOf(expected.Image),
|
||||||
Tags: expected.Tags,
|
Tags: expected.Tags,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue