Documentation
¶
Index ¶
- Constants
- type CloudflareAPI
- func (c *CloudflareAPI) CreateCloudflareTunnel() (string, string, error)
- func (c *CloudflareAPI) DeleteCloudflareTunnel() error
- func (c *CloudflareAPI) DeleteDNSCName(fqdn string) error
- func (c *CloudflareAPI) GetAccountId() (string, 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 string) error
- func (c *CloudflareAPI) ValidateAll() error
- type CloudflareAPIMultiResponse
- type CloudflareAPIResponse
- type CloudflareAPITunnelCreate
- type ClusterTunnelReconciler
- type Configuration
- type IngressIPRule
- type OriginRequestConfig
- type ServiceReconciler
- type TunnelReconciler
- type UnvalidatedIngressRule
- type WarpRoutingConfig
Constants ¶
const CLOUDFLARE_ENDPOINT = "https://api.cloudflare.com/client/v4/"
CLOUDFLARE_ENDPOINT is the Cloudflare API base URL from https://api.cloudflare.com/#getting-started-endpoints.
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
}
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) DeleteDNSCName ¶
func (c *CloudflareAPI) DeleteDNSCName(fqdn string) error
DeleteDNSCName deletes DNS CNAME entry for the given FQDN
func (*CloudflareAPI) GetAccountId ¶
func (c *CloudflareAPI) GetAccountId() (string, error)
GetAccountId gets AccountId from Account Name
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 string) error
InsertOrUpdateCName upsert DNS CNAME 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 CloudflareAPIMultiResponse ¶
type CloudflareAPIMultiResponse struct {
Result []struct {
Id string
Name string
}
Errors []struct {
Message string
}
Success bool
}
CloudflareAPIMultiResponse object containing a slice of Results with a Name and Id field
type CloudflareAPIResponse ¶
type CloudflareAPIResponse struct {
Result struct {
Id string
Name string
CredentialsFile map[string]string `json:"credentials_file"`
}
Success bool
Errors []struct {
Message string
}
}
CloudflareAPIResponse object containing Result with a Name and Id field (includes an optional CredentialsFile for Tunnel responses)
type CloudflareAPITunnelCreate ¶
CloudflareAPITunnelCreate object containing Cloudflare API Input for creating a Tunnel
type ClusterTunnelReconciler ¶ added in v0.3.0
type ClusterTunnelReconciler struct {
client.Client
Scheme *runtime.Scheme
Namespace string
Recorder record.EventRecorder
// contains filtered or unexported fields
}
ClusterTunnelReconciler reconciles a ClusterTunnel object
func (*ClusterTunnelReconciler) Reconcile ¶ added in v0.3.0
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) SetupWithManager ¶ added in v0.3.0
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
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"`
// 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 ServiceReconciler ¶
type ServiceReconciler struct {
client.Client
Scheme *runtime.Scheme
Recorder record.EventRecorder
Namespace string
// contains filtered or unexported fields
}
ServiceReconciler reconciles a Service object
func (*ServiceReconciler) 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 (*ServiceReconciler) SetupWithManager ¶
func (r *ServiceReconciler) 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) 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) 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