in cmd/nodeadm/install/install.go [62:118]
func (c *command) Run(log *zap.Logger, opts *cli.GlobalOptions) error {
ctx := context.Background()
ctx = logger.NewContext(ctx, log)
root, err := cli.IsRunningAsRoot()
if err != nil {
return err
}
if !root {
return cli.ErrMustRunAsRoot
}
if c.credentialProvider == "" {
flaggy.ShowHelpAndExit("--credential-provider is a required flag. Allowed values are ssm & iam-ra")
}
credentialProvider, err := creds.GetCredentialProvider(c.credentialProvider)
if err != nil {
return err
}
// Default containerd source to distro
if c.containerdSource == "" {
c.containerdSource = string(containerd.ContainerdSourceDistro)
}
containerdSource := containerd.GetContainerdSource(c.containerdSource)
if err := containerd.ValidateContainerdSource(containerdSource); err != nil {
return err
}
log.Info("Creating package manager...")
packageManager, err := packagemanager.New(containerdSource, log)
if err != nil {
return err
}
ctx, cancel := context.WithTimeout(ctx, c.timeout)
defer cancel()
log.Info("Validating Kubernetes version", zap.Reflect("kubernetes version", c.kubernetesVersion))
// Create a Source for all AWS managed artifacts.
awsSource, err := aws.GetLatestSource(ctx, c.kubernetesVersion)
if err != nil {
return err
}
log.Info("Using Kubernetes version", zap.Reflect("kubernetes version", awsSource.Eks.Version))
installer := &flows.Installer{
AwsSource: awsSource,
PackageManager: packageManager,
ContainerdSource: containerdSource,
SsmRegion: c.region,
CredentialProvider: credentialProvider,
Logger: log,
}
return installer.Run(ctx)
}