Documentation

Overview

Package v1 contains API Schema definitions for the network v1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=bk-bcs/bcs-services/bcs-clb-controller/pkg/apis/network +k8s:defaulter-gen=TypeMeta +groupName=network.bmsf.tencent.com

Package v1 contains API Schema definitions for the network v1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=bk-bcs/bcs-services/bcs-clb-controller/pkg/apis/network +k8s:defaulter-gen=TypeMeta +groupName=network.bmsf.tencent.com

Index

Constants

View Source
const (
	// ClbNetworkTypePublic public network type
	ClbNetworkTypePublic = "public"
	// ClbNetworkTypePrivate private network type
	ClbNetworkTypePrivate = "private"
	// ClbLBPolicyWRR wrr lb policy
	ClbLBPolicyWRR = "wrr"
	// ClbLBPolicyLeastConn least connection lb policy
	ClbLBPolicyLeastConn = "least_conn"
	// ClbLBPolicyIPHash ip hashed lb policy
	ClbLBPolicyIPHash = "ip_hash"
	// ClbListenerProtocolHTTP http protocol
	ClbListenerProtocolHTTP = "http"
	// ClbListenerProtocolHTTPS https protocol
	ClbListenerProtocolHTTPS = "https"
	// ClbListenerProtocolTCP tcp protocol
	ClbListenerProtocolTCP = "tcp"
	// ClbListenerProtocolUDP udp protocol
	ClbListenerProtocolUDP = "udp"
	// ClbListenerTLSModeUniDirectional unidirectional tls mode
	ClbListenerTLSModeUniDirectional = "unidirectional"
	// ClbListenerTLSModeMutual mutual tls mode
	ClbListenerTLSModeMutual = "mutual"
)

Variables

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

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

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type Backend

type Backend struct {
	IP string `json:"ip"`
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port   int `json:"port"`
	Weight int `json:"weight"`
}

Backend info for one service node

func NewBackend

func NewBackend(ip string, port int) *Backend

NewBackend create new backend

func (*Backend) DeepCopy

func (in *Backend) DeepCopy() *Backend

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

func (*Backend) DeepCopyInto

func (in *Backend) DeepCopyInto(out *Backend)

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

func (*Backend) IsEqual

func (b *Backend) IsEqual(other *Backend) bool

IsEqual check if a backend is equal to the other

func (*Backend) SetWeight

func (b *Backend) SetWeight(weight int)

SetWeight set weight

type BackendList

type BackendList []*Backend

BackendList sort for backend list

func (BackendList) DeepCopy

func (in BackendList) DeepCopy() BackendList

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

func (BackendList) DeepCopyInto

func (in BackendList) DeepCopyInto(out *BackendList)

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

func (BackendList) Len

func (bl BackendList) Len() int

Len is the number of elements in the collection.

type CloudListener

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

	Spec   CloudListenerSpec   `json:"spec,omitempty"`
	Status CloudListenerStatus `json:"status,omitempty"`
}

CloudListener is the Schema for the cloudlisteners API +k8s:openapi-gen=true

func (*CloudListener) DeepCopy

func (in *CloudListener) DeepCopy() *CloudListener

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

func (*CloudListener) DeepCopyInto

func (in *CloudListener) DeepCopyInto(out *CloudListener)

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

func (*CloudListener) DeepCopyObject

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

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

func (*CloudListener) GetDiffRules

func (cl *CloudListener) GetDiffRules(cur *CloudListener) (dels RuleList, adds RuleList)

GetDiffRules get deleted rules and added rules for cur listener compared to cl listener

func (*CloudListener) GetRuleByID

func (cl *CloudListener) GetRuleByID(id string) (*Rule, error)

GetRuleByID rule by rule id

func (*CloudListener) GetUpdateRules

func (cl *CloudListener) GetUpdateRules(cur *CloudListener) (olds RuleList, updates RuleList)

GetUpdateRules get updated rules for cur listener compared to cl listener

func (*CloudListener) IsEqual

func (cl *CloudListener) IsEqual(other *CloudListener) bool

IsEqual check if Listener is equal to the other

func (*CloudListener) Key

func (cl *CloudListener) Key() string

Key get key of cloudlistener

func (*CloudListener) ToString

func (cl *CloudListener) ToString() string

ToString format object to string

type CloudListenerBackendHealthStatus

type CloudListenerBackendHealthStatus struct {
	IP                 string `json:"ip"`
	Port               int    `json:"port"`
	HealthStatus       bool   `json:"healthStatus"`
	TargetID           string `json:"targetId"`
	HealthStatusDetail string `json:"healthStatusDetail"`
}

CloudListenerBackendHealthStatus backend health status of listener

func (*CloudListenerBackendHealthStatus) DeepCopy

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

func (*CloudListenerBackendHealthStatus) DeepCopyInto

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

type CloudListenerHealthStatus

type CloudListenerHealthStatus struct {
	RulesHealth []*CloudListenerRuleHealthStatus `json:"rules,omitempty"`
}

CloudListenerHealthStatus health status of listener

func (*CloudListenerHealthStatus) DeepCopy

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

func (*CloudListenerHealthStatus) DeepCopyInto

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

type CloudListenerList

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

CloudListenerList contains a list of CloudListener

func (*CloudListenerList) DeepCopy

func (in *CloudListenerList) DeepCopy() *CloudListenerList

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

func (*CloudListenerList) DeepCopyInto

func (in *CloudListenerList) DeepCopyInto(out *CloudListenerList)

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

func (*CloudListenerList) DeepCopyObject

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

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

type CloudListenerRuleHealthStatus

type CloudListenerRuleHealthStatus struct {
	Domain   string                              `json:"domain"`
	URL      string                              `json:"url"`
	Backends []*CloudListenerBackendHealthStatus `json:"backends,omitempty"`
}

CloudListenerRuleHealthStatus rule health status of listener

func (*CloudListenerRuleHealthStatus) DeepCopy

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

func (*CloudListenerRuleHealthStatus) DeepCopyInto

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

type CloudListenerSpec

type CloudListenerSpec struct {
	ListenerID     string            `json:"listenerId"`    //clb listenerId/elb arn
	LoadBalancerID string            `json:"loadbalanceId"` //loadbalancer reference id
	Protocol       string            `json:"protocol"`      //service name
	TLS            *CloudListenerTls `json:"tls,omitempty"` //clb tls config
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	ListenPort int `json:"listenPort"` //export ports info
	//SSLCertID   string       `json:"sslCertId,omitempty"`   //SSL certificate Id for https
	TargetGroup *TargetGroup `json:"targetGroup,omitempty"` //only for tcp & udp
	Rules       RuleList     `json:"rules,omitempty"`       //only for http/https
}

CloudListenerSpec defines the desired state of CloudListener

func (*CloudListenerSpec) DeepCopy

func (in *CloudListenerSpec) DeepCopy() *CloudListenerSpec

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

func (*CloudListenerSpec) DeepCopyInto

func (in *CloudListenerSpec) DeepCopyInto(out *CloudListenerSpec)

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

type CloudListenerStatus

type CloudListenerStatus struct {
	// last updated timestamp
	LastUpdateTime metav1.Time                `json:"lastUpdateTime,omitempty"`
	HealthStatus   *CloudListenerHealthStatus `json:"healthStatus,omitempty"`
}

CloudListenerStatus defines the observed state of CloudListener

func (*CloudListenerStatus) DeepCopy

func (in *CloudListenerStatus) DeepCopy() *CloudListenerStatus

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

func (*CloudListenerStatus) DeepCopyInto

func (in *CloudListenerStatus) DeepCopyInto(out *CloudListenerStatus)

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

type CloudListenerTls

type CloudListenerTls struct {
	Mode                string `json:"mode,omitempty"`
	CertID              string `json:"certId,omitempty"`
	CertCaID            string `json:"certCaId,omitempty"`
	CertServerName      string `json:"certServerName,omitempty"`
	CertServerKey       string `json:"certServerKey,omitempty"`
	CertServerContent   string `json:"certServerContent,omitempty"`
	CertClientCaName    string `json:"certClientCaName,omitempty"`
	CertClientCaContent string `json:"certCilentCaContent,omitempty"`
}

CloudListenerTls cloud listener tls attributes

func (*CloudListenerTls) DeepCopy

func (in *CloudListenerTls) DeepCopy() *CloudListenerTls

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

func (*CloudListenerTls) DeepCopyInto

func (in *CloudListenerTls) DeepCopyInto(out *CloudListenerTls)

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

type CloudLoadBalancer

type CloudLoadBalancer struct {
	ID          string   `json:"id"` //clb id or elb arn
	NetworkType string   `json:"net"`
	Name        string   `json:"name"`
	PublicIPs   []string `json:"publicIPs"`
	VIPS        []string `json:"vips"`
}

CloudLoadBalancer information for cloud Loadbalancer in aws/qcloud

func (*CloudLoadBalancer) DeepCopy

func (in *CloudLoadBalancer) DeepCopy() *CloudLoadBalancer

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

func (*CloudLoadBalancer) DeepCopyInto

func (in *CloudLoadBalancer) DeepCopyInto(out *CloudLoadBalancer)

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

type Rule

type Rule struct {
	ID     string `json:"id,omitempty"`
	Domain string `json:"domain"`
	URL    string `json:"url"`
	//Balance     string       `json:"balance,omitempty"`
	TargetGroup *TargetGroup `json:"targetGroup"`
}

Rule only use for http/https

func NewRule

func NewRule(domain string, url string) *Rule

NewRule new a rule

func (*Rule) DeepCopy

func (in *Rule) DeepCopy() *Rule

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

func (*Rule) DeepCopyInto

func (in *Rule) DeepCopyInto(out *Rule)

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

func (*Rule) IsConflict

func (r *Rule) IsConflict(ruleList RuleList) bool

IsConflict check if a rule is conflict with the other

func (*Rule) IsEqual

func (r *Rule) IsEqual(other *Rule) bool

IsEqual check if a Rule is equal to the other

type RuleList

type RuleList []*Rule

RuleList list of Rule

func (RuleList) DeepCopy

func (in RuleList) DeepCopy() RuleList

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

func (RuleList) DeepCopyInto

func (in RuleList) DeepCopyInto(out *RuleList)

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

func (RuleList) Len

func (rl RuleList) Len() int

Len is the number of elements in the collection.

type TargetGroup

type TargetGroup struct {
	ID       string `json:"id,omitempty"`       //elb arn
	Name     string `json:"name"`               //elb or clb name
	Protocol string `json:"protocol,omitempty"` //elb protocol info
	// +kubebuilder:validation:Maximum=65535
	// +kubebuilder:validation:Minimum=1
	Port          int `json:"port,omitempty"` //elb port
	SessionExpire int `json:"sessionExpire,omitempty"`
	//HealthCheckPath string      `json:"healthCheckPath,omitempty"` //need health check path for http and https
	HealthCheck *TargetGroupHealthCheck `json:"healthCheck,omitempty"`
	LBPolicy    string                  `json:"lbPolicy,omitempty"`
	Backends    BackendList             `json:"backends,omitempty"` //CVM instance backend
}

TargetGroup backend info for all

func NewTargetGroup

func NewTargetGroup(id, name, protocol string, port int) *TargetGroup

NewTargetGroup new target group

func (*TargetGroup) AddBackends

func (tg *TargetGroup) AddBackends(adds BackendList)

AddBackends add backends to target group

func (*TargetGroup) DeepCopy

func (in *TargetGroup) DeepCopy() *TargetGroup

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

func (*TargetGroup) DeepCopyInto

func (in *TargetGroup) DeepCopyInto(out *TargetGroup)

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

func (*TargetGroup) GetDiffBackend

func (tg *TargetGroup) GetDiffBackend(cur *TargetGroup) (dels BackendList, adds BackendList)

GetDiffBackend check

func (*TargetGroup) GetUpdateBackend

func (tg *TargetGroup) GetUpdateBackend(cur *TargetGroup) (updates BackendList)

GetUpdateBackend get update backend from tg compared to cur ** [NOT USED] to reduce api calling times, we do not use this function temporarily, to update backend, we delete it and create a new one **

func (*TargetGroup) IsAttrEqual

func (tg *TargetGroup) IsAttrEqual(other *TargetGroup) bool

IsAttrEqual if TargetGroup equal to another except for backends

func (*TargetGroup) IsEqual

func (tg *TargetGroup) IsEqual(other *TargetGroup) bool

IsEqual if TargetGroup equal to another

func (*TargetGroup) RemoveBackend

func (tg *TargetGroup) RemoveBackend(dels BackendList)

RemoveBackend clean all backend info

type TargetGroupHealthCheck

type TargetGroupHealthCheck struct {
	Enabled       int    `json:"enabled"`
	Timeout       int    `json:"timeOut,omitempty"`
	IntervalTime  int    `json:"intervalTime,omitempty"`
	HealthNum     int    `json:"healthNum,omitempty"`
	UnHealthNum   int    `json:"unHealthNum,omitempty"`
	HTTPCode      int    `json:"httpCode,omitempty"`
	HTTPCheckPath string `json:"httpCheckPath,omitempty"`
}

TargetGroupHealthCheck target group health check setting

func NewTargetGroupHealthCheck

func NewTargetGroupHealthCheck() *TargetGroupHealthCheck

NewTargetGroupHealthCheck new target group health check

func (*TargetGroupHealthCheck) DeepCopy

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

func (*TargetGroupHealthCheck) DeepCopyInto

func (in *TargetGroupHealthCheck) DeepCopyInto(out *TargetGroupHealthCheck)

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