Documentation ¶
Index ¶
- Variables
- func CheckCacheEvents(store model.ConfigStore, cache model.ConfigStoreCache, namespace string, n int, ...)
- func CheckCacheFreshness(cache model.ConfigStoreCache, namespace string, t *testing.T)
- func CheckCacheSync(store model.ConfigStore, cache model.ConfigStoreCache, namespace string, n int, ...)
- func CheckIstioConfigTypes(store model.ConfigStore, namespace string, t *testing.T)
- func CheckMapInvariant(r model.ConfigStore, t *testing.T, namespace string, n int)
- func Compare(a, b model.Config) bool
- func Make(namespace string, i int) model.Config
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Types defines the mock config descriptor Types = model.ConfigDescriptor{model.MockConfig} // ExampleRouteRule is an example route rule ExampleRouteRule = &routing.RouteRule{ Destination: &routing.IstioService{ Name: "world", }, Route: []*routing.DestinationWeight{ {Weight: 80, Labels: map[string]string{"version": "v1"}}, {Weight: 20, Labels: map[string]string{"version": "v2"}}, }, } // ExampleVirtualService is an example V2 route rule ExampleVirtualService = &networking.VirtualService{ Hosts: []string{"prod", "test"}, Http: []*networking.HTTPRoute{ { Route: []*networking.DestinationWeight{ { Destination: &networking.Destination{ Host: "job", }, Weight: 80, }, }, }, }, } ExampleServiceEntry = &networking.ServiceEntry{ Hosts: []string{"*.google.com"}, Resolution: networking.ServiceEntry_NONE, Ports: []*networking.Port{ {Number: 80, Name: "http-name", Protocol: "http"}, {Number: 8080, Name: "http2-name", Protocol: "http2"}, }, } ExampleGateway = &networking.Gateway{ Servers: []*networking.Server{ { Hosts: []string{"google.com"}, Port: &networking.Port{Name: "http", Protocol: "http", Number: 10080}, }, }, } // ExampleDestinationRule is an example destination rule ExampleDestinationRule = &networking.DestinationRule{ Host: "ratings", TrafficPolicy: &networking.TrafficPolicy{ LoadBalancer: &networking.LoadBalancerSettings{ new(networking.LoadBalancerSettings_Simple), }, }, } // ExampleIngressRule is an example ingress rule ExampleIngressRule = &routing.IngressRule{ Destination: &routing.IstioService{ Name: "world", }, Port: 80, DestinationServicePort: &routing.IngressRule_DestinationPort{DestinationPort: 80}, } // ExampleEgressRule is an example egress rule ExampleEgressRule = &routing.EgressRule{ Destination: &routing.IstioService{ Service: "*cnn.com", }, Ports: []*routing.EgressRule_Port{{Port: 80, Protocol: "http"}}, UseEgressProxy: false, } // ExampleDestinationPolicy is an example destination policy ExampleDestinationPolicy = &routing.DestinationPolicy{ Destination: &routing.IstioService{ Name: "world", }, LoadBalancing: &routing.LoadBalancing{ LbPolicy: &routing.LoadBalancing_Name{Name: routing.LoadBalancing_RANDOM}, }, } // ExampleHTTPAPISpec is an example HTTPAPISpec ExampleHTTPAPISpec = &mccpb.HTTPAPISpec{ Attributes: &mpb.Attributes{ Attributes: map[string]*mpb.Attributes_AttributeValue{ "api.service": {Value: &mpb.Attributes_AttributeValue_StringValue{"petstore"}}, }, }, Patterns: []*mccpb.HTTPAPISpecPattern{{ Attributes: &mpb.Attributes{ Attributes: map[string]*mpb.Attributes_AttributeValue{ "api.operation": {Value: &mpb.Attributes_AttributeValue_StringValue{"getPet"}}, }, }, HttpMethod: "GET", Pattern: &mccpb.HTTPAPISpecPattern_UriTemplate{ UriTemplate: "/pets/{id}", }, }}, ApiKeys: []*mccpb.APIKey{{ Key: &mccpb.APIKey_Header{ Header: "X-API-KEY", }, }}, } // ExampleHTTPAPISpecBinding is an example HTTPAPISpecBinding ExampleHTTPAPISpecBinding = &mccpb.HTTPAPISpecBinding{ Services: []*mccpb.IstioService{ { Name: "foo", Namespace: "bar", }, }, ApiSpecs: []*mccpb.HTTPAPISpecReference{ { Name: "petstore", Namespace: "default", }, }, } // ExampleQuotaSpec is an example QuotaSpec ExampleQuotaSpec = &mccpb.QuotaSpec{ Rules: []*mccpb.QuotaRule{{ Match: []*mccpb.AttributeMatch{{ Clause: map[string]*mccpb.StringMatch{ "api.operation": { MatchType: &mccpb.StringMatch_Exact{ Exact: "getPet", }, }, }, }}, Quotas: []*mccpb.Quota{{ Quota: "fooQuota", Charge: 2, }}, }}, } // ExampleQuotaSpecBinding is an example QuotaSpecBinding ExampleQuotaSpecBinding = &mccpb.QuotaSpecBinding{ Services: []*mccpb.IstioService{ { Name: "foo", Namespace: "bar", }, }, QuotaSpecs: []*mccpb.QuotaSpecBinding_QuotaSpecReference{ { Name: "fooQuota", Namespace: "default", }, }, } // ExampleAuthenticationPolicy is an example authentication Policy ExampleAuthenticationPolicy = &authn.Policy{ Targets: []*authn.TargetSelector{{ Name: "hello", }}, Peers: []*authn.PeerAuthenticationMethod{{ Params: &authn.PeerAuthenticationMethod_Mtls{}, }}, } // ExampleServiceRole is an example rbac service role ExampleServiceRole = &rbac.ServiceRole{Rules: []*rbac.AccessRule{ { Services: []string{"service0"}, Methods: []string{"GET", "POST"}, Constraints: []*rbac.AccessRule_Constraint{ {Key: "key", Values: []string{"value"}}, {Key: "key", Values: []string{"value"}}, }, }, { Services: []string{"service0"}, Methods: []string{"GET", "POST"}, Constraints: []*rbac.AccessRule_Constraint{ {Key: "key", Values: []string{"value"}}, {Key: "key", Values: []string{"value"}}, }, }, }} // ExampleServiceRoleBinding is an example rbac service role binding ExampleServiceRoleBinding = &rbac.ServiceRoleBinding{ Subjects: []*rbac.Subject{ {User: "User0", Group: "Group0", Properties: map[string]string{"prop0": "value0"}}, {User: "User1", Group: "Group1", Properties: map[string]string{"prop1": "value1"}}, }, RoleRef: &rbac.RoleRef{Kind: "ServiceRole", Name: "ServiceRole001"}, } )
Functions ¶
func CheckCacheEvents ¶
func CheckCacheEvents(store model.ConfigStore, cache model.ConfigStoreCache, namespace string, n int, t *testing.T)
CheckCacheEvents validates operational invariants of a cache
func CheckCacheFreshness ¶
func CheckCacheFreshness(cache model.ConfigStoreCache, namespace string, t *testing.T)
CheckCacheFreshness validates operational invariants of a cache
func CheckCacheSync ¶
func CheckCacheSync(store model.ConfigStore, cache model.ConfigStoreCache, namespace string, n int, t *testing.T)
CheckCacheSync validates operational invariants of a cache against the non-cached client.
func CheckIstioConfigTypes ¶
func CheckIstioConfigTypes(store model.ConfigStore, namespace string, t *testing.T)
CheckIstioConfigTypes validates that an empty store can ingest Istio config objects
func CheckMapInvariant ¶
CheckMapInvariant validates operational invariants of an empty config registry
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.