Documentation ¶
Index ¶
- Constants
- type ConnHelperOpts
- type ConnectHelper
- func (c *ConnectHelper) CreateIntention(t *testing.T, opts IntentionOpts)
- func (c *ConnectHelper) CreateNamespace(t *testing.T, namespace string)
- func (c *ConnectHelper) CreateResolverRedirect(t *testing.T)
- func (c *ConnectHelper) DeployClientAndServer(t *testing.T)
- func (c *ConnectHelper) DeployJob(t *testing.T, path string)
- func (c *ConnectHelper) DeployServer(t *testing.T)
- func (c *ConnectHelper) Install(t *testing.T)
- func (c *ConnectHelper) KubectlOptsForApp(t *testing.T) *terratestK8s.KubectlOptions
- func (c *ConnectHelper) Setup(t *testing.T)
- func (c *ConnectHelper) SetupAppNamespace(t *testing.T)
- func (c *ConnectHelper) TestConnectionFailureWhenUnhealthy(t *testing.T)
- func (c *ConnectHelper) TestConnectionFailureWithoutIntention(t *testing.T, connHelperOpts ConnHelperOpts)
- func (c *ConnectHelper) TestConnectionSuccess(t *testing.T, connHelperOpts ConnHelperOpts)
- func (c *ConnectHelper) Upgrade(t *testing.T)
- type IntentionOpts
Constants ¶
const ( StaticClientName = "static-client" StaticServerName = "static-server" JobName = "job-client" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnHelperOpts ¶
type ConnHelperOpts struct {
ClientType string
}
ConnHelperOpts allows for configuring optional parameters to be passed into the conn helper methods. This provides added flexibility, although not every value will be used by every method. See documentation for more details.
type ConnectHelper ¶
type ConnectHelper struct { // ClusterKind is the kind of Consul cluster to use (e.g. "Helm", "CLI"). ClusterKind consul.ClusterKind // Secure configures the Helm chart for the test to use ACL tokens. Secure bool // HelmValues are the additional helm values to use when installing or // upgrading the cluster beyond connectInject.enabled, global.tls.enabled, // global.tls.enableAutoEncrypt, global.acls.manageSystemACLs which are // set by the Secure and AutoEncrypt fields. HelmValues map[string]string // ReleaseName is the name of the Consul cluster. ReleaseName string // Ctx is used to deploy Consul Ctx environment.TestContext // UseAppNamespace is used top optionally deploy applications into a separate namespace. // If unset, the namespace associated with Ctx is used. UseAppNamespace bool Cfg *config.TestConfig // ConsulClient is the client used to test service mesh connectivity. ConsulClient *api.Client // contains filtered or unexported fields }
ConnectHelper configures a Consul cluster for connect injection tests. It also provides helper methods to exercise the connect functionality.
func (*ConnectHelper) CreateIntention ¶
func (c *ConnectHelper) CreateIntention(t *testing.T, opts IntentionOpts)
CreateIntention creates an intention for the static-server pod to connect to the static-client pod. opts parameter allows for overriding of some fields. If opts is empty then all namespaces and clients use defaults.
func (*ConnectHelper) CreateNamespace ¶
func (c *ConnectHelper) CreateNamespace(t *testing.T, namespace string)
func (*ConnectHelper) CreateResolverRedirect ¶
func (c *ConnectHelper) CreateResolverRedirect(t *testing.T)
CreateResolverRedirect creates a resolver that redirects to a static-server, a corresponding k8s service, and intentions. This helper is primarily used to ensure that the virtual-ips are persisted to consul properly.
func (*ConnectHelper) DeployClientAndServer ¶
func (c *ConnectHelper) DeployClientAndServer(t *testing.T)
DeployClientAndServer deploys a client and server pod to the Kubernetes cluster which will be used to test service mesh connectivity. If the Secure flag is true, a pre-check is done to ensure that the ACL tokens for the test are deleted. The status of the deployment and injection is checked after the deployment is complete to ensure success.
func (*ConnectHelper) DeployJob ¶
func (c *ConnectHelper) DeployJob(t *testing.T, path string)
DeployJob deploys a job pod to the Kubernetes cluster which will be used to test service mesh connectivity. If the Secure flag is true, a pre-check is done to ensure that the ACL tokens for the test are deleted. The status of the deployment and injection is checked after the deployment is complete to ensure success.
func (*ConnectHelper) DeployServer ¶
func (c *ConnectHelper) DeployServer(t *testing.T)
DeployServer deploys a server pod to the Kubernetes cluster which will be used to test service mesh connectivity. If the Secure flag is true, a pre-check is done to ensure that the ACL tokens for the test are deleted. The status of the deployment and injection is checked after the deployment is complete to ensure success.
func (*ConnectHelper) Install ¶
func (c *ConnectHelper) Install(t *testing.T)
Install uses the consulCluster to install Consul onto the Kubernetes cluster.
func (*ConnectHelper) KubectlOptsForApp ¶
func (c *ConnectHelper) KubectlOptsForApp(t *testing.T) *terratestK8s.KubectlOptions
KubectlOptsForApp returns options using the -apps appended namespace if UseAppNamespace is enabled. Otherwise, it returns the ctx options.
func (*ConnectHelper) Setup ¶
func (c *ConnectHelper) Setup(t *testing.T)
Setup creates a new cluster using the New*Cluster function and assigns it to the consulCluster field.
func (*ConnectHelper) SetupAppNamespace ¶
func (c *ConnectHelper) SetupAppNamespace(t *testing.T)
SetupAppNamespace creates a namespace where applications are deployed. This does nothing if UseAppNamespace is not set. The app namespace is relevant when testing with restricted PSA enforcement enabled.
func (*ConnectHelper) TestConnectionFailureWhenUnhealthy ¶
func (c *ConnectHelper) TestConnectionFailureWhenUnhealthy(t *testing.T)
TestConnectionFailureWhenUnhealthy sets the static-server pod to be unhealthy and ensures the connection fails. It restores the pod to a healthy state after this check.
func (*ConnectHelper) TestConnectionFailureWithoutIntention ¶
func (c *ConnectHelper) TestConnectionFailureWithoutIntention(t *testing.T, connHelperOpts ConnHelperOpts)
TestConnectionFailureWithoutIntention ensures the connection to the static server fails when no intentions are configured. When provided with a ClientType option the client is overridden, otherwise a default will be used.
func (*ConnectHelper) TestConnectionSuccess ¶
func (c *ConnectHelper) TestConnectionSuccess(t *testing.T, connHelperOpts ConnHelperOpts)
TestConnectionSuccess ensures the static-server pod can connect to the static-client pod once the intention is set. When provided with a ClientType option the client is overridden, otherwise a default will be used.
func (*ConnectHelper) Upgrade ¶
func (c *ConnectHelper) Upgrade(t *testing.T)
Upgrade uses the existing Consul cluster and upgrades it using Helm values set by the Secure, AutoEncrypt, and HelmValues fields.
type IntentionOpts ¶
type IntentionOpts struct { ConnHelperOpts SourceNamespace string DestinationNamespace string }