Documentation
¶
Overview ¶
Package v1alpha1 implements the v1alpha1 apiVersion of ctlptl's cluster configuration
Borrows the approach of clientcmd/api and KIND, maintaining an API similar to other Kubernetes APIs without pulling in the API machinery.
+k8s:deepcopy-gen=package
Index ¶
- type Cluster
- func (in *Cluster) DeepCopy() *Cluster
- func (in *Cluster) DeepCopyInto(out *Cluster)
- func (in *Cluster) DeepCopyObject() runtime.Object
- func (obj *Cluster) GetObjectKind() schema.ObjectKind
- func (c *Cluster) GetObjectMeta() metav1.Object
- func (obj *Cluster) GroupVersionKind() schema.GroupVersionKind
- func (obj *Cluster) SetGroupVersionKind(gvk schema.GroupVersionKind)
- type ClusterList
- func (in *ClusterList) DeepCopy() *ClusterList
- func (in *ClusterList) DeepCopyInto(out *ClusterList)
- func (in *ClusterList) DeepCopyObject() runtime.Object
- func (obj *ClusterList) GetObjectKind() schema.ObjectKind
- func (obj *ClusterList) GroupVersionKind() schema.GroupVersionKind
- func (obj *ClusterList) SetGroupVersionKind(gvk schema.GroupVersionKind)
- type ClusterStatus
- type K3DCluster
- type MinikubeCluster
- type Registry
- func (in *Registry) DeepCopy() *Registry
- func (in *Registry) DeepCopyInto(out *Registry)
- func (in *Registry) DeepCopyObject() runtime.Object
- func (obj *Registry) GetObjectKind() schema.ObjectKind
- func (r *Registry) GetObjectMeta() metav1.Object
- func (obj *Registry) GroupVersionKind() schema.GroupVersionKind
- func (obj *Registry) SetGroupVersionKind(gvk schema.GroupVersionKind)
- type RegistryAuth
- type RegistryList
- func (in *RegistryList) DeepCopy() *RegistryList
- func (in *RegistryList) DeepCopyInto(out *RegistryList)
- func (in *RegistryList) DeepCopyObject() runtime.Object
- func (obj *RegistryList) GetObjectKind() schema.ObjectKind
- func (obj *RegistryList) GroupVersionKind() schema.GroupVersionKind
- func (obj *RegistryList) SetGroupVersionKind(gvk schema.GroupVersionKind)
- type RegistryStatus
- type TypeMeta
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cluster ¶
type Cluster struct {
TypeMeta `yaml:",inline"`
// The cluster name. Pulled from .kube/config.
Name string `json:"name,omitempty" yaml:"name,omitempty"`
// The name of the tool used to create this cluster.
Product string `json:"product,omitempty" yaml:"product,omitempty"`
// Make sure that the cluster has access to at least this many
// CPUs. This is mostly helpful for ensuring that your Docker Desktop
// VM has enough CPU. If ctlptl can't guarantee this many
// CPU, it will return an error.
MinCPUs int `json:"minCPUs,omitempty" yaml:"minCPUs,omitempty"`
// The name of a registry.
//
// If the registry doesn't exist, ctlptl will create one with this name.
//
// The registry can be configured by creating a `kind: Registry` config file.
//
// Not supported on all cluster products.
Registry string `json:"registry,omitempty" yaml:"registry,omitempty"`
// A list of pull-through registries to configure on the cluster.
//
// Not supported on all cluster products.
RegistryAuths []RegistryAuth `json:"registryAuths,omitempty" yaml:"registryAuths,omitempty"`
// The desired version of Kubernetes to run.
//
// Examples:
// v1.19.1
// v1.14.0
// Must start with 'v' and contain a major, minor, and patch version.
//
// Not all cluster products allow you to customize this.
KubernetesVersion string `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
// The Kind cluster config. Only applicable for clusters with product: kind.
//
// Full documentation at:
// https://pkg.go.dev/sigs.k8s.io/kind/pkg/apis/config/v1alpha4#Cluster
//
// Properties of this config may be overridden by properties of the ctlptl
// Cluster config. For example, the name field of the top-level Cluster object
// wins over one specified in the Kind config.
KindV1Alpha4Cluster *v1alpha4.Cluster `json:"kindV1Alpha4Cluster,omitempty" yaml:"kindV1Alpha4Cluster,omitempty"`
// Extra command line arguments passed to Kind create CLI. Only applicable to clusters with the product: kind.
KindExtraCreateArguments []string `json:"kindExtraCreateArguments,omitempty" yaml:"kindExtraCreateArguments,omitempty"`
// The Minikube cluster config. Only applicable for clusters with product: minikube.
Minikube *MinikubeCluster `json:"minikube,omitempty" yaml:"minikube,omitempty"`
// The K3D cluster config. Only applicable for clusters with product: k3d.
K3D *K3DCluster `json:"k3d,omitempty" yaml:"k3d,omitempty"`
// Most recently observed status of the cluster.
// Populated by the system.
// Read-only.
Status ClusterStatus `json:"status,omitempty" yaml:"status,omitempty"`
}
Cluster contains cluster configuration. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Cluster) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (*Cluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Cluster) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Cluster) GetObjectKind ¶
func (obj *Cluster) GetObjectKind() schema.ObjectKind
func (*Cluster) GetObjectMeta ¶ added in v0.8.22
func (*Cluster) GroupVersionKind ¶
func (obj *Cluster) GroupVersionKind() schema.GroupVersionKind
func (*Cluster) SetGroupVersionKind ¶
func (obj *Cluster) SetGroupVersionKind(gvk schema.GroupVersionKind)
type ClusterList ¶
type ClusterList struct {
TypeMeta `json:",inline"`
// List of clusters.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
Items []Cluster `json:"items" protobuf:"bytes,2,rep,name=items"`
}
ClusterList is a list of Clusters. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*ClusterList) DeepCopy ¶
func (in *ClusterList) DeepCopy() *ClusterList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.
func (*ClusterList) DeepCopyInto ¶
func (in *ClusterList) DeepCopyInto(out *ClusterList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterList) DeepCopyObject ¶
func (in *ClusterList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*ClusterList) GetObjectKind ¶
func (obj *ClusterList) GetObjectKind() schema.ObjectKind
func (*ClusterList) GroupVersionKind ¶
func (obj *ClusterList) GroupVersionKind() schema.GroupVersionKind
func (*ClusterList) SetGroupVersionKind ¶
func (obj *ClusterList) SetGroupVersionKind(gvk schema.GroupVersionKind)
type ClusterStatus ¶
type ClusterStatus struct {
// When the cluster was first created.
CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty" yaml:"creationTimestamp,omitempty"`
// Local registry status documented on the cluster itself.
LocalRegistryHosting *localregistry.LocalRegistryHostingV1 `json:"localRegistryHosting,omitempty" yaml:"localRegistryHosting,omitempty"`
// The number of CPU. Only applicable to local clusters.
CPUs int `json:"cpus,omitempty" yaml:"cpus,omitempty"`
// Whether this is the current cluster in `kubectl`
Current bool `json:"current,omitempty" yaml:"current,omitempty"`
// The version of Kubernetes currently running.
//
// Reported by the Kubernetes API. May contain a build tag.
//
// Examples:
// v1.19.1
// v1.18.10-gke.601
// v1.19.3-34+fa32ff1c160058
KubernetesVersion string `json:"kubernetesVersion,omitempty" yaml:"kubernetesVersion,omitempty"`
// Populated when we encounter an error reading the cluster status.
Error string `json:"error,omitempty"`
}
func (*ClusterStatus) DeepCopy ¶
func (in *ClusterStatus) DeepCopy() *ClusterStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.
func (*ClusterStatus) DeepCopyInto ¶
func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type K3DCluster ¶ added in v0.8.13
type K3DCluster struct {
// K3D's own cluster config format, v1alpha5.
//
// Documentation: https://k3d.io/v5.6.0/usage/configfile/
//
// Uses this schema: https://github.com/k3d-io/k3d/blob/v5.6.0/pkg/config/v1alpha5/types.go
V1Alpha5Simple *k3dv1alpha5.SimpleConfig `json:"v1alpha5Simple,omitempty" yaml:"v1alpha5Simple,omitempty"`
// K3D's own cluster config format, v1alpha4.
//
// Documentation: https://k3d.io/v5.4.6/usage/configfile/
//
// Uses this schema: https://github.com/k3d-io/k3d/blob/v5.4.6/pkg/config/v1alpha4/types.go
V1Alpha4Simple *k3dv1alpha4.SimpleConfig `json:"v1alpha4Simple,omitempty" yaml:"v1alpha4Simple,omitempty"`
}
K3DCluster describes k3d-specific options for starting a cluster.
Prefer setting features on the ClusterSpec rather than on the K3dCluster object when possible.
ctlptl's logic for diffing clusters and applying changes is less robust for cluster-specific configs.
func (*K3DCluster) DeepCopy ¶ added in v0.8.13
func (in *K3DCluster) DeepCopy() *K3DCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new K3DCluster.
func (*K3DCluster) DeepCopyInto ¶ added in v0.8.13
func (in *K3DCluster) DeepCopyInto(out *K3DCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type MinikubeCluster ¶ added in v0.7.1
type MinikubeCluster struct {
// The container runtime of the cluster. Defaults to containerd.
ContainerRuntime string `json:"containerRuntime,omitempty" yaml:"containerRuntime,omitempty"`
// Extra config options passed directly to Minikube's --extra-config flags.
// When not set, we will default to starting minikube with these configs:
//
// kubelet.max-pods=500
ExtraConfigs []string `json:"extraConfigs,omitempty" yaml:"extraConfigs,omitempty"`
// Unstructured flags to pass to minikube on `minikube start`.
// These flags will be passed before all tilt-determined flags.
StartFlags []string `json:"startFlags,omitempty" yaml:"startFlags,omitempty"`
}
MinikubeCluster describes minikube-specific options for starting a cluster.
Options in this struct, when possible, should match the flags to `minikube start`.
Prefer setting features on the ClusterSpec rather than on the MinikubeCluster object when possible. For example, this object doesn't have a `kubernetesVersion` field, because it's supported by ClusterSpec.
ctlptl's logic for diffing clusters and applying changes is less robust for cluster-specific config flags.
func (*MinikubeCluster) DeepCopy ¶ added in v0.7.1
func (in *MinikubeCluster) DeepCopy() *MinikubeCluster
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinikubeCluster.
func (*MinikubeCluster) DeepCopyInto ¶ added in v0.7.1
func (in *MinikubeCluster) DeepCopyInto(out *MinikubeCluster)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Registry ¶
type Registry struct {
TypeMeta `yaml:",inline"`
// The registry name. Get/set from the Docker container name.
Name string `json:"name,omitempty" yaml:"name,omitempty"`
// The host IPv4 address to bind the container to.
ListenAddress string `json:"listenAddress,omitempty" yaml:"listenAddress,omitempty"`
// The desired host port. Set to 0 to choose a random port,
// or to preserve the existing port.
Port int `json:"port,omitempty" yaml:"port,omitempty"`
// Labels that must be attached to the running registry.
//
// If you change the set of labels, the registry must be stopped and
// restarted.
//
// Important for K3d, which will only connect to registries
// that are tagged "app: k3d".
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
// Environment vars to use for registry container (optional).
//
// Can be used to change some parameters likes REGISTRY_HTTP_ADDR, REGISTRY_PROXY_REMOTEURL
Env []string `json:"env,omitempty" yaml:"env,omitempty"`
// Image to use for registry container (optional).
//
// Can be used to provide an alternate image or use a different registry
// than Docker Hub.
//
// Defaults to `docker.io/library/registry:2`.
Image string `json:"image,omitempty" yaml:"image,omitempty"`
// Most recently observed status of the registry.
// Populated by the system.
// Read-only.
Status RegistryStatus `json:"status,omitempty" yaml:"status,omitempty"`
}
Cluster contains registry configuration.
Currently designed for local registries on the host machine, but may eventually expand to support remote registries.
+k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*Registry) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Registry.
func (*Registry) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Registry) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Registry) GetObjectKind ¶
func (obj *Registry) GetObjectKind() schema.ObjectKind
func (*Registry) GetObjectMeta ¶ added in v0.8.22
func (*Registry) GroupVersionKind ¶
func (obj *Registry) GroupVersionKind() schema.GroupVersionKind
func (*Registry) SetGroupVersionKind ¶
func (obj *Registry) SetGroupVersionKind(gvk schema.GroupVersionKind)
type RegistryAuth ¶ added in v0.8.38
type RegistryAuth struct {
// The FQDN of the registry (i.e. docker.io)
Host string `json:"host,omitempty" yaml:"host,omitempty"`
// The Endpoint of the registry (i.e. https://registry-1.docker.io)
Endpoint string `json:"endpoint,omitempty" yaml:"endpoint,omitempty"`
Username string `json:"username,omitempty" yaml:"username,omitempty"`
Password string `json:"password,omitempty" yaml:"password,omitempty"`
}
RegistryAuth contains configuration for pull-through registries
type RegistryList ¶
type RegistryList struct {
TypeMeta `json:",inline"`
// List of registrys.
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
Items []Registry `json:"items" protobuf:"bytes,2,rep,name=items"`
}
RegistryList is a list of Registrys. +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
func (*RegistryList) DeepCopy ¶
func (in *RegistryList) DeepCopy() *RegistryList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryList.
func (*RegistryList) DeepCopyInto ¶
func (in *RegistryList) DeepCopyInto(out *RegistryList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*RegistryList) DeepCopyObject ¶
func (in *RegistryList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*RegistryList) GetObjectKind ¶
func (obj *RegistryList) GetObjectKind() schema.ObjectKind
func (*RegistryList) GroupVersionKind ¶
func (obj *RegistryList) GroupVersionKind() schema.GroupVersionKind
func (*RegistryList) SetGroupVersionKind ¶
func (obj *RegistryList) SetGroupVersionKind(gvk schema.GroupVersionKind)
type RegistryStatus ¶
type RegistryStatus struct {
// When the registry was first created.
CreationTimestamp metav1.Time `json:"creationTimestamp,omitempty" yaml:"creationTimestamp,omitempty"`
// The IPv4 address for the bridge network.
IPAddress string `json:"ipAddress,omitempty" yaml:"ipAddress,omitempty"`
// The public IPv4 address that the registry is listening on on the host machine.
ListenAddress string `json:"listenAddress,omitempty" yaml:"listenAddress,omitempty"`
// The public port that the registry is listening on on the host machine.
HostPort int `json:"hostPort,omitempty" yaml:"hostPort,omitempty"`
// The private port that the registry is listening on inside the registry network.
//
// We try to make this not configurable, because there's no real reason not
// to use the default registry port 5000.
ContainerPort int `json:"containerPort,omitempty" yaml:"containerPort,omitempty"`
// Networks that the registry container is connected to.
Networks []string `json:"networks,omitempty" yaml:"networks,omitempty"`
// The ID of the container in Docker.
ContainerID string `json:"containerId,omitempty" yaml:"containerId,omitempty"`
// Current health status of the registry container.
// Reflects underlying ContainerState.Status
// https://github.com/moby/moby/blob/v20.10.3/api/types/types.go#L314
State string
// Labels attached to the running container.
Labels map[string]string `json:"labels,omitempty" yaml:"labels,omitempty"`
// Env attached to the running container.
Env []string `json:"env,omitempty" yaml:"env,omitempty"`
// Image for the running container.
Image string `json:"image,omitempty" yaml:"image,omitempty"`
// Warnings that occurred when reporting the registry status.
Warnings []string `json:"warnings,omitempty" yaml:"warnings,omitempty"`
}
func (*RegistryStatus) DeepCopy ¶
func (in *RegistryStatus) DeepCopy() *RegistryStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RegistryStatus.
func (*RegistryStatus) DeepCopyInto ¶
func (in *RegistryStatus) DeepCopyInto(out *RegistryStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TypeMeta ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TypeMeta.
func (*TypeMeta) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package k3dv1alpha4 implements the v1alpha4 apiVersion of k3d's config file.
|
Package k3dv1alpha4 implements the v1alpha4 apiVersion of k3d's config file. |
|
Package k3dv1alpha5 implements the v1alpha4 apiVersion of k3d's config file.
|
Package k3dv1alpha5 implements the v1alpha4 apiVersion of k3d's config file. |