Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ServiceExportStorePrefix is the kvstore prefix of the shared store // // WARNING - STABLE API: Changing the structure or values of this will // break backwards compatibility ServiceExportStorePrefix = path.Join(kvstore.BaseKeyPrefix, "state", "serviceexports", "v1") )
Functions ¶
func ClusterNameValidator ¶
func ClusterNameValidator(clusterName string) mcsAPIServiceSpecValidator
ClusterNameValidator returns a validator enforcing that the cluster field of the unmarshaled service matches the provided one.
func KeyCreator ¶
func KeyCreator(validators ...mcsAPIServiceSpecValidator) store.KeyCreator
KeyCreator returns a store.KeyCreator for MCSAPIServiceSpec, configuring the specified extra validators.
func NamespacedNameValidator ¶
func NamespacedNameValidator() mcsAPIServiceSpecValidator
NamespacedNameValidator returns a validator enforcing that the namespaced name of the unmarshaled mcs service spec matches the kvstore key.
Types ¶
type MCSAPIServiceSpec ¶
type MCSAPIServiceSpec struct { // Cluster is the cluster name the service is configured in Cluster string `json:"cluster"` // Name is the name of the ServiceImport or ServiceExport parent resources. Name string `json:"name"` // Namespace is the cluster namespace the service is configured in Namespace string `json:"namespace"` // ExportCreationTimestamp is the timestamp representing when the // ServiceExport object was created. It is used for conflict resolution. ExportCreationTimestamp metav1.Time `json:"exportCreationTimestamp"` // Ports are the list of ports of the Service in MCS API format Ports []mcsapiv1alpha1.ServicePort `json:"ports"` // Type defines the type of this service. // Must be ClusterSetIP or Headless. Type mcsapiv1alpha1.ServiceImportType `json:"type"` // Supports "ClientIP" and "None". Used to maintain session affinity. // Enable client IP based session affinity. // Must be ClientIP or None. // Defaults to None. // Ignored when type is Headless // More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies SessionAffinity corev1.ServiceAffinity `json:"sessionAffinity"` // SessionAffinityConfig contains session affinity configuration. SessionAffinityConfig *corev1.SessionAffinityConfig `json:"sessionAffinityConfig,omitempty"` }
func FromCiliumServiceToMCSAPIServiceSpec ¶
func FromCiliumServiceToMCSAPIServiceSpec(clusterName string, svc *slim_corev1.Service, svcExport *mcsapiv1alpha1.ServiceExport) *MCSAPIServiceSpec
func NewEmptyMCSAPIServiceSpec ¶
func NewEmptyMCSAPIServiceSpec(clusterName, namespace, name string) *MCSAPIServiceSpec
NewEmptyMCSAPIServiceSpec returns a MCSAPIServiceSpec with only the fields needed to retrieve from the kvstore
func (*MCSAPIServiceSpec) GetKeyName ¶
func (s *MCSAPIServiceSpec) GetKeyName() string
GetKeyName returns the kvstore key to be used for MCSAPIServiceSpec
func (*MCSAPIServiceSpec) Marshal ¶
func (s *MCSAPIServiceSpec) Marshal() ([]byte, error)
Marshal returns the MCS-API Service Spec object as JSON byte slice
func (*MCSAPIServiceSpec) NamespacedName ¶
func (s *MCSAPIServiceSpec) NamespacedName() types.NamespacedName
NamespaceServiceName returns the namespace and service name
type ValidatingMCSAPIServiceSpec ¶
type ValidatingMCSAPIServiceSpec struct { MCSAPIServiceSpec // contains filtered or unexported fields }
ValidatingMCSAPIServiceSpec wraps a MCSAPIServiceSpec to perform additional validation at unmarshal time.