framework

package
v2.13.2 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: Apache-2.0 Imports: 87 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Verbose = true
	Silent  = false

	TestNamespace = "kuma-test"

	Kuma1 = "kuma-1"
	Kuma2 = "kuma-2"
	Kuma3 = "kuma-3"
	Kuma4 = "kuma-4"
	Kuma5 = "kuma-5"
	Kuma6 = "kuma-6"

	DefaultRetries = 30
	DefaultTimeout = 3 * time.Second

	UniversalZoneIngressPort = 30686
)
View Source
const (
	AppModeCP              = "kuma-cp"
	AppIngress             = "ingress"
	AppEgress              = "egress"
	AppModeEchoServer      = "echo-server"
	AppModeHttpsEchoServer = "https-echo-server"
	AppModeTcpSink         = "tcp-sink"
	AppModeDemoClient      = "demo-client"
)
View Source
const DockerNetworkName = "kind"

Variables

View Source
var (
	HelmInstallationMode    = InstallationMode("helm")
	KumactlInstallationMode = InstallationMode("kumactl")
)
View Source
var Serializer *k8sjson.Serializer

Functions

func AfterEachFailure added in v2.10.9

func AfterEachFailure(fn func()) bool

func ControlPlaneAssertions added in v2.10.9

func ControlPlaneAssertions(cluster Cluster)

func CreateCertsFor

func CreateCertsFor(names ...string) (string, string, error)

func DataplaneReceivedConfig

func DataplaneReceivedConfig(cluster Cluster, mesh, name string) (bool, error)

func DebugCPLogs added in v2.10.9

func DebugCPLogs(cluster Cluster)

func DebugKube added in v2.10.9

func DebugKube(cluster Cluster, mesh string, namespaces ...string)

func DebugUniversal added in v2.10.9

func DebugUniversal(cluster Cluster, mesh string)

DebugUniversal prints state of the cluster. Useful in case of failure. Ideas what we can add * XDS / Stats / Clusters of all DPPs (ideally in form of command that we can use on prod as well) * CP logs (although we print this already on failure)

func DeleteMeshPolicyOrError

func DeleteMeshPolicyOrError(cluster Cluster, descriptor core_model.ResourceTypeDescriptor, policyName string, mesh ...string) error

func DeleteMeshResources

func DeleteMeshResources(cluster Cluster, mesh string, descriptor ...core_model.ResourceTypeDescriptor) error

func DumpState added in v2.10.9

func DumpState(cluster Cluster, mesh string, namespaces ...string)

DumpState prints debug information of the cluster. Useful in case of failure. Ideally we should have Cluster keep an inventory of the namespaces and meshes it has so we don't have to pass them here. This way we'd be able to use ginkgo.ReportAfterEach

func DumpTempCerts

func DumpTempCerts(names ...string) (string, error)

func E2EAfterAll

func E2EAfterAll(fn func()) bool

func E2EAfterEach

func E2EAfterEach(fn func()) bool

func E2EAfterSuite

func E2EAfterSuite(fn func()) bool

func E2EBeforeSuite

func E2EBeforeSuite(fn func()) bool

func E2EDeferCleanup

func E2EDeferCleanup(args ...interface{})

func E2ESynchronizedBeforeSuite

func E2ESynchronizedBeforeSuite(process1Body interface{}, allProcessBody interface{}, args ...interface{}) bool

func ExtractSecretDataFromResponse

func ExtractSecretDataFromResponse(output string) (string, error)

func GatewayAPICRDs

func GatewayAPICRDs(cluster Cluster) error

func GetMeshServiceStatus added in v2.10.9

func GetMeshServiceStatus(cluster Cluster, meshServiceName, meshName string) (*meshservice_api.MeshService, *meshservice_api.MeshServiceStatus, error)

func GetWorkload added in v2.13.0

func GetWorkload(cluster Cluster, workloadName, meshName string) (*workload_api.WorkloadResource, error)

func Init added in v2.11.8

func Init(configModificationFunctions ...func(*E2eConfig))

func IsDataplaneOnline

func IsDataplaneOnline(cluster Cluster, mesh, name string) (bool, bool, error)

IsDataplaneOnline returns online, found, error

func Logf

func Logf(format string, args ...interface{})

Logf logs a test progress message.

func MarshalObjectDetails added in v2.10.9

func MarshalObjectDetails(e *ObjectDetails) string

func NewKumactlOptionsE2E

func NewKumactlOptionsE2E(t testing.TestingT, cpname string, verbose bool) *kumactl.KumactlOptions

func NumberOfResources added in v2.10.9

func NumberOfResources(c Cluster, resource core_model.ResourceTypeDescriptor) (int, error)

func PodIPOfApp

func PodIPOfApp(cluster Cluster, name string, namespace string) (string, error)

func PodNameOfApp

func PodNameOfApp(cluster Cluster, name string, namespace string) (string, error)

func PodOfApp

func PodOfApp(cluster Cluster, name string, namespace string) (v1.Pod, error)

func RenderDataplaneTemplate added in v2.13.0

func RenderDataplaneTemplate(data DataplaneTemplateData) (string, error)

RenderDataplaneTemplate renders a dataplane template with the given data

func RenderZoneEgressTemplate added in v2.13.0

func RenderZoneEgressTemplate(data ZoneEgressTemplateData) (string, error)

RenderZoneEgressTemplate renders a zone egress template with the given data

func RenderZoneIngressTemplate added in v2.13.0

func RenderZoneIngressTemplate(data ZoneIngressTemplateData) (string, error)

RenderZoneIngressTemplate renders a zone ingress template with the given data

func RestartCount added in v2.10.9

func RestartCount(pods []v1.Pod) int

func ScaleApp added in v2.10.9

func ScaleApp(cluster Cluster, app, namespace string, replicas int) error

func ShouldSkipCleanup

func ShouldSkipCleanup() bool

func SupportedVersionEntries added in v2.10.9

func SupportedVersionEntries() []ginkgo.TableEntry

func UpdateKubeObject

func UpdateKubeObject(
	t testing.TestingT,
	k8sOpts *k8s.KubectlOptions,
	typeName string,
	objectName string,
	update func(object runtime.Object) runtime.Object,
) error

func WaitForMesh

func WaitForMesh(mesh string, clusters []Cluster) error

func WaitForResource

func WaitForResource(descriptor core_model.ResourceTypeDescriptor, key core_model.ResourceKey, clusters ...Cluster) error

func WaitNamespaceDelete added in v2.10.9

func WaitNamespaceDelete(cluster Cluster, namespace string) error

Types

type AppDeploymentOption

type AppDeploymentOption interface {
	ApplyApp(*appDeploymentOptions)
}

func BoundToContainerIp

func BoundToContainerIp() AppDeploymentOption

BoundToContainerIp only works with Universal

func ProxyOnly

func ProxyOnly() AppDeploymentOption

func ServiceProbe

func ServiceProbe() AppDeploymentOption

func WithAdditionalTags

func WithAdditionalTags(tags map[string]string) AppDeploymentOption

func WithAppDockerRunOptions added in v2.11.8

func WithAppDockerRunOptions(options []string) AppDeploymentOption

func WithAppLabel added in v2.10.9

func WithAppLabel(app string) AppDeploymentOption

func WithAppendDataplaneYaml

func WithAppendDataplaneYaml(config string) AppDeploymentOption

func WithAppname

func WithAppname(appname string) AppDeploymentOption

func WithArgs

func WithArgs(appArgs []string) AppDeploymentOption

func WithBindOutbounds added in v2.11.8

func WithBindOutbounds() AppDeploymentOption

func WithBuiltinDNS

func WithBuiltinDNS(builtindns bool) AppDeploymentOption

func WithConcurrency

func WithConcurrency(concurrency int) AppDeploymentOption

func WithDPVersion

func WithDPVersion(version string) AppDeploymentOption

WithDPVersion only works with Universal now

func WithDockerContainerName

func WithDockerContainerName(name string) AppDeploymentOption

func WithDockerVolumes

func WithDockerVolumes(volumes ...string) AppDeploymentOption

func WithDpEnvs

func WithDpEnvs(envs map[string]string) AppDeploymentOption

func WithKumactlFlow

func WithKumactlFlow() AppDeploymentOption

WithKumactlFlow creates the Dataplane resource in the control plane before the actual data plane proxy start. If proxy is disconnected, resource won't be deleted from the storage and will be displayed as Offline.

func WithLabels added in v2.13.0

func WithLabels(labels map[string]string) AppDeploymentOption

func WithMesh

func WithMesh(mesh string) AppDeploymentOption

func WithName

func WithName(name string) AppDeploymentOption

func WithNamespace

func WithNamespace(namespace string) AppDeploymentOption

func WithProtocol

func WithProtocol(protocol core_meta.Protocol) AppDeploymentOption

func WithReachableServices

func WithReachableServices(services ...string) AppDeploymentOption

func WithServiceAddress

func WithServiceAddress(serviceAddress string) AppDeploymentOption

func WithServiceInstance

func WithServiceInstance(instance string) AppDeploymentOption

func WithServiceName

func WithServiceName(name string) AppDeploymentOption

func WithServiceVersion

func WithServiceVersion(version string) AppDeploymentOption

func WithSpireAgent added in v2.13.0

func WithSpireAgent(token string, serverAddress string, port string, trustDomain string) AppDeploymentOption

func WithToken

func WithToken(token string) AppDeploymentOption

func WithTransparentProxy

func WithTransparentProxy(transparent bool) AppDeploymentOption

func WithWorkload added in v2.13.0

func WithWorkload(workload string) AppDeploymentOption

func WithYaml

func WithYaml(appYaml string) AppDeploymentOption

func WithoutDataplane

func WithoutDataplane() AppDeploymentOption

WithoutDataplane suppresses the automatic configuration of kuma-dp in the application container. This is useful when the test requires a container that is not bound to the mesh.

type AppMode

type AppMode string

type AppOptionFunc

type AppOptionFunc func(*appDeploymentOptions)

func (AppOptionFunc) ApplyApp

func (f AppOptionFunc) ApplyApp(opts *appDeploymentOptions)

type BlockingReader

type BlockingReader struct{}

func (*BlockingReader) Read

func (*BlockingReader) Read([]byte) (int, error)

type CNIVersion

type CNIVersion string
const (
	CNIVersion1 CNIVersion = "v1"
	CNIVersion2 CNIVersion = "v2"
)

type Cluster

type Cluster interface {
	// Cluster
	Name() string
	DismissCluster() error
	// Generic
	DeployKuma(mode core.CpMode, opts ...KumaDeploymentOption) error
	GetKuma() ControlPlane
	// GetKumaCPLogs returns a set of logs (depending on env it can be stdout, stderr or current and previous)...
	GetKumaCPLogs() map[string]string
	VerifyKuma() error
	DeleteKuma() error
	GetKumactlOptions() *kumactl.KumactlOptions
	Deployment(name string) Deployment
	Deploy(deployment Deployment) error
	DeleteDeployment(name string) error
	WithTimeout(timeout time.Duration) Cluster
	WithRetries(retries int) Cluster
	GetZoneEgressEnvoyTunnel() envoy_admin.Tunnel
	GetZoneIngressEnvoyTunnel() envoy_admin.Tunnel
	Verbose() bool
	Install(fn InstallFunc) error
	ZoneName() string

	// K8s
	GetKubectlOptions(namespace ...string) *k8s.KubectlOptions
	CreateNamespace(namespace string) error
	DeleteNamespace(namespace string, fns ...NamespaceDeleteHookFunc) error
	DeployApp(fs ...AppDeploymentOption) error
	Exec(namespace, podName, containerName string, cmd ...string) (string, string, error)

	// Testing
	GetTesting() testing.TestingT
}

type ClusterSetup

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

func NewClusterSetup

func NewClusterSetup() *ClusterSetup

func (*ClusterSetup) Install

func (cs *ClusterSetup) Install(fn InstallFunc) *ClusterSetup

func (*ClusterSetup) Setup

func (cs *ClusterSetup) Setup(cluster Cluster) error

func (*ClusterSetup) SetupInGroup added in v2.10.9

func (cs *ClusterSetup) SetupInGroup(cluster Cluster, group *errgroup.Group)

func (*ClusterSetup) SetupInParallel added in v2.10.9

func (cs *ClusterSetup) SetupInParallel(cluster Cluster) error

func (*ClusterSetup) SetupWithRetries

func (cs *ClusterSetup) SetupWithRetries(cluster Cluster, maxRetries int) error

type CniConf

type CniConf struct {
	BinDir   string
	NetDir   string
	ConfName string
}

type CompatibilitySuiteConfig

type CompatibilitySuiteConfig struct {
	HelmVersion string `json:"helmVersion,omitempty"`
}

type ControlPlane

type ControlPlane interface {
	GetName() string
	GetMetrics() (string, error)
	GetMonitoringAssignment(clientId string) (string, error)
	GetKDSServerAddress() string
	GetKDSInsecureServerAddress() string
	GetXDSServerAddress() string
	GetAPIServerAddress() string
	GenerateDpToken(mesh, serviceName, workload string) (string, error)
	GenerateZoneIngressToken(zone string) (string, error)
	GenerateZoneEgressToken(zone string) (string, error)
	GenerateZoneToken(zone string, scope []string) (string, error)
	Exec(cmd ...string) (string, string, error)
}

type ControlPlaneConfig

type ControlPlaneConfig struct {
	Envs                 map[string]string `json:"envs,omitempty"`
	AdditionalYamlConfig string            `json:"additionalYamlConfig,omitempty"`
}

type DataplaneTemplateData added in v2.13.0

type DataplaneTemplateData struct {
	// Core fields
	Name        string
	Mesh        string
	ServiceName string

	// Inbound configuration
	InboundPort        string
	InboundServicePort string
	ServiceAddress     string

	// Tags
	Protocol       string
	Version        string
	Instance       string
	Team           string
	AdditionalTags map[string]string
	Labels         map[string]string

	// Service probe
	ServiceProbe bool

	// Outbound configuration
	Outbounds []OutboundConfig

	// Transparent proxy configuration
	TransparentProxy *TransparentProxyConfig

	// Additional raw YAML to append
	AppendConfig string
}

DataplaneTemplateData represents the data for dataplane templates

type Deployment

type Deployment interface {
	Name() string
	Deploy(cluster Cluster) error
	Delete(cluster Cluster) error
}

type DockerBackend added in v2.11.8

type DockerBackend interface {
	// RunAndGetIDE runs the 'docker run' command on the given image with the given options and returns the container ID
	// that is returned in stdout, or any error.
	RunAndGetIDE(t testing.TestingT, image string, options *docker.RunOptions) (string, error)

	// StopE runs the 'docker stop' command for the given containers and returns any errors.
	StopE(t testing.TestingT, containers []string, options *docker.StopOptions) (string, error)

	GetPublishedDockerPorts(t testing.TestingT, l *logger.Logger, container string, ports []uint32) (map[uint32]uint32, error)

	RunCommandAndGetStdOutE(t testing.TestingT, cmdName string, args []string, log *logger.Logger) (string, error)
}

type E2eConfig

type E2eConfig struct {
	config.BaseConfig

	KumaImageRegistry                 string            `json:"imageRegistry,omitempty" envconfig:"KUMA_GLOBAL_IMAGE_REGISTRY"`
	KumaImageTag                      string            `json:"imageTag,omitempty" envconfig:"KUMA_GLOBAL_IMAGE_TAG"`
	KumaNamespace                     string            `json:"namespace,omitempty"`
	KumaServiceName                   string            `json:"serviceName,omitempty"`
	HelmChartPath                     string            `json:"helmChartPath,omitempty"`
	HelmSubChartPrefix                string            `json:"helmSubChartPrefix,omitempty"`
	HelmChartName                     string            `json:"helmChartName,omitempty"`
	HelmRepoUrl                       string            `json:"helmRepoUrl,omitempty"`
	HelmGlobalExtraYaml               string            `json:"HelmGlobalExtraYaml,omitempty"`
	CNIApp                            string            `json:"CNIApp,omitempty"`
	CNINamespace                      string            `json:"CNINamespace,omitempty"`
	CNIConf                           CniConf           `json:"CNIConf,omitempty"`
	KumaGlobalZoneSyncServiceName     string            `json:"globalZoneSyncServiceName,omitempty"`
	KumaUniversalEnvVars              map[string]string `json:"universalEnvVars,omitempty"`
	KumaZoneUniversalEnvVars          map[string]string `json:"universalZoneEnvVars,omitempty"`
	KumaK8sCtlFlags                   map[string]string `json:"k8sCtlFlags,omitempty"`
	KumaZoneK8sCtlFlags               map[string]string `json:"k8sZoneCtlFlags,omitempty"`
	DefaultObservabilityNamespace     string            `json:"observabilityNamespace,omitempty"`
	DefaultGatewayNamespace           string            `json:"gatewayNamespace,omitempty"`
	KumactlImageRepo                  string            `json:"ctlImageRepo,omitempty" envconfig:"KUMACTL_IMAGE_REPOSITORY"`
	KumaCPImageRepo                   string            `json:"cpImageRepo,omitempty" envconfig:"KUMA_CP_IMAGE_REPOSITORY"`
	KumaDPImageRepo                   string            `json:"dpImageRepo,omitempty" envconfig:"KUMA_DP_IMAGE_REPOSITORY"`
	KumaInitImageRepo                 string            `json:"initImageRepo,omitempty" envconfig:"KUMA_INIT_IMAGE_REPOSITORY"`
	KumaCNIImageRepo                  string            `json:"cniImageRepo,omitempty" envconfig:"KUMA_CNI_IMAGE_REPOSITORY"`
	KumaUniversalImageRepo            string            `json:"universalImageRepo,omitempty"`
	XDSApiVersion                     string            `json:"xdsVersion,omitempty" envconfig:"API_VERSION"`
	K8sType                           K8sType           `json:"k8sType,omitempty" envconfig:"KUMA_K8S_TYPE"`
	IPV6                              bool              `json:"ipv6,omitempty" envconfig:"IPV6"`
	UseHostnameInsteadOfIP            bool              `json:"useHostnameInsteadOfIP,omitempty" envconfig:"KUMA_USE_HOSTNAME_INSTEAD_OF_ID"`
	UseLoadBalancer                   bool              `json:"useLoadBalancer,omitempty" envconfig:"KUMA_USE_LOAD_BALANCER"`
	DefaultClusterStartupRetries      int               `json:"defaultClusterStartupRetries,omitempty" envconfig:"KUMA_DEFAULT_RETRIES"`
	DefaultClusterStartupTimeout      time.Duration     `json:"defaultClusterStartupTimeout,omitempty" envconfig:"KUMA_DEFAULT_TIMEOUT"`
	KumactlBin                        string            `json:"kumactlBin,omitempty" envconfig:"KUMACTLBIN"`
	ZoneEgressApp                     string            `json:"zoneEgressApp,omitempty" envconfig:"KUMA_ZONE_EGRESS_APP"`
	ZoneIngressApp                    string            `json:"zoneIngressApp,omitempty" envconfig:"KUMA_ZONE_INGRESS_APP"`
	Arch                              string            `json:"arch,omitempty" envconfig:"ARCH"`
	OS                                string            `json:"os,omitempty" envconfig:"OS"`
	KumaCpConfig                      KumaCpConfig      `json:"kumaCpConfig,omitempty" envconfig:"KUMA_CP_CONFIG"`
	VersionsYamlPath                  string            `json:"versionsYamlPath,omitempty" envconfig:"VERSIONS_YAML_PATH"`
	KumaExperimentalSidecarContainers bool              `json:"kumaSidecarContainers,omitempty" envconfig:"KUMA_EXPERIMENTAL_SIDECAR_CONTAINERS"`
	Debug                             bool              `json:"debug" envconfig:"KUMA_DEBUG"`
	DumpDir                           string            `json:"dumpDir" envconfig:"KUMA_DUMP_DIR"`
	DumpOnSuccess                     bool              `json:"dumpOnSuccess,omitempty" envconfig:"DUMP_ON_SUCCESS"`

	SuiteConfig SuiteConfig `json:"suites,omitempty"`
}
var Config *E2eConfig

func (E2eConfig) AutoConfigure

func (c E2eConfig) AutoConfigure() error

func (E2eConfig) GetUniversalImage

func (c E2eConfig) GetUniversalImage() string

func (E2eConfig) SupportedVersions

func (c E2eConfig) SupportedVersions() []versions.Version

func (E2eConfig) Validate

func (c E2eConfig) Validate() error

type ExecOptions

type ExecOptions struct {
	Command []string

	Namespace     string
	PodName       string
	ContainerName string

	Stdin         io.Reader
	CaptureStdout bool
	CaptureStderr bool
	// If false, whitespace in std{err,out} will be removed.
	PreserveWhitespace bool

	Retries int
	Timeout time.Duration
}

ExecOptions passed to ExecWithOptions

type GenericOption

type GenericOption struct {
	Kuma KumaOptionFunc
	App  AppOptionFunc
}

func WithIPv6

func WithIPv6(enabled bool) *GenericOption

func WithVerbose

func WithVerbose() *GenericOption

WithVerbose enables verbose mode on the deployment.

func (*GenericOption) ApplyApp

func (o *GenericOption) ApplyApp(opts *appDeploymentOptions)

func (*GenericOption) ApplyKuma

func (o *GenericOption) ApplyKuma(opts *kumaDeploymentOptions)

type InstallFunc

type InstallFunc func(cluster Cluster) error

func CircuitBreakerUniversal

func CircuitBreakerUniversal(name string) InstallFunc

func Combine

func Combine(fs ...InstallFunc) InstallFunc

func CombineWithRetries

func CombineWithRetries(maxRetries int, fs ...InstallFunc) InstallFunc

func ConfigMapKubernetes added in v2.11.8

func ConfigMapKubernetes(name, namespace string, labels, data map[string]string) InstallFunc

func ConfigMapTProxyKubernetes added in v2.11.8

func ConfigMapTProxyKubernetes(name, namespace, cfg string) InstallFunc

func DeleteYamlK8s

func DeleteYamlK8s(yamls ...string) InstallFunc

func DemoClientJobK8s

func DemoClientJobK8s(namespace, mesh, destination string) InstallFunc

func DemoClientUniversal

func DemoClientUniversal(name string, mesh string, opt ...AppDeploymentOption) InstallFunc

func EgressUniversal

func EgressUniversal(tokenProvider func(zone string) (string, error), opt ...AppDeploymentOption) InstallFunc

func GatewayProxyUniversal

func GatewayProxyUniversal(mesh, name string, appDeploymentOptions ...AppDeploymentOption) InstallFunc

func IngressUniversal

func IngressUniversal(tokenProvider func(zone string) (string, error), opt ...AppDeploymentOption) InstallFunc

func Kuma

func Kuma(mode core.CpMode, opt ...KumaDeploymentOption) InstallFunc

func MTLSMeshKubernetes

func MTLSMeshKubernetes(name string) InstallFunc

func MTLSMeshKubernetesWithEgressRouting added in v2.10.9

func MTLSMeshKubernetesWithEgressRouting(name string) InstallFunc

func MTLSMeshUniversal

func MTLSMeshUniversal(name string) InstallFunc

func MTLSMeshWithMeshServicesUniversal added in v2.10.9

func MTLSMeshWithMeshServicesUniversal(name string, meshServicesEnabled string) InstallFunc

func MeshKubernetes

func MeshKubernetes(name string) InstallFunc

func MeshTrafficPermissionAllowAllKubernetes

func MeshTrafficPermissionAllowAllKubernetes(name string) InstallFunc

func MeshTrafficPermissionAllowAllUniversal

func MeshTrafficPermissionAllowAllUniversal(name string) InstallFunc

func MeshUniversal

func MeshUniversal(name string) InstallFunc

func MeshWithMeshServicesKubernetes added in v2.10.9

func MeshWithMeshServicesKubernetes(name string, meshServicesEnabled string) InstallFunc

func MultipleIngressUniversal

func MultipleIngressUniversal(advertisedPort int, tokenProvider func(zone string) (string, error), opt ...AppDeploymentOption) InstallFunc

func Namespace

func Namespace(name string) InstallFunc

func NamespaceWithSidecarInjection

func NamespaceWithSidecarInjection(namespace string) InstallFunc

func Parallel added in v2.10.9

func Parallel(fns ...InstallFunc) InstallFunc

func ResourceUniversal

func ResourceUniversal(resource model.Resource) InstallFunc

func RetryUniversal

func RetryUniversal(name string) InstallFunc

func TcpSinkUniversal

func TcpSinkUniversal(name string, opt ...AppDeploymentOption) InstallFunc

func TestServerExternalServiceUniversal

func TestServerExternalServiceUniversal(name string, port int, tls bool, opt ...AppDeploymentOption) InstallFunc

func TestServerUniversal

func TestServerUniversal(name string, mesh string, opt ...AppDeploymentOption) InstallFunc

func TimeoutKubernetes

func TimeoutKubernetes(name string) InstallFunc

func TimeoutUniversal

func TimeoutUniversal(name string) InstallFunc

func TrafficPermissionKubernetes

func TrafficPermissionKubernetes(name string) InstallFunc

func TrafficPermissionUniversal

func TrafficPermissionUniversal(name string) InstallFunc

func TrafficRouteKubernetes

func TrafficRouteKubernetes(name string) InstallFunc

func TrafficRouteUniversal

func TrafficRouteUniversal(name string) InstallFunc

func WaitNumPods

func WaitNumPods(namespace string, num int, app string) InstallFunc

func WaitPodsAvailable

func WaitPodsAvailable(namespace, app string) InstallFunc

func WaitPodsAvailableWithLabel

func WaitPodsAvailableWithLabel(namespace, labelKey, labelValue string) InstallFunc

func WaitService

func WaitService(namespace, service string) InstallFunc

func WaitUntilJobSucceed

func WaitUntilJobSucceed(namespace, app string) InstallFunc

func Yaml added in v2.10.9

func Yaml(b builder) InstallFunc

func YamlK8s

func YamlK8s(yamls ...string) InstallFunc

func YamlK8sObject

func YamlK8sObject(obj runtime.Object) InstallFunc

func YamlPathK8s

func YamlPathK8s(path string) InstallFunc

func YamlUniversal

func YamlUniversal(yaml string) InstallFunc

type InstallationMode

type InstallationMode string

type K8sCluster

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

func NewK8sCluster

func NewK8sCluster(t testing.TestingT, clusterName string, verbose bool) *K8sCluster

func (*K8sCluster) AddPortForward

func (c *K8sCluster) AddPortForward(portFwd portforward.Tunnel, spec portforward.Spec)

func (*K8sCluster) ApplyAndWaitServiceOnK8sCluster

func (c *K8sCluster) ApplyAndWaitServiceOnK8sCluster(namespace string, service string, yamlPath string) error

func (*K8sCluster) ClosePortForwards added in v2.12.4

func (c *K8sCluster) ClosePortForwards(specs ...portforward.Spec)

func (*K8sCluster) CreateNamespace

func (c *K8sCluster) CreateNamespace(namespace string) error

func (*K8sCluster) CreateNode

func (c *K8sCluster) CreateNode(name string, label string) error

CreateNode creates a new node warning: there seems to be a bug in k3s1 v1.19.16 so that each tests needs a unique node name

func (*K8sCluster) DeleteApp

func (c *K8sCluster) DeleteApp(namespace, appname string) error

func (*K8sCluster) DeleteDeployment

func (c *K8sCluster) DeleteDeployment(name string) error

func (*K8sCluster) DeleteKuma

func (c *K8sCluster) DeleteKuma() error

func (*K8sCluster) DeleteMesh

func (c *K8sCluster) DeleteMesh(mesh string) error

func (*K8sCluster) DeleteNamespace

func (c *K8sCluster) DeleteNamespace(namespace string, hooks ...NamespaceDeleteHookFunc) error

DeleteNamespace deletes a namespace and waits for it to be fully removed. It uses the default hook that force deletes services and pods for faster deletion and appends a wait hook to ensure the namespace is gone before returning.

func (*K8sCluster) DeleteNode

func (c *K8sCluster) DeleteNode(name string) error

func (*K8sCluster) DeleteNodeViaApi

func (c *K8sCluster) DeleteNodeViaApi(node string) error

func (*K8sCluster) Deploy

func (c *K8sCluster) Deploy(deployment Deployment) error

func (*K8sCluster) DeployApp

func (c *K8sCluster) DeployApp(opt ...AppDeploymentOption) error

func (*K8sCluster) DeployKuma

func (c *K8sCluster) DeployKuma(mode core.CpMode, opt ...KumaDeploymentOption) error

func (*K8sCluster) Deployment

func (c *K8sCluster) Deployment(name string) Deployment

func (*K8sCluster) DismissCluster

func (c *K8sCluster) DismissCluster() error

func (*K8sCluster) Exec

func (c *K8sCluster) Exec(namespace, podName, containerName string, cmd ...string) (string, string, error)

Exec executes a command in the specified container and return stdout, stderr and error.

func (*K8sCluster) ExecWithOptions

func (c *K8sCluster) ExecWithOptions(options ExecOptions) (string, string, error)

ExecWithOptions executes a command in the specified container, returning stdout, stderr and error. `options` allowed for additional parameters to be passed.

func (*K8sCluster) GetClusterIP added in v2.10.9

func (c *K8sCluster) GetClusterIP(serviceName, namespace string) (string, error)

func (*K8sCluster) GetK8sVersion

func (c *K8sCluster) GetK8sVersion() (*semver.Version, error)

func (*K8sCluster) GetKubectlOptions

func (c *K8sCluster) GetKubectlOptions(namespace ...string) *k8s.KubectlOptions

func (*K8sCluster) GetKuma

func (c *K8sCluster) GetKuma() ControlPlane

func (*K8sCluster) GetKumaCPLogs

func (c *K8sCluster) GetKumaCPLogs() map[string]string

func (*K8sCluster) GetKumactlOptions

func (c *K8sCluster) GetKumactlOptions() *kumactl.KumactlOptions

func (*K8sCluster) GetLBIngressIP added in v2.10.9

func (c *K8sCluster) GetLBIngressIP(serviceName, namespace string) (string, error)

func (*K8sCluster) GetOrCreateAdminTunnel added in v2.12.4

func (c *K8sCluster) GetOrCreateAdminTunnel(args portforward.Spec) (envoy_admin.Tunnel, error)

func (*K8sCluster) GetPodLogs

func (c *K8sCluster) GetPodLogs(pod v1.Pod, podLogOpts v1.PodLogOptions) (string, error)

func (*K8sCluster) GetPortForward

func (c *K8sCluster) GetPortForward(spec portforward.Spec) portforward.Tunnel

func (*K8sCluster) GetTesting

func (c *K8sCluster) GetTesting() testing.TestingT

func (*K8sCluster) GetZoneEgressEnvoyTunnel

func (c *K8sCluster) GetZoneEgressEnvoyTunnel() envoy_admin.Tunnel

func (*K8sCluster) GetZoneIngressEnvoyTunnel

func (c *K8sCluster) GetZoneIngressEnvoyTunnel() envoy_admin.Tunnel

func (*K8sCluster) Install

func (c *K8sCluster) Install(fn InstallFunc) error

func (*K8sCluster) K8sVersionCompare

func (c *K8sCluster) K8sVersionCompare(otherVersion string, baseMessage string) (int, string)

K8sVersionCompare compares the cluster's version with another version

func (*K8sCluster) KillAppPod

func (c *K8sCluster) KillAppPod(app, namespace string) error

func (*K8sCluster) LoadImages

func (c *K8sCluster) LoadImages(names ...string) error

func (*K8sCluster) Name

func (c *K8sCluster) Name() string

func (*K8sCluster) PortForward added in v2.12.4

func (c *K8sCluster) PortForward(
	resourceType k8s.KubeResourceType,
	resourceName string,
	namespace string,
	remotePort int,
) (portforward.Tunnel, error)

func (*K8sCluster) PortForwardApp added in v2.12.4

func (c *K8sCluster) PortForwardApp(spec portforward.Spec) (portforward.Tunnel, error)

func (*K8sCluster) RestartControlPlane

func (c *K8sCluster) RestartControlPlane() error

RestartControlPlane scales the replicas of a control plane back to `c.controlplane.replicas` and waits for it to be running. Useful for testing restarts in combination with StopControlPlane.

func (*K8sCluster) SetCP

func (c *K8sCluster) SetCP(cp *K8sControlPlane)

func (*K8sCluster) StartZoneEgress

func (c *K8sCluster) StartZoneEgress() error

StartZoneEngress scales the replicas of a zone engress to 1 and wait for it to complete.

func (*K8sCluster) StartZoneIngress

func (c *K8sCluster) StartZoneIngress() error

StartZoneIngress scales the replicas of a zone ingress to 1 and wait for it to complete.

func (*K8sCluster) StopControlPlane

func (c *K8sCluster) StopControlPlane() error

StopControlPlane scales the replicas of a control plane to 0 and wait for it to complete. Useful for testing restarts in combination with RestartControlPlane.

func (*K8sCluster) StopZoneEgress

func (c *K8sCluster) StopZoneEgress() error

StopZoneEgress scales the replicas of a zone egress to 0 and wait for it to complete. Useful for testing behavior when traffic goes through egress but there is no instance.

func (*K8sCluster) StopZoneIngress

func (c *K8sCluster) StopZoneIngress() error

StopZoneIngress scales the replicas of a zone ingress to 0 and wait for it to complete. Useful for testing behavior when traffic goes through ingress but there is no instance.

func (*K8sCluster) TriggerDeleteNamespace

func (c *K8sCluster) TriggerDeleteNamespace(namespace string, hooks ...NamespaceDeleteHookFunc) error

TriggerDeleteNamespace deletes a namespace with a default hook that force deletes all services and pods, making the namespace removal significantly faster. Additional custom hooks can be provided to run after deletion.

func (*K8sCluster) TriggerDeleteNamespaceCustomHooks added in v2.10.9

func (c *K8sCluster) TriggerDeleteNamespaceCustomHooks(namespace string, hooks ...NamespaceDeleteHookFunc) error

TriggerDeleteNamespaceCustomHooks deletes a namespace without the default hook that force deletes all services and pods. This means the namespace deletion might take longer compared to TriggerDeleteNamespace, which removes resources aggressively to speed up the process. Custom hooks can be provided to run additional actions after deletion.

func (*K8sCluster) UpgradeKuma

func (c *K8sCluster) UpgradeKuma(mode string, opt ...KumaDeploymentOption) error

func (*K8sCluster) Verbose

func (c *K8sCluster) Verbose() bool

func (*K8sCluster) VerifyKuma

func (c *K8sCluster) VerifyKuma() error

func (*K8sCluster) WaitApp

func (c *K8sCluster) WaitApp(name, namespace string, replicas int) error

func (*K8sCluster) WaitNamespaceCreate

func (c *K8sCluster) WaitNamespaceCreate(namespace string)

func (*K8sCluster) WaitNodeDelete

func (c *K8sCluster) WaitNodeDelete(node string) (string, error)

func (*K8sCluster) WithKubeConfig

func (c *K8sCluster) WithKubeConfig(kubeConfigPath string) Cluster

func (*K8sCluster) WithRetries

func (c *K8sCluster) WithRetries(retries int) Cluster

func (*K8sCluster) WithTimeout

func (c *K8sCluster) WithTimeout(timeout time.Duration) Cluster

func (*K8sCluster) ZoneName

func (c *K8sCluster) ZoneName() string

type K8sControlPlane

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

func NewK8sControlPlane

func NewK8sControlPlane(
	t testing.TestingT,
	mode core.CpMode,
	clusterName string,
	kubeconfig string,
	cluster *K8sCluster,
	verbose bool,
	replicas int,
	apiHeaders []string,
) *K8sControlPlane

func (*K8sControlPlane) ClosePortForwards

func (c *K8sControlPlane) ClosePortForwards()

func (*K8sControlPlane) Exec

func (c *K8sControlPlane) Exec(cmd ...string) (string, string, error)

func (*K8sControlPlane) FinalizeAdd

func (c *K8sControlPlane) FinalizeAdd() error

func (*K8sControlPlane) FinalizeAddWithPortFwd

func (c *K8sControlPlane) FinalizeAddWithPortFwd(
	portFwd portforward.Tunnel,
	madsPortForward portforward.Tunnel,
) error

func (*K8sControlPlane) GenerateDpToken

func (c *K8sControlPlane) GenerateDpToken(mesh, service, workload string) (string, error)

func (*K8sControlPlane) GenerateZoneEgressToken

func (c *K8sControlPlane) GenerateZoneEgressToken(zone string) (string, error)

func (*K8sControlPlane) GenerateZoneIngressToken

func (c *K8sControlPlane) GenerateZoneIngressToken(zone string) (string, error)

func (*K8sControlPlane) GenerateZoneToken

func (c *K8sControlPlane) GenerateZoneToken(zone string, scope []string) (string, error)

func (*K8sControlPlane) GetAPIServerAddress

func (c *K8sControlPlane) GetAPIServerAddress() string

func (*K8sControlPlane) GetKDSInsecureServerAddress

func (c *K8sControlPlane) GetKDSInsecureServerAddress() string

func (*K8sControlPlane) GetKDSServerAddress

func (c *K8sControlPlane) GetKDSServerAddress() string

func (*K8sControlPlane) GetKubectlOptions

func (c *K8sControlPlane) GetKubectlOptions(namespace ...string) *k8s.KubectlOptions

func (*K8sControlPlane) GetKumaCPPods

func (c *K8sControlPlane) GetKumaCPPods() []v1.Pod

func (*K8sControlPlane) GetKumaCPSvc

func (c *K8sControlPlane) GetKumaCPSvc() v1.Service

func (*K8sControlPlane) GetKumaCPSyncSvc

func (c *K8sControlPlane) GetKumaCPSyncSvc() v1.Service

func (*K8sControlPlane) GetMetrics

func (c *K8sControlPlane) GetMetrics() (string, error)

func (*K8sControlPlane) GetMonitoringAssignment

func (c *K8sControlPlane) GetMonitoringAssignment(clientId string) (string, error)

func (*K8sControlPlane) GetName

func (c *K8sControlPlane) GetName() string

func (*K8sControlPlane) GetXDSServerAddress

func (c *K8sControlPlane) GetXDSServerAddress() string

func (*K8sControlPlane) InstallCP

func (c *K8sControlPlane) InstallCP(args ...string) (string, error)

func (*K8sControlPlane) MadsPortFwd

func (c *K8sControlPlane) MadsPortFwd() portforward.Tunnel

func (*K8sControlPlane) PortForwardKumaCP

func (c *K8sControlPlane) PortForwardKumaCP() error

func (*K8sControlPlane) PortFwd

func (c *K8sControlPlane) PortFwd() portforward.Tunnel

func (*K8sControlPlane) VerifyKumaCtl

func (c *K8sControlPlane) VerifyKumaCtl() error

func (*K8sControlPlane) VerifyKumaGUI

func (c *K8sControlPlane) VerifyKumaGUI() error

func (*K8sControlPlane) VerifyKumaREST

func (c *K8sControlPlane) VerifyKumaREST() error

type K8sDecoratedError

type K8sDecoratedError struct {
	Err     error
	Details *ObjectDetails
}

func (*K8sDecoratedError) Error

func (e *K8sDecoratedError) Error() string

type K8sNetworkingState

type K8sNetworkingState struct {
	ZoneEgress  portforward.Tunnel `json:"zoneEgress"`
	ZoneIngress portforward.Tunnel `json:"zoneIngress"`
	KumaCp      portforward.Tunnel `json:"kumaCp"`
	MADS        portforward.Tunnel `json:"mads"`
}

type K8sType

type K8sType string
const (
	KindK8sType      K8sType = "kind"
	K3dK8sType       K8sType = "k3d"
	K3dCalicoK8sType K8sType = "k3d-calico"
	AzureK8sType     K8sType = "azure"
	AwsK8sType       K8sType = "aws"
)

type KumaCpConfig

type KumaCpConfig struct {
	Standalone StandaloneConfig `json:"standalone,omitempty"`
	Multizone  MultizoneConfig  `json:"multizone,omitempty"`
}

type KumaDeploymentOption

type KumaDeploymentOption interface {
	ApplyKuma(options *kumaDeploymentOptions)
}

func ClearNoHelmOpts

func ClearNoHelmOpts() KumaDeploymentOption

func KumaDeploymentOptionsFromConfig

func KumaDeploymentOptionsFromConfig(config ControlPlaneConfig) []KumaDeploymentOption

func WithApiHeaders

func WithApiHeaders(headers ...string) KumaDeploymentOption

func WithCNI

func WithCNI() KumaDeploymentOption

func WithCNINamespace

func WithCNINamespace(namespace string) KumaDeploymentOption

func WithCPDockerRunOptions added in v2.11.8

func WithCPDockerRunOptions(options []string) KumaDeploymentOption

func WithCPDockerVolumes added in v2.11.8

func WithCPDockerVolumes(volumes ...string) KumaDeploymentOption

func WithCPReplicas

func WithCPReplicas(cpReplicas int) KumaDeploymentOption

WithCPReplicas works only with HELM for now.

func WithCtlOpts

func WithCtlOpts(opts map[string]string) KumaDeploymentOption

WithCtlOpts allows arbitrary options to be passed to kuma, which is important for using test/framework in other libraries where additional options may have been added.

func WithEgress

func WithEgress() KumaDeploymentOption

func WithEgressEnvoyAdminTunnel

func WithEgressEnvoyAdminTunnel() KumaDeploymentOption

func WithEnv

func WithEnv(name, value string) KumaDeploymentOption

func WithEnvs

func WithEnvs(entries map[string]string) KumaDeploymentOption

func WithGlobalAddress

func WithGlobalAddress(address string) KumaDeploymentOption

func WithHDS

func WithHDS(enabled bool) KumaDeploymentOption

func WithHelmChartPath

func WithHelmChartPath(path string) KumaDeploymentOption

func WithHelmChartVersion

func WithHelmChartVersion(version string) KumaDeploymentOption

func WithHelmOpt

func WithHelmOpt(name, value string) KumaDeploymentOption

func WithHelmReleaseName

func WithHelmReleaseName(name string) KumaDeploymentOption

func WithIngress

func WithIngress() KumaDeploymentOption

func WithIngressEnvoyAdminTunnel

func WithIngressEnvoyAdminTunnel() KumaDeploymentOption

func WithInstallationMode

func WithInstallationMode(mode InstallationMode) KumaDeploymentOption

func WithMemoryLimit added in v2.11.8

func WithMemoryLimit(memory string) KumaDeploymentOption

func WithMeshUpdate

func WithMeshUpdate(mesh string, u MeshUpdateFunc) KumaDeploymentOption

WithMeshUpdate registers a function to update the specification for the named mesh. When the control plane implementation creates the mesh, it invokes the function and applies configuration changes to the mesh object.

func WithPostgres

func WithPostgres(envVars map[string]string) KumaDeploymentOption

func WithSkipDefaultMesh

func WithSkipDefaultMesh(skip bool) KumaDeploymentOption

WithSkipDefaultMesh works only with HELM now.

func WithYamlConfig

func WithYamlConfig(cfg string) KumaDeploymentOption

func WithZoneName

func WithZoneName(zoneName string) KumaDeploymentOption

func WithoutConfiguringKumactl

func WithoutConfiguringKumactl() KumaDeploymentOption

func WithoutHelmOpt

func WithoutHelmOpt(name string) KumaDeploymentOption

func WithoutVerifyingKuma

func WithoutVerifyingKuma() KumaDeploymentOption

type KumaOptionFunc

type KumaOptionFunc func(options *kumaDeploymentOptions)

func (KumaOptionFunc) ApplyKuma

func (f KumaOptionFunc) ApplyKuma(opts *kumaDeploymentOptions)

type LocalDockerBackend added in v2.11.8

type LocalDockerBackend struct{}

func (*LocalDockerBackend) GetPublishedDockerPorts added in v2.11.8

func (*LocalDockerBackend) GetPublishedDockerPorts(
	t testing.TestingT,
	l *logger.Logger,
	container string,
	ports []uint32,
) (map[uint32]uint32, error)

func (*LocalDockerBackend) RunAndGetIDE added in v2.11.8

func (*LocalDockerBackend) RunAndGetIDE(t testing.TestingT, image string, options *docker.RunOptions) (string, error)

func (*LocalDockerBackend) RunCommandAndGetStdOutE added in v2.11.8

func (*LocalDockerBackend) RunCommandAndGetStdOutE(t testing.TestingT, cmdName string, args []string, log *logger.Logger) (string, error)

func (*LocalDockerBackend) StopE added in v2.11.8

func (*LocalDockerBackend) StopE(t testing.TestingT, containers []string, options *docker.StopOptions) (string, error)

StopE runs the 'docker stop' command for the given containers and returns any errors.

type MeshUpdateFunc

type MeshUpdateFunc func(mesh *mesh_proto.Mesh) *mesh_proto.Mesh

type MultizoneConfig

type MultizoneConfig struct {
	Global    ControlPlaneConfig `json:"global,omitempty"`
	KubeZone1 ControlPlaneConfig `json:"kubeZone1,omitempty"`
	KubeZone2 ControlPlaneConfig `json:"kubeZone2,omitempty"`
	UniZone1  ControlPlaneConfig `json:"uniZone1,omitempty"`
	UniZone2  ControlPlaneConfig `json:"uniZone2,omitempty"`
}

type NamespaceDeleteHookFunc added in v2.10.9

type NamespaceDeleteHookFunc func(c Cluster, namespace string) error

func DeleteAllResources added in v2.10.9

func DeleteAllResources(kinds string, flags ...string) NamespaceDeleteHookFunc

type ObjectDetails

type ObjectDetails struct {
	RetrievalError error              `json:"retrievalError,omitempty"`
	Kind           string             `json:"kind,omitempty"`
	Namespace      string             `json:"namespace,omitempty"`
	Name           string             `json:"name,omitempty"`
	Phase          string             `json:"phase,omitempty"`
	Logs           map[string]string  `json:"logs,omitempty"`
	Conditions     []*objectCondition `json:"conditions,omitempty"`
	Events         []*simplifiedEvent `json:"events,omitempty"`
	ReplicaSets    []*ObjectDetails   `json:"replicaSets,omitempty"`
	Pods           []*ObjectDetails   `json:"pods,omitempty"`
}

func ExtractDeploymentDetails

func ExtractDeploymentDetails(testingT testing.TestingT,
	kubectlOptions *k8s.KubectlOptions, name string,
) *ObjectDetails

func ExtractPodDetails

func ExtractPodDetails(testingT testing.TestingT,
	kubectlOptions *k8s.KubectlOptions, name string,
) *ObjectDetails

type OutboundConfig added in v2.13.0

type OutboundConfig struct {
	Port    string
	Service string
}

OutboundConfig represents an outbound configuration

type RemoteDockerBackend added in v2.11.8

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

func (*RemoteDockerBackend) GetPublishedDockerPorts added in v2.11.8

func (u *RemoteDockerBackend) GetPublishedDockerPorts(
	t testing.TestingT,
	log *logger.Logger,
	container string,
	ports []uint32,
) (map[uint32]uint32, error)

func (*RemoteDockerBackend) RunAndGetIDE added in v2.11.8

func (u *RemoteDockerBackend) RunAndGetIDE(t testing.TestingT, image string, options *docker.RunOptions) (string, error)

func (*RemoteDockerBackend) RunCommandAndGetStdOutE added in v2.11.8

func (u *RemoteDockerBackend) RunCommandAndGetStdOutE(t testing.TestingT, cmdName string, args []string, log *logger.Logger) (string, error)

func (*RemoteDockerBackend) StopE added in v2.11.8

func (u *RemoteDockerBackend) StopE(t testing.TestingT, containers []string, options *docker.StopOptions) (string, error)

StopE runs the 'docker stop' command for the given containers and returns any errors.

type StandaloneConfig

type StandaloneConfig struct {
	Kubernetes ControlPlaneConfig `json:"kubernetes,omitempty"`
	Universal  ControlPlaneConfig `json:"universal,omitempty"`
}

type SuiteConfig

type SuiteConfig struct {
	Compatibility CompatibilitySuiteConfig `json:"compatibility,omitempty"`
}

type TestingT

type TestingT struct {
	ginkgo.GinkgoTInterface
	// contains filtered or unexported fields
}

func NewTestingT

func NewTestingT() *TestingT

func (*TestingT) Hash

func (i *TestingT) Hash() string

func (*TestingT) Helper

func (i *TestingT) Helper()

func (*TestingT) Name

func (i *TestingT) Name() string

type TransparentProxyConfig added in v2.13.0

type TransparentProxyConfig struct {
	RedirectPortInbound  string
	RedirectPortOutbound string
	ReachableServices    []string
}

TransparentProxyConfig represents transparent proxy configuration

type UniversalApp

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

func NewUniversalApp

func NewUniversalApp(t testing.TestingT, clusterName, appName, mesh string, mode AppMode, runOptions UniversalAppRunOptions) (*UniversalApp, error)

func (*UniversalApp) CreateDP

func (s *UniversalApp) CreateDP(
	token, cpAddress, name, mesh, ip, dpyaml string,
	builtindns bool,
	proxyType string,
	concurrency int,
	envsMap map[string]string,
	transparent bool,
	dpVersion string,
) error

func (*UniversalApp) CreateMainApp

func (s *UniversalApp) CreateMainApp(cmd string)

func (*UniversalApp) CreateSpireAgent added in v2.13.0

func (s *UniversalApp) CreateSpireAgent(
	name, token, serverAddress, port, trustDomain string,
) error

func (*UniversalApp) GetContainerName

func (s *UniversalApp) GetContainerName() string

func (*UniversalApp) GetEnvoyAdminTunnel

func (s *UniversalApp) GetEnvoyAdminTunnel() envoy_admin.Tunnel

func (*UniversalApp) GetIP

func (s *UniversalApp) GetIP() string

func (*UniversalApp) GetPublicPort

func (s *UniversalApp) GetPublicPort(port string) string

func (*UniversalApp) KillMainApp

func (s *UniversalApp) KillMainApp() error

func (*UniversalApp) ReStart

func (s *UniversalApp) ReStart() error

func (*UniversalApp) StartMainApp

func (s *UniversalApp) StartMainApp() error

func (*UniversalApp) Stop

func (s *UniversalApp) Stop() error

type UniversalAppRunOptions added in v2.11.8

type UniversalAppRunOptions struct {
	DockerBackend        DockerBackend
	DPConcurrency        int
	EnvironmentVariables []string
	ContainerName        string
	Volumes              []string
	Capabilities         []string
	EnableIPv6           bool
	Verbose              bool
	OtherOptions         []string
}

type UniversalCluster

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

func NewRemoteUniversalCluster added in v2.11.8

func NewRemoteUniversalCluster(t *TestingT, name string, remoteHost *kssh.Host, verbose bool) *UniversalCluster

func NewUniversalCluster

func NewUniversalCluster(t *TestingT, name string, verbose bool) *UniversalCluster

func (*UniversalCluster) AddNetworking

func (c *UniversalCluster) AddNetworking(networking *universal.Networking, name string) error

func (*UniversalCluster) CreateDP

func (c *UniversalCluster) CreateDP(app *UniversalApp, name string, mesh string, ip string, dpyaml string, envs map[string]string, token string, builtindns bool, concurrency int, transparent bool, dpVersion string) error

func (*UniversalCluster) CreateNamespace

func (c *UniversalCluster) CreateNamespace(namespace string) error

func (*UniversalCluster) CreateZoneEgress

func (c *UniversalCluster) CreateZoneEgress(
	app *UniversalApp,
	name, ip, dpYAML, token string,
	builtinDNS bool,
) error

func (*UniversalCluster) CreateZoneIngress

func (c *UniversalCluster) CreateZoneIngress(app *UniversalApp, name, ip, dpyaml, token string, builtindns bool) error

func (*UniversalCluster) DeleteApp

func (c *UniversalCluster) DeleteApp(appname string) error

func (*UniversalCluster) DeleteDeployment

func (c *UniversalCluster) DeleteDeployment(name string) error

func (*UniversalCluster) DeleteKuma

func (c *UniversalCluster) DeleteKuma() error

func (*UniversalCluster) DeleteMesh

func (c *UniversalCluster) DeleteMesh(mesh string) error

func (*UniversalCluster) DeleteMeshApps

func (c *UniversalCluster) DeleteMeshApps(mesh string) error

func (*UniversalCluster) DeleteNamespace

func (c *UniversalCluster) DeleteNamespace(string, ...NamespaceDeleteHookFunc) error

func (*UniversalCluster) Deploy

func (c *UniversalCluster) Deploy(deployment Deployment) error

func (*UniversalCluster) DeployApp

func (c *UniversalCluster) DeployApp(opt ...AppDeploymentOption) error

func (*UniversalCluster) DeployKuma

func (c *UniversalCluster) DeployKuma(mode core.CpMode, opt ...KumaDeploymentOption) error

func (*UniversalCluster) Deployment

func (c *UniversalCluster) Deployment(name string) Deployment

func (*UniversalCluster) DismissCluster

func (c *UniversalCluster) DismissCluster() error

func (*UniversalCluster) Exec

func (c *UniversalCluster) Exec(namespace, podName, appname string, cmd ...string) (string, string, error)

func (*UniversalCluster) GetApp

func (c *UniversalCluster) GetApp(appName string) *UniversalApp

func (*UniversalCluster) GetDataplanes added in v2.10.9

func (c *UniversalCluster) GetDataplanes() []string

func (*UniversalCluster) GetDockerBackend added in v2.11.8

func (c *UniversalCluster) GetDockerBackend() DockerBackend

func (*UniversalCluster) GetKubectlOptions

func (c *UniversalCluster) GetKubectlOptions(namespace ...string) *k8s.KubectlOptions

K8s

func (*UniversalCluster) GetKuma

func (c *UniversalCluster) GetKuma() ControlPlane

func (*UniversalCluster) GetKumaCPLogs

func (c *UniversalCluster) GetKumaCPLogs() map[string]string

func (*UniversalCluster) GetKumactlOptions

func (c *UniversalCluster) GetKumactlOptions() *kumactl.KumactlOptions

func (*UniversalCluster) GetTesting

func (c *UniversalCluster) GetTesting() testing.TestingT

func (*UniversalCluster) GetUniversalNetworkingState added in v2.11.8

func (c *UniversalCluster) GetUniversalNetworkingState() universal.NetworkingState

func (*UniversalCluster) GetZoneEgressEnvoyTunnel

func (c *UniversalCluster) GetZoneEgressEnvoyTunnel() envoy_admin.Tunnel

func (*UniversalCluster) GetZoneEgressEnvoyTunnelE

func (c *UniversalCluster) GetZoneEgressEnvoyTunnelE() (envoy_admin.Tunnel, error)

func (*UniversalCluster) GetZoneIngressEnvoyTunnel

func (c *UniversalCluster) GetZoneIngressEnvoyTunnel() envoy_admin.Tunnel

func (*UniversalCluster) GetZoneIngressEnvoyTunnelE

func (c *UniversalCluster) GetZoneIngressEnvoyTunnelE() (envoy_admin.Tunnel, error)

func (*UniversalCluster) Install

func (c *UniversalCluster) Install(fn InstallFunc) error

func (*UniversalCluster) Kill added in v2.11.8

func (c *UniversalCluster) Kill(appname, cmd string) error

Kill a process running in this app

func (*UniversalCluster) Name

func (c *UniversalCluster) Name() string

func (*UniversalCluster) SetCp

func (*UniversalCluster) Verbose

func (c *UniversalCluster) Verbose() bool

func (*UniversalCluster) VerifyKuma

func (c *UniversalCluster) VerifyKuma() error

func (*UniversalCluster) WithRetries

func (c *UniversalCluster) WithRetries(retries int) Cluster

func (*UniversalCluster) WithTimeout

func (c *UniversalCluster) WithTimeout(timeout time.Duration) Cluster

func (*UniversalCluster) ZoneName

func (c *UniversalCluster) ZoneName() string

type UniversalControlPlane

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

func NewUniversalControlPlane

func NewUniversalControlPlane(
	t testing.TestingT,
	mode core.CpMode,
	clusterName string,
	verbose bool,
	networking *universal.Networking,
	apiHeaders []string,
	setupKumactl bool,
) (*UniversalControlPlane, error)

func (*UniversalControlPlane) Exec

func (c *UniversalControlPlane) Exec(cmd ...string) (string, string, error)

func (*UniversalControlPlane) GenerateDpToken

func (c *UniversalControlPlane) GenerateDpToken(mesh, service, workload string) (string, error)

func (*UniversalControlPlane) GenerateZoneEgressToken

func (c *UniversalControlPlane) GenerateZoneEgressToken(zone string) (string, error)

func (*UniversalControlPlane) GenerateZoneIngressToken

func (c *UniversalControlPlane) GenerateZoneIngressToken(zone string) (string, error)

func (*UniversalControlPlane) GenerateZoneToken

func (c *UniversalControlPlane) GenerateZoneToken(
	zone string,
	scope []string,
) (string, error)

func (*UniversalControlPlane) GetAPIServerAddress

func (c *UniversalControlPlane) GetAPIServerAddress() string

func (*UniversalControlPlane) GetKDSInsecureServerAddress

func (c *UniversalControlPlane) GetKDSInsecureServerAddress() string

func (*UniversalControlPlane) GetKDSServerAddress

func (c *UniversalControlPlane) GetKDSServerAddress() string

func (*UniversalControlPlane) GetMetrics

func (c *UniversalControlPlane) GetMetrics() (string, error)

func (*UniversalControlPlane) GetMonitoringAssignment

func (c *UniversalControlPlane) GetMonitoringAssignment(clientId string) (string, error)

func (*UniversalControlPlane) GetName

func (c *UniversalControlPlane) GetName() string

func (*UniversalControlPlane) GetXDSServerAddress

func (c *UniversalControlPlane) GetXDSServerAddress() string

func (*UniversalControlPlane) Networking

func (c *UniversalControlPlane) Networking() *universal.Networking

func (*UniversalControlPlane) UpdateObject

func (c *UniversalControlPlane) UpdateObject(
	typeName string,
	objectName string,
	update func(object core_model.Resource) core_model.Resource,
) error

type VmPortForward added in v2.11.8

type VmPortForward struct {
	StopChannel   chan struct{}
	LocalPort     int
	RemoteAddress string
}

type ZoneEgressTemplateData added in v2.13.0

type ZoneEgressTemplateData struct {
	Name string
	Port int
}

ZoneEgressTemplateData represents zone egress template data

type ZoneIngressTemplateData added in v2.13.0

type ZoneIngressTemplateData struct {
	Name              string
	AdvertisedAddress string
	AdvertisedPort    int
	Port              int
}

ZoneIngressTemplateData represents zone ingress template data

Jump to

Keyboard shortcuts

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