Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddonConfiguration ¶
type AddonConfiguration struct {
// Name of the addon to configure.
Name string `yaml:"name"`
// Disable the addon.
Disable bool `yaml:"disable"`
// Arguments is optional arguments passed to the addon enable or disable operation.
Arguments []string `yaml:"args"`
}
AddonConfiguration specifies an addon to be enabled or disabled.
type AddonRepositoryConfiguration ¶
type AddonRepositoryConfiguration struct {
// Name of the addon repository.
Name string `yaml:"name"`
// URL of the addon repository.
URL string `yaml:"url"`
// Reference is an optional reference to check out instead of the default branch.
Reference string `yaml:"reference"`
}
AddonRepositoryConfiguration specifies an addon repository to be added.
type Configuration ¶
type Configuration struct {
// Version is the semantic version of the configuration file format.
Version string `yaml:"version"`
// AddonRepositories is extra addon repositories to configure on the local node.
AddonRepositories []AddonRepositoryConfiguration `yaml:"addonRepositories"`
// Addons is a list of addons to enable and/or disable.
Addons []AddonConfiguration `yaml:"addons"`
// ExtraKubeletArgs is a list of extra arguments to add to the local node kubelet.
// Set a value to null to remove it from the arguments.
ExtraKubeletArgs map[string]*string `yaml:"extraKubeletArgs"`
// ExtraKubeAPIServerArgs is a list of extra arguments to add to the local node kube-apiserver.
// Set a value to null to remove it from the arguments.
ExtraKubeAPIServerArgs map[string]*string `yaml:"extraKubeAPIServerArgs"`
// ExtraKubeProxyArgs is a list of extra arguments to add to the local node kube-proxy.
// Set a value to null to remove it from the arguments.
ExtraKubeProxyArgs map[string]*string `yaml:"extraKubeProxyArgs"`
// ExtraKubeControllerManagerArgs is a list of extra arguments to add to the local node kube-controller-manager.
// Set a value to null to remove it from the arguments.
ExtraKubeControllerManagerArgs map[string]*string `yaml:"extraKubeControllerManagerArgs"`
// ExtraKubeSchedulerArgs is a list of extra arguments to add to the local node kube-scheduler.
// Set a value to null to remove it from the arguments.
ExtraKubeSchedulerArgs map[string]*string `yaml:"extraKubeSchedulerArgs"`
// ExtraKubeliteEnv is extra environment variables (e.g. GOFIPS) for the local node Kubernetes services.
ExtraKubeliteEnv map[string]*string `yaml:"extraKubeliteEnv"`
// ExtraSANs are a list of extra Subject Alternate Names to add to the local API server.
ExtraSANs *[]string `yaml:"extraSANs"`
// ContainerdRegistryConfigs is containerd hosts.toml configurations to configure registries.
ContainerdRegistryConfigs map[string]string `yaml:"containerdRegistryConfigs"`
// ExtraContainerdArgs is a list of extra arguments to add to the local node containerd.
// Set a value to null to remove it from the arguments.
ExtraContainerdArgs map[string]*string `yaml:"extraContainerdArgs"`
// ExtraContainerdEnv is extra environment variables (e.g. proxy configuration) for the local node containerd.
// Set a value to null to remove it from the environment.
ExtraContainerdEnv map[string]*string `yaml:"extraContainerdEnv"`
// ExtraDqliteArgs is a list of extra arguments to add to the local node Dqlite.
// Set a value to null to remove it from the arguments.
ExtraDqliteArgs map[string]*string `yaml:"extraDqliteArgs"`
// ExtraDqliteEnv is extra environment variables (e.g. dqlite debug flags) for the local node dqlite.
// Set a value to null to remove it from the environment.
ExtraDqliteEnv map[string]*string `yaml:"extraDqliteEnv"`
// ExtraMicroK8sClusterAgentArgs is a list of extra arguments to add to the local node cluster-agent.
// Set a value to null to remove it from the arguments.
ExtraMicroK8sClusterAgentArgs map[string]*string `yaml:"extraMicroK8sClusterAgentArgs"`
// ExtraMicroK8sClusterAgentEnv is extra environment variables (e.g. GOFIPS) for the local node cluster-agent.
// Set a value to null to remove it from the environment.
ExtraMicroK8sClusterAgentEnv map[string]*string `yaml:"extraMicroK8sClusterAgentEnv"`
// ExtraMicroK8sAPIServerProxyArgs is a list of extra arguments (e.g. --refresh-interval) to add to the local node apiserver-proxy used by worker nodes.
// Set a value to null to remove it from the arguments.
ExtraMicroK8sAPIServerProxyArgs map[string]*string `yaml:"extraMicroK8sAPIServerProxyArgs"`
// ExtraMicroK8sAPIServerProxyEnv is extra environment variables (e.g. GOFIPS) for the local node apiserver-proxy.
// Set a value to null to remove it from the environment.
ExtraMicroK8sAPIServerProxyEnv map[string]*string `yaml:"extraMicroK8sAPIServerProxyEnv"`
// ExtraEtcdArgs is a list of extra arguments to add to the local node etcd.
// Set a value to null to remove it from the arguments.
ExtraEtcdArgs map[string]*string `yaml:"extraEtcdArgs"`
// ExtraEtcdEnv is extra environment variables (e.g. GOFIPS) for the local node etcd.
// Set a value to null to remove it from the environment.
ExtraEtcdEnv map[string]*string `yaml:"extraEtcdEnv"`
// ExtraFlanneldArgs is a list of extra arguments to add to the local node flanneld.
// Set a value to null to remove it from the arguments.
ExtraFlanneldArgs map[string]*string `yaml:"extraFlanneldArgs"`
// ExtraFlanneldEnv is extra environment variables (e.g. GOFIPS) for the local node flanneld.
// Set a value to null to remove it from the environment.
ExtraFlanneldEnv map[string]*string `yaml:"extraFlanneldEnv"`
// ExtraConfigFiles is extra service configuration files to create (e.g. for configuring kube-apiserver encryption at rest).
// These files will be written at $SNAP_DATA/args/<filename>.
ExtraConfigFiles map[string]string `yaml:"extraConfigFiles"`
// PersistentClusterToken is a token that may be used to authentication join requests to the local node.
PersistentClusterToken string `yaml:"persistentClusterToken"`
// Join configuration. Setting this will attempt to join the local node to an already existing MicroK8s cluster.
Join JoinConfiguration `yaml:"join"`
// ExtraCNIEnv is configuration of network such us IPv4/v6 cluster and service CIDRs.
ExtraCNIEnv map[string]*string `yaml:"extraCNIEnv"`
// ExtraFIPSEnv is configuration for MicroK8s to run in FIPS mode.
ExtraFIPSEnv map[string]*string `yaml:"extraFIPSEnv"`
}
Configuration is the top-level definition for MicroK8s configuration files.
func ParseConfiguration ¶
func ParseConfiguration(input []byte) (*Configuration, error)
ParseConfiguration tries to parse a Configuration object from YAML data.
type JoinConfiguration ¶
type JoinConfiguration struct {
// URL is the URL passed to the microk8s join command.
URL string `yaml:"url"`
// Worker is true when joining the cluster as a worker-only node.
Worker bool `yaml:"worker"`
}
JoinConfiguration is configuration to join the local node to an existing MicroK8s cluster.
type Launcher ¶
type Launcher struct {
// contains filtered or unexported fields
}
Launcher is used to apply launch configurations to the MicroK8s cluster.
func NewLauncher ¶
NewLauncher creates a new launcher instance. preInit is true when applying the configuration prior to any of the services running.
type MultiPartConfiguration ¶
type MultiPartConfiguration struct {
// Parts are configuration objects that are meant to be applied in order.
Parts []*Configuration
}
MultiPartConfiguration is a configuration split into multiple parts.
func ParseMultiPartConfiguration ¶
func ParseMultiPartConfiguration(b []byte) (MultiPartConfiguration, error)
ParseMultiPartConfiguration parses a multiple YAML configuration objects into a MultiPartConfiguration.