routing

package
v1.0.0-preview Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 5, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	SubsetBaseline  = "iter8-baseline"
	SubsetCandidate = "iter8-candidate"
	SubsetStable    = "iter8-stable"

	RoleInitializing = "initializing"
	RoleStable       = "stable"
	RoleProgressing  = "progressing"

	ExperimentInit  = "iter8-tools/init"
	ExperimentRole  = "iter8-tools/role"
	ExperimentLabel = "iter8-tools/experiment"
	ExperimentHost  = "iter8-tools/host"
)
View Source
const (
	IstioRuleSuffix = ".iter8-experiment"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DestinationRuleBuilder

type DestinationRuleBuilder v1alpha3.DestinationRule

func NewDestinationRule

func NewDestinationRule(serviceName, name, namespace string) *DestinationRuleBuilder

func NewDestinationRuleBuilder

func NewDestinationRuleBuilder(dr *v1alpha3.DestinationRule) *DestinationRuleBuilder

func (*DestinationRuleBuilder) Build

func (*DestinationRuleBuilder) InitSubsets added in v0.2.0

func (b *DestinationRuleBuilder) InitSubsets(count int) *DestinationRuleBuilder

func (*DestinationRuleBuilder) ProgressingToStable

func (b *DestinationRuleBuilder) ProgressingToStable(stableSubsets map[string]string) *DestinationRuleBuilder

func (*DestinationRuleBuilder) RemoveExperimentLabel

func (b *DestinationRuleBuilder) RemoveExperimentLabel() *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithExperimentRegistered added in v0.2.0

func (b *DestinationRuleBuilder) WithExperimentRegistered(exp string) *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithHostRegistered

func (b *DestinationRuleBuilder) WithHostRegistered(host string) *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithInitLabel

func (b *DestinationRuleBuilder) WithInitLabel() *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithName

func (*DestinationRuleBuilder) WithProgressingLabel

func (b *DestinationRuleBuilder) WithProgressingLabel() *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithStableLabel

func (b *DestinationRuleBuilder) WithStableLabel() *DestinationRuleBuilder

func (*DestinationRuleBuilder) WithSubset

func (b *DestinationRuleBuilder) WithSubset(d *appsv1.Deployment, subsetName string, idx int) *DestinationRuleBuilder

WithSubset converts stable dr to progressing dr

type HTTPRouteBuilder added in v0.2.0

type HTTPRouteBuilder networkingv1alpha3.HTTPRoute

func NewEmptyHTTPRoute added in v0.2.0

func NewEmptyHTTPRoute() *HTTPRouteBuilder

func NewHTTPRoute added in v0.2.0

func NewHTTPRoute(route *networkingv1alpha3.HTTPRoute) *HTTPRouteBuilder

func (*HTTPRouteBuilder) Build added in v0.2.0

func (*HTTPRouteBuilder) ClearRoute

func (b *HTTPRouteBuilder) ClearRoute() *HTTPRouteBuilder

func (*HTTPRouteBuilder) WithDestination added in v0.2.0

type HTTPRouteDestinationBuilder added in v0.2.0

type HTTPRouteDestinationBuilder networkingv1alpha3.HTTPRouteDestination

func NewHTTPRouteDestination added in v0.2.0

func NewHTTPRouteDestination() *HTTPRouteDestinationBuilder

func (*HTTPRouteDestinationBuilder) Build added in v0.2.0

func (*HTTPRouteDestinationBuilder) WithHost added in v0.2.0

func (*HTTPRouteDestinationBuilder) WithPort added in v0.2.0

func (*HTTPRouteDestinationBuilder) WithSubset added in v0.2.0

func (*HTTPRouteDestinationBuilder) WithWeight added in v0.2.0

type Router

type Router struct {
	// contains filtered or unexported fields
}

func Init

func Init(client istioclient.Interface) *Router

Init returns an initialized router

func (*Router) Cleanup

func (r *Router) Cleanup(context context.Context, instance *iter8v1alpha2.Experiment) (err error)

Cleanup configures routing rules to set up traffic to desired end state

func (*Router) GetRoutingRuleName

func (r *Router) GetRoutingRuleName() string

GetRoutingRuleName returns namespaced name of routing rulesin the router

func (*Router) GetRoutingRules

func (r *Router) GetRoutingRules(instance *iter8v1alpha2.Experiment) error

GetRoutingRules will inject routing rules into router or return error if there is any

func (*Router) InitRoutingRules

func (r *Router) InitRoutingRules(instance *iter8v1alpha2.Experiment) error

InitRoutingRules creates routing rules for experiment

func (*Router) UpdateBaseline

func (r *Router) UpdateBaseline(ctx context.Context, instance *iter8v1alpha2.Experiment, targets *targets.Targets) (err error)

func (*Router) UpdateCandidates

func (r *Router) UpdateCandidates(context context.Context, targets *targets.Targets) (err error)

func (*Router) UpdateTrafficSplit

func (r *Router) UpdateTrafficSplit(instance *iter8v1alpha2.Experiment) error

UpdateTrafficSplit updates virtualservice with latest traffic split

type VirtualServiceBuilder

type VirtualServiceBuilder v1alpha3.VirtualService

func NewVirtualService

func NewVirtualService(serviceName, name, namespace string) *VirtualServiceBuilder

func NewVirtualServiceBuilder

func NewVirtualServiceBuilder(vs *v1alpha3.VirtualService) *VirtualServiceBuilder

func (*VirtualServiceBuilder) Build

func (*VirtualServiceBuilder) InitGateways added in v0.2.0

func (b *VirtualServiceBuilder) InitGateways() *VirtualServiceBuilder

func (*VirtualServiceBuilder) InitHosts added in v0.2.0

func (*VirtualServiceBuilder) ProgressingToStable

func (b *VirtualServiceBuilder) ProgressingToStable(weight map[string]int32, host, ns string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) RemoveExperimentLabel

func (b *VirtualServiceBuilder) RemoveExperimentLabel() *VirtualServiceBuilder

func (*VirtualServiceBuilder) ToProgressing

func (b *VirtualServiceBuilder) ToProgressing(service string, candidateCount int) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithExperimentRegistered added in v0.2.0

func (b *VirtualServiceBuilder) WithExperimentRegistered(exp string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithGateways added in v0.2.0

func (b *VirtualServiceBuilder) WithGateways(gws []string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithHTTPMatch

func (*VirtualServiceBuilder) WithHTTPRoute added in v0.2.0

WithHTTPRoute updates the first http route

func (*VirtualServiceBuilder) WithHostRegistered

func (b *VirtualServiceBuilder) WithHostRegistered(host string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithHosts added in v0.2.0

func (b *VirtualServiceBuilder) WithHosts(hosts []string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithInitLabel

func (b *VirtualServiceBuilder) WithInitLabel() *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithMeshGateway added in v0.2.0

func (b *VirtualServiceBuilder) WithMeshGateway() *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithPort

WithPort adds port to each destination in iter8 route

func (*VirtualServiceBuilder) WithProgressingLabel

func (b *VirtualServiceBuilder) WithProgressingLabel() *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithStableLabel

func (b *VirtualServiceBuilder) WithStableLabel() *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithTrafficSplit

func (b *VirtualServiceBuilder) WithTrafficSplit(host string, trafficSplit map[string]int32) *VirtualServiceBuilder

WithTrafficSplit will update http route with specified traffic split

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL