Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the stunner v1alpha1 API group +kubebuilder:object:generate=true +groupName=stunner.l7mp.io
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects GroupVersion = schema.GroupVersion{Group: "stunner.l7mp.io", Version: "v1alpha1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type Dataplane ¶ added in v0.15.1
type Dataplane struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty"` // Spec defines the behavior of a Dataplane resource. Spec DataplaneSpec `json:"spec,omitempty"` }
Dataplane is a collection of configuration parameters that can be used for spawning a `stunnerd` instance for a Gateway. Labels and annotations on the Dataplane object will be copied verbatim into the target Deployment.
func (*Dataplane) DeepCopy ¶ added in v0.15.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Dataplane.
func (*Dataplane) DeepCopyInto ¶ added in v0.15.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Dataplane) DeepCopyObject ¶ added in v0.15.1
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DataplaneList ¶ added in v0.15.1
type DataplaneList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty"` // List of services. Items []Dataplane `json:"items"` }
DataplaneList holds a list of static services.
func (*DataplaneList) DeepCopy ¶ added in v0.15.1
func (in *DataplaneList) DeepCopy() *DataplaneList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataplaneList.
func (*DataplaneList) DeepCopyInto ¶ added in v0.15.1
func (in *DataplaneList) DeepCopyInto(out *DataplaneList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*DataplaneList) DeepCopyObject ¶ added in v0.15.1
func (in *DataplaneList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type DataplaneSpec ¶ added in v0.15.1
type DataplaneSpec struct { // Number of desired pods. This is a pointer to distinguish between explicit zero and not // specified. Defaults to 1. // // +optional Replicas *int32 `json:"replicas,omitempty"` // Container image name. // // +optional Image string `json:"image,omitempty"` // Image pull policy. One of Always, Never, IfNotPresent. // // +optional ImagePullPolicy *corev1.PullPolicy `json:"imagePullPolicy,omitempty"` // Entrypoint array. Defaults: "stunnerd". // // +optional Command []string `json:"command,omitempty"` // Arguments to the entrypoint. // // +optional Args []string `json:"args,omitempty"` // List of environment variables to set in the stunnerd container. // // +optional Env []corev1.EnvVar `json:"env,omitempty"` // Resources required by stunnerd. // // +optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // Optional duration in seconds the stunnerd needs to terminate gracefully. Defaults to 3600 seconds. // // +optional TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"` // Host networking requested for the stunnerd pod to use the host's network namespace. // Can be used to implement public TURN servers with Kubernetes. Defaults to false. // // +optional HostNetwork bool `json:"hostNetwork,omitempty"` // Scheduling constraints. // // +optional Affinity *corev1.Affinity `json:"affinity,omitempty"` // SecurityContext holds pod-level security attributes and common container settings. // // +optional SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"` // If specified, the pod's tolerations. // // +optional Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // If specified, the health-check port. // // +optional HealthCheckPort *int `json:"healthCheckPort,omitempty"` }
DataplaneSpec describes the prefixes reachable via a Dataplane.
func (*DataplaneSpec) DeepCopy ¶ added in v0.15.1
func (in *DataplaneSpec) DeepCopy() *DataplaneSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataplaneSpec.
func (*DataplaneSpec) DeepCopyInto ¶ added in v0.15.1
func (in *DataplaneSpec) DeepCopyInto(out *DataplaneSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type GatewayConfig ¶
type GatewayConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec GatewayConfigSpec `json:"spec,omitempty"` }
GatewayConfig is the Schema for the gatewayconfigs API
func (*GatewayConfig) DeepCopy ¶
func (in *GatewayConfig) DeepCopy() *GatewayConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfig.
func (*GatewayConfig) DeepCopyInto ¶
func (in *GatewayConfig) DeepCopyInto(out *GatewayConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GatewayConfig) DeepCopyObject ¶
func (in *GatewayConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GatewayConfigList ¶
type GatewayConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []GatewayConfig `json:"items"` }
GatewayConfigList contains a list of GatewayConfig
func (*GatewayConfigList) DeepCopy ¶
func (in *GatewayConfigList) DeepCopy() *GatewayConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigList.
func (*GatewayConfigList) DeepCopyInto ¶
func (in *GatewayConfigList) DeepCopyInto(out *GatewayConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*GatewayConfigList) DeepCopyObject ¶
func (in *GatewayConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type GatewayConfigSpec ¶
type GatewayConfigSpec struct { // StunnerConfig specifies the name of the ConfigMap into which the operator renders the // stunnerd configfile. // // +optional // +kubebuilder:validation:MaxLength=64 // +kubebuilder:validation:Pattern=`^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$` // +kubebuilder:default:="stunnerd-config" StunnerConfig *string `json:"stunnerConfig,omitempty"` // Realm defines the STUN/TURN authentication realm to be used for clients toauthenticate // with STUNner. // // The realm must consist of lower case alphanumeric characters or '-', and must start and // end with an alphanumeric character. No other punctuation is allowed. // // +optional // +kubebuilder:validation:Pattern=`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$` // +kubebuilder:default:="stunner.l7mp.io" Realm *string `json:"realm,omitempty"` // MetricsEndpoint is the URI in the form `http://address:port/path` exposed for metric // scraping (Prometheus). The scheme (`http://`) is mandatory. Default is to expose no // metric endpoint. // // +optional MetricsEndpoint *string `json:"metricsEndpoint,omitempty"` // HealthCheckEndpoint is the URI of the form `http://address:port` exposed for external // HTTP health-checking. A liveness probe responder will be exposed on path `/live` and // readiness probe on path `/ready`. The scheme (`http://`) is mandatory, default is to // enable health-checking at "http://0.0.0.0:8086". // // +optional HealthCheckEndpoint *string `json:"healthCheckEndpoint,omitempty"` // AuthType is the type of the STUN/TURN authentication mechanism. // // +optional // +kubebuilder:validation:Pattern=`^plaintext|static|longterm|ephemeral|timewindowed$` // +kubebuilder:default:="plaintext" AuthType *string `json:"authType,omitempty"` // Username defines the `username` credential for "plaintext" authentication. // // +optional // +kubebuilder:validation:Pattern=`^[A-Za-z0-9!#$%&'*+\-.^_\x60|~]+$` Username *string `json:"userName,omitempty"` // Password defines the `password` credential for "plaintext" authentication. // // +optional // +kubebuilder:validation:Pattern=`^[A-Za-z0-9!#$%&'*+\-.^_\x60|~]+$` Password *string `json:"password,omitempty"` // // +optional SharedSecret *string `json:"sharedSecret,omitempty"` // AuthLifetime defines the lifetime of "longterm" authentication credentials in seconds. // // +optional AuthLifetime *int32 `json:"authLifetime,omitempty"` // Note that externally set credentials override any inline auth credentials (AuthType, // AuthUsername, etc.): if AuthRef is nonempty then it is expected that the referenced // Secret exists and *all* authentication credentials are correctly set in the referenced // Secret (username/password or shared secret). Mixing of credential sources // (inline/external) is not supported. // // +optional AuthRef *gwapiv1.SecretObjectReference `json:"authRef,omitempty"` // LoadBalancerServiceAnnotations is a list of annotations that will go into the // LoadBalancer services created automatically by the operator to wrap Gateways. // // NOTE: removing annotations from a GatewayConfig will not result in the removal of the // corresponding annotations from the LoadBalancer service, in order to prevent the // accidental removal of an annotation installed there by Kubernetes or the cloud // provider. If you really want to remove an annotation, do this manually or simply remove // all Gateways (which will remove the corresponding LoadBalancer services), update the // GatewayConfig and then recreate the Gateways, so that the newly created LoadBalancer // services will contain the required annotations. // // +optional LoadBalancerServiceAnnotations map[string]string `json:"loadBalancerServiceAnnotations,omitempty"` // LogLevel specifies the default loglevel for the STUNner daemon. // // +optional LogLevel *string `json:"logLevel,omitempty"` // MinRelayPort is the smallest relay port assigned for STUNner relay connections. // // +optional // +kubebuilder:validation:Minimum:1 // +kubebuilder:validation:Maximum:65535 MinPort *int32 `json:"minPort,omitempty"` // MaxRelayPort is the smallest relay port assigned for STUNner relay connections. // // +kubebuilder:validation:Minimum:1 // +kubebuilder:validation:Maximum:65535 MaxPort *int32 `json:"maxPort,omitempty"` // Dataplane defines the TURN server to set up for the STUNner Gateways using this // GatewayConfig. Can be used to select the stunnerd image repo and version or deploy into // the host-network namespace. // // +optional // +kubebuilder:default:="default" Dataplane *string `json:"dataplane,omitempty"` }
GatewayConfigSpec defines the desired state of GatewayConfig
func (*GatewayConfigSpec) DeepCopy ¶
func (in *GatewayConfigSpec) DeepCopy() *GatewayConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayConfigSpec.
func (*GatewayConfigSpec) DeepCopyInto ¶
func (in *GatewayConfigSpec) DeepCopyInto(out *GatewayConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type StaticService ¶ added in v0.15.1
type StaticService struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the behavior of a service. Spec StaticServiceSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` }
StaticService is a set of static IP address prefixes STUNner allows access to via a Route. The purpose is to allow a Service-like CRD containing a set of static IP address prefixes to be set as the backend of a UDPRoute (or TCPRoute).
func (*StaticService) DeepCopy ¶ added in v0.15.1
func (in *StaticService) DeepCopy() *StaticService
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticService.
func (*StaticService) DeepCopyInto ¶ added in v0.15.1
func (in *StaticService) DeepCopyInto(out *StaticService)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StaticService) DeepCopyObject ¶ added in v0.15.1
func (in *StaticService) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StaticServiceList ¶ added in v0.15.1
type StaticServiceList struct { metav1.TypeMeta `json:",inline"` // +optional metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // List of services. Items []StaticService `json:"items"` }
StaticServiceList holds a list of static services.
func (*StaticServiceList) DeepCopy ¶ added in v0.15.1
func (in *StaticServiceList) DeepCopy() *StaticServiceList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticServiceList.
func (*StaticServiceList) DeepCopyInto ¶ added in v0.15.1
func (in *StaticServiceList) DeepCopyInto(out *StaticServiceList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*StaticServiceList) DeepCopyObject ¶ added in v0.15.1
func (in *StaticServiceList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type StaticServiceSpec ¶ added in v0.15.1
type StaticServiceSpec struct { // The list of ports reachable via this service (currently omitted). // +patchMergeKey=port // +patchStrategy=merge // +listType=map // +listMapKey=port // +listMapKey=protocol // +optional Ports []corev1.ServicePort `json:"ports,omitempty" patchStrategy:"merge" patchMergeKey:"port" protobuf:"bytes,1,rep,name=ports"` // Prefixes is a list of IP address prefixes reachable via this route. Prefixes []string `json:"prefixes"` }
StaticServiceSpec describes the prefixes reachable via a StaticService.
func (*StaticServiceSpec) DeepCopy ¶ added in v0.15.1
func (in *StaticServiceSpec) DeepCopy() *StaticServiceSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StaticServiceSpec.
func (*StaticServiceSpec) DeepCopyInto ¶ added in v0.15.1
func (in *StaticServiceSpec) DeepCopyInto(out *StaticServiceSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.