v1

package
v0.0.0-...-918d963 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2022 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the forward v1 API group +k8s:deepcopy-gen=package,register +groupName=forward.webhookrelay.com

Package v1 contains API Schema definitions for the forward v1 API group +k8s:deepcopy-gen=package,register +groupName=forward.webhookrelay.com

Index

Constants

View Source
const (
	AccessTokenKeyName    = "key"
	AccessTokenSecretName = "secret"
)

Map keys used in secret

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "forward.webhookrelay.com", Version: "v1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)

Functions

This section is empty.

Types

type AgentStatus

type AgentStatus string

AgentStatus is the phase of the Webhook Relay forwarder node at a given point in time.

const (
	AgentStatusInitial     AgentStatus = ""
	AgentStatusRunning     AgentStatus = "Running"
	AgentStatusCreating    AgentStatus = "Creating"
	AgentStatusTerminating AgentStatus = "Terminating" // TODO: needs finalizer
)

Constants for operator defaults values and different phases.

type BucketSpec

type BucketSpec struct {
	// Name is the name of a bucket that can be reused
	// (if it already exists) or that will be created by the operator. Buckets
	// act as a grouping mechanism for Inputs and Outputs
	Name string `json:"name,omitempty"`

	Description string `json:"description,omitempty"`

	// Inputs are your public endpoints. Inputs can either be https://my.webhookrelay.com/v1/webhooks/[unique ID]
	// format or custom subdomains under https://[subdomain].hooks.webhookrelay.com or
	// completely custom domains such as https://hooks.example.com.
	// Important! Note that if you specify inputs, operator will automatically synchronize inputs of the specified
	// bucket with the provided CR spec.
	Inputs []InputSpec `json:"inputs,omitempty"`

	// Outputs are destinations where webhooks/API requests should be forwarded.
	Outputs []OutputSpec `json:"outputs,omitempty"`
}

BucketSpec defines a bucket that groups one or more inputs (public endpoints) and one ore more outputs (where the webhooks should be routed)

func (*BucketSpec) DeepCopy

func (in *BucketSpec) DeepCopy() *BucketSpec

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

func (*BucketSpec) DeepCopyInto

func (in *BucketSpec) DeepCopyInto(out *BucketSpec)

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

type InputSpec

type InputSpec struct {
	Name string `json:"name,omitempty"`

	// FunctionID attaches function to this input. Functions on inputs can modify
	// responses to the caller and modify requests that are then passed to each
	// output.
	FunctionID string `json:"functionId,omitempty"`

	// Static response configuration
	ResponseHeaders    map[string][]string `json:"responseHeaders,omitempty"`
	ResponseStatusCode int                 `json:"responseStatusCode,omitempty"`
	ResponseBody       string              `json:"responseBody,omitempty"`

	// Dynamic response configuration
	// either output name, ID or "anyOutput" to indicate that the first response
	// from any output is good enough. Defaults to empty string
	ResponseFromOutput string `json:"responseFromOutput,omitempty"`

	// CustomDomain can be used to assign a permanent domain name for your input
	// such as example.hooks.webhookrelay.com
	CustomDomain *string `json:"customDomain,omitempty"`
	// PathPrefix can be combined together with CustomDomain to create 'API like'
	// functionality where calls from:
	// petshop.com/dogs -> are forwarded to [dogs store]
	// petshop.com/cats -> are forwarded to [cats store]
	PathPrefix string `json:"pathPrefix,omitempty"`

	// Description can be any string
	Description string `json:"description,omitempty"`
}

InputSpec defines an input that belong to a bucket

func (*InputSpec) DeepCopy

func (in *InputSpec) DeepCopy() *InputSpec

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

func (*InputSpec) DeepCopyInto

func (in *InputSpec) DeepCopyInto(out *InputSpec)

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

type OutputSpec

type OutputSpec struct {
	Name string `json:"name,omitempty"`

	// FunctionID attaches function to this output. Functions on output can modify
	// requests that are then passed to destinations.
	FunctionID string `json:"function_id,omitempty"`

	// OverrideHeaders
	OverrideHeaders map[string]string `json:"overrideHeaders,omitempty"`

	// Destination is a URL that specifies where to send the webhooks. For example it can be
	// http://local-jenkins/ghpr for Jenkins webhooks or any other URL.
	Destination string `json:"destination"`

	// Internal specifies whether webhook should be sent to an internal destination. Since
	// operator is working with internal agents, this option defaults to True
	Internal *bool `json:"internal,omitempty"`

	// LockPath ensures that the request path cannot be changed from what is
	// specified in the destination. For example if request is coming to /v1/webhooks/xxx/github-jenkins,
	// with lock path 'false' and destination 'http://localhost:8080' it would go to http://localhost:8080/github-jenkins.
	// However, with lock path 'true', it will be sent to 'http://localhost:8080'
	LockPath *bool `json:"lockPath,omitempty"`

	// Disabled allows disabling destination without deleting it (when you don't want to send webhooks temporarily)
	Disabled *bool `json:"disabled,omitempty"`

	// Timeout specifies how long agent should wait for the response
	Timeout int `json:"timeout,omitempty"`

	// Description can be any string
	Description string `json:"description,omitempty"`
}

OutputSpec defines and output that belong to a bucket. Outputs are destinations where webhooks/API requests are forwarded.

func (*OutputSpec) DeepCopy

func (in *OutputSpec) DeepCopy() *OutputSpec

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

func (*OutputSpec) DeepCopyInto

func (in *OutputSpec) DeepCopyInto(out *OutputSpec)

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

type RoutingStatus

type RoutingStatus string

RoutingStatus is configuration status

const (
	RoutingStatusConfigured RoutingStatus = "Configured"
	RoutingStatusFailed     RoutingStatus = "Failed"
)

Constants for operator routing configuration status

type WebhookRelayForward

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

	Spec   WebhookRelayForwardSpec   `json:"spec,omitempty"`
	Status WebhookRelayForwardStatus `json:"status,omitempty"`
}

WebhookRelayForward is the Schema for the webhookrelayforwards API +kubebuilder:subresource:status +kubebuilder:resource:path=webhookrelayforwards,scope=Namespaced

func (*WebhookRelayForward) DeepCopy

func (in *WebhookRelayForward) DeepCopy() *WebhookRelayForward

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

func (*WebhookRelayForward) DeepCopyInto

func (in *WebhookRelayForward) DeepCopyInto(out *WebhookRelayForward)

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

func (*WebhookRelayForward) DeepCopyObject

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

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

type WebhookRelayForwardList

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

WebhookRelayForwardList contains a list of WebhookRelayForward

func (*WebhookRelayForwardList) DeepCopy

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

func (*WebhookRelayForwardList) DeepCopyInto

func (in *WebhookRelayForwardList) DeepCopyInto(out *WebhookRelayForwardList)

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

func (*WebhookRelayForwardList) DeepCopyObject

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

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

type WebhookRelayForwardSpec

type WebhookRelayForwardSpec struct {
	// SecretRefName is the name of the secret object that contains
	// generated token from https://my.webhookrelay.com/tokens
	// secret should have two fields:
	// key    - your token key (a long UUID)
	// secret - token secret, encrypted once generated and cannot be recovered from Webhook Relay.
	// If secret is lost, just create a new token
	SecretRefName string `json:"secretRefName,omitempty"`

	// SecretRefNamespace is the namespace of the secret reference.
	SecretRefNamespace string `json:"secretRefNamespace,omitempty"`

	// Image is webhookrelayd container, defaults to webhookrelay/webhookrelayd:latest
	Image string `json:"image,omitempty"`

	// Buckets to manage and subscribe to. Each CR can control one or more buckets. Buckets can be inspected
	// and manually created via Web UI here https://my.webhookrelay.com/buckets
	Buckets []BucketSpec `json:"buckets"`

	// Resources is to set the resource requirements of the Webhook Relay agent container`.
	Resources corev1.ResourceRequirements `json:"resources,omitempty"`

	// Extra environment variables to pass to the relay agent container
	ExtraEnvVars []corev1.EnvVar `json:"extraEnvVars,omitempty"`
}

WebhookRelayForwardSpec defines the desired state of WebhookRelayForward

func (*WebhookRelayForwardSpec) DeepCopy

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

func (*WebhookRelayForwardSpec) DeepCopyInto

func (in *WebhookRelayForwardSpec) DeepCopyInto(out *WebhookRelayForwardSpec)

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

type WebhookRelayForwardStatus

type WebhookRelayForwardStatus struct {

	// AgentStatus indicates agent deployment status
	AgentStatus AgentStatus `json:"agentStatus,omitempty"`
	// Ready indicates whether agent is deployed
	Ready bool `json:"ready,omitempty"`

	RoutingStatus RoutingStatus `json:"routingStatus,omitempty"`
	Message       string        `json:"message,omitempty"`
	// PublicEndpoints are all input public endpoints from the buckets
	// defined in the spec
	PublicEndpoints []string `json:"publicEndpoints,omitempty"`
}

WebhookRelayForwardStatus defines the observed state of WebhookRelayForward +k8s:openapi-gen=true

func (*WebhookRelayForwardStatus) DeepCopy

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

func (*WebhookRelayForwardStatus) DeepCopyInto

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