Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RunKubectlApply ¶ added in v0.10.0
Types ¶
type KubeadmInit ¶
type KubeadmInit struct {
capeiresource.Base
// PublicIP is public IP of the master node we are trying to setup here.
PublicIP string `structs:"publicIP"`
// PrivateIP is private IP of the master node we are trying to setup here.
PrivateIP string `structs:"privateIP"`
// NodeName, if non-empty, will override the default node name guessed by kubeadm.
NodeName string
// KubeletConfig groups all options & flags which need to be passed to kubelet.
KubeletConfig *config.KubeletConfig `structs:"kubeletConfig"`
// ConntrackMax is the maximum number of NAT connections for kubeproxy to track (0 to leave as-is).
ConntrackMax int32 `structs:"conntrackMax"`
// UseIPTables controls whether the following command is called or not:
// sysctl net.bridge.bridge-nf-call-iptables=1
// prior to running kubeadm init.
UseIPTables bool `structs:"useIPTables"`
// kubeadmInitScriptPath is the path to the "kubeadm init" script to use.
KubeadmInitScriptPath string `structs:"kubeadmInitScriptPath"`
// IgnorePreflightErrors is optionally used to skip kubeadm's preflight checks.
IgnorePreflightErrors []string `structs:"ignorePreflightErrors"`
// SSHKeyPath is the path to the private SSH key used by WKS to SSH into
// nodes to add/remove them to/from the Kubernetes cluster.
SSHKeyPath string `structs:"sshKeyPath"`
// BootstrapToken is the token used by kubeadm init and kubeadm join to
// safely form new clusters.
BootstrapToken *kubeadmapi.BootstrapTokenString `structs:"bootstrapToken"`
// The version of Kubernetes to install
KubernetesVersion string `structs:"kubernetesVersion"`
// ControlPlaneEndpoint is the IP:port of the control plane load balancer.
// Default: localhost:6443
// See also: https://kubernetes.io/docs/setup/independent/high-availability/#stacked-control-plane-and-etcd-nodes
ControlPlaneEndpoint string `structs:"controlPlaneEndpoint"`
// Cloud provider setting which is needed for kubeadm and kubelet
CloudProvider string `structs:"cloudProvider"`
// ImageRepository sets the container registry to pull images from. If empty,
// `k8s.gcr.io` will be used by default.
ImageRepository string `structs:"imageRepository"`
// AdditionalSANs can hold additional SANs to add to the API server certificate.
AdditionalSANs []string
// The namespace in which to init kubeadm
Namespace fmt.Stringer
// Extra arguments to pass to the APIServer
ExtraAPIServerArgs map[string]string
// The IP range for service VIPs
ServiceCIDRBlock string
// PodCIDRBlock is the subnet used by pods.
PodCIDRBlock string
}
KubeadmInit represents an attempt to init a Kubernetes node via kubeadm.
func (*KubeadmInit) Apply ¶
Apply implements plan.Resource. TODO: find a way to make this idempotent. TODO: should such a resource be split into smaller resources?
func (*KubeadmInit) State ¶
func (ki *KubeadmInit) State() plan.State
State implements plan.Resource.
type KubectlAnnotateSingleNode ¶ added in v0.10.0
type KubectlAnnotateSingleNode struct {
resource.Base
Key string // Which annotation to apply
Value string // Value of annotation
}
KubectlAnnotateSingleNode is a resource to apply an annotation to the only node in a cluster
func (*KubectlAnnotateSingleNode) Apply ¶ added in v0.10.0
func (ka *KubectlAnnotateSingleNode) Apply(ctx context.Context, runner plan.Runner, diff plan.Diff) (bool, error)
Apply fetches the node name and performs a "kubectl annotate".
func (*KubectlAnnotateSingleNode) State ¶ added in v0.10.0
func (ka *KubectlAnnotateSingleNode) State() plan.State
State implements plan.Resource.
type KubectlApply ¶
type KubectlApply struct {
resource.Base
// Filename is the remote manifest file name.
// Only provide this if you do NOT provide ManifestPath or ManifestURL.
Filename fmt.Stringer `structs:"filename"`
// Manifest is the actual YAML/JSON content of the manifest to apply.
// If this is provided, then there is no need to provide ManifestPath, but
// Filename should be provided in order to name the remote manifest file.
Manifest []byte `structs:"manifest"`
// ManifestPath is the path to the manifest to apply.
// If this is provided, then there is no need to provide Manifest.
ManifestPath fmt.Stringer `structs:"manifestPath"`
// ManifestURL is the URL of a remote manifest; if specified,
// neither Filename, Manifest, nor ManifestPath should be specified.
ManifestURL fmt.Stringer `structs:"manifestURL"`
// WaitCondition, if not empty, makes Apply() perform "kubectl wait --for=<value>" on the resource.
Namespace fmt.Stringer `structs:"namespace"`
// OpaqueManifest is an alternative to Manifest for a resource to
// apply whose content should not be exposed in a serialized plan.
// If this is provided, then there is no need to provide
// ManifestPath, but Filename should be provided in order to name
// the remote manifest file.
OpaqueManifest []byte `structs:"-" plan:"hide"`
// ManifestPath is the path to the manifest to apply.
// If this is provided, then there is no need to provide Manifest.
// For example, waiting for "condition=established" is required after creating a CRD - see issue #530.
WaitCondition string `structs:"afterApplyWaitsFor"`
}
KubectlApply is a resource applying the provided manifest. It doesn't realise any state, Apply will always apply the manifest.
func (*KubectlApply) Apply ¶
func (ka *KubectlApply) Apply(ctx context.Context, runner plan.Runner, diff plan.Diff) (bool, error)
Apply performs a "kubectl apply" as specified in the receiver.
func (*KubectlApply) State ¶
func (ka *KubectlApply) State() plan.State
State implements plan.Resource.
type KubectlApplyArgs ¶ added in v0.10.0
type KubectlWait ¶
type KubectlWait struct {
resource.Base
// Namespace specifies the namespace in which to search for the object being waited on
WaitNamespace string `structs:"namespace"`
// WaitType specifies the object type to wait for
WaitType string `structs:"typeWaitedFor"`
// WaitSelector, if not empty, specifies which instances of the type to wait for
WaitSelector string `structs:"itemsWaitedFor"`
// WaitCondition specifies the condition to wait for
WaitCondition string `structs:"waitFor"`
// WaitTimeout, if specified, indicates how long to wait for the WaitCondition to become true before failing (default 30s)
WaitTimeout string `structs:"waitTimeout"`
}
KubectlWait waits for an object to reach a required state
func (*KubectlWait) State ¶
func (kw *KubectlWait) State() plan.State
State implements plan.Resource.