Documentation
¶
Index ¶
- Constants
- type CloudflareAPI
- func (c *CloudflareAPI) CreateCloudflareTunnel() (string, string, error)
- func (c *CloudflareAPI) DeleteCloudflareTunnel() error
- func (c *CloudflareAPI) DeleteDNSId(fqdn, dnsId string, created bool) error
- func (c *CloudflareAPI) GetAccountId() (string, error)
- func (c *CloudflareAPI) GetDNSCNameId(fqdn string) (string, error)
- func (c *CloudflareAPI) GetManagedDnsTxt(fqdn string) (string, DnsManagedRecordTxt, bool, error)
- func (c *CloudflareAPI) GetTunnelCreds(tunnelSecret string) (string, error)
- func (c *CloudflareAPI) GetTunnelId() (string, error)
- func (c *CloudflareAPI) GetZoneId() (string, error)
- func (c *CloudflareAPI) InsertOrUpdateCName(fqdn, dnsId string) (string, error)
- func (c *CloudflareAPI) InsertOrUpdateTXT(fqdn, txtId, dnsId string) error
- func (c *CloudflareAPI) ValidateAll() error
- type CloudflareTunnelCredentialsFile
- type ClusterTunnelAdapter
- func (o ClusterTunnelAdapter) DeepCopyTunnel() Tunnel
- func (o ClusterTunnelAdapter) GetAnnotations() map[string]string
- func (o ClusterTunnelAdapter) GetLabels() map[string]string
- func (o ClusterTunnelAdapter) GetName() string
- func (o ClusterTunnelAdapter) GetNamespace() string
- func (o ClusterTunnelAdapter) GetObject() client.Object
- func (o ClusterTunnelAdapter) GetSpec() networkingv1alpha1.TunnelSpec
- func (o ClusterTunnelAdapter) GetStatus() networkingv1alpha1.TunnelStatus
- func (o ClusterTunnelAdapter) GetUID() types.UID
- func (o ClusterTunnelAdapter) SetAnnotations(in map[string]string)
- func (o ClusterTunnelAdapter) SetLabels(in map[string]string)
- func (o ClusterTunnelAdapter) SetStatus(in networkingv1alpha1.TunnelStatus)
- type ClusterTunnelReconciler
- func (r *ClusterTunnelReconciler) GetCfAPI() *CloudflareAPI
- func (r *ClusterTunnelReconciler) GetCfSecret() *corev1.Secret
- func (r *ClusterTunnelReconciler) GetClient() client.Client
- func (r *ClusterTunnelReconciler) GetContext() context.Context
- func (r *ClusterTunnelReconciler) GetLog() logr.Logger
- func (r *ClusterTunnelReconciler) GetRecorder() record.EventRecorder
- func (r *ClusterTunnelReconciler) GetScheme() *runtime.Scheme
- func (r *ClusterTunnelReconciler) GetTunnel() Tunnel
- func (r *ClusterTunnelReconciler) GetTunnelCreds() string
- func (r *ClusterTunnelReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
- func (r *ClusterTunnelReconciler) SetCfAPI(in *CloudflareAPI)
- func (r *ClusterTunnelReconciler) SetTunnelCreds(in string)
- func (r *ClusterTunnelReconciler) SetupWithManager(mgr ctrl.Manager) error
- type Configuration
- type DnsManagedRecordTxt
- type GenericTunnelReconciler
- type IngressIPRule
- type OriginRequestConfig
- type Tunnel
- type TunnelAdapter
- func (o TunnelAdapter) DeepCopyTunnel() Tunnel
- func (o TunnelAdapter) GetAnnotations() map[string]string
- func (o TunnelAdapter) GetLabels() map[string]string
- func (o TunnelAdapter) GetName() string
- func (o TunnelAdapter) GetNamespace() string
- func (o TunnelAdapter) GetObject() client.Object
- func (o TunnelAdapter) GetSpec() networkingv1alpha1.TunnelSpec
- func (o TunnelAdapter) GetStatus() networkingv1alpha1.TunnelStatus
- func (o TunnelAdapter) GetUID() types.UID
- func (o TunnelAdapter) SetAnnotations(in map[string]string)
- func (o TunnelAdapter) SetLabels(in map[string]string)
- func (o TunnelAdapter) SetStatus(in networkingv1alpha1.TunnelStatus)
- type TunnelBindingReconciler
- type TunnelReconciler
- func (r *TunnelReconciler) GetCfAPI() *CloudflareAPI
- func (r *TunnelReconciler) GetCfSecret() *corev1.Secret
- func (r *TunnelReconciler) GetClient() client.Client
- func (r *TunnelReconciler) GetContext() context.Context
- func (r *TunnelReconciler) GetLog() logr.Logger
- func (r *TunnelReconciler) GetRecorder() record.EventRecorder
- func (r *TunnelReconciler) GetScheme() *runtime.Scheme
- func (r *TunnelReconciler) GetTunnel() Tunnel
- func (r *TunnelReconciler) GetTunnelCreds() string
- func (r *TunnelReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
- func (r *TunnelReconciler) SetCfAPI(in *CloudflareAPI)
- func (r *TunnelReconciler) SetTunnelCreds(in string)
- func (r *TunnelReconciler) SetupWithManager(mgr ctrl.Manager) error
- type UnvalidatedIngressRule
- type WarpRoutingConfig
Constants ¶
const TXT_PREFIX = "_managed."
TXT_PREFIX is the prefix added to TXT records for whom the corresponding DNS records are managed by the operator.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CloudflareAPI ¶
type CloudflareAPI struct {
Log logr.Logger
TunnelName string
TunnelId string
AccountName string
AccountId string
Domain string
APIToken string
APIKey string
APIEmail string
ValidAccountId string
ValidTunnelId string
ValidTunnelName string
ValidZoneId string
CloudflareClient *cloudflare.API
}
CloudflareAPI config object holding all relevant fields to use the API
func (*CloudflareAPI) CreateCloudflareTunnel ¶
func (c *CloudflareAPI) CreateCloudflareTunnel() (string, string, error)
CreateCloudflareTunnel creates a Cloudflare Tunnel and returns the tunnel Id and credentials file
func (*CloudflareAPI) DeleteCloudflareTunnel ¶
func (c *CloudflareAPI) DeleteCloudflareTunnel() error
DeleteCloudflareTunnel deletes a Cloudflare Tunnel
func (*CloudflareAPI) DeleteDNSId ¶
func (c *CloudflareAPI) DeleteDNSId(fqdn, dnsId string, created bool) error
DeleteDNSId deletes DNS entry for the given dnsId
func (*CloudflareAPI) GetAccountId ¶
func (c *CloudflareAPI) GetAccountId() (string, error)
GetAccountId gets AccountId from Account Name
func (*CloudflareAPI) GetDNSCNameId ¶
func (c *CloudflareAPI) GetDNSCNameId(fqdn string) (string, error)
GetDNSCNameId returns the ID of the CNAME record requested
func (*CloudflareAPI) GetManagedDnsTxt ¶
func (c *CloudflareAPI) GetManagedDnsTxt(fqdn string) (string, DnsManagedRecordTxt, bool, error)
GetManagedDnsTxt gets the TXT record corresponding to the fqdn
func (*CloudflareAPI) GetTunnelCreds ¶
func (c *CloudflareAPI) GetTunnelCreds(tunnelSecret string) (string, error)
GetTunnelCreds gets Tunnel Credentials from Tunnel secret
func (*CloudflareAPI) GetTunnelId ¶
func (c *CloudflareAPI) GetTunnelId() (string, error)
GetTunnelId gets Tunnel Id from available information
func (*CloudflareAPI) GetZoneId ¶
func (c *CloudflareAPI) GetZoneId() (string, error)
GetZoneId gets Zone Id from DNS domain
func (*CloudflareAPI) InsertOrUpdateCName ¶
func (c *CloudflareAPI) InsertOrUpdateCName(fqdn, dnsId string) (string, error)
InsertOrUpdateCName upsert DNS CNAME record for the given FQDN to point to the tunnel
func (*CloudflareAPI) InsertOrUpdateTXT ¶
func (c *CloudflareAPI) InsertOrUpdateTXT(fqdn, txtId, dnsId string) error
InsertOrUpdateTXT upsert DNS TXT record for the given FQDN to point to the tunnel
func (*CloudflareAPI) ValidateAll ¶
func (c *CloudflareAPI) ValidateAll() error
ValidateAll validates the contents of the CloudflareAPI struct
type CloudflareTunnelCredentialsFile ¶
type CloudflareTunnelCredentialsFile struct {
AccountTag string `json:"AccountTag"`
TunnelID string `json:"TunnelID"`
TunnelName string `json:"TunnelName"`
TunnelSecret string `json:"TunnelSecret"`
}
CloudflareTunnelCredentialsFile object containing the fields that make up a Cloudflare Tunnel's credentials
type ClusterTunnelAdapter ¶
type ClusterTunnelAdapter struct {
Tunnel *networkingv1alpha1.ClusterTunnel
Namespace string
}
ClusterTunnelAdapter implementation
func (ClusterTunnelAdapter) DeepCopyTunnel ¶
func (o ClusterTunnelAdapter) DeepCopyTunnel() Tunnel
func (ClusterTunnelAdapter) GetAnnotations ¶
func (o ClusterTunnelAdapter) GetAnnotations() map[string]string
func (ClusterTunnelAdapter) GetLabels ¶
func (o ClusterTunnelAdapter) GetLabels() map[string]string
func (ClusterTunnelAdapter) GetName ¶
func (o ClusterTunnelAdapter) GetName() string
func (ClusterTunnelAdapter) GetNamespace ¶
func (o ClusterTunnelAdapter) GetNamespace() string
func (ClusterTunnelAdapter) GetObject ¶
func (o ClusterTunnelAdapter) GetObject() client.Object
func (ClusterTunnelAdapter) GetSpec ¶
func (o ClusterTunnelAdapter) GetSpec() networkingv1alpha1.TunnelSpec
func (ClusterTunnelAdapter) GetStatus ¶
func (o ClusterTunnelAdapter) GetStatus() networkingv1alpha1.TunnelStatus
func (ClusterTunnelAdapter) GetUID ¶
func (o ClusterTunnelAdapter) GetUID() types.UID
func (ClusterTunnelAdapter) SetAnnotations ¶
func (o ClusterTunnelAdapter) SetAnnotations(in map[string]string)
func (ClusterTunnelAdapter) SetLabels ¶
func (o ClusterTunnelAdapter) SetLabels(in map[string]string)
func (ClusterTunnelAdapter) SetStatus ¶
func (o ClusterTunnelAdapter) SetStatus(in networkingv1alpha1.TunnelStatus)
type ClusterTunnelReconciler ¶
type ClusterTunnelReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Namespace string
// contains filtered or unexported fields
}
ClusterTunnelReconciler reconciles a ClusterTunnel object
func (*ClusterTunnelReconciler) GetCfAPI ¶
func (r *ClusterTunnelReconciler) GetCfAPI() *CloudflareAPI
func (*ClusterTunnelReconciler) GetCfSecret ¶
func (r *ClusterTunnelReconciler) GetCfSecret() *corev1.Secret
func (*ClusterTunnelReconciler) GetClient ¶
func (r *ClusterTunnelReconciler) GetClient() client.Client
func (*ClusterTunnelReconciler) GetContext ¶
func (r *ClusterTunnelReconciler) GetContext() context.Context
func (*ClusterTunnelReconciler) GetLog ¶
func (r *ClusterTunnelReconciler) GetLog() logr.Logger
func (*ClusterTunnelReconciler) GetRecorder ¶
func (r *ClusterTunnelReconciler) GetRecorder() record.EventRecorder
func (*ClusterTunnelReconciler) GetScheme ¶
func (r *ClusterTunnelReconciler) GetScheme() *runtime.Scheme
func (*ClusterTunnelReconciler) GetTunnel ¶
func (r *ClusterTunnelReconciler) GetTunnel() Tunnel
func (*ClusterTunnelReconciler) GetTunnelCreds ¶
func (r *ClusterTunnelReconciler) GetTunnelCreds() string
func (*ClusterTunnelReconciler) Reconcile ¶
func (r *ClusterTunnelReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state. TODO(user): Modify the Reconcile function to compare the state specified by the ClusterTunnel object against the actual cluster state, and then perform operations to make the cluster state reflect the state specified by the user.
For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile
func (*ClusterTunnelReconciler) SetCfAPI ¶
func (r *ClusterTunnelReconciler) SetCfAPI(in *CloudflareAPI)
func (*ClusterTunnelReconciler) SetTunnelCreds ¶
func (r *ClusterTunnelReconciler) SetTunnelCreds(in string)
func (*ClusterTunnelReconciler) SetupWithManager ¶
func (r *ClusterTunnelReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type Configuration ¶
type Configuration struct {
TunnelId string `yaml:"tunnel"`
Ingress []UnvalidatedIngressRule `yaml:"ingress,omitempty"`
WarpRouting WarpRoutingConfig `yaml:"warp-routing,omitempty"`
OriginRequest OriginRequestConfig `yaml:"originRequest,omitempty"`
SourceFile string `yaml:"credentials-file"`
Metrics string `yaml:"metrics,omitempty"`
NoAutoUpdate bool `yaml:"no-autoupdate,omitempty"`
}
Configuration is a cloudflared configuration yaml model https://github.com/cloudflare/cloudflared/blob/master/config/configuration.go
type DnsManagedRecordTxt ¶
type DnsManagedRecordTxt struct {
DnsId string // DnsId of the managed record
TunnelName string // TunnelName of the managed record
TunnelId string // TunnelId of the managed record
}
DnsManagedRecordTxt object that represents each managed DNS record in a separate TXT record
type GenericTunnelReconciler ¶
type GenericTunnelReconciler interface {
GetClient() client.Client
GetRecorder() record.EventRecorder
GetScheme() *runtime.Scheme
GetContext() context.Context
GetLog() logr.Logger
GetTunnel() Tunnel
GetCfAPI() *CloudflareAPI
SetCfAPI(*CloudflareAPI)
GetCfSecret() *corev1.Secret
GetTunnelCreds() string
SetTunnelCreds(string)
}
type IngressIPRule ¶
type IngressIPRule struct {
Prefix *string `yaml:"prefix,omitempty"`
Ports []int `yaml:"ports,omitempty"`
Allow bool `yaml:"allow,omitempty"`
}
IngressIPRule is a cloudflared origin ingress IP rule config model
type OriginRequestConfig ¶
type OriginRequestConfig struct {
// HTTP proxy timeout for establishing a new connection
ConnectTimeout *time.Duration `yaml:"connectTimeout,omitempty"`
// HTTP proxy timeout for completing a TLS handshake
TLSTimeout *time.Duration `yaml:"tlsTimeout,omitempty"`
// HTTP proxy TCP keepalive duration
TCPKeepAlive *time.Duration `yaml:"tcpKeepAlive,omitempty"`
// HTTP proxy should disable "happy eyeballs" for IPv4/v6 fallback
NoHappyEyeballs *bool `yaml:"noHappyEyeballs,omitempty"`
// HTTP proxy maximum keepalive connection pool size
KeepAliveConnections *int `yaml:"keepAliveConnections,omitempty"`
// HTTP proxy timeout for closing an idle connection
KeepAliveTimeout *time.Duration `yaml:"keepAliveTimeout,omitempty"`
// Sets the HTTP Host header for the local webserver.
HTTPHostHeader *string `yaml:"httpHostHeader,omitempty"`
// Hostname on the origin server certificate.
OriginServerName *string `yaml:"originServerName,omitempty"`
// Path to the CA for the certificate of your origin.
// This option should be used only if your certificate is not signed by Cloudflare.
CAPool *string `yaml:"caPool,omitempty"`
// Disables TLS verification of the certificate presented by your origin.
// Will allow any certificate from the origin to be accepted.
// Note: The connection from your machine to Cloudflare's Edge is still encrypted.
NoTLSVerify *bool `yaml:"noTLSVerify,omitempty"`
// Attempt to connect to origin using HTTP2. Origin must be configured as https.
Http2Origin *bool `yaml:"http2Origin,omitempty"`
// Disables chunked transfer encoding.
// Useful if you are running a WSGI server.
DisableChunkedEncoding *bool `yaml:"disableChunkedEncoding,omitempty"`
// Runs as jump host
BastionMode *bool `yaml:"bastionMode,omitempty"`
// Listen address for the proxy.
ProxyAddress *string `yaml:"proxyAddress,omitempty"`
// Listen port for the proxy.
ProxyPort *uint `yaml:"proxyPort,omitempty"`
// Valid options are 'socks' or empty.
ProxyType *string `yaml:"proxyType,omitempty"`
// IP rules for the proxy service
IPRules []IngressIPRule `yaml:"ipRules,omitempty"`
}
OriginRequestConfig is a cloudflared origin request configuration model
type Tunnel ¶
type Tunnel interface {
GetObject() client.Object
GetNamespace() string
GetName() string
GetLabels() map[string]string
SetLabels(map[string]string)
GetAnnotations() map[string]string
SetAnnotations(map[string]string)
GetSpec() networkingv1alpha1.TunnelSpec
GetStatus() networkingv1alpha1.TunnelStatus
SetStatus(networkingv1alpha1.TunnelStatus)
DeepCopyTunnel() Tunnel
}
type TunnelAdapter ¶
type TunnelAdapter struct {
Tunnel *networkingv1alpha1.Tunnel
}
TunnelAdapter implementation
func (TunnelAdapter) DeepCopyTunnel ¶
func (o TunnelAdapter) DeepCopyTunnel() Tunnel
func (TunnelAdapter) GetAnnotations ¶
func (o TunnelAdapter) GetAnnotations() map[string]string
func (TunnelAdapter) GetLabels ¶
func (o TunnelAdapter) GetLabels() map[string]string
func (TunnelAdapter) GetName ¶
func (o TunnelAdapter) GetName() string
func (TunnelAdapter) GetNamespace ¶
func (o TunnelAdapter) GetNamespace() string
func (TunnelAdapter) GetObject ¶
func (o TunnelAdapter) GetObject() client.Object
func (TunnelAdapter) GetSpec ¶
func (o TunnelAdapter) GetSpec() networkingv1alpha1.TunnelSpec
func (TunnelAdapter) GetStatus ¶
func (o TunnelAdapter) GetStatus() networkingv1alpha1.TunnelStatus
func (TunnelAdapter) GetUID ¶
func (o TunnelAdapter) GetUID() types.UID
func (TunnelAdapter) SetAnnotations ¶
func (o TunnelAdapter) SetAnnotations(in map[string]string)
func (TunnelAdapter) SetLabels ¶
func (o TunnelAdapter) SetLabels(in map[string]string)
func (TunnelAdapter) SetStatus ¶
func (o TunnelAdapter) SetStatus(in networkingv1alpha1.TunnelStatus)
type TunnelBindingReconciler ¶
type TunnelBindingReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Namespace string
OverwriteUnmanaged bool
// contains filtered or unexported fields
}
TunnelBindingReconciler reconciles a TunnelBinding object
func (*TunnelBindingReconciler) Reconcile ¶
func (r *TunnelBindingReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error)
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile
func (*TunnelBindingReconciler) SetupWithManager ¶
func (r *TunnelBindingReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type TunnelReconciler ¶
type TunnelReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
// contains filtered or unexported fields
}
TunnelReconciler reconciles a Tunnel object
func (*TunnelReconciler) GetCfAPI ¶
func (r *TunnelReconciler) GetCfAPI() *CloudflareAPI
func (*TunnelReconciler) GetCfSecret ¶
func (r *TunnelReconciler) GetCfSecret() *corev1.Secret
func (*TunnelReconciler) GetClient ¶
func (r *TunnelReconciler) GetClient() client.Client
func (*TunnelReconciler) GetContext ¶
func (r *TunnelReconciler) GetContext() context.Context
func (*TunnelReconciler) GetLog ¶
func (r *TunnelReconciler) GetLog() logr.Logger
func (*TunnelReconciler) GetRecorder ¶
func (r *TunnelReconciler) GetRecorder() record.EventRecorder
func (*TunnelReconciler) GetScheme ¶
func (r *TunnelReconciler) GetScheme() *runtime.Scheme
func (*TunnelReconciler) GetTunnel ¶
func (r *TunnelReconciler) GetTunnel() Tunnel
func (*TunnelReconciler) GetTunnelCreds ¶
func (r *TunnelReconciler) GetTunnelCreds() string
func (*TunnelReconciler) Reconcile ¶
Reconcile is part of the main kubernetes reconciliation loop which aims to move the current state of the cluster closer to the desired state.
For more details, check Reconcile and its Result here: - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.10.0/pkg/reconcile
func (*TunnelReconciler) SetCfAPI ¶
func (r *TunnelReconciler) SetCfAPI(in *CloudflareAPI)
func (*TunnelReconciler) SetTunnelCreds ¶
func (r *TunnelReconciler) SetTunnelCreds(in string)
func (*TunnelReconciler) SetupWithManager ¶
func (r *TunnelReconciler) SetupWithManager(mgr ctrl.Manager) error
SetupWithManager sets up the controller with the Manager.
type UnvalidatedIngressRule ¶
type UnvalidatedIngressRule struct {
Hostname string `yaml:"hostname,omitempty"`
Path string `yaml:"path,omitempty"`
Service string
OriginRequest OriginRequestConfig `yaml:"originRequest,omitempty"`
}
UnvalidatedIngressRule is a cloudflared ingress entry model
type WarpRoutingConfig ¶
type WarpRoutingConfig struct {
Enabled bool `yaml:"enabled,omitempty"`
}
WarpRoutingConfig is a cloudflared warp routing model