helpers

package
v1.14.21 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2023 License: Apache-2.0 Imports: 53 Imported by: 1

Documentation

Index

Constants

View Source
const (
	ExactPath = iota
	PrefixPath
	RegexPath
)

Variables

This section is empty.

Functions

func Certificate added in v0.10.1

func Certificate() string

Certificate returns the CA certificate for the proxy.

func DeferredGoroutineLeakDetector added in v1.13.0

func DeferredGoroutineLeakDetector(t *testing.T) func()

DeferredGoroutineLeakDetector returns a function that can be used in tests to identify goroutine leaks Example usage:

	leakDetector := DeferredGoroutineLeakDetector(t)
 defer leakDetector()
 ...

NOTE TO DEVS: We would like to extend the usage of this across more test suites: https://github.com/solo-io/gloo/issues/7147

func EventuallyObjectDeleted added in v1.8.3

func EventuallyObjectDeleted(getter ObjectGetter, intervals ...interface{})

func EventuallyObjectDeletedWithOffset added in v1.8.3

func EventuallyObjectDeletedWithOffset(offset int, getter ObjectGetter, intervals ...interface{})

func EventuallyResourceAccepted added in v1.8.3

func EventuallyResourceAccepted(getter InputResourceGetter, intervals ...interface{})

func EventuallyResourceAcceptedWithOffset added in v1.14.0

func EventuallyResourceAcceptedWithOffset(offset int, getter InputResourceGetter, intervals ...interface{})

func EventuallyResourceDeleted added in v1.8.3

func EventuallyResourceDeleted(getter InputResourceGetter, intervals ...interface{})

func EventuallyResourceDeletedWithOffset added in v1.8.3

func EventuallyResourceDeletedWithOffset(offset int, getter InputResourceGetter, intervals ...interface{})

func EventuallyResourceRejected added in v1.9.0

func EventuallyResourceRejected(getter InputResourceGetter, intervals ...interface{})

func EventuallyResourceStatusMatchesState added in v1.8.3

func EventuallyResourceStatusMatchesState(offset int, getter InputResourceGetter, desiredStatusState core.Status_State, intervals ...interface{})

func EventuallyResourceWarning added in v1.8.3

func EventuallyResourceWarning(getter InputResourceGetter, intervals ...interface{})

func GetCallerDirectory added in v0.18.17

func GetCallerDirectory(skip ...int) (string, error)

returns absolute path to the currently executing directory

func GetCertificateFromString added in v1.14.2

func GetCertificateFromString(certificate string) *x509.Certificate

GetCertificateFromString returns an x509 certificate from the certificate's string representation.

func GetCerts added in v0.10.1

func GetCerts(params Params) (string, string)

GetCerts generates a signed key and certificate for the given parameters. If an IssuerKey is provided, the certificate will be signed by that key. Otherwise, a self-signed certificate will be generated.

func GetKubeSecret added in v0.10.1

func GetKubeSecret(name, namespace string) *kubev1.Secret

func GetPrivateKeyRSAFromString added in v1.14.2

func GetPrivateKeyRSAFromString(privateKey string) *rsa.PrivateKey

GetPrivateKeyRSAFromString returns an RSA private key from the key's string representation.

func GlooDir added in v0.10.1

func GlooDir() string

func GlooHelmChartDir added in v0.10.1

func GlooHelmChartDir() string

func GlooInstallDir added in v0.10.1

func GlooInstallDir() string

func GlooTestContainersDir added in v0.10.1

func GlooTestContainersDir() string

func KubeDump added in v0.18.9

func KubeDump(namespaces ...string) (string, error)

dump all data from the kube cluster

func KubeDumpOnFail added in v0.18.9

func KubeDumpOnFail(out io.Writer, namespaces ...string) func()

func MakeGatewayRoute added in v0.18.32

func MakeGatewayRoute(pathType, length int) *gatewayv1.Route

func MakeMatcher added in v1.0.0

func MakeMatcher(pathType, length int) *matchers.Matcher

func MakeMultiMatcherRoute added in v1.0.0

func MakeMultiMatcherRoute(pathType1, length1, pathType2, length2 int) *gloov1.Route

func MakeRoute added in v0.10.1

func MakeRoute(pathType, length int) *gloov1.Route

func MtlsCertificate added in v1.14.0

func MtlsCertificate() string

MtlsCertificate returns an mTLS CA certificate for the proxy.

func MtlsPrivateKey added in v1.14.0

func MtlsPrivateKey() string

MtlsPrivateKey returns an mTLS CA private key for the proxy.

func Must

func Must(err error)

func MustReadFile added in v0.18.17

func MustReadFile(name string) []byte

returns absolute path to the currently executing directory

func PatchResource added in v1.12.32

func PatchResource(ctx context.Context, resourceRef *core.ResourceRef, mutator func(resource resources.Resource) resources.Resource, client clients.ResourceClient) error

PatchResource mutates an existing persisted resource, retrying if a resourceVersionError is encountered The mutator method must return the full object that will be persisted, any side effects from the mutator will be ignored

func PatchResourceWithOffset added in v1.12.32

func PatchResourceWithOffset(offset int, ctx context.Context, resourceRef *core.ResourceRef, mutator func(resource resources.Resource) resources.Resource, client clients.ResourceClient) error

PatchResourceWithOffset mutates an existing persisted resource, retrying if a resourceVersionError is encountered The mutator method must return the full object that will be persisted, any side effects from the mutator will be ignored

func PrintDockerState added in v1.4.0

func PrintDockerState()

func PrintGlooDebugLogs added in v1.0.0

func PrintGlooDebugLogs()

func PrintKubeState added in v1.4.0

func PrintKubeState()

func PrintProcessState added in v1.4.0

func PrintProcessState()

func PrivateKey added in v0.10.1

func PrivateKey() string

PrivateKey returns the CA private key for the proxy.

func ReadMetricByLabel added in v1.9.25

func ReadMetricByLabel(metricName string, labelKey string, labelValue string) (int, error)

ReadMetricByLabel looks up the specified metricName and returns the latest data recorded for the time series with the specified label key/value pair.

If the metric has not yet been registered, this function will fail. If the metric has been registered, but there is not yet any time series data recorded with the label key/value provided, then an error is returned. The error response allows tests to distinguish "the metric was never recorded" from "a value of 0 was recorded"

func RegisterGlooDebugLogPrintHandler added in v0.18.12

func RegisterGlooDebugLogPrintHandler()

func RegisterGlooDebugLogPrintHandlerAndClearLogs added in v0.18.12

func RegisterGlooDebugLogPrintHandlerAndClearLogs()

func WriteDefaultGateways added in v1.2.13

func WriteDefaultGateways(writeNamespace string, gatewayClient v1.GatewayClient) error

Types

type FakeOcspResponder added in v1.14.2

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

FakeOcspResponder is a fake OCSP responder that can be used to generate OCSP responses.

func NewFakeOcspResponder added in v1.14.2

func NewFakeOcspResponder(rootCa *x509.Certificate, rootKey interface{}) *FakeOcspResponder

NewFakeOcspResponder creates a new fake OCSP responder from the given root CA.

func (*FakeOcspResponder) GetOcspResponse added in v1.14.2

func (f *FakeOcspResponder) GetOcspResponse(certificate *x509.Certificate, expiration time.Duration, isRevoked bool, resp ocsp.Response) []byte

GetOcspResponse returns a DER-encoded OCSP response for the given certificate. You pass it the certificate to get a response for, the expiration time of the response, and whether the certificate should be revoked. You can also pass it an ocsp.Response to use as a template for the response. This allows for customizing the response wanted.

type InputResourceGetter added in v1.8.3

type InputResourceGetter func() (resources.InputResource, error)

type InputResourceListGetter added in v1.8.3

type InputResourceListGetter func() (resources.InputResourceList, error)

type ObjectGetter added in v1.8.3

type ObjectGetter func() (client.Object, error)

type Params added in v0.10.1

type Params struct {
	Hosts            string             // Comma-separated hostnames and IPs to generate a certificate for
	ValidFrom        *time.Time         // Creation date
	ValidFor         *time.Duration     // Duration that certificate is valid for
	IsCA             bool               // whether this cert should be its own Certificate Authority
	RsaBits          int                // Size of RSA key to generate. Ignored if EcdsaCurve is set
	EcdsaCurve       string             // ECDSA curve to use to generate a key. Valid values are P224, P256 (recommended), P384, P521
	AdditionalUsages []x509.ExtKeyUsage // Usages to define in addition to default x509.ExtKeyUsageServerAuth
	IssuerKey        interface{}        // If provided, the certificate will be signed by this key
}

Params includes parameters used to generate an x509 certificate.

type ResourceClientSet added in v1.12.21

type ResourceClientSet interface {
	GatewayClient() gatewayv1.GatewayClient
	HttpGatewayClient() gatewayv1.MatchableHttpGatewayClient
	TcpGatewayClient() gatewayv1.MatchableTcpGatewayClient
	VirtualServiceClient() gatewayv1.VirtualServiceClient
	RouteTableClient() gatewayv1.RouteTableClient
	VirtualHostOptionClient() gatewayv1.VirtualHostOptionClient
	RouteOptionClient() gatewayv1.RouteOptionClient
	SettingsClient() gloov1.SettingsClient
	UpstreamGroupClient() gloov1.UpstreamGroupClient
	UpstreamClient() gloov1.UpstreamClient
	ProxyClient() gloov1.ProxyClient
	AuthConfigClient() extauthv1.AuthConfigClient
	RateLimitConfigClient() externalrl.RateLimitConfigClient
	SecretClient() gloov1.SecretClient
	ArtifactClient() gloov1.ArtifactClient
}

type RouteBuilder added in v1.14.20

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

RouteBuilder simplifies the process of generating Routes in tests

func BuilderFromRoute added in v1.14.20

func BuilderFromRoute(r *gatewayv1.Route) *RouteBuilder

BuilderFromRoute creates a new RouteBuilder from an existing Route

func NewRouteBuilder added in v1.14.20

func NewRouteBuilder() *RouteBuilder

NewRouteBuilder creates an empty RouteBuilder

func (*RouteBuilder) Build added in v1.14.20

func (b *RouteBuilder) Build() *gatewayv1.Route

func (*RouteBuilder) Clone added in v1.14.20

func (b *RouteBuilder) Clone() *RouteBuilder

func (*RouteBuilder) WithMatcher added in v1.14.20

func (b *RouteBuilder) WithMatcher(matcher *matchers.Matcher) *RouteBuilder

func (*RouteBuilder) WithName added in v1.14.20

func (b *RouteBuilder) WithName(name string) *RouteBuilder

func (*RouteBuilder) WithPrefixMatcher added in v1.14.20

func (b *RouteBuilder) WithPrefixMatcher(prefix string) *RouteBuilder

func (*RouteBuilder) WithRouteAction added in v1.14.20

func (b *RouteBuilder) WithRouteAction(routeAction *gloov1.RouteAction) *RouteBuilder

func (*RouteBuilder) WithRouteActionToUpstreamRef added in v1.14.20

func (b *RouteBuilder) WithRouteActionToUpstreamRef(ref *core.ResourceRef) *RouteBuilder

func (*RouteBuilder) WithRouteOptions added in v1.14.20

func (b *RouteBuilder) WithRouteOptions(opts *gloov1.RouteOptions) *RouteBuilder

type RouteTableBuilder added in v1.14.20

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

RouteTableBuilder simplifies the process of generating RouteTables in tests

func BuilderFromRouteTable added in v1.14.20

func BuilderFromRouteTable(rt *v1.RouteTable) *RouteTableBuilder

BuilderFromRouteTable creates a new RouteTableBuilder from an existing RouteTable

func NewRouteTableBuilder added in v1.14.20

func NewRouteTableBuilder() *RouteTableBuilder

NewRouteTableBuilder creates an empty RouteTableBuilder

func (*RouteTableBuilder) Build added in v1.14.20

func (b *RouteTableBuilder) Build() *v1.RouteTable

func (*RouteTableBuilder) Clone added in v1.14.20

func (*RouteTableBuilder) WithName added in v1.14.20

func (b *RouteTableBuilder) WithName(name string) *RouteTableBuilder

func (*RouteTableBuilder) WithNamespace added in v1.14.20

func (b *RouteTableBuilder) WithNamespace(namespace string) *RouteTableBuilder

func (*RouteTableBuilder) WithRoute added in v1.14.20

func (b *RouteTableBuilder) WithRoute(name string, route *v1.Route) *RouteTableBuilder

type SnapshotWriter added in v1.12.21

type SnapshotWriter interface {
	WriteSnapshot(snapshot *gloosnapshot.ApiSnapshot, writeOptions clients.WriteOpts) error
	DeleteSnapshot(snapshot *gloosnapshot.ApiSnapshot, deleteOptions clients.DeleteOpts) error
}

type SnapshotWriterImpl added in v1.14.11

type SnapshotWriterImpl struct {
	ResourceClientSet
	// contains filtered or unexported fields
}

func NewSnapshotWriter added in v1.12.21

func NewSnapshotWriter(clientSet ResourceClientSet) *SnapshotWriterImpl

func (*SnapshotWriterImpl) DeleteSnapshot added in v1.14.11

func (s *SnapshotWriterImpl) DeleteSnapshot(snapshot *gloosnapshot.ApiSnapshot, deleteOptions clients.DeleteOpts) error

DeleteSnapshot deletes all resources in the ApiSnapshot from the cache, retrying the operation based on the retryOptions

func (*SnapshotWriterImpl) WithRetryOptions added in v1.14.11

func (s *SnapshotWriterImpl) WithRetryOptions(retryOptions []retry.Option) *SnapshotWriterImpl

WithRetryOptions appends the retryOptions that the SnapshotWriter relies on to the default retry options

func (*SnapshotWriterImpl) WithWriteNamespace added in v1.14.11

func (s *SnapshotWriterImpl) WithWriteNamespace(writeNamespace string) *SnapshotWriterImpl

WithWriteNamespace sets the namespace that the SnapshotWriter expects resources to be written to This is used when Proxies are deleted, by listing all Proxies in this namespace and removing them

func (*SnapshotWriterImpl) WriteSnapshot added in v1.14.11

func (s *SnapshotWriterImpl) WriteSnapshot(snapshot *gloosnapshot.ApiSnapshot, writeOptions clients.WriteOpts) error

WriteSnapshot writes all resources in the ApiSnapshot to the cache, retrying the operation based on the retryOptions

type VirtualServiceBuilder added in v1.14.0

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

VirtualServiceBuilder simplifies the process of generating VirtualServices in tests

func BuilderFromVirtualService added in v1.12.21

func BuilderFromVirtualService(vs *v1.VirtualService) *VirtualServiceBuilder

func NewVirtualServiceBuilder added in v1.9.25

func NewVirtualServiceBuilder() *VirtualServiceBuilder

func (*VirtualServiceBuilder) Build added in v1.14.0

func (*VirtualServiceBuilder) Clone added in v1.14.0

func (*VirtualServiceBuilder) WithDomain added in v1.14.0

func (b *VirtualServiceBuilder) WithDomain(domain string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithName added in v1.14.0

func (*VirtualServiceBuilder) WithNamespace added in v1.14.0

func (b *VirtualServiceBuilder) WithNamespace(namespace string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRoute added in v1.14.0

func (b *VirtualServiceBuilder) WithRoute(routeName string, route *v1.Route) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteAction added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteAction(routeName string, routeAction *gloov1.RouteAction) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteActionToMultiDestination added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteActionToMultiDestination(routeName string, destination *gloov1.MultiDestination) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteActionToSingleDestination added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteActionToSingleDestination(routeName string, destination *gloov1.Destination) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteActionToUpstream added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteActionToUpstream(routeName string, upstream *gloov1.Upstream) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteActionToUpstreamRef added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteActionToUpstreamRef(routeName string, upstreamRef *core.ResourceRef) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteDelegateAction added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteDelegateAction(routeName string, delegateAction *v1.DelegateAction) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteDelegateActionRef added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteDelegateActionRef(routeName string, delegateRef *core.ResourceRef) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteDelegateActionSelector added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteDelegateActionSelector(routeName string, delegateSelector *v1.RouteTableSelector) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteDirectResponseAction added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteDirectResponseAction(routeName string, action *gloov1.DirectResponseAction) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteMatcher added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteMatcher(routeName string, matcher *matchers.Matcher) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteMutation added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteMutation(routeName string, mutation func(route *v1.Route)) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRouteOptions added in v1.14.0

func (b *VirtualServiceBuilder) WithRouteOptions(routeName string, routeOptions *gloov1.RouteOptions) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithRoutePrefixMatcher added in v1.14.0

func (b *VirtualServiceBuilder) WithRoutePrefixMatcher(routeName string, prefixMatch string) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithSslConfig added in v1.14.0

func (b *VirtualServiceBuilder) WithSslConfig(sslConfig *ssl.SslConfig) *VirtualServiceBuilder

func (*VirtualServiceBuilder) WithVirtualHostOptions added in v1.14.0

func (b *VirtualServiceBuilder) WithVirtualHostOptions(virtualHostOptions *gloov1.VirtualHostOptions) *VirtualServiceBuilder

Jump to

Keyboard shortcuts

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