Documentation
¶
Overview ¶
Package v1alpha2 contains API Schema definitions for the networking v1alpha2 API group. +kubebuilder:object:generate=true +groupName=networking.cfargotunnel.com
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register these objects. GroupVersion = schema.GroupVersion{Group: "networking.cfargotunnel.com", Version: "v1alpha2"} // 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 CloudflareDetails ¶
type CloudflareDetails struct {
// +kubebuilder:validation:Required
// Cloudflare Domain to which this tunnel belongs to
Domain string `json:"domain,omitempty"`
// +kubebuilder:validation:Required
// Secret containing Cloudflare API key/token
Secret string `json:"secret,omitempty"`
// +kubebuilder:validation:Optional
// Account Name in Cloudflare. AccountName and AccountId cannot be both empty. If both are provided, Account ID is used if valid, else falls back to Account Name.
AccountName string `json:"accountName,omitempty"`
// +kubebuilder:validation:Optional
// Account ID in Cloudflare. AccountId and AccountName cannot be both empty. If both are provided, Account ID is used if valid, else falls back to Account Name.
AccountId string `json:"accountId,omitempty"`
// +kubebuilder:validation:Optional
// Email to use along with API Key for Delete operations for new tunnels only, or as an alternate to API Token
Email string `json:"email,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:=CLOUDFLARE_API_KEY
// Key in the secret to use for Cloudflare API Key, defaults to CLOUDFLARE_API_KEY. Needs Email also to be provided.
// For Delete operations for new tunnels only, or as an alternate to API Token
CLOUDFLARE_API_KEY string `json:"CLOUDFLARE_API_KEY,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:=CLOUDFLARE_API_TOKEN
// Key in the secret to use for Cloudflare API token, defaults to CLOUDFLARE_API_TOKEN
CLOUDFLARE_API_TOKEN string `json:"CLOUDFLARE_API_TOKEN,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:=CLOUDFLARE_TUNNEL_CREDENTIAL_FILE
// Key in the secret to use as credentials.json for an existing tunnel, defaults to CLOUDFLARE_TUNNEL_CREDENTIAL_FILE
CLOUDFLARE_TUNNEL_CREDENTIAL_FILE string `json:"CLOUDFLARE_TUNNEL_CREDENTIAL_FILE,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:=CLOUDFLARE_TUNNEL_CREDENTIAL_SECRET
// Key in the secret to use as tunnel secret for an existing tunnel, defaults to CLOUDFLARE_TUNNEL_CREDENTIAL_SECRET
CLOUDFLARE_TUNNEL_CREDENTIAL_SECRET string `json:"CLOUDFLARE_TUNNEL_CREDENTIAL_SECRET,omitempty"`
}
CloudflareDetails spec contains all the necessary parameters needed to connect to the Cloudflare API.
func (*CloudflareDetails) DeepCopy ¶
func (in *CloudflareDetails) DeepCopy() *CloudflareDetails
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudflareDetails.
func (*CloudflareDetails) DeepCopyInto ¶
func (in *CloudflareDetails) DeepCopyInto(out *CloudflareDetails)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterTunnel ¶
type ClusterTunnel struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TunnelSpec `json:"spec,omitempty"`
Status TunnelStatus `json:"status,omitempty"`
}
ClusterTunnel is the Schema for the clustertunnels API
func (*ClusterTunnel) DeepCopy ¶
func (in *ClusterTunnel) DeepCopy() *ClusterTunnel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTunnel.
func (*ClusterTunnel) DeepCopyInto ¶
func (in *ClusterTunnel) DeepCopyInto(out *ClusterTunnel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterTunnel) DeepCopyObject ¶
func (in *ClusterTunnel) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterTunnelList ¶
type ClusterTunnelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []ClusterTunnel `json:"items"`
}
ClusterTunnelList contains a list of ClusterTunnel
func (*ClusterTunnelList) DeepCopy ¶
func (in *ClusterTunnelList) DeepCopy() *ClusterTunnelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterTunnelList.
func (*ClusterTunnelList) DeepCopyInto ¶
func (in *ClusterTunnelList) DeepCopyInto(out *ClusterTunnelList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterTunnelList) DeepCopyObject ¶
func (in *ClusterTunnelList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ExistingTunnel ¶
type ExistingTunnel struct {
// +kubebuilder:validation:Optional
// Existing Tunnel ID to run on. Tunnel ID and Tunnel Name cannot be both empty. If both are provided, ID is used if valid, else falls back to Name.
Id string `json:"id,omitempty"`
// +kubebuilder:validation:Optional
// Existing Tunnel name to run on. Tunnel Name and Tunnel ID cannot be both empty. If both are provided, ID is used if valid, else falls back to Name.
Name string `json:"name,omitempty"`
}
ExistingTunnel spec needs either a Tunnel Id or a Name to find it on Cloudflare.
func (*ExistingTunnel) DeepCopy ¶
func (in *ExistingTunnel) DeepCopy() *ExistingTunnel
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExistingTunnel.
func (*ExistingTunnel) DeepCopyInto ¶
func (in *ExistingTunnel) DeepCopyInto(out *ExistingTunnel)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NewTunnel ¶
type NewTunnel struct {
// +kubebuilder:validation:Required
// Tunnel name to create on Cloudflare.
Name string `json:"name,omitempty"`
}
NewTunnel spec needs a name to create a Tunnel on Cloudflare.
func (*NewTunnel) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NewTunnel.
func (*NewTunnel) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Tunnel ¶
type Tunnel struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec TunnelSpec `json:"spec,omitempty"`
Status TunnelStatus `json:"status,omitempty"`
}
Tunnel is the Schema for the tunnels API
func (*Tunnel) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Tunnel.
func (*Tunnel) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Tunnel) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TunnelList ¶
type TunnelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Tunnel `json:"items"`
}
TunnelList contains a list of Tunnel
func (*TunnelList) DeepCopy ¶
func (in *TunnelList) DeepCopy() *TunnelList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TunnelList.
func (*TunnelList) DeepCopyInto ¶
func (in *TunnelList) DeepCopyInto(out *TunnelList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TunnelList) DeepCopyObject ¶
func (in *TunnelList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type TunnelSpec ¶
type TunnelSpec struct {
// Deployment patch for the cloudflared deployment.
// Follows https://kubernetes.io/docs/reference/kubectl/generated/kubectl_patch/
// +kubebuilder:validation:Optional
// +kubebuilder:default:="{}"
DeployPatch string `json:"deployPatch,omitempty"`
// +kubebuilder:default:=false
// +kubebuilder:validation:Optional
// NoTlsVerify disables origin TLS certificate checks when the endpoint is HTTPS.
NoTlsVerify bool `json:"noTlsVerify,omitempty"`
// +kubebuilder:validation:Optional
// OriginCaPool speficies the secret with tls.crt (and other certs as needed to be referred in the service annotation) of the Root CA to be trusted when sending traffic to HTTPS endpoints
OriginCaPool string `json:"originCaPool,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum={"auto","quic","http2"}
// +kubebuilder:default:="auto"
// Protocol specifies the protocol to use for the tunnel. Defaults to auto. Options are "auto", "quic" and "http2"
Protocol string `json:"protocol,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default:="http_status:404"
// FallbackTarget speficies the target for requests that do not match an ingress. Defaults to http_status:404
FallbackTarget string `json:"fallbackTarget,omitempty"`
// +kubebuilder:validation:Required
// Cloudflare Credentials
Cloudflare CloudflareDetails `json:"cloudflare,omitempty"`
// +kubebuilder:validation:Optional
// Existing tunnel object.
// ExistingTunnel and NewTunnel cannot be both empty and are mutually exclusive.
ExistingTunnel *ExistingTunnel `json:"existingTunnel,omitempty"`
// +kubebuilder:validation:Optional
// New tunnel object.
// NewTunnel and ExistingTunnel cannot be both empty and are mutually exclusive.
NewTunnel *NewTunnel `json:"newTunnel,omitempty"`
}
TunnelSpec defines the desired state of Tunnel
func (*TunnelSpec) DeepCopy ¶
func (in *TunnelSpec) DeepCopy() *TunnelSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TunnelSpec.
func (*TunnelSpec) DeepCopyInto ¶
func (in *TunnelSpec) DeepCopyInto(out *TunnelSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TunnelStatus ¶
type TunnelStatus struct {
TunnelId string `json:"tunnelId"`
TunnelName string `json:"tunnelName"`
AccountId string `json:"accountId"`
ZoneId string `json:"zoneId"`
}
TunnelStatus defines the observed state of Tunnel
func (*TunnelStatus) DeepCopy ¶
func (in *TunnelStatus) DeepCopy() *TunnelStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TunnelStatus.
func (*TunnelStatus) DeepCopyInto ¶
func (in *TunnelStatus) DeepCopyInto(out *TunnelStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.