config

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2019 License: Apache-2.0 Imports: 8 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/internal/apis/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

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

func SetDefaults_Cluster(obj *Cluster)

SetDefaults_Cluster sets uninitialized fields to their default value.

func SetDefaults_Node

func SetDefaults_Node(obj *Node)

SetDefaults_Node sets uninitialized fields to their default value.

func SetObjectDefaults_Cluster

func SetObjectDefaults_Cluster(in *Cluster)

Types

type Cluster

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 []PatchJSON6902
}

Cluster contains kind cluster configuration

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto

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

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

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

func (*Cluster) Validate

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

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

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

func (in *Networking) DeepCopy() *Networking

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

func (*Networking) DeepCopyInto

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

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

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto

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

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

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"
)

type PatchJSON6902

type PatchJSON6902 struct {
	// these fields specify the patch target resource
	Group   string
	Version string
	Kind    string
	// Name and Namespace are optional
	// NOTE: technically name is required now, but we default it elsewhere
	// Third party users of this type / library would need to set it.
	Name      string
	Namespace string
	// Patch should contain the contents of the json patch as a string
	Patch string
}

PatchJSON6902 represents an inline kustomize json 6902 patch https://tools.ietf.org/html/rfc6902

func (*PatchJSON6902) DeepCopy

func (in *PatchJSON6902) DeepCopy() *PatchJSON6902

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

func (*PatchJSON6902) DeepCopyInto

func (in *PatchJSON6902) DeepCopyInto(out *PatchJSON6902)

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

Directories

Path Synopsis
Package encoding implements utilities for decoding from yaml the `kind` Config
Package encoding implements utilities for decoding from yaml the `kind` Config
Package v1alpha3 contains conversions for the v1alpha3 config types +k8s:conversion-gen=sigs.k8s.io/kind/pkg/internal/apis/config +k8s:conversion-gen-external-types=sigs.k8s.io/kind/pkg/apis/config/v1alpha3
Package v1alpha3 contains conversions for the v1alpha3 config types +k8s:conversion-gen=sigs.k8s.io/kind/pkg/internal/apis/config +k8s:conversion-gen-external-types=sigs.k8s.io/kind/pkg/apis/config/v1alpha3

Jump to

Keyboard shortcuts

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