v1alpha1

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2021 License: Apache-2.0 Imports: 4 Imported by: 2

Documentation

Overview

+k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:defaulter-gen=TypeMeta +groupName=proxy.open-cluster-management.io

Package v1alpha1 contains API Schema definitions for the proxy v1alpha1 API group +kubebuilder:object:generate=true +groupName=proxy.open-cluster-management.io

Index

Constants

View Source
const (
	ConditionTypeProxyServerDeployed     = "ProxyServerDeployed"
	ConditionTypeProxyServerSecretSigned = "ProxyServerSecretSigned"
	ConditionTypeAgentServerSecretSigned = "AgentServerSecretSigned"
	ConditionTypeProxyClientSecretSigned = "ProxyClientSecretSigned"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "proxy.open-cluster-management.io", Version: "v1alpha1"}

	// 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

	SchemeGroupVersion = GroupVersion
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Types

type AnnotationVar added in v0.1.1

type AnnotationVar struct {
	// Key is the key of annotation
	// +kubebuilder:validation:Required
	// +required
	Key string `json:"key"`

	// Value is the value of annotation
	// +optional
	Value string `json:"value,omitempty"`
}

AnnotationVar list of annotation variables to set in the LB Service.

type AuthenticationSelfSigned

type AuthenticationSelfSigned struct {
	// +optional
	// `additionalSANs` adds a few custom hostnames or IPs to the signing certificates.
	AdditionalSANs []string `json:"additionalSANs,omitempty"`
}

AuthenticationSelfSigned prescribes how to self-sign the certificates.

func (*AuthenticationSelfSigned) DeepCopy

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

func (*AuthenticationSelfSigned) DeepCopyInto

func (in *AuthenticationSelfSigned) DeepCopyInto(out *AuthenticationSelfSigned)

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

type AuthenticationSignerType

type AuthenticationSignerType string

AuthenticationType defines the source of CA certificates, i.e. the signer of both proxy servers and agents. +kubebuilder:validation:Enum=SelfSigned;Provided;CertManager

var (
	// `SelfSigned` prescribes the CA certificate and key should be automatically
	// generated if not found in the hub cluster.
	// The self-signed ca key pair will be stored as a secret.
	//
	// Note that the namespace and name can be configured via "--signer-secret-name"
	// and "signer-secret-namespace" at the addon-manager.
	SelfSigned AuthenticationSignerType = "SelfSigned"
)

type CertificateSigningSecrets

type CertificateSigningSecrets struct {
	// `signingProxyServerSecretName` the secret name of the proxy server's listening
	// certificates for serving proxy requests.
	// +kubebuilder:default=proxy-server
	// +optional
	SigningProxyServerSecretName string `json:"signingProxyServerSecretName,omitempty"`
	// `signingProxyClientSecretName` is the secret name for requesting/streaming over
	// the proxy server.
	// +kubebuilder:default=proxy-client
	// +optional
	SigningProxyClientSecretName string `json:"signingProxyClientSecretName,omitempty"`
	// `signingAgentServerSecretName` is the secret name of the proxy servers to receive
	// tunneling handshakes from proxy agents.
	// +kubebuilder:default=agent-server
	// +optional
	SigningAgentServerSecretName string `json:"signingAgentServerSecretName,omitempty"`
}

CertificateSigningSecrets enumerates the target names of the secrets to be mounted onto proxy servers and agents.

func (*CertificateSigningSecrets) DeepCopy

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

func (*CertificateSigningSecrets) DeepCopyInto

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

type EntryPointHostname

type EntryPointHostname struct {
	// +required
	Value string `json:"value"`
}

EntryPointHostname references a fixed hostname.

func (*EntryPointHostname) DeepCopy

func (in *EntryPointHostname) DeepCopy() *EntryPointHostname

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

func (*EntryPointHostname) DeepCopyInto

func (in *EntryPointHostname) DeepCopyInto(out *EntryPointHostname)

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

type EntryPointLoadBalancerService

type EntryPointLoadBalancerService struct {
	// `name` is the name of the load-balancer service. And the namespace will align
	// to where the proxy-servers are deployed.
	// +optional
	// +kubebuilder:default=proxy-agent-entrypoint
	Name string `json:"name"`

	// Annotations is the annoations of the load-balancer service.
	// This is for allowing customizing service using vendor-specific extended annotations such as:
	// - service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
	// - service.beta.kubernetes.io/azure-load-balancer-internal: true
	// +optional
	Annotations []AnnotationVar `json:"annotations,omitempty"`
}

EntryPointLoadBalancerService is the reference to a load-balancer service.

func (*EntryPointLoadBalancerService) DeepCopy

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

func (*EntryPointLoadBalancerService) DeepCopyInto

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

type EntryPointType

type EntryPointType string

EntryPointType is the type of the entrypoint. +kubebuilder:validation:Enum=Hostname;LoadBalancerService;PortForward

var (
	// LoadBalancerService prescribes the proxy agents to establish tunnels via the
	// expose IP from the load-balancer service.
	EntryPointTypeLoadBalancerService EntryPointType = "LoadBalancerService"
	// Hostname prescribes the proxy agents to connect a fixed hostname.
	EntryPointTypeHostname EntryPointType = "Hostname"
	// PortForward prescribes the proxy agent to connect a local proxy served on the
	// addon-agent which proxies tunnel connection to the proxy-servers via pod
	// port-forwarding.
	EntryPointTypePortForward EntryPointType = "PortForward"
)

type ManagedProxyConfiguration

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

	Spec   ManagedProxyConfigurationSpec   `json:"spec,omitempty"`
	Status ManagedProxyConfigurationStatus `json:"status,omitempty"`
}

+genclient +genclient:nonNamespaced ManagedProxyConfiguration is the Schema for the managedproxyconfigurations API

func (*ManagedProxyConfiguration) DeepCopy

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

func (*ManagedProxyConfiguration) DeepCopyInto

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

func (*ManagedProxyConfiguration) DeepCopyObject

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

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

type ManagedProxyConfigurationAuthentication

type ManagedProxyConfigurationAuthentication struct {
	// +optional
	// `signer` defines how we sign server and client certificates for the proxy servers
	// and agents.
	Signer ManagedProxyConfigurationCertificateSigner `json:"signer"`
	// +optional
	// `dump` is where we store the signed certificates from signers.
	Dump ManagedProxyConfigurationCertificateDump `json:"dump"`
}

ManagedProxyConfigurationAuthentication prescribes how we manage the authentication between the proxy servers and agents. Overall the authentication are working via mTLS certificates so this struct is actually prescribing the signing and storing of the managed certificates.

func (*ManagedProxyConfigurationAuthentication) DeepCopy

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

func (*ManagedProxyConfigurationAuthentication) DeepCopyInto

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

type ManagedProxyConfigurationCertificateDump

type ManagedProxyConfigurationCertificateDump struct {
	// +optional
	// `secrets` is the names of the secrets for saving the signed certificates.
	Secrets CertificateSigningSecrets `json:"secrets"`
}

ManagedProxyConfigurationCertificateDump prescribes how to dump the signed certificates which will be mounted by the instances of proxy servers and agents.

func (*ManagedProxyConfigurationCertificateDump) DeepCopy

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

func (*ManagedProxyConfigurationCertificateDump) DeepCopyInto

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

type ManagedProxyConfigurationCertificateSigner

type ManagedProxyConfigurationCertificateSigner struct {
	// `type` is the supported type of signer. Currently only "SelfSign" supported.
	// +optional
	// +kubebuilder:default=SelfSigned
	Type AuthenticationSignerType `json:"type"`
	// `selfSigned` prescribes the detail of how we self-sign the certificates.
	// +optional
	SelfSigned *AuthenticationSelfSigned `json:"selfSigned,omitempty"`
}

ManagedProxyConfigurationCertificateSigner prescribes how to sign certificates for proxy servers and agents.

func (*ManagedProxyConfigurationCertificateSigner) DeepCopy

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

func (*ManagedProxyConfigurationCertificateSigner) DeepCopyInto

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

type ManagedProxyConfigurationDeploy

type ManagedProxyConfigurationDeploy struct {
	// `ports` is the ports for proxying and tunneling.
	Ports ManagedProxyConfigurationDeployPorts `json:"ports"`
}

ManagedProxyConfigurationDeploy prescribes a few common details for running components.

func (*ManagedProxyConfigurationDeploy) DeepCopy

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

func (*ManagedProxyConfigurationDeploy) DeepCopyInto

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

type ManagedProxyConfigurationDeployPorts

type ManagedProxyConfigurationDeployPorts struct {
	// `proxyServer` is the listening port of proxy server for serving proxy requests.
	// +optional
	// +kubebuilder:default=8090
	ProxyServer int32 `json:"proxyServer"`
	// `agentServer` is the listening port of proxy server for serving tunneling handshakes.
	// +optional
	// +kubebuilder:default=8091
	AgentServer int32 `json:"agentServer"`
	// `healthServer` is for probing the healthiness.
	// +optional
	// +kubebuilder:default=8092
	HealthServer int32 `json:"healthServer"`
	// `adminServer` is the port for debugging and operating.
	// +optional
	// +kubebuilder:default=8095
	AdminServer int32 `json:"adminServer"`
}

ManagedProxyConfigurationDeployPorts is the expected port for wiring up proxy servers and agents.

func (*ManagedProxyConfigurationDeployPorts) DeepCopy

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

func (*ManagedProxyConfigurationDeployPorts) DeepCopyInto

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

type ManagedProxyConfigurationList

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

ManagedProxyConfigurationList contains a list of ManagedProxyConfiguration

func (*ManagedProxyConfigurationList) DeepCopy

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

func (*ManagedProxyConfigurationList) DeepCopyInto

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

func (*ManagedProxyConfigurationList) DeepCopyObject

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

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

type ManagedProxyConfigurationProxyAgent

type ManagedProxyConfigurationProxyAgent struct {
	// `image` is the container image of the proxy agent.
	// +required
	Image string `json:"image"`
	// `replicas` is the replicas of the agents.
	// +optional
	// +kubebuilder:default=3
	Replicas int32 `json:"replicas"`
}

ManagedProxyConfigurationProxyAgent prescribes how to deploy agents to the managed cluster.

func (*ManagedProxyConfigurationProxyAgent) DeepCopy

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

func (*ManagedProxyConfigurationProxyAgent) DeepCopyInto

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

type ManagedProxyConfigurationProxyServer

type ManagedProxyConfigurationProxyServer struct {
	// `image` is the container image of the proxy servers.
	// +required
	Image string `json:"image"`
	// `replicas` is the expected replicas of the proxy servers.
	// Note that the replicas will also be reflected in the flag `--server-count`
	// so that agents can discover all the server instances.
	// +optional
	// +kubebuilder:default=3
	Replicas int32 `json:"replicas"`
	// `inClusterServiceName` is the name of the in-cluster service for proxying
	// requests inside the hub cluster to the proxy servers.
	// +optional
	// +kubebuilder:default=proxy-entrypoint
	InClusterServiceName string `json:"inClusterServiceName"`
	// `namespace` is the namespace where we will deploy the proxy servers and related
	// resources.
	// +optional
	// +kubebuilder:default=open-cluster-management-cluster-proxy
	Namespace string `json:"namespace"`
	// `entrypoint` defines how will the proxy agents connecting the servers.
	// +optional
	Entrypoint *ManagedProxyConfigurationProxyServerEntrypoint `json:"entrypoint"`
}

ManagedProxyConfigurationProxyServer prescribes how to deploy proxy servers into the hub cluster.

func (*ManagedProxyConfigurationProxyServer) DeepCopy

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

func (*ManagedProxyConfigurationProxyServer) DeepCopyInto

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

type ManagedProxyConfigurationProxyServerEntrypoint

type ManagedProxyConfigurationProxyServerEntrypoint struct {
	// `type` is the type of the entrypoint of the proxy servers.
	// Currently supports "Hostname", "LoadBalancerService"
	// +required
	Type EntryPointType `json:"type"`
	// `loadBalancerService` points to a load-balancer typed service in the hub cluster.
	// +optional
	LoadBalancerService *EntryPointLoadBalancerService `json:"loadBalancerService"`
	// `hostname` points to a fixed hostname for serving agents' handshakes.
	// +optional
	Hostname *EntryPointHostname `json:"hostname"`
}

ManagedProxyConfigurationProxyServerEntrypoint prescribes the ingress for serving tunneling handshakes from proxy agents.

func (*ManagedProxyConfigurationProxyServerEntrypoint) DeepCopy

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

func (*ManagedProxyConfigurationProxyServerEntrypoint) DeepCopyInto

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

type ManagedProxyConfigurationSpec

type ManagedProxyConfigurationSpec struct {
	// `authentication` defines how the credentials for the authentication
	// between proxy servers and proxy agents are signed and mounted.
	// +required
	Authentication ManagedProxyConfigurationAuthentication `json:"authentication"`
	// `proxyServer` structurelized the arguments for running proxy servers.
	// +required
	ProxyServer ManagedProxyConfigurationProxyServer `json:"proxyServer"`
	// `proxyServer` structurelized the arguments for running proxy agents.
	// +required
	ProxyAgent ManagedProxyConfigurationProxyAgent `json:"proxyAgent"`
	// +optional
	// `deploy` is where we override miscellaneous details for deploying either
	// proxy servers or agents.
	Deploy *ManagedProxyConfigurationDeploy `json:"deploy,omitempty"`
}

ManagedProxyConfigurationSpec is the prescription of ManagedProxyConfiguration

func (*ManagedProxyConfigurationSpec) DeepCopy

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

func (*ManagedProxyConfigurationSpec) DeepCopyInto

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

type ManagedProxyConfigurationStatus

type ManagedProxyConfigurationStatus struct {
	// +optional
	LastObservedGeneration int64 `json:"lastObservedGeneration,omitempty"`
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

ManagedProxyConfigurationStatus defines the observed state of ManagedProxyConfiguration

func (*ManagedProxyConfigurationStatus) DeepCopy

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

func (*ManagedProxyConfigurationStatus) 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