Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set OOB mgmt data via cli flags and ENV VARS #6692

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 17 additions & 11 deletions cmd/eksctl-anywhere/cmd/createcluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import (
"github.com/aws/eks-anywhere/pkg/features"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/logger"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/types"
"github.com/aws/eks-anywhere/pkg/validations"
"github.com/aws/eks-anywhere/pkg/validations/createvalidations"
Expand All @@ -26,12 +27,11 @@ import (
type createClusterOptions struct {
clusterOptions
timeoutOptions
forceClean bool
skipIpCheck bool
hardwareCSVPath string
tinkerbellBootstrapIP string
installPackages string
skipValidations []string
forceClean bool
skipIPCheck bool
tinkerbellConfig tinkerbell.Config
installPackages string
skipValidations []string
}

var cc = &createClusterOptions{}
Expand All @@ -49,15 +49,20 @@ func init() {
createCmd.AddCommand(createClusterCmd)
applyClusterOptionFlags(createClusterCmd.Flags(), &cc.clusterOptions)
applyTimeoutFlags(createClusterCmd.Flags(), &cc.timeoutOptions)
applyTinkerbellHardwareFlag(createClusterCmd.Flags(), &cc.hardwareCSVPath)
flags.String(flags.TinkerbellBootstrapIP, &cc.tinkerbellBootstrapIP, createClusterCmd.Flags())
applyTinkerbellHardwareFlag(createClusterCmd.Flags(), &cc.tinkerbellConfig.HardwareFile)
flags.String(flags.TinkerbellBootstrapIP, &cc.tinkerbellConfig.IP, createClusterCmd.Flags())
createClusterCmd.Flags().BoolVar(&cc.forceClean, "force-cleanup", false, "Force deletion of previously created bootstrap cluster")
hideForceCleanup(createClusterCmd.Flags())
createClusterCmd.Flags().BoolVar(&cc.skipIpCheck, "skip-ip-check", false, "Skip check for whether cluster control plane ip is in use")
createClusterCmd.Flags().BoolVar(&cc.skipIPCheck, "skip-ip-check", false, "Skip check for whether cluster control plane ip is in use")
createClusterCmd.Flags().StringVar(&cc.installPackages, "install-packages", "", "Location of curated packages configuration files to install to the cluster")
createClusterCmd.Flags().StringArrayVar(&cc.skipValidations, "skip-validations", []string{}, fmt.Sprintf("Bypass create validations by name. Valid arguments you can pass are --skip-validations=%s", strings.Join(createvalidations.SkippableValidations[:], ",")))

flags.MarkRequired(createClusterCmd.Flags(), flags.ClusterConfig.Name)

createClusterCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.WebhookSecret, "webhook-secrets", "", "Comma separated list of secrets for use with the bare metal webhook provider")
markFlagHidden(createClusterCmd.Flags(), "webhook-secrets")
createClusterCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.ConsumerURL, "consumer-url", "", "URL for the bare metal webhook consumer")
markFlagHidden(createClusterCmd.Flags(), "webhook-url")
}

func (cc *createClusterOptions) createCluster(cmd *cobra.Command, _ []string) error {
Expand All @@ -79,7 +84,7 @@ func (cc *createClusterOptions) createCluster(cmd *cobra.Command, _ []string) er
}

if clusterConfig.Spec.DatacenterRef.Kind == v1alpha1.TinkerbellDatacenterKind {
if err := checkTinkerbellFlags(cmd.Flags(), cc.hardwareCSVPath, Create); err != nil {
if err := checkTinkerbellFlags(cmd.Flags(), cc.tinkerbellConfig.HardwareFile, Create); err != nil {
return err
}
}
Expand Down Expand Up @@ -137,7 +142,8 @@ func (cc *createClusterOptions) createCluster(cmd *cobra.Command, _ []string) er
WithBootstrapper().
WithCliConfig(cliConfig).
WithClusterManager(clusterSpec.Cluster, clusterManagerTimeoutOpts).
WithProvider(cc.fileName, clusterSpec.Cluster, cc.skipIpCheck, cc.hardwareCSVPath, cc.forceClean, cc.tinkerbellBootstrapIP, skippedValidations).
WithTinkerbellConfig(cc.tinkerbellConfig).
WithProvider(cc.fileName, clusterSpec.Cluster, cc.skipIPCheck, cc.forceClean, map[string]bool{}).
WithGitOpsFlux(clusterSpec.Cluster, clusterSpec.FluxConfig, cliConfig).
WithWriter().
WithEksdInstaller().
Expand Down
4 changes: 3 additions & 1 deletion cmd/eksctl-anywhere/cmd/deletecluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import (
"github.com/aws/eks-anywhere/pkg/dependencies"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/logger"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/types"
"github.com/aws/eks-anywhere/pkg/validations"
"github.com/aws/eks-anywhere/pkg/workflows"
Expand Down Expand Up @@ -101,7 +102,8 @@ func (dc *deleteClusterOptions) deleteCluster(ctx context.Context) error {
WithBootstrapper().
WithCliConfig(cliConfig).
WithClusterManager(clusterSpec.Cluster, nil).
WithProvider(dc.fileName, clusterSpec.Cluster, cc.skipIpCheck, dc.hardwareFileName, false, dc.tinkerbellBootstrapIP, map[string]bool{}).
WithTinkerbellConfig(tinkerbell.Config{HardwareFile: dc.hardwareFileName, IP: dc.tinkerbellBootstrapIP}).
WithProvider(dc.fileName, clusterSpec.Cluster, cc.skipIPCheck, false, map[string]bool{}).
WithGitOpsFlux(clusterSpec.Cluster, clusterSpec.FluxConfig, cliConfig).
WithWriter().
Build(ctx)
Expand Down
19 changes: 15 additions & 4 deletions cmd/eksctl-anywhere/cmd/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cmd
import (
"fmt"
"log"
"strings"

"github.com/spf13/cobra"
"github.com/spf13/pflag"
Expand All @@ -25,14 +26,24 @@ https://anywhere.eks.amazonaws.com/docs/troubleshooting/troubleshooting/#bootstr
)

func bindFlagsToViper(cmd *cobra.Command, args []string) error {
var err error
cmd.Flags().VisitAll(func(flag *pflag.Flag) {
if err != nil {
if err := viper.BindPFlag(flag.Name, flag); err != nil {
return
}
err = viper.BindPFlag(flag.Name, flag)
viper.AutomaticEnv()
// Environment variables can't have dashes in them, so bind them to their equivalent
// keys with underscores, e.g. --hardware-csv to HARDWARE_CSV
viper.SetEnvKeyReplacer(strings.NewReplacer("-", "_"))
// viper.AutomaticEnv() needs help with dashes in flag names.
if !flag.Changed && viper.IsSet(flag.Name) {
val := viper.Get(flag.Name)
if err := cmd.Flags().Set(flag.Name, fmt.Sprintf("%v", val)); err != nil {
return
}
}
})
return err

return nil
}

func applyClusterOptionFlags(flagSet *pflag.FlagSet, clusterOpt *clusterOptions) {
Expand Down
4 changes: 3 additions & 1 deletion cmd/eksctl-anywhere/cmd/generatebundleconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/aws/eks-anywhere/pkg/dependencies"
"github.com/aws/eks-anywhere/pkg/diagnostics"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/validations"
"github.com/aws/eks-anywhere/pkg/version"
)
Expand Down Expand Up @@ -89,7 +90,8 @@ func (gsbo *generateSupportBundleOptions) generateBundleConfig(ctx context.Conte
}

deps, err := dependencies.ForSpec(ctx, clusterSpec).
WithProvider(clusterConfigPath, clusterSpec.Cluster, cc.skipIpCheck, gsbo.hardwareFileName, false, gsbo.tinkerbellBootstrapIP, map[string]bool{}).
WithTinkerbellConfig(tinkerbell.Config{HardwareFile: gsbo.hardwareFileName, IP: gsbo.tinkerbellBootstrapIP}).
WithProvider(clusterConfigPath, clusterSpec.Cluster, cc.skipIPCheck, false, map[string]bool{}).
WithDiagnosticBundleFactory().
Build(ctx)
if err != nil {
Expand Down
14 changes: 11 additions & 3 deletions cmd/eksctl-anywhere/cmd/generatehardware.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,22 @@ import (

"github.com/spf13/cobra"

"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell/hardware"
)

type hardwareOptions struct {
csvPath string
outputPath string
config tinkerbell.Config
}

var hOpts = &hardwareOptions{}

var generateHardwareCmd = &cobra.Command{
Use: "hardware",
Short: "Generate hardware files",
Use: "hardware",
Short: "Generate hardware files",
PreRunE: bindFlagsToViper,
Long: `
Generate Kubernetes hardware YAML manifests for each Hardware entry in the source.
`,
Expand All @@ -41,10 +44,15 @@ func init() {
if err := generateHardwareCmd.MarkFlagRequired(TinkerbellHardwareCSVFlagName); err != nil {
panic(err)
}

generateHardwareCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.WebhookSecret, "webhook-secrets", "", "Comma separated list of secrets for use with the bare metal webhook provider")
markFlagHidden(generateHardwareCmd.Flags(), "webhook-secrets")
generateHardwareCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.ConsumerURL, "consumer-url", "", "URL for the bare metal webhook consumer")
markFlagHidden(generateHardwareCmd.Flags(), "webhook-url")
}

func (hOpts *hardwareOptions) generateHardware(cmd *cobra.Command, args []string) error {
hardwareYaml, err := hardware.BuildHardwareYAML(hOpts.csvPath)
hardwareYaml, err := hardware.BuildHardwareYAML(hOpts.csvPath, hOpts.config.Rufio.WebhookSecret)
if err != nil {
return fmt.Errorf("building hardware yaml from csv: %v", err)
}
Expand Down
2 changes: 1 addition & 1 deletion cmd/eksctl-anywhere/cmd/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func buildCliConfig(clusterSpec *cluster.Spec) *config.CliConfig {

func buildCreateCliConfig(clusterOptions *createClusterOptions) (*config.CreateClusterCLIConfig, error) {
createCliConfig := &config.CreateClusterCLIConfig{}
createCliConfig.SkipCPIPCheck = clusterOptions.skipIpCheck
createCliConfig.SkipCPIPCheck = clusterOptions.skipIPCheck
if clusterOptions.noTimeouts {
maxTime := time.Duration(math.MaxInt64)
createCliConfig.NodeStartupTimeout = maxTime
Expand Down
4 changes: 3 additions & 1 deletion cmd/eksctl-anywhere/cmd/supportbundle.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/aws/eks-anywhere/pkg/dependencies"
"github.com/aws/eks-anywhere/pkg/diagnostics"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/version"
)

Expand Down Expand Up @@ -89,7 +90,8 @@ func (csbo *createSupportBundleOptions) createBundle(ctx context.Context, since,
}

deps, err := dependencies.ForSpec(ctx, clusterSpec).
WithProvider(csbo.fileName, clusterSpec.Cluster, cc.skipIpCheck, csbo.hardwareFileName, false, csbo.tinkerbellBootstrapIP, map[string]bool{}).
WithTinkerbellConfig(tinkerbell.Config{HardwareFile: csbo.hardwareFileName, IP: csbo.tinkerbellBootstrapIP}).
WithProvider(csbo.fileName, clusterSpec.Cluster, cc.skipIPCheck, false, map[string]bool{}).
WithDiagnosticBundleFactory().
Build(ctx)
if err != nil {
Expand Down
9 changes: 8 additions & 1 deletion cmd/eksctl-anywhere/cmd/upgradecluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import (
"github.com/aws/eks-anywhere/pkg/features"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/logger"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/types"
"github.com/aws/eks-anywhere/pkg/validations"
"github.com/aws/eks-anywhere/pkg/validations/upgradevalidations"
Expand Down Expand Up @@ -63,6 +64,11 @@ func init() {
upgradeClusterCmd.Flags().StringArrayVar(&uc.skipValidations, "skip-validations", []string{}, fmt.Sprintf("Bypass upgrade validations by name. Valid arguments you can pass are --skip-validations=%s", strings.Join(upgradevalidations.SkippableValidations[:], ",")))

flags.MarkRequired(createClusterCmd.Flags(), flags.ClusterConfig.Name)

upgradeClusterCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.WebhookSecret, "webhook-secrets", "", "Comma separated list of secrets for use with the bare metal webhook provider")
markFlagHidden(upgradeClusterCmd.Flags(), "webhook-secrets")
upgradeClusterCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.ConsumerURL, "consumer-url", "", "URL for the bare metal webhook consumer")
markFlagHidden(upgradeClusterCmd.Flags(), "webhook-url")
}

func (uc *upgradeClusterOptions) upgradeCluster(cmd *cobra.Command) error {
Expand Down Expand Up @@ -125,7 +131,8 @@ func (uc *upgradeClusterOptions) upgradeCluster(cmd *cobra.Command) error {
WithCliConfig(cliConfig).
WithClusterManager(clusterSpec.Cluster, clusterManagerTimeoutOpts).
WithClusterApplier().
WithProvider(uc.fileName, clusterSpec.Cluster, cc.skipIpCheck, uc.hardwareCSVPath, uc.forceClean, uc.tinkerbellBootstrapIP, skippedValidations).
WithTinkerbellConfig(tinkerbell.Config{HardwareFile: uc.hardwareCSVPath, IP: uc.tinkerbellBootstrapIP}).
WithProvider(uc.fileName, clusterSpec.Cluster, cc.skipIPCheck, uc.forceClean, map[string]bool{}).
WithGitOpsFlux(clusterSpec.Cluster, clusterSpec.FluxConfig, cliConfig).
WithWriter().
WithCAPIManager().
Expand Down
4 changes: 3 additions & 1 deletion cmd/eksctl-anywhere/cmd/upgradeplancluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
fluxupgrader "github.com/aws/eks-anywhere/pkg/gitops/flux"
"github.com/aws/eks-anywhere/pkg/logger"
"github.com/aws/eks-anywhere/pkg/networking/cilium"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/types"
)

Expand Down Expand Up @@ -78,7 +79,8 @@ func (uc *upgradeClusterOptions) upgradePlanCluster(ctx context.Context) error {

deps, err := dependencies.ForSpec(ctx, newClusterSpec).
WithClusterManager(newClusterSpec.Cluster, nil).
WithProvider(uc.fileName, newClusterSpec.Cluster, false, uc.hardwareCSVPath, uc.forceClean, uc.tinkerbellBootstrapIP, map[string]bool{}).
WithTinkerbellConfig(tinkerbell.Config{HardwareFile: uc.hardwareCSVPath, IP: uc.tinkerbellBootstrapIP}).
WithProvider(uc.fileName, newClusterSpec.Cluster, false, uc.forceClean, map[string]bool{}).
WithGitOpsFlux(newClusterSpec.Cluster, newClusterSpec.FluxConfig, nil).
WithCAPIManager().
Build(ctx)
Expand Down
18 changes: 12 additions & 6 deletions cmd/eksctl-anywhere/cmd/validatecreatecluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/aws/eks-anywhere/pkg/api/v1alpha1"
"github.com/aws/eks-anywhere/pkg/dependencies"
"github.com/aws/eks-anywhere/pkg/kubeconfig"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/types"
"github.com/aws/eks-anywhere/pkg/validations"
"github.com/aws/eks-anywhere/pkg/validations/createcluster"
Expand All @@ -18,8 +19,7 @@ import (

type validateOptions struct {
clusterOptions
hardwareCSVPath string
tinkerbellBootstrapIP string
tinkerbell tinkerbell.Config
}

var valOpt = &validateOptions{}
Expand All @@ -35,13 +35,18 @@ var validateCreateClusterCmd = &cobra.Command{

func init() {
validateCreateCmd.AddCommand(validateCreateClusterCmd)
applyTinkerbellHardwareFlag(validateCreateClusterCmd.Flags(), &valOpt.hardwareCSVPath)
applyTinkerbellHardwareFlag(validateCreateClusterCmd.Flags(), &valOpt.tinkerbell.HardwareFile)
validateCreateClusterCmd.Flags().StringVarP(&valOpt.fileName, "filename", "f", "", "Filename that contains EKS-A cluster configuration")
validateCreateClusterCmd.Flags().StringVar(&valOpt.tinkerbellBootstrapIP, "tinkerbell-bootstrap-ip", "", "Override the local tinkerbell IP in the bootstrap cluster")
validateCreateClusterCmd.Flags().StringVar(&valOpt.tinkerbell.IP, "tinkerbell-bootstrap-ip", "", "Override the local tinkerbell IP in the bootstrap cluster")

if err := validateCreateClusterCmd.MarkFlagRequired("filename"); err != nil {
log.Fatalf("Error marking flag as required: %v", err)
}

validateCreateCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.WebhookSecret, "webhook-secrets", "", "Comma separated list of secrets for use with the bare metal webhook provider")
markFlagHidden(validateCreateCmd.Flags(), "webhook-secrets")
validateCreateCmd.Flags().StringVar(&cc.tinkerbellConfig.Rufio.ConsumerURL, "consumer-url", "", "URL for the bare metal webhook consumer")
markFlagHidden(validateCreateCmd.Flags(), "webhook-url")
}

func (valOpt *validateOptions) validateCreateCluster(cmd *cobra.Command, _ []string) error {
Expand All @@ -53,7 +58,7 @@ func (valOpt *validateOptions) validateCreateCluster(cmd *cobra.Command, _ []str
}

if clusterSpec.Config.Cluster.Spec.DatacenterRef.Kind == v1alpha1.TinkerbellDatacenterKind {
if err := checkTinkerbellFlags(cmd.Flags(), valOpt.hardwareCSVPath, 0); err != nil {
if err := checkTinkerbellFlags(cmd.Flags(), valOpt.tinkerbell.HardwareFile, 0); err != nil {
return err
}
}
Expand All @@ -73,7 +78,8 @@ func (valOpt *validateOptions) validateCreateCluster(cmd *cobra.Command, _ []str
WithWriterFolder(tmpPath).
WithDocker().
WithKubectl().
WithProvider(valOpt.fileName, clusterSpec.Cluster, false, valOpt.hardwareCSVPath, true, valOpt.tinkerbellBootstrapIP, map[string]bool{}).
WithTinkerbellConfig(valOpt.tinkerbell).
WithProvider(valOpt.fileName, clusterSpec.Cluster, false, true, map[string]bool{}).
WithGitOpsFlux(clusterSpec.Cluster, clusterSpec.FluxConfig, cliConfig).
WithUnAuthKubeClient().
WithValidatorClients().
Expand Down
26 changes: 22 additions & 4 deletions pkg/dependencies/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
"github.com/aws/eks-anywhere/pkg/providers/nutanix"
"github.com/aws/eks-anywhere/pkg/providers/snow"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell"
"github.com/aws/eks-anywhere/pkg/providers/tinkerbell/rufio"
"github.com/aws/eks-anywhere/pkg/providers/validator"
"github.com/aws/eks-anywhere/pkg/providers/vsphere"
"github.com/aws/eks-anywhere/pkg/registrymirror"
Expand Down Expand Up @@ -148,6 +149,7 @@
diagnosticCollectorImage string
buildSteps []buildStep
dependencies Dependencies
tinkerbellConfig tinkerbell.Config
}

type executablesConfig struct {
Expand Down Expand Up @@ -381,8 +383,14 @@
return f
}

// WithTinkerbellConfig initalizes the tinkerbell dependency and adds to the build steps.
func (f *Factory) WithTinkerbellConfig(t tinkerbell.Config) *Factory {
f.tinkerbellConfig = t
return f
}

// WithProvider initializes the provider dependency and adds to the build steps.
func (f *Factory) WithProvider(clusterConfigFile string, clusterConfig *v1alpha1.Cluster, skipIPCheck bool, hardwareCSVPath string, force bool, tinkerbellBootstrapIP string, skippedValidations map[string]bool) *Factory { // nolint:gocyclo
func (f *Factory) WithProvider(clusterConfigFile string, clusterConfig *v1alpha1.Cluster, skipIPCheck bool, force bool, skippedValidations map[string]bool) *Factory {

Check failure on line 393 in pkg/dependencies/factory.go

View workflow job for this annotation

GitHub Actions / lint

cyclomatic complexity 27 of func `(*Factory).WithProvider` is high (> 10) (gocyclo)
switch clusterConfig.Spec.DatacenterRef.Kind {
case v1alpha1.VSphereDatacenterKind:
f.WithKubectl().WithGovc().WithWriter().WithIPValidator()
Expand Down Expand Up @@ -461,7 +469,7 @@
}

machineConfigs := config.TinkerbellMachineConfigs
tinkerbellIP := tinkerbellBootstrapIP
tinkerbellIP := f.tinkerbellConfig.IP
if tinkerbellIP == "" {
logger.V(4).Info("Inferring local Tinkerbell Bootstrap IP from environment")
localIp, err := networkutils.GetLocalIP()
Expand All @@ -472,19 +480,29 @@
}
logger.V(4).Info("Tinkerbell IP", "tinkerbell-ip", tinkerbellIP)

cfg := tinkerbell.Config{
HardwareFile: f.tinkerbellConfig.HardwareFile,
IP: tinkerbellIP,
Rufio: rufio.Config{
WebhookSecret: f.tinkerbellConfig.Rufio.WebhookSecret,
ConsumerURL: f.tinkerbellConfig.Rufio.ConsumerURL,
},
}

logger.V(4).Info("Tinkerbell IP", "tinkerbell-ip", tinkerbellIP)

provider, err := tinkerbell.NewProvider(
datacenterConfig,
machineConfigs,
clusterConfig,
hardwareCSVPath,
f.dependencies.Writer,
f.dependencies.DockerClient,
f.dependencies.Helm,
f.dependencies.Kubectl,
tinkerbellIP,
time.Now,
force,
skipIPCheck,
cfg,
)
if err != nil {
return err
Expand Down
Loading
Loading