Documentation ¶
Overview ¶
Package v1alpha1 contains API Schema definitions for the policy v1 API group +kubebuilder:object:generate=true +groupName=config.liqo.io
Index ¶
- Variables
- type APIServerConfig
- type AcceptPolicy
- type AdvOperatorConfig
- type AdvertisementConfig
- type AuthConfig
- type BroadcasterConfig
- type CIDR
- type ClusterConfig
- type ClusterConfigList
- type ClusterConfigSpec
- type ClusterConfigStatus
- type DiscoveryConfig
- type DispatcherConfig
- type LabelPolicy
- type LiqonetConfig
- type PeeringPermission
- type Resource
Constants ¶
This section is empty.
Variables ¶
var ( // GroupVersion is group version used to register objects. GroupVersion = schema.GroupVersion{Group: "config.liqo.io", Version: "v1alpha1"} // ClusterConfigGroupResource is group resource used to register objects. ClusterConfigGroupResource = schema.GroupResource{Group: GroupVersion.Group, Resource: "clusterconfigs"} // ClusterConfigGroupVersionResource is group resource version used to register objects. ClusterConfigGroupVersionResource = schema.GroupVersionResource{ Group: GroupVersion.Group, Resource: "clusterconfigs", Version: GroupVersion.Version, } // 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 APIServerConfig ¶
type APIServerConfig struct { Address string `json:"address,omitempty"` TrustedCA bool `json:"trustedCA,omitempty"` }
APIServerConfig defines the configuration of the cluster APIServer.
func (*APIServerConfig) DeepCopy ¶
func (in *APIServerConfig) DeepCopy() *APIServerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIServerConfig.
func (*APIServerConfig) DeepCopyInto ¶
func (in *APIServerConfig) DeepCopyInto(out *APIServerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AcceptPolicy ¶
type AcceptPolicy string
AcceptPolicy defines the policy to accept/refuse an Advertisement.
const ( // AutoAcceptMax means all the Advertisement received will be accepted until the MaxAcceptableAdvertisement limit is // reached. AutoAcceptAll can be achieved by setting MaxAcceptableAdvertisement to 1000000. // AutoRefuseAll can be achieved by setting MaxAcceptableAdvertisement to 0. AutoAcceptMax AcceptPolicy = "AutoAcceptMax" // ManualAccept means every Advertisement received will need a manual accept/refuse, which can be done by updating // its status. ManualAccept AcceptPolicy = "Manual" )
type AdvOperatorConfig ¶
type AdvOperatorConfig struct { // MaxAcceptableAdvertisement defines the maximum number of Advertisements that can be accepted over time. // The maximum value for this field is set to 1000000, a symbolic value that implements the AcceptAll policy. // +kubebuilder:validation:Minimum=0 // +kubebuilder:validation:Maximum=1000000 MaxAcceptableAdvertisement int32 `json:"maxAcceptableAdvertisement"` // AcceptPolicy defines the policy to accept/refuse an Advertisement. // Possible values are AutoAcceptMax and Manual. // AutoAcceptMax means all the Advertisement received will be accepted until the MaxAcceptableAdvertisement limit // is reached; Manual means every Advertisement received will need a manual accept/refuse, which can be done by // updating its status. // +kubebuilder:validation:Enum="AutoAcceptMax";"Manual" AcceptPolicy AcceptPolicy `json:"acceptPolicy"` }
AdvOperatorConfig defines the configuration of the AdvertisementOperator.
func (*AdvOperatorConfig) DeepCopy ¶
func (in *AdvOperatorConfig) DeepCopy() *AdvOperatorConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvOperatorConfig.
func (*AdvOperatorConfig) DeepCopyInto ¶
func (in *AdvOperatorConfig) DeepCopyInto(out *AdvOperatorConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AdvertisementConfig ¶
type AdvertisementConfig struct { // OutgoingConfig defines the behavior for the creation of Advertisements on other clusters. OutgoingConfig BroadcasterConfig `json:"outgoingConfig"` // IngoingConfig defines the behavior for the acceptance of Advertisements from other clusters. IngoingConfig AdvOperatorConfig `json:"ingoingConfig,omitempty"` // KeepaliveThreshold defines the number of failed attempts to contact the foreign cluster your cluster will // tolerate before deleting it. // +kubebuilder:validation:Minimum=0 KeepaliveThreshold int32 `json:"keepaliveThreshold,omitempty"` // After establishing a sharing with a foreign cluster, a keepalive mechanism starts, in order to know if the // foreign cluster is reachable or not. // KeepaliveRetryTime defines the time between an attempt to contact the foreign cluster and the next one. // +kubebuilder:validation:Minimum=0 KeepaliveRetryTime int32 `json:"keepaliveRetryTime,omitempty"` // LabelPolicies contains the policies for each label to be added to remote virtual nodes. LabelPolicies []LabelPolicy `json:"labelPolicies,omitempty"` }
AdvertisementConfig defines the configuration for the advertisement protocol.
func (*AdvertisementConfig) DeepCopy ¶
func (in *AdvertisementConfig) DeepCopy() *AdvertisementConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvertisementConfig.
func (*AdvertisementConfig) DeepCopyInto ¶
func (in *AdvertisementConfig) DeepCopyInto(out *AdvertisementConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AuthConfig ¶
type AuthConfig struct { // Ask to remote clusters to provide a token to obtain an identity. // +kubebuilder:default=true // +kubebuilder:validation:Optional EnableAuthentication *bool `json:"enableAuthentication"` // Set the ClusterRoles to bind in the different peering stages PeeringPermission *PeeringPermission `json:"peeringPermission,omitempty"` }
AuthConfig defines the configuration of the Authentication Server.
func (*AuthConfig) DeepCopy ¶
func (in *AuthConfig) DeepCopy() *AuthConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthConfig.
func (*AuthConfig) DeepCopyInto ¶
func (in *AuthConfig) DeepCopyInto(out *AuthConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type BroadcasterConfig ¶
type BroadcasterConfig struct { // ResourceSharingPercentage defines the percentage of your cluster resources that you will share with foreign // clusters. // +kubebuilder:validation:Maximum=100 // +kubebuilder:validation:Minimum=0 ResourceSharingPercentage int32 `json:"resourceSharingPercentage"` }
BroadcasterConfig defines the configuration for the broadcasting protocol.
func (*BroadcasterConfig) DeepCopy ¶
func (in *BroadcasterConfig) DeepCopy() *BroadcasterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BroadcasterConfig.
func (*BroadcasterConfig) DeepCopyInto ¶
func (in *BroadcasterConfig) DeepCopyInto(out *BroadcasterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CIDR ¶
type CIDR string
+kubebuilder:validation:Pattern="^([0-9]{1,3}.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))$"
type ClusterConfig ¶
type ClusterConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec ClusterConfigSpec `json:"spec,omitempty"` Status ClusterConfigStatus `json:"status,omitempty"` }
ClusterConfig is the Schema for the clusterconfigs API.
func (*ClusterConfig) DeepCopy ¶
func (in *ClusterConfig) DeepCopy() *ClusterConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfig.
func (*ClusterConfig) DeepCopyInto ¶
func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfig) DeepCopyObject ¶
func (in *ClusterConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterConfigList ¶
type ClusterConfigList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []ClusterConfig `json:"items"` }
ClusterConfigList contains a list of ClusterConfig.
func (*ClusterConfigList) DeepCopy ¶
func (in *ClusterConfigList) DeepCopy() *ClusterConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigList.
func (*ClusterConfigList) DeepCopyInto ¶
func (in *ClusterConfigList) DeepCopyInto(out *ClusterConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*ClusterConfigList) DeepCopyObject ¶
func (in *ClusterConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type ClusterConfigSpec ¶
type ClusterConfigSpec struct { APIServerConfig APIServerConfig `json:"apiServerConfig,omitempty"` // AdvertisementConfig defines the configuration for the advertisement protocol. AdvertisementConfig AdvertisementConfig `json:"resourceSharingConfig"` DiscoveryConfig DiscoveryConfig `json:"discoveryConfig"` AuthConfig AuthConfig `json:"authConfig"` LiqonetConfig LiqonetConfig `json:"liqonetConfig"` DispatcherConfig DispatcherConfig `json:"dispatcherConfig,omitempty"` }
ClusterConfigSpec defines the desired state of ClusterConfig.
func (*ClusterConfigSpec) DeepCopy ¶
func (in *ClusterConfigSpec) DeepCopy() *ClusterConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigSpec.
func (*ClusterConfigSpec) DeepCopyInto ¶
func (in *ClusterConfigSpec) DeepCopyInto(out *ClusterConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ClusterConfigStatus ¶
type ClusterConfigStatus struct { }
ClusterConfigStatus defines the observed state of ClusterConfig.
func (*ClusterConfigStatus) DeepCopy ¶
func (in *ClusterConfigStatus) DeepCopy() *ClusterConfigStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterConfigStatus.
func (*ClusterConfigStatus) DeepCopyInto ¶
func (in *ClusterConfigStatus) DeepCopyInto(out *ClusterConfigStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DiscoveryConfig ¶
type DiscoveryConfig struct { // ClusterName is a nickname for your cluster that can be easily understood by a user ClusterName string `json:"clusterName,omitempty"` // ClusterLabels is a set of labels which characterizes the local cluster when exposed remotely as a virtual node. ClusterLabels map[string]string `json:"clusterLabels,omitempty"` Name string `json:"name"` Service string `json:"service"` // +kubebuilder:default="_liqo_auth._tcp" AuthService string `json:"authService,omitempty"` Domain string `json:"domain"` // +kubebuilder:validation:Maximum=65355 // +kubebuilder:validation:Minimum=1 Port int `json:"port"` // +kubebuilder:validation:Minimum=30 TTL uint32 `json:"ttl"` EnableDiscovery bool `json:"enableDiscovery"` EnableAdvertisement bool `json:"enableAdvertisement"` AutoJoin bool `json:"autojoin"` // Allow (by default) the remote clusters to establish a peering with our cluster. // +kubebuilder:validation:Optional IncomingPeeringEnabled bool `json:"incomingPeeringEnabled"` AuthServiceAddress string `json:"authServiceAddress,omitempty"` AuthServicePort string `json:"authServicePort,omitempty"` }
DiscoveryConfig defines the configuration of the Discovery logic.
func (*DiscoveryConfig) DeepCopy ¶
func (in *DiscoveryConfig) DeepCopy() *DiscoveryConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DiscoveryConfig.
func (*DiscoveryConfig) DeepCopyInto ¶
func (in *DiscoveryConfig) DeepCopyInto(out *DiscoveryConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type DispatcherConfig ¶
type DispatcherConfig struct {
ResourcesToReplicate []Resource `json:"resourcesToReplicate,omitempty"`
}
DispatcherConfig defines the configuration of the CRDReplicator.
func (*DispatcherConfig) DeepCopy ¶
func (in *DispatcherConfig) DeepCopy() *DispatcherConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DispatcherConfig.
func (*DispatcherConfig) DeepCopyInto ¶
func (in *DispatcherConfig) DeepCopyInto(out *DispatcherConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LabelPolicy ¶
type LabelPolicy struct { // Label Key to be aggregated in new virtual nodes Key string `json:"key"` // Merge labels Policy // +kubebuilder:validation:Enum="LabelPolicyAnyTrue";"LabelPolicyAllTrue";"LabelPolicyAnyTrueNoLabelIfFalse";"LabelPolicyAllTrueNoLabelIfFalse" // +kubebuilder:default="LabelPolicyAnyTrue" Policy labelPolicy.LabelPolicyType `json:"policy,omitempty"` }
LabelPolicy define a key-value structure to indicate which keys have to be aggregated and with which policy.
func (*LabelPolicy) DeepCopy ¶
func (in *LabelPolicy) DeepCopy() *LabelPolicy
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LabelPolicy.
func (*LabelPolicy) DeepCopyInto ¶
func (in *LabelPolicy) DeepCopyInto(out *LabelPolicy)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LiqonetConfig ¶
type LiqonetConfig struct { // This field is used by the IPAM embedded in the tunnelEndpointCreator. // Subnets listed in this field are excluded from the list of possible subnets used for natting POD CIDR. // Add here the subnets already used in your environment as a list in CIDR notation // (e.g. [10.1.0.0/16, 10.200.1.0/24]). ReservedSubnets []CIDR `json:"reservedSubnets"` // The subnet used by the cluster for the pods, in CIDR notation // +kubebuilder:validation:Pattern="^([0-9]{1,3}.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))$" PodCIDR string `json:"podCIDR"` // The subnet used by the cluster for the services, in CIDR notation // +kubebuilder:validation:Pattern="^([0-9]{1,3}.){3}[0-9]{1,3}(/([0-9]|[1-2][0-9]|3[0-2]))$" ServiceCIDR string `json:"serviceCIDR"` // Set of additional user-defined network pools. // Default set of network pools is: [192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12] AdditionalPools []CIDR `json:"additionalPools"` }
LiqonetConfig defines the configuration of the Liqo Networking.
func (*LiqonetConfig) DeepCopy ¶
func (in *LiqonetConfig) DeepCopy() *LiqonetConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LiqonetConfig.
func (*LiqonetConfig) DeepCopyInto ¶
func (in *LiqonetConfig) DeepCopyInto(out *LiqonetConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PeeringPermission ¶
type PeeringPermission struct { // The list of ClusterRoles to be enabled with the creation of the Tenant Namespace, these ClusterRoles // have the basic permissions to give to a remote cluster Basic []string `json:"basic,omitempty"` // The list of ClusterRoles be enabled when a ResourceRequest has been accepted, these ClusterRoles have the // permissions required to a remote cluster to manage an outgoing peering (incoming for the local cluster), when the // Pods will be offloaded to the local cluster Incoming []string `json:"incoming,omitempty"` // The list of ClusterRoles to be enabled when we send a ResourceRequest, these ClusterRoles have the permissions // required to a remote cluster to manage an incoming peering (outgoing for the local cluster), when the Pods will // be offloaded from the local cluster Outgoing []string `json:"outgoing,omitempty"` }
PeeringPermission collects the list of ClusterRoles to be attributed to foreign cluster in the different steps of peering.
func (*PeeringPermission) DeepCopy ¶
func (in *PeeringPermission) DeepCopy() *PeeringPermission
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringPermission.
func (*PeeringPermission) DeepCopyInto ¶
func (in *PeeringPermission) DeepCopyInto(out *PeeringPermission)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type Resource ¶
type Resource struct { // GroupVersionResource contains the GVR of the resource to replicate. GroupVersionResource metav1.GroupVersionResource `json:"groupVersionResource"` // PeeringPhase contains the peering phase when this resource should be replicated. // +kubebuilder:validation:Enum="None";"Authenticated";"Established";"Incoming";"Outgoing";"Bidirectional" // +kubebuilder:default="None" PeeringPhase consts.PeeringPhase `json:"peeringPhase,omitempty"` // Ownership indicates the ownership over this resource. // +kubebuilder:validation:Enum="Local";"Shared" // +kubebuilder:default="Shared" Ownership consts.OwnershipType `json:"ownership,omitempty"` }
Resource contains a list of resources identified by their GVR.
func (*Resource) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Resource.
func (*Resource) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.