config

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 26, 2019 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package config implements the current apiVersion of the `kind` Config along with some common abstractions

+k8s:deepcopy-gen=package +k8s:conversion-gen=sigs.k8s.io/kind/pkg/cluster/config +k8s:defaulter-gen=TypeMeta

Index

Constants

View Source
const GroupName = "kind.sigs.k8s.io"

GroupName is the group name used in this package.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects.
	SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
	// SchemeBuilder is a type to collect functions that add data to an API
	// object through a scheme.
	SchemeBuilder runtime.SchemeBuilder

	// AddToScheme applies all the stored functions in the localSchemeBuilder
	// to the scheme.
	AddToScheme = localSchemeBuilder.AddToScheme
)

Functions

func RegisterDefaults added in v0.1.0

func RegisterDefaults(scheme *runtime.Scheme) error

RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.

func SetDefaults_Cluster added in v0.2.0

func SetDefaults_Cluster(obj *Cluster)

SetDefaults_Cluster sets uninitialized fields to their default value.

func SetDefaults_Node added in v0.1.0

func SetDefaults_Node(obj *Node)

SetDefaults_Node sets uninitialized fields to their default value.

func SetObjectDefaults_Cluster added in v0.2.0

func SetObjectDefaults_Cluster(in *Cluster)

Types

type Cluster added in v0.2.0

type Cluster struct {
	// TypeMeta representing the type of the object and its API schema version.
	metav1.TypeMeta

	// Nodes contains the list of nodes defined in the `kind` Cluster
	// If unset this will default to a single control-plane node
	// Note that if more than one control plane is specified, an external
	// control plane load balancer will be provisioned implicitly
	Nodes []Node

	// Networking contains cluster wide network settings
	Networking Networking

	// KubeadmConfigPatches are applied to the generated kubeadm config as
	// strategic merge patches to `kustomize build` internally
	// https://github.com/kubernetes/community/blob/master/contributors/devel/strategic-merge-patch.md
	// This should be an inline yaml blob-string
	KubeadmConfigPatches []string

	// KubeadmConfigPatchesJSON6902 are applied to the generated kubeadm config
	// as patchesJson6902 to `kustomize build`
	KubeadmConfigPatchesJSON6902 []kustomize.PatchJSON6902
}

Cluster contains kind cluster configuration

func (*Cluster) DeepCopy added in v0.2.0

func (in *Cluster) DeepCopy() *Cluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.

func (*Cluster) DeepCopyInto added in v0.2.0

func (in *Cluster) DeepCopyInto(out *Cluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Cluster) DeepCopyObject added in v0.2.0

func (in *Cluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Cluster) Validate added in v0.2.0

func (c *Cluster) Validate() error

Validate returns a ConfigErrors with an entry for each problem with the config, or nil if there are none

type ClusterIPFamily added in v0.4.0

type ClusterIPFamily string

ClusterIPFamily defines cluster network IP family

const (
	// IPv4Family sets ClusterIPFamily to ipv4
	IPv4Family ClusterIPFamily = "ipv4"
	// IPv6Family sets ClusterIPFamily to ipv6
	IPv6Family ClusterIPFamily = "ipv6"
)

type Networking added in v0.2.0

type Networking struct {
	// IPFamily is the network cluster model, currently it can be ipv4 or ipv6
	IPFamily ClusterIPFamily
	// APIServerPort is the listen port on the host for the Kubernetes API Server
	// Defaults to a random port on the host
	APIServerPort int32
	// APIServerAddress is the listen address on the host for the Kubernetes
	// API Server. This should be an IP address.
	//
	// Defaults to 127.0.0.1
	APIServerAddress string
	// PodSubnet is the CIDR used for pod IPs
	// kind will select a default if unspecified
	PodSubnet string
	// ServiceSubnet is the CIDR used for services VIPs
	// kind will select a default if unspecified
	ServiceSubnet string
	// If DisableDefaultCNI is true, kind will not install the default CNI setup.
	// Instead the user should install their own CNI after creating the cluster.
	DisableDefaultCNI bool
}

Networking contains cluster wide network settings

func (*Networking) DeepCopy added in v0.2.0

func (in *Networking) DeepCopy() *Networking

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Networking.

func (*Networking) DeepCopyInto added in v0.2.0

func (in *Networking) DeepCopyInto(out *Networking)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Node added in v0.1.0

type Node struct {
	// Role defines the role of the node in the in the Kubernetes cluster
	// created by kind
	//
	// Defaults to "control-plane"
	Role NodeRole

	// Image is the node image to use when creating this node
	// If unset a default image will be used, see defaults.Image
	Image string

	// ExtraMounts describes additional mount points for the node container
	// These may be used to bind a hostPath
	ExtraMounts []cri.Mount

	// ExtraPortMappings describes additional port mappings for the node container
	// binded to a host Port
	ExtraPortMappings []cri.PortMapping
}

Node contains settings for a node in the `kind` Cluster. A node in kind config represent a container that will be provisioned with all the components required for the assigned role in the Kubernetes cluster

func (*Node) DeepCopy added in v0.1.0

func (in *Node) DeepCopy() *Node

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Node.

func (*Node) DeepCopyInto added in v0.1.0

func (in *Node) DeepCopyInto(out *Node)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Node) Validate added in v0.1.0

func (n *Node) Validate() error

Validate returns a ConfigErrors with an entry for each problem with the Node, or nil if there are none

type NodeRole added in v0.1.0

type NodeRole string

NodeRole defines possible role for nodes in a Kubernetes cluster managed by `kind`

const (
	// ControlPlaneRole identifies a node that hosts a Kubernetes control-plane.
	// NOTE: in single node clusters, control-plane nodes act also as a worker
	// nodes, in which case the taint will be removed. see:
	// https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#control-plane-node-isolation
	ControlPlaneRole NodeRole = "control-plane"
	// WorkerRole identifies a node that hosts a Kubernetes worker
	WorkerRole NodeRole = "worker"
)

Directories

Path Synopsis
Package defaults contains cross-api-version configuration defaults
Package defaults contains cross-api-version configuration defaults
Package encoding implements utilities for decoding from yaml the `kind` Config
Package encoding implements utilities for decoding from yaml the `kind` Config
Package v1alpha3 implements the v1alpha3 apiVersion of kind's cluster configuration +k8s:deepcopy-gen=package +k8s:conversion-gen=sigs.k8s.io/kind/pkg/cluster/config +k8s:defaulter-gen=TypeMeta
Package v1alpha3 implements the v1alpha3 apiVersion of kind's cluster configuration +k8s:deepcopy-gen=package +k8s:conversion-gen=sigs.k8s.io/kind/pkg/cluster/config +k8s:defaulter-gen=TypeMeta

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL