v1alpha1

package
v1.2.7 Latest Latest
Warning

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

Go to latest
Published: May 30, 2024 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package v1alpha1 is the v1alpha1 version of the API.

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register MeshConfig
	SchemeGroupVersion = schema.GroupVersion{
		Group:   "flomesh.io",
		Version: "v1alpha1",
	}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)

	// AddToScheme adds all Resources to the Scheme
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Kind

func Kind(kind string) schema.GroupKind

Kind takes an unqualified kind and returns back a Group qualified GroupKind

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

Types

type HTTP

type HTTP struct {
	// +kubebuilder:default=true
	// +optional
	// Enabled, if HTTP is enabled for the Ingress Controller
	Enabled bool `json:"enabled"`

	// +kubebuilder:default={name: http, protocol: TCP, port: 80, targetPort: 8000}
	// +optional
	// Port, The http port that are exposed by this ingress service.
	Port ServicePort `json:"port,omitempty"`
}

HTTP defines the http configuration of this ingress controller.

func (*HTTP) DeepCopy

func (in *HTTP) DeepCopy() *HTTP

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

func (*HTTP) DeepCopyInto

func (in *HTTP) DeepCopyInto(out *HTTP)

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

type NamespacedIngress

type NamespacedIngress struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NamespacedIngressSpec   `json:"spec,omitempty"`
	Status NamespacedIngressStatus `json:"status,omitempty"`
}

NamespacedIngress is the Schema for the NamespacedIngresss API

func (*NamespacedIngress) DeepCopy

func (in *NamespacedIngress) DeepCopy() *NamespacedIngress

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

func (*NamespacedIngress) DeepCopyInto

func (in *NamespacedIngress) DeepCopyInto(out *NamespacedIngress)

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

func (*NamespacedIngress) DeepCopyObject

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

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

type NamespacedIngressList

type NamespacedIngressList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NamespacedIngress `json:"items"`
}

NamespacedIngressList contains a list of NamespacedIngress

func (*NamespacedIngressList) DeepCopy

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

func (*NamespacedIngressList) DeepCopyInto

func (in *NamespacedIngressList) DeepCopyInto(out *NamespacedIngressList)

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

func (*NamespacedIngressList) DeepCopyObject

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

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

type NamespacedIngressSpec

type NamespacedIngressSpec struct {
	// ServiceType determines how the Ingress is exposed. For an Ingress
	//   the most used types are NodePort, and LoadBalancer
	// +kubebuilder:default=LoadBalancer
	// +optional
	ServiceType corev1.ServiceType `json:"serviceType,omitempty"`

	// ServiceAnnotations, those annotations are applied to Ingress Service
	// +optional
	ServiceAnnotations map[string]string `json:"serviceAnnotations,omitempty"`

	// ServiceLabels, those annotations are applied to Ingress Service
	// +optional
	ServiceLabels map[string]string `json:"serviceLabels,omitempty"`

	// PodAnnotations, those annotations are applied to Ingress POD
	// +optional
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`

	// PodAnnotations, those labels are applied to Ingress POD
	// +optional
	PodLabels map[string]string `json:"podLabels,omitempty"`

	// +kubebuilder:default={enabled: true, port: {name: http, protocol: TCP, port: 80, targetPort: 8000}}
	// +optional
	// The HTTP configuration of this ingress controller.
	HTTP HTTP `json:"http,omitempty"`

	// +kubebuilder:default={enabled: false, port: {name: https, protocol: TCP, port: 443, targetPort: 8443}, sslPassthrough: {enabled: false, upstreamPort: 443}}
	// +optional
	// TLS is the configuration of TLS of this ingress controller
	TLS TLS `json:"tls,omitempty"`

	// List of environment variables to set in the ingress container.
	// Cannot be updated.
	// +optional
	Env []corev1.EnvVar `json:"env,omitempty"`

	// Compute Resources required by Ingress container.
	// Cannot be updated.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// NodeSelector is a selector which must be true for the pod to fit on a node.
	// Selector which must match a node's labels for the pod to be scheduled on that node.
	// +optional
	// +mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// If specified, the pod's scheduling constraints
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// If specified, the pod's tolerations.
	// +optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// +kubebuilder:default=info
	// +kubebuilder:validation:Enum=trace;debug;info;warn;error;fatal;panic;disabled
	// +optional
	// LogLevel is the log level of this ingress controller pod.
	LogLevel *string `json:"logLevel,omitempty"`

	// +kubebuilder:default=1
	// +kubebuilder:validation:Minimum=1
	// +optional
	// Replicas, how many replicas of the ingress controller will be running for this namespace.
	Replicas *int32 `json:"replicas,omitempty"`

	// SecurityContext defines the security options the container should be run with.
	// If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext.
	// +optional
	SecurityContext *corev1.SecurityContext `json:"securityContext,omitempty"`

	// PodSecurityContext holds pod-level security attributes and common container settings.
	// Optional: Defaults to empty.  See type description for default values of each field.
	// +optional
	PodSecurityContext *corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
}

NamespacedIngressSpec defines the desired state of NamespacedIngress

func (*NamespacedIngressSpec) DeepCopy

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

func (*NamespacedIngressSpec) DeepCopyInto

func (in *NamespacedIngressSpec) DeepCopyInto(out *NamespacedIngressSpec)

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

type NamespacedIngressStatus

type NamespacedIngressStatus struct {
	Replicas int32  `json:"replicas"`
	Selector string `json:"selector"`
}

NamespacedIngressStatus defines the observed state of NamespacedIngress

func (*NamespacedIngressStatus) DeepCopy

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

func (*NamespacedIngressStatus) DeepCopyInto

func (in *NamespacedIngressStatus) DeepCopyInto(out *NamespacedIngressStatus)

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

type SSLPassthrough

type SSLPassthrough struct {
	// +kubebuilder:default=false
	// +optional
	// Enabled, if SSL passthrough is enabled for the Ingress Controller
	//  It's mutual exclusive with TLS offload/termination within the controller scope.
	Enabled bool `json:"enabled"`

	// +kubebuilder:default=443
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=65535
	// +optional
	// UpstreamPort, is the port of upstream services.
	UpstreamPort *int32 `json:"upstreamPort"`
}

SSLPassthrough defines the SSLPassthrough configuration of this ingress controller.

func (*SSLPassthrough) DeepCopy

func (in *SSLPassthrough) DeepCopy() *SSLPassthrough

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

func (*SSLPassthrough) DeepCopyInto

func (in *SSLPassthrough) DeepCopyInto(out *SSLPassthrough)

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

type ServicePort added in v1.2.0

type ServicePort struct {
	// The name of this port within the service. This must be a DNS_LABEL.
	// All ports within a ServiceSpec must have unique names. When considering
	// the endpoints for a Service, this must match the 'name' field in the
	// EndpointPort.
	// Optional if only one ServicePort is defined on this service.
	// +optional
	Name string `json:"name,omitempty"`

	// The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
	// Default is TCP.
	// +default="TCP"
	// +optional
	Protocol corev1.Protocol `json:"protocol,omitempty"`

	// The port that will be exposed by this service.
	Port int32 `json:"port"`

	// Number or name of the port to access on the pods targeted by the service.
	// Number must be in the range 1 to 65535.
	// +optional
	TargetPort int32 `json:"targetPort,omitempty"`

	// The port on each node on which this service is exposed when type is
	// NodePort or LoadBalancer.  Usually assigned by the system. If a value is
	// specified, in-range, and not in use it will be used, otherwise the
	// operation will fail.  If not specified, a port will be allocated if this
	// Service requires one.  If this field is specified when creating a
	// Service which does not need it, creation will fail. This field will be
	// wiped when updating a Service to no longer need it (e.g. changing type
	// from NodePort to ClusterIP).
	// +optional
	NodePort int32 `json:"nodePort,omitempty"`
}

ServicePort contains information on service's port.

func (*ServicePort) DeepCopy added in v1.2.0

func (in *ServicePort) DeepCopy() *ServicePort

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

func (*ServicePort) DeepCopyInto added in v1.2.0

func (in *ServicePort) DeepCopyInto(out *ServicePort)

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

type TLS

type TLS struct {
	// +kubebuilder:default=false
	// +optional
	// Enabled, if TLS is enabled for the Ingress Controller
	Enabled bool `json:"enabled"`

	// +kubebuilder:default={name: https, protocol: TCP, port: 443, targetPort: 8443}
	// +optional
	// Port, The https port that are exposed by this ingress service.
	Port ServicePort `json:"port,omitempty"`

	// +kubebuilder:default=false
	// +optional
	// MTLS, if mTLS is enabled for the Ingress Controller
	MTLS bool `json:"mTLS,omitempty"`

	// +kubebuilder:default={enabled: false, upstreamPort: 443}
	// +optional
	// SSLPassthrough configuration
	SSLPassthrough SSLPassthrough `json:"sslPassthrough,omitempty"`
}

TLS defines the TLS configuration of this ingress controller.

func (*TLS) DeepCopy

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto

func (in *TLS) DeepCopyInto(out *TLS)

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