Documentation ¶
Index ¶
- Constants
- func CheckSMIVersion(client kubernetes.Interface, aclEnabled bool) error
- func Filter(fs *ResourceFilter) predicate.Predicate
- func MustParseYaml(content []byte) []runtime.Object
- func ProxyLabels() map[string]string
- func ShadowServiceLabels() map[string]string
- func ShadowServiceSelector() labels.Selector
- type Client
- type ClientMock
- type ClientWrapper
- type ResourceFilter
- type ResourceFilterOption
Constants ¶
const ( // ResyncPeriod set the resync period. ResyncPeriod = 5 * time.Minute // TrafficSplitObjectKind is the name of an SMI object of kind TrafficSplit. TrafficSplitObjectKind = "TrafficSplit" // TrafficTargetObjectKind is the name of an SMI object of kind TrafficTarget. TrafficTargetObjectKind = "TrafficTarget" // HTTPRouteGroupObjectKind is the name of an SMI object of kind HTTPRouteGroup. HTTPRouteGroupObjectKind = "HTTPRouteGroup" // TCPRouteObjectKind is the name of an SMI object of kind TCPRoute. TCPRouteObjectKind = "TCPRoute" // CoreObjectKinds is a filter for objects to process by the core client. CoreObjectKinds = "Deployment|Endpoints|Service|Ingress|Secret|Namespace|Pod|ConfigMap" // AccessObjectKinds is a filter for objects to process by the access client. AccessObjectKinds = TrafficTargetObjectKind // SpecsObjectKinds is a filter for objects to process by the specs client. SpecsObjectKinds = HTTPRouteGroupObjectKind + "|" + TCPRouteObjectKind // SplitObjectKinds is a filter for objects to process by the split client. SplitObjectKinds = TrafficSplitObjectKind )
const ( // LabelName is used for specifying the name of the app. LabelName = "app.kubernetes.io/name" // LabelComponent is used for specifying a specific component of the app. LabelComponent = "app.kubernetes.io/component" // LabelPartOf is used for specifying the name of a higher level app it is part of. LabelPartOf = "app.kubernetes.io/part-of" // LabelServiceName is the name of the label for storing the name of the source service for a shadow service. LabelServiceName = "mesh.meshd.local/service-name" // LabelServiceNamespace is the name of the label for storing the namespace of the source service for a shadow service. LabelServiceNamespace = "mesh.meshd.local/service-namespace" // AppName is the name of the app. AppName = "dream" // ComponentProxy is component of type proxy. ComponentProxy = "proxy" // ComponentShadowService is component of type shadow-service. ComponentShadowService = "shadow-service" )
const (
FinalService = baseFinal + "/service"
)
finalizer
Variables ¶
This section is empty.
Functions ¶
func CheckSMIVersion ¶
func CheckSMIVersion(client kubernetes.Interface, aclEnabled bool) error
CheckSMIVersion checks if the SMI CRDs versions installed match the supported versions.
func Filter ¶
func Filter(fs *ResourceFilter) predicate.Predicate
Filter used to return watched resources
func MustParseYaml ¶
MustParseYaml parses a YAML to objects.
func ShadowServiceLabels ¶
ShadowServiceLabels returns the labels of a shadow service.
func ShadowServiceSelector ¶
ShadowServiceSelector creates a label selector for shadow services.
Types ¶
type Client ¶
type Client interface { KubernetesClient() kubernetes.Interface AccessClient() accessclient.Interface SpecsClient() specsclient.Interface SplitClient() splitclient.Interface }
Client is an interface for the various resource controllers.
type ClientMock ¶
type ClientMock struct {
// contains filtered or unexported fields
}
ClientMock holds mock client.
func NewClientMock ¶
func NewClientMock(testingT *testing.T, path string) *ClientMock
NewClientMock create a new client mock.
func (*ClientMock) AccessClient ¶
func (c *ClientMock) AccessClient() accessclient.Interface
AccessClient is used to get the SMI Access clientset.
func (*ClientMock) KubernetesClient ¶
func (c *ClientMock) KubernetesClient() kubeclient.Interface
KubernetesClient is used to get the kubernetes clientset.
func (*ClientMock) SpecsClient ¶
func (c *ClientMock) SpecsClient() specsclient.Interface
SpecsClient is used to get the SMI Specs clientset.
func (*ClientMock) SplitClient ¶
func (c *ClientMock) SplitClient() splitclient.Interface
SplitClient is used to get the SMI Split clientset.
type ClientWrapper ¶
type ClientWrapper struct {
// contains filtered or unexported fields
}
ClientWrapper holds the clients for the various resource controllers.
func (*ClientWrapper) AccessClient ¶
func (w *ClientWrapper) AccessClient() accessclient.Interface
AccessClient is used to get the SMI Access clientset.
func (*ClientWrapper) KubernetesClient ¶
func (w *ClientWrapper) KubernetesClient() kubernetes.Interface
KubernetesClient is used to get the kubernetes clientset.
func (*ClientWrapper) SpecsClient ¶
func (w *ClientWrapper) SpecsClient() specsclient.Interface
SpecsClient is used to get the SMI Specs clientset.
func (*ClientWrapper) SplitClient ¶
func (w *ClientWrapper) SplitClient() splitclient.Interface
SplitClient is used to get the SMI Split clientset.
type ResourceFilter ¶
type ResourceFilter struct {
// contains filtered or unexported fields
}
ResourceFilter holds resource filtering rules.
func NewResourceFilter ¶
func NewResourceFilter(opts ...ResourceFilterOption) *ResourceFilter
NewResourceFilter creates a new ResourceFilter, configured with the given options.
func (*ResourceFilter) Fields ¶
func (f *ResourceFilter) Fields() fields.Selector
func (*ResourceFilter) IsIgnored ¶
func (f *ResourceFilter) IsIgnored(obj interface{}) bool
IsIgnored returns true if the resource should be ignored.
func (*ResourceFilter) Labels ¶
func (f *ResourceFilter) Labels() labels.Selector
func (*ResourceFilter) List ¶
func (f *ResourceFilter) List() *client.ListOptions
type ResourceFilterOption ¶
type ResourceFilterOption func(filter *ResourceFilter)
ResourceFilterOption adds a filtering rule to the given ResourceFilter.
func IgnoreLabel ¶
func IgnoreLabel(name, value string) ResourceFilterOption
IgnoreLabel ignores resources with the given label and value.
func IgnoreNamespaces ¶
func IgnoreNamespaces(namespaces ...string) ResourceFilterOption
IgnoreNamespaces adds the given namespaces to the list of namespaces to ignore.
func IgnoreService ¶
func IgnoreService(namespace, name string) ResourceFilterOption
IgnoreService adds the service to the list of service to ignore.
func WatchNamespaces ¶
func WatchNamespaces(namespaces ...string) ResourceFilterOption
WatchNamespaces add the given namespaces to the list of namespaces to watch.