diff --git a/pkg/platform/packet/packet.go b/pkg/platform/packet/packet.go index d46b8dfcb..01c2fe54f 100644 --- a/pkg/platform/packet/packet.go +++ b/pkg/platform/packet/packet.go @@ -217,28 +217,19 @@ func (c *config) terraformSmartApply(ex *terraform.Executor) error { return errors.Wrap(err, "parsing DNS configuration failed") } - // If the provider isn't manual, apply everything in a single step. - if dnsProvider != dns.DNSManual { - return ex.Apply() - } - arguments := []string{"apply", "-auto-approve"} - // Get DNS entries (it forces the creation of the controller nodes). + // Make sure to create DNS entries before bootkube starts arguments = append(arguments, fmt.Sprintf("-target=module.packet-%s.null_resource.dns_entries", c.ClusterName)) - - // Add worker nodes to speed things up. - for index := range c.WorkerPools { - arguments = append(arguments, fmt.Sprintf("-target=module.worker-pool-%d.packet_device.nodes", index)) - } - - // Create controller and workers nodes. if err := ex.Execute(arguments...); err != nil { return errors.Wrap(err, "failed executing Terraform") } - if err := dns.AskToConfigure(ex, &c.DNS); err != nil { - return errors.Wrap(err, "failed to configure DNS entries") + // If the provider is manual, ask to configure + if dnsProvider == dns.DNSManual { + if err := dns.AskToConfigure(ex, &c.DNS); err != nil { + return errors.Wrap(err, "failed to configure DNS entries") + } } // Finish deployment.