v1alpha1

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 23, 2023 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package v1alpha1 implements the v1alpha1 apiVersion of kwok's configuration

Index

Constants

View Source
const (
	// KwokctlConfigurationKind is the kind of the kwokctl configuration.
	KwokctlConfigurationKind = "KwokctlConfiguration"

	// ModeStableFeatureGateAndAPI is intended to reduce cluster configuration requirements
	// Disables all Alpha feature by default, as well as Beta feature that are not eventually GA
	ModeStableFeatureGateAndAPI = "StableFeatureGateAndAPI"
)
View Source
const (
	// KwokConfigurationKind is the kind of the KwokConfiguration.
	KwokConfigurationKind = "KwokConfiguration"
)
View Source
const (
	// KwokctlResourceKind is the kind of the kwokctl resource.
	KwokctlResourceKind = "KwokctlResource"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{
		Group:   "config.kwok.x-k8s.io",
		Version: "v1alpha1",
	}
)

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 SetObjectDefaults_KwokConfiguration

func SetObjectDefaults_KwokConfiguration(in *KwokConfiguration)

func SetObjectDefaults_KwokctlConfiguration

func SetObjectDefaults_KwokctlConfiguration(in *KwokctlConfiguration)

Types

type Component

type Component struct {
	// Name of the component specified as a DNS_LABEL.
	// Each component must have a unique name (DNS_LABEL).
	// Cannot be updated.
	Name string `json:"name"`

	// Links is a set of links for the component.
	// +optional
	Links []string `json:"links,omitempty"`

	// Binary is the binary of the component.
	// +optional
	Binary string `json:"binary,omitempty"`

	// Image is the image of the component.
	// +optional
	Image string `json:"image,omitempty"`

	// Command is Entrypoint array. Not executed within a shell. Only works with Image.
	// +optional
	Command []string `json:"command,omitempty"`

	// User is the user for the component.
	// +optional
	User string `json:"user,omitempty"`

	// Args is Arguments to the entrypoint.
	// +optional
	Args []string `json:"args,omitempty"`

	// WorkDir is component's working directory.
	// +optional
	WorkDir string `json:"workDir,omitempty"`

	// Ports is list of ports to expose from the component.
	// +optional
	Ports []Port `json:"ports,omitempty"`

	// Envs is list of environment variables to set in the component.
	// +optional
	Envs []Env `json:"envs,omitempty"`

	// Volumes is a list of named volumes that can be mounted by containers belonging to the component.
	// +optional
	Volumes []Volume `json:"volumes,omitempty"`

	// Version is the version of the component.
	// +optional
	Version string `json:"version,omitempty"`
}

Component is a component of the cluster.

func (*Component) DeepCopy

func (in *Component) DeepCopy() *Component

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

func (*Component) DeepCopyInto

func (in *Component) DeepCopyInto(out *Component)

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

type ComponentPatches

type ComponentPatches struct {
	// Name is the name of the component.
	Name string `json:"name"`
	// ExtraArgs is the extra args to be patched on the component.
	ExtraArgs []ExtraArgs `json:"extraArgs,omitempty"`
	// ExtraVolumes is the extra volumes to be patched on the component.
	ExtraVolumes []Volume `json:"extraVolumes,omitempty"`
	// ExtraEnvs is the extra environment variables to be patched on the component.
	ExtraEnvs []Env `json:"extraEnvs,omitempty"`
}

ComponentPatches holds information about the component patches.

func (*ComponentPatches) DeepCopy

func (in *ComponentPatches) DeepCopy() *ComponentPatches

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

func (*ComponentPatches) DeepCopyInto

func (in *ComponentPatches) DeepCopyInto(out *ComponentPatches)

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

type Env

type Env struct {
	// Name of the environment variable.
	Name string `json:"name"`

	// Value is using the previously defined environment variables in the component.
	// +optional
	// +default=""
	Value string `json:"value,omitempty"`
}

Env represents an environment variable present in a Container.

func (*Env) DeepCopy

func (in *Env) DeepCopy() *Env

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

func (*Env) DeepCopyInto

func (in *Env) DeepCopyInto(out *Env)

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

type ExtraArgs

type ExtraArgs struct {
	// Key is the key of the extra args.
	Key string `json:"key"`
	// Value is the value of the extra args.
	Value string `json:"value"`
}

ExtraArgs holds information about the extra args.

func (*ExtraArgs) DeepCopy

func (in *ExtraArgs) DeepCopy() *ExtraArgs

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

func (*ExtraArgs) DeepCopyInto

func (in *ExtraArgs) DeepCopyInto(out *ExtraArgs)

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

type HostPathType

type HostPathType string

HostPathType represents the type of storage used for HostPath volumes. +enum

const (
	// For backwards compatible, leave it empty if unset
	HostPathUnset HostPathType = ""
	// If nothing exists at the given path, an empty directory will be created there
	// as needed with file mode 0755, having the same group and ownership with Kubelet.
	HostPathDirectoryOrCreate HostPathType = "DirectoryOrCreate"
	// A directory must exist at the given path
	HostPathDirectory HostPathType = "Directory"
	// If nothing exists at the given path, an empty file will be created there
	// as needed with file mode 0644, having the same group and ownership with Kubelet.
	HostPathFileOrCreate HostPathType = "FileOrCreate"
	// A file must exist at the given path
	HostPathFile HostPathType = "File"
	// A UNIX socket must exist at the given path
	HostPathSocket HostPathType = "Socket"
	// A character device must exist at the given path
	HostPathCharDev HostPathType = "CharDevice"
	// A block device must exist at the given path
	HostPathBlockDev HostPathType = "BlockDevice"
)

Constants for HostPathType.

type KwokConfiguration

type KwokConfiguration struct {
	//+k8s:conversion-gen=false
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Options holds information about the default value.
	Options KwokConfigurationOptions `json:"options,omitempty"`
}

KwokConfiguration provides configuration for the Kwok.

func (*KwokConfiguration) DeepCopy

func (in *KwokConfiguration) DeepCopy() *KwokConfiguration

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

func (*KwokConfiguration) DeepCopyInto

func (in *KwokConfiguration) DeepCopyInto(out *KwokConfiguration)

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

func (*KwokConfiguration) DeepCopyObject

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

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

type KwokConfigurationOptions

type KwokConfigurationOptions struct {
	// EnableCRDs is a list of CRDs to enable.
	// Once listed in this field, it will no longer be supported by the --config flag.
	EnableCRDs []string `json:"enableCRDs,omitempty"`

	// The default IP assigned to the Pod on maintained Nodes.
	// is the default value for flag --cidr
	// +default="10.0.0.1/24"
	CIDR string `json:"cidr,omitempty"`

	// The ip of all nodes maintained by the Kwok
	// is the default value for flag --node-ip
	NodeIP string `json:"nodeIP,omitempty"`

	// The name of all nodes maintained by the Kwok
	// is the default value for flag --node-name
	NodeName string `json:"nodeName,omitempty"`

	// The port of all nodes maintained by the Kwok
	// is the default value for flag --node-port
	NodePort int `json:"nodePort,omitempty"`

	// TLSCertFile is the file containing x509 Certificate for HTTPS.
	// If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file
	// is the default value for flag --tls-cert-file
	TLSCertFile string `json:"tlsCertFile,omitempty"`

	// TLSPrivateKeyFile is the ile containing x509 private key matching --tls-cert-file.
	// is the default value for flag --tls-private-key-file
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty"`

	// ManageSingleNode is the option to manage a single node name.
	// is the default value for flag --manage-single-node
	// Note: when `manage-all-nodes` is specified as true or
	// `manage-nodes-with-label-selector` or `manage-nodes-with-annotation-selector` is specified,
	// this is a no-op.
	ManageSingleNode string `json:"manageSingleNode,omitempty"`

	// Default option to manage (i.e., maintain heartbeat/liveness of) all Nodes or not.
	// is the default value for flag --manage-all-nodes
	// Note: when `manage-single-node` is specified as true or
	// `manage-nodes-with-label-selector` or `manage-nodes-with-annotation-selector` is specified,
	// this is a no-op.
	// +default=false
	ManageAllNodes *bool `json:"manageAllNodes,omitempty"`

	// Default annotations specified on Nodes to demand manage.
	// is the default value for flag --manage-nodes-with-annotation-selector
	// Note: when `all-node-manage` is specified as true or
	// `manage-single-node` is specified,
	// this is a no-op.
	ManageNodesWithAnnotationSelector string `json:"manageNodesWithAnnotationSelector,omitempty"`

	// Default labels specified on Nodes to demand manage.
	// is the default value for flag --manage-nodes-with-label-selector
	// Note: when `all-node-manage` is specified as true or
	// `manage-single-node` is specified,
	// this is a no-op.
	ManageNodesWithLabelSelector string `json:"manageNodesWithLabelSelector,omitempty"`

	// If a Node/Pod is on a managed Node and has this annotation status will not be modified
	// is the default value for flag --disregard-status-with-annotation-selector
	DisregardStatusWithAnnotationSelector string `json:"disregardStatusWithAnnotationSelector,omitempty"`

	// If a Node/Pod is on a managed Node and has this label status will not be modified
	// is the default value for flag --disregard-status-with-label-selector
	DisregardStatusWithLabelSelector string `json:"disregardStatusWithLabelSelector,omitempty"`

	// ServerAddress is server address of the Kwok.
	// is the default value for flag --server-address
	ServerAddress string `json:"serverAddress,omitempty"`

	// Experimental support for getting pod ip from CNI, for CNI-related components, Only works with Linux.
	// is the default value for flag --experimental-enable-cni
	// +default=false
	EnableCNI *bool `json:"experimentalEnableCNI,omitempty"`

	// enableDebuggingHandlers enables server endpoints for log collection
	// and local running of containers and commands
	// +default=true
	EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty"`

	// enableContentionProfiling enables lock contention profiling, if enableDebuggingHandlers is true.
	// +default=false
	EnableContentionProfiling *bool `json:"enableContentionProfiling,omitempty"`

	// EnableProfiling enables /debug/pprof handler, if enableDebuggingHandlers is true.
	// +default=true
	EnableProfilingHandler *bool `json:"enableProfilingHandler,omitempty"`

	// PodPlayStageParallelism is the number of PodPlayStages that are allowed to run in parallel.
	// +default=4
	PodPlayStageParallelism uint `json:"podPlayStageParallelism,omitempty"`

	// NodePlayStageParallelism is the number of NodePlayStages that are allowed to run in parallel.
	// +default=4
	NodePlayStageParallelism uint `json:"nodePlayStageParallelism,omitempty"`

	// NodeLeaseDurationSeconds is the duration the Kubelet will set on its corresponding Lease.
	NodeLeaseDurationSeconds uint `json:"nodeLeaseDurationSeconds,omitempty"`

	// NodeLeaseParallelism is the number of NodeLeases that are allowed to be processed in parallel.
	// +default=4
	NodeLeaseParallelism uint `json:"nodeLeaseParallelism,omitempty"`
}

KwokConfigurationOptions holds information about the options.

func (*KwokConfigurationOptions) DeepCopy

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

func (*KwokConfigurationOptions) DeepCopyInto

func (in *KwokConfigurationOptions) DeepCopyInto(out *KwokConfigurationOptions)

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

type KwokctlConfiguration

type KwokctlConfiguration struct {
	//+k8s:conversion-gen=false
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Options holds information about the default value.
	Options KwokctlConfigurationOptions `json:"options,omitempty"`
	// Components holds information about the components.
	Components []Component `json:"components,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
	// ComponentsPatches holds information about the components patches.
	ComponentsPatches []ComponentPatches `json:"componentsPatches,omitempty" patchStrategy:"merge" patchMergeKey:"name"`
	// Status holds information about the status.
	Status KwokctlConfigurationStatus `json:"status,omitempty"`
}

KwokctlConfiguration provides configuration for the Kwokctl.

func (*KwokctlConfiguration) DeepCopy

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

func (*KwokctlConfiguration) DeepCopyInto

func (in *KwokctlConfiguration) DeepCopyInto(out *KwokctlConfiguration)

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

func (*KwokctlConfiguration) DeepCopyObject

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

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

type KwokctlConfigurationOptions

type KwokctlConfigurationOptions struct {
	// EnableCRDs is a list of CRDs to enable.
	// Once listed in this field, it will no longer be supported by the --config flag.
	EnableCRDs []string `json:"enableCRDs,omitempty"`

	// KubeApiserverPort is the port to expose apiserver.
	// is the default value for flag --kube-apiserver-port and env KWOK_KUBE_APISERVER_PORT
	KubeApiserverPort uint32 `json:"kubeApiserverPort,omitempty"`

	// Runtime is the runtime to use.
	// is the default value for flag --runtime and env KWOK_RUNTIME
	Runtime string `json:"runtime,omitempty"`

	// Runtimes is a list of alternate runtimes. When Runtime is empty,
	// the availability of the runtimes in the list is checked one by one
	// and set to Runtime
	Runtimes []string `json:"runtimes,omitempty"`

	// PrometheusPort is the port to expose Prometheus metrics.
	// is the default value for flag --prometheus-port and env KWOK_PROMETHEUS_PORT
	PrometheusPort uint32 `json:"prometheusPort,omitempty"`

	// JaegerPort is the port to expose Jaeger UI.
	// is the default value for flag --jaeger-port and env KWOK_JAEGER_PORT
	JaegerPort uint32 `json:"jaegerPort,omitempty"`

	// JaegerOtlpGrpcPort is the port to expose OTLP GRPC collector.
	JaegerOtlpGrpcPort uint32 `json:"jaegerOtlpGrpcPort,omitempty"`

	// KwokVersion is the version of Kwok to use.
	// is the default value for env KWOK_VERSION
	KwokVersion string `json:"kwokVersion,omitempty"`

	// KubeVersion is the version of Kubernetes to use.
	// is the default value for env KWOK_KUBE_VERSION
	KubeVersion string `json:"kubeVersion,omitempty"`

	// EtcdVersion is the version of Etcd to use.
	// is the default value for env KWOK_ETCD_VERSION
	EtcdVersion string `json:"etcdVersion,omitempty"`

	// DashboardVersion is the version of Kubernetes dashboard to use.
	DashboardVersion string `json:"dashboardVersion,omitempty"`

	// PrometheusVersion is the version of Prometheus to use.
	// is the default value for env KWOK_PROMETHEUS_VERSION
	PrometheusVersion string `json:"prometheusVersion,omitempty"`

	// JaegerVersion is the version of Jaeger to use.
	// is the default value for env KWOK_JAEGER_VERSION
	JaegerVersion string `json:"jaegerVersion,omitempty"`

	// DockerComposeVersion is the version of docker-compose to use.
	// is the default value for env KWOK_DOCKER_COMPOSE_VERSION
	// Deprecated: docker compose will be removed in a future release
	DockerComposeVersion string `json:"dockerComposeVersion,omitempty"`

	// KindVersion is the version of kind to use.
	// is the default value for env KWOK_KIND_VERSION
	KindVersion string `json:"kindVersion,omitempty"`

	// SecurePort is the apiserver port on which to serve HTTPS with authentication and authorization.
	// is not available before Kubernetes 1.13.0
	// is the default value for flag --secure-port and env KWOK_SECURE_PORT
	SecurePort *bool `json:"securePort,omitempty"`

	// QuietPull is the flag to quiet the pull.
	// is the default value for flag --quiet-pull and env KWOK_QUIET_PULL
	// +default=false
	QuietPull *bool `json:"quietPull,omitempty"`

	// KubeSchedulerConfig is the configuration path for kube-scheduler.
	// is the default value for flag --kube-scheduler-config and env KWOK_KUBE_SCHEDULER_CONFIG
	KubeSchedulerConfig string `json:"kubeSchedulerConfig,omitempty"`

	// DisableKubeScheduler is the flag to disable kube-scheduler.
	// is the default value for flag --disable-kube-scheduler and env KWOK_DISABLE_KUBE_SCHEDULER
	// +default=false
	DisableKubeScheduler *bool `json:"disableKubeScheduler,omitempty"`

	// DisableKubeControllerManager is the flag to disable kube-controller-manager.
	// is the default value for flag --disable-kube-controller-manager and env KWOK_DISABLE_KUBE_CONTROLLER_MANAGER
	// +default=false
	DisableKubeControllerManager *bool `json:"disableKubeControllerManager,omitempty"`

	// KubeImagePrefix is the prefix of the kubernetes image.
	// is the default value for env KWOK_KUBE_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	KubeImagePrefix string `json:"kubeImagePrefix,omitempty"`

	// EtcdImagePrefix is the prefix of the etcd image.
	// is the default value for env KWOK_ETCD_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	EtcdImagePrefix string `json:"etcdImagePrefix,omitempty"`

	// KwokImagePrefix is the prefix of the kwok image.
	// is the default value for env KWOK_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	KwokImagePrefix string `json:"kwokImagePrefix,omitempty"`

	// DashboardImagePrefix is the prefix of the dashboard image.
	//+k8s:conversion-gen=false
	DashboardImagePrefix string `json:"dashboardImagePrefix,omitempty"`

	// PrometheusImagePrefix is the prefix of the Prometheus image.
	// is the default value for env KWOK_PROMETHEUS_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	PrometheusImagePrefix string `json:"prometheusImagePrefix,omitempty"`

	// JaegerImagePrefix is the prefix of the Jaeger image.
	// is the default value for env KWOK_JAEGER_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	JaegerImagePrefix string `json:"jaegerImagePrefix,omitempty"`

	// EtcdImage is the image of etcd.
	// is the default value for flag --etcd-image and env KWOK_ETCD_IMAGE
	EtcdImage string `json:"etcdImage,omitempty"`

	// KubeApiserverImage is the image of kube-apiserver.
	// is the default value for flag --kube-apiserver-image and env KWOK_KUBE_APISERVER_IMAGE
	KubeApiserverImage string `json:"kubeApiserverImage,omitempty"`

	// KubeControllerManagerImage is the image of kube-controller-manager.
	// is the default value for flag --kube-controller-manager-image and env KWOK_KUBE_CONTROLLER_MANAGER_IMAGE
	KubeControllerManagerImage string `json:"kubeControllerManagerImage,omitempty"`

	// KubeSchedulerImage is the image of kube-scheduler.
	// is the default value for flag --kube-scheduler-image and env KWOK_KUBE_SCHEDULER_IMAGE
	KubeSchedulerImage string `json:"kubeSchedulerImage,omitempty"`

	// KwokControllerImage is the image of Kwok.
	// is the default value for flag --controller-image and env KWOK_CONTROLLER_IMAGE
	KwokControllerImage string `json:"kwokControllerImage,omitempty"`

	// DashboardImage is the image of dashboard.
	DashboardImage string `json:"dashboardImage,omitempty"`

	// PrometheusImage is the image of Prometheus.
	// is the default value for flag --prometheus-image and env KWOK_PROMETHEUS_IMAGE
	PrometheusImage string `json:"prometheusImage,omitempty"`

	// JaegerImage is the image of Jaeger.
	// is the default value for flag --jaeger-image and env KWOK_JAEGER_IMAGE
	JaegerImage string `json:"jaegerImage,omitempty"`

	// KindNodeImagePrefix is the prefix of the kind node image.
	// is the default value for env KWOK_KIND_NODE_IMAGE_PREFIX
	//+k8s:conversion-gen=false
	KindNodeImagePrefix string `json:"kindNodeImagePrefix,omitempty"`

	// KindNodeImage is the image of kind node.
	// is the default value for flag --kind-node-image and env KWOK_KIND_NODE_IMAGE
	KindNodeImage string `json:"kindNodeImage,omitempty"`

	// BinSuffix is the suffix of the all binary.
	// On Windows is .exe
	BinSuffix string `json:"binSuffix,omitempty"`

	// KubeBinaryPrefix is the prefix of the kubernetes binary.
	// is the default value for env KWOK_KUBE_BINARY_PREFIX
	//+k8s:conversion-gen=false
	KubeBinaryPrefix string `json:"kubeBinaryPrefix,omitempty"`

	// KubeApiserverBinary is the binary of kube-apiserver.
	// is the default value for flag --apiserver-binary and env KWOK_KUBE_APISERVER_BINARY
	KubeApiserverBinary string `json:"kubeApiserverBinary,omitempty"`

	// KubeControllerManagerBinary is the binary of kube-controller-manager.
	// is the default value for flag --controller-manager-binary and env KWOK_KUBE_CONTROLLER_MANAGER_BINARY
	KubeControllerManagerBinary string `json:"kubeControllerManagerBinary,omitempty"`

	// KubeSchedulerBinary is the binary of kube-scheduler.
	// is the default value for flag --scheduler-binary and env KWOK_KUBE_SCHEDULER_BINARY
	KubeSchedulerBinary string `json:"kubeSchedulerBinary,omitempty"`

	// KubectlBinary is the binary of kubectl.
	// is the default value for env KWOK_KUBECTL_BINARY
	KubectlBinary string `json:"kubectlBinary,omitempty"`

	// EtcdBinaryPrefix is the prefix of the etcd binary.
	// is the default value for env KWOK_ETCD_BINARY_PREFIX
	//+k8s:conversion-gen=false
	EtcdBinaryPrefix string `json:"etcdBinaryPrefix,omitempty"`

	// EtcdBinary is the binary of etcd.
	// is the default value for flag --etcd-binary and env KWOK_ETCD_BINARY
	EtcdBinary string `json:"etcdBinary,omitempty"`

	// EtcdBinaryTar is the tar of the binary of etcd.
	// is the default value for env KWOK_ETCD_BINARY_TAR
	EtcdBinaryTar string `json:"etcdBinaryTar,omitempty"`

	// KwokBinaryPrefix is the prefix of the kwok binary.
	// is the default value for env KWOK_BINARY_PREFIX
	//+k8s:conversion-gen=false
	KwokBinaryPrefix string `json:"kwokBinaryPrefix,omitempty"`

	// KwokControllerBinary is the binary of kwok.
	// is the default value for flag --controller-binary and env KWOK_CONTROLLER_BINARY
	KwokControllerBinary string `json:"kwokControllerBinary,omitempty"`

	// PrometheusBinaryPrefix is the prefix of the Prometheus binary.
	// is the default value for env KWOK_PROMETHEUS_PREFIX
	//+k8s:conversion-gen=false
	PrometheusBinaryPrefix string `json:"prometheusBinaryPrefix,omitempty"`

	// PrometheusBinary  is the binary of Prometheus.
	// is the default value for flag --prometheus-binary and env KWOK_PROMETHEUS_BINARY
	PrometheusBinary string `json:"prometheusBinary,omitempty"`

	// PrometheusBinaryTar is the tar of binary of Prometheus.
	// is the default value for env KWOK_PROMETHEUS_BINARY_TAR
	PrometheusBinaryTar string `json:"prometheusBinaryTar,omitempty"`

	// JaegerBinaryPrefix is the prefix of the Jaeger binary.
	// is the default value for env KWOK_JAEGER_PREFIX
	//+k8s:conversion-gen=false
	JaegerBinaryPrefix string `json:"jaegerBinaryPrefix,omitempty"`

	// JaegerBinary  is the binary of Jaeger.
	// is the default value for flag --jaeger-binary and env KWOK_JAEGER_BINARY
	JaegerBinary string `json:"jaegerBinary,omitempty"`

	// JaegerBinaryTar is the tar of binary of Jaeger.
	// is the default value for env KWOK_JAEGER_TAR
	JaegerBinaryTar string `json:"jaegerBinaryTar,omitempty"`

	// DockerComposeBinaryPrefix is the binary of docker-compose.
	// is the default value for env KWOK_DOCKER_COMPOSE_BINARY_PREFIX
	// Deprecated: docker compose will be removed in a future release
	//+k8s:conversion-gen=false
	DockerComposeBinaryPrefix string `json:"dockerComposeBinaryPrefix,omitempty"`

	// DockerComposeBinary is the binary of Docker compose.
	// is the default value for flag --docker-compose-binary and env KWOK_DOCKER_COMPOSE_BINARY
	// Deprecated: docker compose will be removed in a future release
	DockerComposeBinary string `json:"dockerComposeBinary,omitempty"`

	// KindBinaryPrefix is the binary prefix of kind.
	// is the default value for env KWOK_KIND_BINARY_PREFIX
	//+k8s:conversion-gen=false
	KindBinaryPrefix string `json:"kindBinaryPrefix,omitempty"`

	// KindBinary is the binary of kind.
	// is the default value for flag --kind-binary and env KWOK_KIND_BINARY
	KindBinary string `json:"kindBinary,omitempty"`

	// Mode is several default parameter templates for clusters
	// is the default value for env KWOK_MODE
	Mode string `json:"mode,omitempty"`

	// KubeFeatureGates is a set of key=value pairs that describe feature gates for alpha/experimental features of Kubernetes.
	// is the default value for flag --kube-feature-gates and env KWOK_KUBE_FEATURE_DATES
	KubeFeatureGates string `json:"kubeFeatureGates,omitempty"`

	// KubeRuntimeConfig is a set of key=value pairs that enable or disable built-in APIs.
	// is the default value for flag --kube-runtime-config and env KWOK_KUBE_RUNTIME_CONFIG
	KubeRuntimeConfig string `json:"kubeRuntimeConfig,omitempty"`

	// KubeAuditPolicy is path to the file that defines the audit policy configuration
	// is the default value for flag --kube-audit-policy and env KWOK_KUBE_AUDIT_POLICY
	KubeAuditPolicy string `json:"kubeAuditPolicy,omitempty"`

	// KubeAuthorization is the flag to enable authorization on secure port.
	// is the default value for flag --kube-authorization and env KWOK_KUBE_AUTHORIZATION
	KubeAuthorization *bool `json:"kubeAuthorization,omitempty"`

	// KubeAdmission is the flag to enable admission for kube-apiserver.
	// is the default value for flag --kube-admission and env KWOK_KUBE_ADMISSION
	KubeAdmission *bool `json:"kubeAdmission,omitempty"`

	// EtcdPeerPort is etcd peer port in the binary runtime
	EtcdPeerPort uint32 `json:"etcdPeerPort,omitempty"`

	// EtcdPort is etcd port in the binary runtime
	EtcdPort uint32 `json:"etcdPort,omitempty"`

	// KubeControllerManagerPort is kube-controller-manager port in the binary runtime
	KubeControllerManagerPort uint32 `json:"kubeControllerManagerPort,omitempty"`

	// KubeSchedulerPort is kube-scheduler port in the binary runtime
	KubeSchedulerPort uint32 `json:"kubeSchedulerPort,omitempty"`

	// DashboardPort is dashboard port in the binary runtime
	DashboardPort uint32 `json:"dashboardPort,omitempty"`

	// KwokControllerPort is kwok-controller port that is exposed to the host.
	// is the default value for flag --controller-port and env KWOK_CONTROLLER_PORT
	KwokControllerPort uint32 `json:"kwokControllerPort,omitempty"`

	// CacheDir is the directory of the cache.
	CacheDir string `json:"cacheDir,omitempty"`

	// KubeControllerManagerNodeMonitorPeriodMilliseconds is --node-monitor-period for kube-controller-manager.
	// +default=600000
	KubeControllerManagerNodeMonitorPeriodMilliseconds int64 `json:"kubeControllerManagerNodeMonitorPeriodMilliseconds,omitempty"`

	// KubeControllerManagerNodeMonitorGracePeriodMilliseconds is --node-monitor-grace-period for kube-controller-manager.
	// +default=3600000
	KubeControllerManagerNodeMonitorGracePeriodMilliseconds int64 `json:"kubeControllerManagerNodeMonitorGracePeriodMilliseconds,omitempty"`

	// NodeStatusUpdateFrequencyMilliseconds is --node-status-update-frequency for kwok like kubelet.
	// +default=1200000
	NodeStatusUpdateFrequencyMilliseconds int64 `json:"nodeStatusUpdateFrequencyMilliseconds,omitempty"`

	// NodeLeaseDurationSeconds is the duration the Kubelet will set on its corresponding Lease.
	// +default=1200
	NodeLeaseDurationSeconds uint `json:"nodeLeaseDurationSeconds,omitempty"`

	// BindAddress is the address to bind to.
	// +default="0.0.0.0"
	BindAddress string `json:"bindAddress,omitempty"`

	// KubeApiserverCertSANs sets extra Subject Alternative Names for the API Server signing cert.
	KubeApiserverCertSANs []string `json:"kubeApiserverCertSANs,omitempty"`

	// DisableQPSLimits specifies whether to disable QPS limits for components.
	// +default=false
	DisableQPSLimits *bool `json:"disableQPSLimits,omitempty"`
}

KwokctlConfigurationOptions holds information about the options.

func (*KwokctlConfigurationOptions) DeepCopy

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

func (*KwokctlConfigurationOptions) DeepCopyInto

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

type KwokctlConfigurationStatus added in v0.3.0

type KwokctlConfigurationStatus struct {
	// Version is the version of the kwokctl.
	Version string `json:"version,omitempty"`
}

KwokctlConfigurationStatus holds information about the status.

func (*KwokctlConfigurationStatus) DeepCopy added in v0.3.0

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

func (*KwokctlConfigurationStatus) DeepCopyInto added in v0.3.0

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

type KwokctlResource added in v0.4.0

type KwokctlResource struct {
	//+k8s:conversion-gen=false
	metav1.TypeMeta `json:",inline"`
	// Standard list metadata.
	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
	metav1.ObjectMeta `json:"metadata,omitempty"`
	// Parameters is the parameters for the kwokctl resource configuration.
	Parameters json.RawMessage `json:"parameters,omitempty"`
	// Template is the template for the kwokctl resource configuration.
	Template string `json:"template,omitempty"`
}

KwokctlResource provides resource definition for kwokctl.

func (*KwokctlResource) DeepCopy added in v0.4.0

func (in *KwokctlResource) DeepCopy() *KwokctlResource

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

func (*KwokctlResource) DeepCopyInto added in v0.4.0

func (in *KwokctlResource) DeepCopyInto(out *KwokctlResource)

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

func (*KwokctlResource) DeepCopyObject added in v0.4.0

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

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

type Port

type Port struct {
	// Name for the port that can be referred to by components.
	// +optional
	Name string `json:"name,omitempty"`
	// Port is number of port to expose on the component's IP address.
	// This must be a valid port number, 0 < x < 65536.
	Port uint32 `json:"port"`
	// HostPort is number of port to expose on the host.
	// If specified, this must be a valid port number, 0 < x < 65536.
	// +optional
	HostPort uint32 `json:"hostPort,omitempty"`
	// Protocol for port. Must be UDP, TCP, or SCTP.
	// +optional
	// +default="TCP"
	Protocol Protocol `json:"protocol,omitempty"`
}

Port represents a network port in a single component.

func (*Port) DeepCopy

func (in *Port) DeepCopy() *Port

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

func (*Port) DeepCopyInto

func (in *Port) DeepCopyInto(out *Port)

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

type Protocol

type Protocol string

Protocol defines network protocols supported for things like component ports. +enum

const (
	// ProtocolTCP is the TCP protocol.
	ProtocolTCP Protocol = "TCP"
	// ProtocolUDP is the UDP protocol.
	ProtocolUDP Protocol = "UDP"
	// ProtocolSCTP is the SCTP protocol.
	ProtocolSCTP Protocol = "SCTP"
)

type Volume

type Volume struct {
	// Name of the volume specified.
	// +optional
	Name string `json:"name,omitempty"`
	// Mounted read-only if true, read-write otherwise.
	// +optional
	ReadOnly *bool `json:"readOnly,omitempty"`
	// HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container.
	HostPath string `json:"hostPath,omitempty"`
	// MountPath within the container at which the volume should be mounted.
	MountPath string `json:"mountPath,omitempty"`
	// PathType is the type of the HostPath.
	PathType HostPathType `json:"pathType,omitempty"`
}

Volume represents a volume that is accessible to the containers running in a component.

func (*Volume) DeepCopy

func (in *Volume) DeepCopy() *Volume

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

func (*Volume) DeepCopyInto

func (in *Volume) DeepCopyInto(out *Volume)

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

Jump to

Keyboard shortcuts

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