Documentation ¶
Index ¶
- Constants
- Variables
- type ClusterConfig
- type ClusterListConfig
- type Config
- type EnvVarWithNodeFilters
- type LabelWithNodeFilters
- type PortWithNodeFilters
- type SimpleConfig
- type SimpleConfigOptions
- type SimpleConfigOptionsK3d
- type SimpleConfigOptionsK3s
- type SimpleConfigOptionsKubeconfig
- type SimpleConfigOptionsRuntime
- type SimpleExposureOpts
- type TypeMeta
- type VolumeWithNodeFilters
Constants ¶
const DefaultConfigTpl = `---
apiVersion: k3d.io/v1alpha2
kind: Simple
name: %s
servers: 1
agents: 0
image: %s
`
DefaultConfigTpl for printing
Variables ¶
var DefaultConfig = fmt.Sprintf( DefaultConfigTpl, k3d.DefaultClusterName, fmt.Sprintf("%s:%s", k3d.DefaultK3sImageRepo, version.GetK3sVersion(false)), )
DefaultConfig templated DefaultConfigTpl
var JSONSchema string
JSONSchema describes the schema used to validate config files
Functions ¶
This section is empty.
Types ¶
type ClusterConfig ¶
type ClusterConfig struct { TypeMeta `mapstructure:",squash" yaml:",inline"` Cluster k3d.Cluster `mapstructure:",squash" yaml:",inline"` ClusterCreateOpts k3d.ClusterCreateOpts `mapstructure:"options" yaml:"options"` KubeconfigOpts SimpleConfigOptionsKubeconfig `mapstructure:"kubeconfig" yaml:"kubeconfig"` }
ClusterConfig describes a single cluster config
func (ClusterConfig) GetKind ¶
func (c ClusterConfig) GetKind() string
GetKind implements Config.GetKind
type ClusterListConfig ¶
type ClusterListConfig struct { TypeMeta `mapstructure:",squash" yaml:",inline"` Clusters []k3d.Cluster `mapstructure:"clusters" yaml:"clusters"` }
ClusterListConfig describes a list of clusters
func (ClusterListConfig) GetKind ¶
func (c ClusterListConfig) GetKind() string
type EnvVarWithNodeFilters ¶
type LabelWithNodeFilters ¶
type PortWithNodeFilters ¶
type SimpleConfig ¶
type SimpleConfig struct { TypeMeta `mapstructure:",squash" yaml:",inline"` Name string `mapstructure:"name" yaml:"name" json:"name,omitempty"` Servers int `mapstructure:"servers" yaml:"servers" json:"servers,omitempty"` //nolint:lll // default 1 Agents int `mapstructure:"agents" yaml:"agents" json:"agents,omitempty"` //nolint:lll // default 0 ExposeAPI SimpleExposureOpts `mapstructure:"kubeAPI" yaml:"kubeAPI" json:"kubeAPI,omitempty"` Image string `mapstructure:"image" yaml:"image" json:"image,omitempty"` Network string `mapstructure:"network" yaml:"network" json:"network,omitempty"` Subnet string `mapstructure:"subnet" yaml:"subnet" json:"subnet,omitempty"` ClusterToken string `mapstructure:"token" yaml:"clusterToken" json:"clusterToken,omitempty"` // default: auto-generated Volumes []VolumeWithNodeFilters `mapstructure:"volumes" yaml:"volumes" json:"volumes,omitempty"` Ports []PortWithNodeFilters `mapstructure:"ports" yaml:"ports" json:"ports,omitempty"` Labels []LabelWithNodeFilters `mapstructure:"labels" yaml:"labels" json:"labels,omitempty"` Options SimpleConfigOptions `mapstructure:"options" yaml:"options" json:"options,omitempty"` Env []EnvVarWithNodeFilters `mapstructure:"env" yaml:"env" json:"env,omitempty"` Registries struct { Use []string `mapstructure:"use" yaml:"use,omitempty" json:"use,omitempty"` Create bool `mapstructure:"create" yaml:"create,omitempty" json:"create,omitempty"` Config string `mapstructure:"config" yaml:"config,omitempty" json:"config,omitempty"` // registries.yaml (k3s config for containerd registry override) } `mapstructure:"registries" yaml:"registries,omitempty" json:"registries,omitempty"` }
SimpleConfig describes the toplevel k3d configuration file.
func (SimpleConfig) GetKind ¶
func (c SimpleConfig) GetKind() string
GetKind implements Config.GetKind
type SimpleConfigOptions ¶
type SimpleConfigOptions struct { K3dOptions SimpleConfigOptionsK3d `mapstructure:"k3d" yaml:"k3d"` K3sOptions SimpleConfigOptionsK3s `mapstructure:"k3s" yaml:"k3s"` KubeconfigOptions SimpleConfigOptionsKubeconfig `mapstructure:"kubeconfig" yaml:"kubeconfig"` Runtime SimpleConfigOptionsRuntime `mapstructure:"runtime" yaml:"runtime"` }
type SimpleConfigOptionsK3d ¶
type SimpleConfigOptionsK3d struct { Wait bool `mapstructure:"wait" yaml:"wait"` Timeout time.Duration `mapstructure:"timeout" yaml:"timeout"` DisableLoadbalancer bool `mapstructure:"disableLoadbalancer" yaml:"disableLoadbalancer"` DisableImageVolume bool `mapstructure:"disableImageVolume" yaml:"disableImageVolume"` NoRollback bool `mapstructure:"disableRollback" yaml:"disableRollback"` PrepDisableHostIPInjection bool `mapstructure:"disableHostIPInjection" yaml:"disableHostIPInjection"` NodeHookActions []k3d.NodeHookAction `mapstructure:"nodeHookActions" yaml:"nodeHookActions,omitempty"` }
type SimpleConfigOptionsK3s ¶
type SimpleConfigOptionsKubeconfig ¶
type SimpleConfigOptionsKubeconfig struct { UpdateDefaultKubeconfig bool `mapstructure:"updateDefaultKubeconfig" yaml:"updateDefaultKubeconfig" json:"updateDefaultKubeconfig,omitempty"` // default: true SwitchCurrentContext bool `mapstructure:"switchCurrentContext" yaml:"switchCurrentContext" json:"switchCurrentContext,omitempty"` //nolint:lll // default: true }
SimpleConfigOptionsKubeconfig describes the set of options referring to the kubeconfig during cluster creation.
type SimpleExposureOpts ¶
type SimpleExposureOpts struct { Host string `mapstructure:"host" yaml:"host,omitempty" json:"host,omitempty"` HostIP string `mapstructure:"hostIP" yaml:"hostIP,omitempty" json:"hostIP,omitempty"` HostPort string `mapstructure:"hostPort" yaml:"hostPort,omitempty" json:"hostPort,omitempty"` }
SimpleExposureOpts provides a simplified syntax compared to the original k3d.ExposureOpts
type TypeMeta ¶
type TypeMeta struct { Kind string `mapstructure:"kind,omitempty" yaml:"kind,omitempty" json:"kind,omitempty"` APIVersion string `mapstructure:"apiVersion,omitempty" yaml:"apiVersion,omitempty" json:"apiVersion,omitempty"` }
TypeMeta is basically copied from https://github.com/kubernetes/apimachinery/blob/a3b564b22db316a41e94fdcffcf9995424fe924c/pkg/apis/meta/v1/types.go#L36-L56