kind: sigs.k8s.io/kind/pkg/apis/config/v1alpha3 Index | Files

package v1alpha3

import "sigs.k8s.io/kind/pkg/apis/config/v1alpha3"

Package v1alpha3 implements the v1alpha3 apiVersion of kind's cluster configuration

+k8s:deepcopy-gen=package +k8s:defaulter-gen=TypeMeta

Index

Package Files

default.go doc.go types.go yaml.go zz_generated.deepcopy.go

Variables

var MountPropagationNameToValue = map[string]MountPropagation{
    "None":            MountPropagationNone,
    "HostToContainer": MountPropagationHostToContainer,
    "Bidirectional":   MountPropagationBidirectional,
}

MountPropagationNameToValue is a map of valid MountPropogation names to their values

var MountPropagationValueToName = map[MountPropagation]string{
    MountPropagationNone:            "None",
    MountPropagationHostToContainer: "HostToContainer",
    MountPropagationBidirectional:   "Bidirectional",
}

MountPropagationValueToName is a map of valid MountPropogation values to their string names

var PortMappingProtocolNameToValue = map[string]PortMappingProtocol{
    "TCP":  PortMappingProtocolTCP,
    "UDP":  PortMappingProtocolUDP,
    "SCTP": PortMappingProtocolSCTP,
}

PortMappingProtocolNameToValue is a map of valid PortMappingProtocol names to their values

var PortMappingProtocolValueToName = map[PortMappingProtocol]string{
    PortMappingProtocolTCP:  "TCP",
    PortMappingProtocolUDP:  "UDP",
    PortMappingProtocolSCTP: "SCTP",
}

PortMappingProtocolValueToName is a map of valid PortMappingProtocol values to their string names

func SetDefaultsCluster Uses

func SetDefaultsCluster(obj *Cluster)

SetDefaultsCluster sets uninitialized fields to their default value.

func SetDefaultsNode Uses

func SetDefaultsNode(obj *Node)

SetDefaultsNode sets uninitialized fields to their default value.

type Cluster Uses

type Cluster struct {
    TypeMeta `yaml:",inline"`

    // 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 `yaml:"nodes,omitempty"`

    // Networking contains cluster wide network settings
    Networking Networking `yaml:"networking,omitempty"`

    // KubeadmConfigPatches are applied to the generated kubeadm config as
    // merge patches. The `kind` field must match the target object, and
    // if `apiVersion` is specified it will only be applied to matching objects.
    //
    // This should be an inline yaml blob-string
    //
    // https://tools.ietf.org/html/rfc7386
    KubeadmConfigPatches []string `yaml:"kubeadmConfigPatches,omitempty"`

    // KubeadmConfigPatchesJSON6902 are applied to the generated kubeadm config
    // as JSON 6902 patches. The `kind` field must match the target object, and
    // if group or version are specified it will only be objects matching the
    // apiVersion: group+"/"+version
    //
    // Name and Namespace are now ignored, but the fields continue to exist for
    // backwards compatibility of parsing the config. The name of the generated
    // config was/is always fixed as as is the namespace so these fields have
    // always been a no-op.
    //
    // https://tools.ietf.org/html/rfc6902
    KubeadmConfigPatchesJSON6902 []PatchJSON6902 `yaml:"kubeadmConfigPatchesJson6902,omitempty"`
}

Cluster contains kind cluster configuration

func (*Cluster) DeepCopy Uses

func (in *Cluster) DeepCopy() *Cluster

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

func (*Cluster) DeepCopyInto Uses

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

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

type ClusterIPFamily Uses

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 Mount Uses

type Mount struct {
    // Path of the mount within the container.
    ContainerPath string `yaml:"containerPath,omitempty"`
    // Path of the mount on the host. If the hostPath doesn't exist, then runtimes
    // should report error. If the hostpath is a symbolic link, runtimes should
    // follow the symlink and mount the real destination to container.
    HostPath string `yaml:"hostPath,omitempty"`
    // If set, the mount is read-only.
    Readonly bool `yaml:"readOnly,omitempty"`
    // If set, the mount needs SELinux relabeling.
    SelinuxRelabel bool `yaml:"selinuxRelabel,omitempty"`
    // Requested propagation mode.
    Propagation MountPropagation `yaml:"propagation,omitempty"`
}

Mount specifies a host volume to mount into a container. This is a close copy of the upstream cri Mount type see: k8s.io/kubernetes/pkg/kubelet/apis/cri/runtime/v1alpha2 It additionally serializes the "propagation" field with the string enum names on disk as opposed to the int32 values, and the serlialzed field names have been made closer to core/v1 VolumeMount field names In yaml this looks like:

containerPath: /foo
hostPath: /bar
readOnly: true
selinuxRelabel: false
propagation: None

Propagation may be one of: None, HostToContainer, Bidirectional

func (*Mount) DeepCopy Uses

func (in *Mount) DeepCopy() *Mount

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

func (*Mount) DeepCopyInto Uses

func (in *Mount) DeepCopyInto(out *Mount)

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

func (*Mount) UnmarshalYAML Uses

func (m *Mount) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom decoding YAML https://godoc.org/gopkg.in/yaml.v3

type MountPropagation Uses

type MountPropagation int32

MountPropagation represents an "enum" for mount propagation options, see also Mount.

const (
    // MountPropagationNone specifies that no mount propagation
    // ("private" in Linux terminology).
    MountPropagationNone MountPropagation = 0
    // MountPropagationHostToContainer specifies that mounts get propagated
    // from the host to the container ("rslave" in Linux).
    MountPropagationHostToContainer MountPropagation = 1
    // MountPropagationBidirectional specifies that mounts get propagated from
    // the host to the container and from the container to the host
    // ("rshared" in Linux).
    MountPropagationBidirectional MountPropagation = 2
)

type Networking Uses

type Networking struct {
    // IPFamily is the network cluster model, currently it can be ipv4 or ipv6
    IPFamily ClusterIPFamily `yaml:"ipFamily,omitempty"`
    // APIServerPort is the listen port on the host for the Kubernetes API Server
    // Defaults to a random port on the host
    APIServerPort int32 `yaml:"apiServerPort,omitempty"`
    // 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 `yaml:"apiServerAddress,omitempty"`
    // PodSubnet is the CIDR used for pod IPs
    // kind will select a default if unspecified
    PodSubnet string `yaml:"podSubnet,omitempty"`
    // ServiceSubnet is the CIDR used for services VIPs
    // kind will select a default if unspecified for IPv6
    ServiceSubnet string `yaml:"serviceSubnet,omitempty"`
    // 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 `yaml:"disableDefaultCNI,omitempty"`
}

Networking contains cluster wide network settings

func (*Networking) DeepCopy Uses

func (in *Networking) DeepCopy() *Networking

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

func (*Networking) DeepCopyInto Uses

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 Uses

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 `yaml:"role,omitempty"`

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

    // TODO: cri-like types should be inline instead
    // ExtraMounts describes additional mount points for the node container
    // These may be used to bind a hostPath
    ExtraMounts []Mount `yaml:"extraMounts,omitempty"`

    // ExtraPortMappings describes additional port mappings for the node container
    // binded to a host Port
    ExtraPortMappings []PortMapping `yaml:"extraPortMappings,omitempty"`
}

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 Uses

func (in *Node) DeepCopy() *Node

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

func (*Node) DeepCopyInto Uses

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

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

type NodeRole Uses

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 Uses

type PatchJSON6902 struct {
    // these fields specify the patch target resource
    Group   string `yaml:"group"`
    Version string `yaml:"version"`
    Kind    string `yaml:"kind"`
    // WARNING: Name & Namespace are actually ignored!
    // See the docs for the Cluster type
    Name      string `yaml:"name,omitempty"`
    Namespace string `yaml:"namespace,omitempty"`
    // Patch should contain the contents of the json patch as a string
    Patch string `yaml:"patch"`
}

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

func (*PatchJSON6902) DeepCopy Uses

func (in *PatchJSON6902) DeepCopy() *PatchJSON6902

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

func (*PatchJSON6902) DeepCopyInto Uses

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

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

type PortMapping Uses

type PortMapping struct {
    // Port within the container.
    ContainerPort int32 `yaml:"containerPort,omitempty"`
    // Port on the host.
    HostPort int32 `yaml:"hostPort,omitempty"`
    // TODO: add protocol (tcp/udp) and port-ranges
    ListenAddress string `yaml:"listenAddress,omitempty"`
    // Protocol (TCP/UDP)
    Protocol PortMappingProtocol `yaml:"protocol,omitempty"`
}

PortMapping specifies a host port mapped into a container port. In yaml this looks like:

containerPort: 80
hostPort: 8000
listenAddress: 127.0.0.1
protocol: TCP

func (*PortMapping) DeepCopy Uses

func (in *PortMapping) DeepCopy() *PortMapping

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

func (*PortMapping) DeepCopyInto Uses

func (in *PortMapping) DeepCopyInto(out *PortMapping)

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

func (*PortMapping) UnmarshalYAML Uses

func (p *PortMapping) UnmarshalYAML(unmarshal func(interface{}) error) error

UnmarshalYAML implements custom decoding YAML https://godoc.org/gopkg.in/yaml.v3

type PortMappingProtocol Uses

type PortMappingProtocol int32

PortMappingProtocol represents an "enum" for port mapping protocol options, see also PortMapping.

const (
    // PortMappingProtocolTCP specifies TCP protocol
    PortMappingProtocolTCP PortMappingProtocol = 0
    // PortMappingProtocolUDP specifies UDP protocol
    PortMappingProtocolUDP PortMappingProtocol = 1
    // PortMappingProtocolSCTP specifies SCTP protocol
    PortMappingProtocolSCTP PortMappingProtocol = 2
)

type TypeMeta Uses

type TypeMeta struct {
    Kind       string `json:"kind,omitempty" yaml:"kind,omitempty"`
    APIVersion string `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"`
}

TypeMeta partially copies apimachinery/pkg/apis/meta/v1.TypeMeta No need for a direct dependence; the fields are stable.

func (*TypeMeta) DeepCopy Uses

func (in *TypeMeta) DeepCopy() *TypeMeta

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

func (*TypeMeta) DeepCopyInto Uses

func (in *TypeMeta) DeepCopyInto(out *TypeMeta)

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

Package v1alpha3 imports 3 packages (graph) and is imported by 9 packages. Updated 2019-11-08. Refresh now. Tools for package owners.