func LoadFromCLI()

in cmd/amazon-cloudwatch-agent-target-allocator/config/config.go [94:150]


func LoadFromCLI(target *Config, flagSet *pflag.FlagSet) error {
	var err error
	// set the rest of the config attributes based on command-line flag values
	target.RootLogger = zap.New(zap.UseFlagOptions(&zapCmdLineOpts))
	klog.SetLogger(target.RootLogger)
	ctrl.SetLogger(target.RootLogger)

	target.KubeConfigFilePath, err = getKubeConfigFilePath(flagSet)
	if err != nil {
		return err
	}
	clusterConfig, err := clientcmd.BuildConfigFromFlags("", target.KubeConfigFilePath)
	if err != nil {
		pathError := &fs.PathError{}
		if ok := errors.As(err, &pathError); !ok {
			return err
		}
		clusterConfig, err = rest.InClusterConfig()
		if err != nil {
			return err
		}
		target.KubeConfigFilePath = ""
	}
	target.ClusterConfig = clusterConfig

	target.ReloadConfig, err = getConfigReloadEnabled(flagSet)
	if err != nil {
		return err
	}

	target.HTTPS.Enabled, err = getHttpsEnabled(flagSet)
	if err != nil {
		return err
	}

	target.HTTPS.ListenAddr, err = getHttpsListenAddr(flagSet)
	if err != nil {
		return err
	}

	target.HTTPS.CAFilePath, err = getHttpsCAFilePath(flagSet)
	if err != nil {
		return err
	}

	target.HTTPS.TLSCertFilePath, err = getHttpsTLSCertFilePath(flagSet)
	if err != nil {
		return err
	}

	target.HTTPS.TLSKeyFilePath, err = getHttpsTLSKeyFilePath(flagSet)
	if err != nil {
		return err
	}

	return nil
}