Documentation

Index

Constants

View Source
const (
	// ComponentsOutputYaml is an option used to print the components in yaml format.
	ComponentsOutputYaml = "yaml"
	// ComponentsOutputText is an option used to print the components in text format.
	ComponentsOutputText = "text"
)
View Source
const (
	// RepositoriesOutputYaml is an option used to print the repository list in yaml format.
	RepositoriesOutputYaml = "yaml"
	// RepositoriesOutputText is an option used to print the repository list in text format.
	RepositoriesOutputText = "text"
)
View Source
const Indentation = `  `

Variables

View Source
var (
	// ComponentsOutputs is a list of valid components outputs.
	ComponentsOutputs = []string{ComponentsOutputText, ComponentsOutputYaml}
)
View Source
var (
	// RepositoriesOutputs is a list of valid repository list outputs.
	RepositoriesOutputs = []string{RepositoriesOutputYaml, RepositoriesOutputText}
)
View Source
var RootCmd = &cobra.Command{
	Use:          "clusterctl",
	SilenceUsage: true,
	Short:        "clusterctl controls the lifecyle of a Cluster API management cluster",
	Long: LongDesc(`
		Get started with Cluster API using clusterctl to create a management cluster,
		install providers, and create templates for your workload cluster.`),
	PersistentPreRunE: func(cmd *cobra.Command, args []string) error {

		configFolderPath := filepath.Join(homedir.HomeDir(), config.ConfigFolder)
		if _, err := os.Stat(configFolderPath); os.IsNotExist(err) {
			if err := os.MkdirAll(filepath.Dir(configFolderPath), os.ModePerm); err != nil {
				return errors.Wrapf(err, "failed to create the clusterctl config directory: %s", configFolderPath)
			}
		}
		return nil
	},
	PersistentPostRunE: func(cmd *cobra.Command, args []string) error {

		configClient, err := config.New(cfgFile)
		if err != nil {
			return err
		}
		output, err := newVersionChecker(configClient.Variables()).Check()
		if err != nil {
			return errors.Wrap(err, "unable to verify clusterctl version")
		}
		if len(output) != 0 {

			fmt.Fprintf(os.Stderr, "\033[33m%s\033[0m", output)
		}

		downloadConfigFile := filepath.Join(homedir.HomeDir(), config.ConfigFolder, config.DownloadConfigFile)
		if _, err := os.Stat(downloadConfigFile); err == nil {
			if verbosity != nil && *verbosity >= 5 {
				fmt.Fprintf(os.Stdout, "Removing downloaded clusterctl config file: %s\n", config.DownloadConfigFile)
			}
			_ = os.Remove(downloadConfigFile)
		}

		return nil
	},
}

Functions

func Examples

func Examples(s string) string

    Examples normalizes a command's examples to follow the conventions.

    func Execute

    func Execute()

    func GetSupportedShells

    func GetSupportedShells() []string

      GetSupportedShells returns a list of supported shells

      func LongDesc

      func LongDesc(s string) string

        LongDesc normalizes a command's long description to follow the conventions.

        Types

        type ReleaseInfo

        type ReleaseInfo struct {
        	Version string
        	URL     string
        }

          ReleaseInfo stores information about the release.

          type Version

          type Version struct {
          	ClientVersion *version.Info `json:"clusterctl"`
          }

            Version provides the version information of clusterctl

            type VersionState

            type VersionState struct {
            	LastCheck     time.Time
            	LatestRelease ReleaseInfo
            }

              VersionState stores the release info and the last time it was updated.