test

package
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Jan 14, 2026 License: Apache-2.0 Imports: 42 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TestNamespace is the namespace used for testing. Name reflects it represents a greenhouse org.
	TestNamespace           = "test-org"
	TestGreenhouseNamespace = "greenhouse"
)
View Source
const (
	OIDCSecretResource  = "oidc-secret"
	OIDCClientIDKey     = "clientID"
	OIDCClientID        = "the-client-id"
	OIDCClientSecretKey = "clientSecret"
	OIDCClientSecret    = "the-client-secret"
	OIDCIssuer          = "https://the-issuer"
)

Variables

View Source
var (
	// Cfg is the rest.Config to access the cluster the tests are running against.
	Cfg *rest.Config
	// RestClientGetter is the clientutil.RestClientGetter to access the cluster the tests are running against.
	RestClientGetter *clientutil.RestClientGetter
	// K8sClient is the client.Client to access the cluster the tests are running against.
	K8sClient client.Client
	// K8sManager is the ctrl.Manager the controllers are run by.
	K8sManager ctrl.Manager
	// KubeConfig is the raw kubeconfig to access the cluster the tests are running against.
	KubeConfig []byte
	// Ctx is the context to use for the tests.
	Ctx context.Context
	// IsUseExistingCluster is true if the tests are running against an existing cluster.
	IsUseExistingCluster = useExistingGreenhouseCluster

	// TestBeforeSuite configures the test suite.
	TestBeforeSuite = func() {
		logf.SetLogger(zap.New(zap.WriteTo(GinkgoWriter), zap.UseDevMode(true)))

		SetDefaultEventuallyTimeout(1 * time.Minute)

		installCRDs := clientutil.GetEnvOrDefault("TEST_INSTALL_CRDS", "true") == "true"
		installWebhooks := len(allRegisterWebhookFuncs) > 0 && os.Getenv("TEST_INSTALL_WEBHOOKS") != "false"
		if useExistingGreenhouseCluster {

			e2eKubeconfig := os.Getenv("TEST_KUBECONFIG")
			Expect(e2eKubeconfig).NotTo(BeEmpty(), "the environment variable TEST_KUBECONFIG must be set to run the tests against a remote cluster")

			os.Setenv("KUBECONFIG", e2eKubeconfig)
			fmt.Printf("Running tests against existing cluster with kubeconfig: %s\n", e2eKubeconfig)
			installCRDs = false
			installWebhooks = false
		} else {

			_, isHasEnvKubebuilderAssets := os.LookupEnv("KUBEBUILDER_ASSETS")
			Expect(isHasEnvKubebuilderAssets).
				To(BeTrue(), "the environment variable KUBEBUILDER_ASSETS must be set to run the tests against local envtest")
		}

		Cfg, K8sClient, testEnv, KubeConfig = StartControlPlane("", installCRDs, installWebhooks)
		_ = K8sClient

		RestClientGetter = clientutil.NewRestClientGetterFromRestConfig(Cfg, TestNamespace, clientutil.WithPersistentConfig())
		Expect(RestClientGetter).ToNot(BeNil(), "the RestClientGetter should not be nil")

		Ctx, cancel = context.WithCancel(context.TODO())

		if !useExistingGreenhouseCluster {
			//+kubebuilder:scaffold:scheme
			var err error
			K8sManager, err = ctrl.NewManager(Cfg, ctrl.Options{
				Scheme: testEnv.Scheme,
				Metrics: metricsserver.Options{
					BindAddress: "0",
				},
				WebhookServer: webhook.NewServer(webhook.Options{
					Host:    testEnv.WebhookInstallOptions.LocalServingHost,
					Port:    testEnv.WebhookInstallOptions.LocalServingPort,
					CertDir: testEnv.WebhookInstallOptions.LocalServingCertDir,
				}),
				LeaderElection: false,
			})
			Expect(err).
				ToNot(HaveOccurred(), "there must be no error creating a manager")
			Expect(K8sManager).
				NotTo(BeNil(), "the manager must not be nil")

			for webhookName, registerFunc := range allRegisterWebhookFuncs {
				logf.FromContext(Ctx, "message", "registering webhook", "name", webhookName)
				Expect(registerFunc(K8sManager)).To(Succeed(), "there must be no error registering the webhook", "name", webhookName)
			}

			for controllerName, registerFunc := range allRegisterControllerFuncs {
				Expect(registerFunc(controllerName, K8sManager)).
					To(Succeed(), "there must be no error registering the controller", "name", controllerName)
			}

			go func() {
				defer GinkgoRecover()
				err = K8sManager.Start(Ctx)
				Expect(err).
					ToNot(HaveOccurred(), "there must be no error starting the manager")
			}()

			if len(allRegisterWebhookFuncs) > 0 {

				dialer := &net.Dialer{Timeout: time.Second}
				addrPort := fmt.Sprintf("%s:%d", testEnv.WebhookInstallOptions.LocalServingHost, testEnv.WebhookInstallOptions.LocalServingPort)
				Eventually(func() error {
					conn, err := tls.DialWithDialer(dialer, "tcp", addrPort, &tls.Config{InsecureSkipVerify: true})
					if err != nil {
						return err
					}
					conn.Close()
					return nil
				}, updateTimeout, pollInterval).Should(Succeed(), "there should be no error dialing the webhook server")
			}
		}

		err := K8sClient.Create(Ctx, &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: TestNamespace}})
		Expect(err).NotTo(HaveOccurred(), "there should be no error creating the test namespace")
		err = K8sClient.Create(Ctx, &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: TestGreenhouseNamespace}})
		Expect(err).NotTo(HaveOccurred(), "there should be no error creating the greenhouse namespace")
	}

	// TestAfterSuite configures the test suite.
	TestAfterSuite = func() {

		err := K8sClient.Delete(Ctx, &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: TestNamespace}})
		Expect(err).NotTo(HaveOccurred(), "there should be no error deleting the test namespace")
		cancel()
		By("tearing down the test environment")
		Eventually(func() error {
			return testEnv.Stop()
		}).Should(Succeed(), "there should be no error stopping the test environment")

		if useExistingGreenhouseCluster {

			os.Setenv("KUBECONFIG", persistedKubeconfig)
		}
	}
)

Functions

func AppendPluginDefinitionPluginOption added in v0.7.0

func AppendPluginDefinitionPluginOption(option greenhousev1alpha1.PluginOption) func(*greenhousev1alpha1.PluginDefinition)

AppendPluginDefinitionPluginOption sets the plugin option in ClusterPluginDefinition

func AppendPluginOption

AppendPluginOption sets the plugin option in ClusterPluginDefinition

func EventuallyCreated

func EventuallyCreated(ctx context.Context, c client.Client, obj client.Object)

EventuallyCreated verifies if the object is created

func EventuallyDeleted

func EventuallyDeleted(ctx context.Context, c client.Client, obj client.Object)

EventuallyDeleted deletes the object and waits until it is gone. Early return if the delete fails with NotFound

func GreenhouseV1Alpha1Scheme

func GreenhouseV1Alpha1Scheme() *runtime.Scheme

GreenhouseV1Alpha1Scheme returns a new runtime.Scheme with the Greenhouse v1alpha1 scheme added.

func KubeconfigFromEnvVar

func KubeconfigFromEnvVar(envVar string) ([]byte, error)

KubeconfigFromEnvVar returns the kubeconfig []byte from the path specified in the environment variable

func MustDeleteCluster

func MustDeleteCluster(ctx context.Context, c client.Client, cluster *greenhousev1alpha1.Cluster)

MustDeleteCluster is used in the test context only and removes a cluster by namespaced name.

func MustRemoveAnnotation added in v0.7.0

func MustRemoveAnnotation(ctx context.Context, c client.Client, o client.Object, key string)

func MustReturnJSONFor

func MustReturnJSONFor(val any) *apiextensionsv1.JSON

MustReturnJSONFor marshals val to JSON and returns an apiextensionsv1.JSON.

func MustSetAnnotation added in v0.7.0

func MustSetAnnotation(ctx context.Context, c client.Client, o client.Object, key, value string)

func MustSetAnnotations added in v0.7.0

func MustSetAnnotations(ctx context.Context, c client.Client, o client.Object, annotations map[string]string)

func NewCatalog added in v0.7.0

func NewCatalog(name, namespace string, sources ...greenhousev1alpha1.CatalogSource) *greenhousev1alpha1.Catalog

func NewCatalogSource added in v0.7.0

func NewCatalogSource(opts ...func(source *greenhousev1alpha1.CatalogSource)) greenhousev1alpha1.CatalogSource

func NewCluster

func NewCluster(ctx context.Context, name, namespace string, opts ...func(*greenhousev1alpha1.Cluster)) *greenhousev1alpha1.Cluster

NewCluster returns a greenhousev1alpha1.Cluster object. Opts can be used to set the desired state of the Cluster.

func NewClusterPluginDefinition added in v0.6.0

func NewClusterPluginDefinition(ctx context.Context, name string, opts ...func(definition *greenhousev1alpha1.ClusterPluginDefinition)) *greenhousev1alpha1.ClusterPluginDefinition

NewClusterPluginDefinition returns a greenhousev1alpha1.ClusterPluginDefinition object. Opts can be used to set the desired state of the ClusterPluginDefinition.

func NewConfigMap added in v0.6.0

func NewConfigMap(name, namespace string, opts ...func(*corev1.ConfigMap)) *corev1.ConfigMap

func NewOrganization

func NewOrganization(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Organization)) *greenhousev1alpha1.Organization

NewOrganization returns a greenhousev1alpha1.Organization object. Opts can be used to set the desired state of the Organization.

func NewPlugin

func NewPlugin(ctx context.Context, name, namespace string, opts ...func(*greenhousev1alpha1.Plugin)) *greenhousev1alpha1.Plugin

NewPlugin returns a greenhousev1alpha1.Plugin object. Opts can be used to set the desired state of the Plugin.

func NewPluginDefinition

func NewPluginDefinition(ctx context.Context, name, namespace string, opts ...func(definition *greenhousev1alpha1.PluginDefinition)) *greenhousev1alpha1.PluginDefinition

NewPluginDefinition returns a namespaced greenhousev1alpha1.PluginDefinition object. Opts can be used to set the desired state of the PluginDefinition.

func NewPluginPreset added in v0.6.0

func NewPluginPreset(name, namespace string, opts ...func(*greenhousev1alpha1.PluginPreset)) *greenhousev1alpha1.PluginPreset

NewPluginPreset returns a greenhousev1alpha1.PluginPreset object. Opts can be used to set the desired state of the PluginPreset.

func NewSecret

func NewSecret(name, namespace string, opts ...func(*corev1.Secret)) *corev1.Secret

NewSecret returns a Secret object. Opts can be used to set the desired state of the Secret.

func NewTeam

func NewTeam(ctx context.Context, name, namespace string, opts ...func(*greenhousev1alpha1.Team)) *greenhousev1alpha1.Team

NewTeam returns a greenhousev1alpha1.Team object. Opts can be used to set the desired state of the Team.

func NewTeamRole

func NewTeamRole(ctx context.Context, name, namespace string, opts ...func(*greenhousev1alpha1.TeamRole)) *greenhousev1alpha1.TeamRole

NewTeamRole returns a greenhousev1alpha1.TeamRole object. Opts can be used to set the desired state of the TeamRole.

func NewTeamRoleBinding

func NewTeamRoleBinding(ctx context.Context, name, namespace string, opts ...func(*greenhousev1alpha2.TeamRoleBinding)) *greenhousev1alpha2.TeamRoleBinding

NewTeamRoleBinding returns a greenhousev1alpha2.TeamRoleBinding object. Opts can be used to set the desired state of the TeamRoleBinding.

func RegisterController

func RegisterController(controllerName string, f registerControllerFunc)

RegisterController registers a controller for the testbed. A currently running testbed is not affected.

func RegisterWebhook

func RegisterWebhook(webhookName string, f registerWebhookFunc)

RegisterWebhook registers a webhook for the testbed. A currently running testbed is not affected.

func SetClusterReadyCondition

func SetClusterReadyCondition(ctx context.Context, c client.Client, cluster *greenhousev1alpha1.Cluster, readyStatus metav1.ConditionStatus) error

SetClusterReadyCondition sets the ready condition of the cluster resource.

func SetOptionValueForPlugin

func SetOptionValueForPlugin(plugin *greenhousev1alpha1.Plugin, key, value string)

SetOptionValueForPlugin sets the value of a PluginOptionValue in plugin

func StartControlPlane

func StartControlPlane(port string, installCRDs, installWebhooks bool) (*rest.Config, client.Client, *envtest.Environment, []byte)

Starts a envTest control plane and returns the config, client, envtest.Environment and raw kubeconfig.

func UnregisterController

func UnregisterController(controllerName string)

UnregisterController removes a controller from the testbed. A currently running testbed is not affected.

func UnregisterWebhook

func UnregisterWebhook(webhookName string)

UnregisterWebhook removes a webhook from the testbed. A currently running testbed is not affected.

func UpdateClusterWithDeletionAnnotation

func UpdateClusterWithDeletionAnnotation(ctx context.Context, c client.Client, cluster *greenhousev1alpha1.Cluster) *greenhousev1alpha1.Cluster

func WithAccessMode

WithAccessMode sets the ClusterAccessMode on a Cluster

func WithAdditionalRedirects added in v0.5.0

func WithAdditionalRedirects(additionalRedirects ...string) func(organization *greenhousev1alpha1.Organization)

WithAdditionalRedirects - sets the additional redirect URIs on an Organization. (To be used with WithOIDCConfig)

func WithAggregationRule

func WithAggregationRule(aggregationRule *rbacv1.AggregationRule) func(*greenhousev1alpha1.TeamRole)

WithAggregationRule sets the AggregationRule on a TeamRole

func WithCatalogResources added in v0.7.0

func WithCatalogResources(resources []string) func(source *greenhousev1alpha1.CatalogSource)

func WithCluster

func WithCluster(cluster string) func(*greenhousev1alpha1.Plugin)

WithCluster sets the Cluster for a Plugin

func WithClusterAnnotations added in v0.5.0

func WithClusterAnnotations(annotations map[string]string) func(*greenhousev1alpha1.Cluster)

WithClusterAnnotations sets metadata annotations on a Cluster

func WithClusterLabel added in v0.6.0

func WithClusterLabel(key, value string) func(*greenhousev1alpha1.Cluster)

WithClusterLabel sets the label on a Cluster

func WithClusterName

func WithClusterName(clusterName string) func(*greenhousev1alpha2.TeamRoleBinding)

func WithClusterOverride added in v0.7.0

func WithClusterOverride(clusterName string, optionValues []greenhousev1alpha1.PluginOptionValue) func(*greenhousev1alpha1.PluginPreset)

WithClusterOverrides sets the ClusterOverrides for a Cluster

func WithClusterPluginDefinition added in v0.7.0

func WithClusterPluginDefinition(pluginDefinition string) func(*greenhousev1alpha1.Plugin)

WithClusterPluginDefinition sets the PluginDefinition reference to ClusterPluginDefinition in the Plugin

func WithClusterSelector

func WithClusterSelector(selector metav1.LabelSelector) func(*greenhousev1alpha2.TeamRoleBinding)

func WithConfigMapData added in v0.6.0

func WithConfigMapData(data map[string]string) func(*corev1.ConfigMap)

func WithConfigMapLabels added in v0.6.0

func WithConfigMapLabels(labels map[string]string) func(*corev1.ConfigMap)

func WithConfigMapRef added in v0.6.0

func WithConfigMapRef(configMapRef string) func(*greenhousev1alpha1.Organization)

func WithCreateNamespace

func WithCreateNamespace(createNamespaces bool) func(*greenhousev1alpha2.TeamRoleBinding)

func WithHelmChart

WithHelmChart sets the HelmChart of a ClusterPluginDefinition

func WithLabels

func WithLabels(labels map[string]string) func(*greenhousev1alpha1.TeamRole)

WithLabels sets the .spec.Labels on a TeamRole

func WithMappedAdminIDPGroup

func WithMappedAdminIDPGroup(group string) func(*greenhousev1alpha1.Organization)

WithMappedAdminIDPGroup sets the MappedIDPGroup on an Organization

func WithMappedIDPGroup

func WithMappedIDPGroup(group string) func(*greenhousev1alpha1.Team)

func WithMaxTokenValidity added in v0.5.0

func WithMaxTokenValidity(maxTokenValidity int32) func(*greenhousev1alpha1.Cluster)

WithKubeConfig sets the kubeconfig of a Cluster

func WithNamespaces

func WithNamespaces(namespaces ...string) func(*greenhousev1alpha2.TeamRoleBinding)

func WithOIDCConfig

func WithOIDCConfig(issuer, secretName, clientIDKey, clientSecretKey string) func(*greenhousev1alpha1.Organization)

WithOIDCConfig sets the OIDCConfig on an Organization

func WithOrgAnnotations added in v0.5.0

func WithOrgAnnotations(annotations map[string]string) func(*greenhousev1alpha1.Organization)

func WithOverrides added in v0.7.0

func WithOverrides(overrides []greenhousev1alpha1.CatalogOverrides) func(source *greenhousev1alpha1.CatalogSource)

func WithPluginDefinition

func WithPluginDefinition(pluginDefinition string) func(*greenhousev1alpha1.Plugin)

WithPluginDefinition sets the PluginDefinition reference to namespaced PluginDefinition in the Plugin

func WithPluginDefinitionHelmChart added in v0.7.0

func WithPluginDefinitionHelmChart(chart *greenhousev1alpha1.HelmChartReference) func(*greenhousev1alpha1.PluginDefinition)

WithPluginDefinitionHelmChart sets the HelmChart of a ClusterPluginDefinition

func WithPluginDefinitionUIApplication added in v0.7.0

func WithPluginDefinitionUIApplication(ui *greenhousev1alpha1.UIApplicationReference) func(*greenhousev1alpha1.PluginDefinition)

WithPluginDefinitionUIApplication sets the description of a ClusterPluginDefinition

func WithPluginDefinitionVersion added in v0.7.0

func WithPluginDefinitionVersion(version string) func(*greenhousev1alpha1.PluginDefinition)

WithPluginDefinitionVersion sets the version of a ClusterPluginDefinition

func WithPluginDeletionPolicy added in v0.8.0

func WithPluginDeletionPolicy(deletionPolicy string) func(*greenhousev1alpha1.Plugin)

WithPluginDeletionPolicy sets the DeletionPolicy of a Plugin

func WithPluginLabel added in v0.6.0

func WithPluginLabel(key, value string) func(*greenhousev1alpha1.Plugin)

WithPluginLabel sets the label on a Plugin

func WithPluginOptionValue

func WithPluginOptionValue(name string, value *apiextensionsv1.JSON) func(*greenhousev1alpha1.Plugin)

WithPluginOptionValue sets the value of a PluginOptionValue, clears ValueFrom and Expression

func WithPluginOptionValueExpression added in v0.9.0

func WithPluginOptionValueExpression(name string, expression *string) func(*greenhousev1alpha1.Plugin)

WithPluginOptionValueExpression sets the expression of a PluginOptionValue,

func WithPluginOptionValueFrom added in v0.7.0

func WithPluginOptionValueFrom(name string, valueFrom *greenhousev1alpha1.PluginValueFromSource) func(*greenhousev1alpha1.Plugin)

WithPluginOptionValueFrom sets the value of a PluginOptionValue from a secret, clears Value and Expression

func WithPluginOptionValueFromRef added in v0.9.0

func WithPluginOptionValueFromRef(name string, ref *greenhousev1alpha1.ExternalValueSource) func(*greenhousev1alpha1.Plugin)

WithPluginOptionValueFromRef sets the value of a PluginOptionValue from an external reference, clears Value and Expression

func WithPluginPresetAnnotation added in v0.8.0

func WithPluginPresetAnnotation(key, value string) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetAnnotation sets the annotation on a PluginPreset

func WithPluginPresetClusterSelector added in v0.6.0

func WithPluginPresetClusterSelector(clusterSelector metav1.LabelSelector) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetClusterSelector sets the ClusterSelector on a PluginPreset.

func WithPluginPresetDeletionPolicy added in v0.7.0

func WithPluginPresetDeletionPolicy(deletionPolicy string) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetDeletionPolicy sets the DeletionPolicy on a PluginPreset.

func WithPluginPresetLabel added in v0.6.0

func WithPluginPresetLabel(key, value string) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetLabel sets the label on a PluginPreset

func WithPluginPresetPluginSpec added in v0.6.0

func WithPluginPresetPluginSpec(pluginSpec greenhousev1alpha1.PluginSpec) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetPluginSpec sets the PluginSpec on a PluginPreset.

func WithPluginPresetWaitFor added in v0.8.0

func WithPluginPresetWaitFor(waitFor greenhousev1alpha1.WaitForItem) func(*greenhousev1alpha1.PluginPreset)

WithPluginPresetWaitFor adds the WaitForItem to a PluginPreset's WaitFor.

func WithPluginWaitFor added in v0.7.0

func WithPluginWaitFor(waitFor []greenhousev1alpha1.WaitForItem) func(*greenhousev1alpha1.Plugin)

func WithPresetLabelValue added in v0.5.0

func WithPresetLabelValue(value string) func(*greenhousev1alpha1.Plugin)

WithPresetLabelValue sets the value of the greenhouseapis.LabelKeyPluginPreset label on a Plugin This label is used to indicate that the Plugin is managed by a PluginPreset.

func WithReleaseName added in v0.5.0

func WithReleaseName(releaseName string) func(*greenhousev1alpha1.Plugin)

WithReleaseName sets the ReleaseName of a Plugin

func WithReleaseNamespace

func WithReleaseNamespace(releaseNamespace string) func(*greenhousev1alpha1.Plugin)

WithReleaseNamespace sets the ReleaseNamespace of a Plugin

func WithRepository added in v0.7.0

func WithRepository(url string) func(source *greenhousev1alpha1.CatalogSource)

func WithRepositoryBranch added in v0.7.0

func WithRepositoryBranch(branch string) func(source *greenhousev1alpha1.CatalogSource)

func WithRepositorySHA added in v0.7.0

func WithRepositorySHA(sha string) func(source *greenhousev1alpha1.CatalogSource)

func WithRepositoryTag added in v0.7.0

func WithRepositoryTag(tag string) func(source *greenhousev1alpha1.CatalogSource)

func WithRules

func WithRules(rules []rbacv1.PolicyRule) func(*greenhousev1alpha1.TeamRole)

WithRules overrides the default rules of a TeamRole

func WithSecretAnnotations added in v0.5.0

func WithSecretAnnotations(annotations map[string]string) func(*corev1.Secret)

func WithSecretData

func WithSecretData(data map[string][]byte) func(*corev1.Secret)

WithSecretData sets the data of the Secret

func WithSecretLabel added in v0.6.0

func WithSecretLabel(key, value string) func(*corev1.Secret)

WithSecretLabel sets the label on a Secret

func WithSecretLabels added in v0.5.0

func WithSecretLabels(labels map[string]string) func(*corev1.Secret)

func WithSecretNamespace

func WithSecretNamespace(namespace string) func(*corev1.Secret)

WithSecretNamespace sets the namespace of the Secret

func WithSecretType

func WithSecretType(secretType corev1.SecretType) func(*corev1.Secret)

WithSecretType sets the type of the Secret

func WithTeamLabel added in v0.6.0

func WithTeamLabel(key, value string) func(*greenhousev1alpha1.Team)

WithTeamLabel sets the label on a Team

func WithTeamRef

func WithTeamRef(teamRef string) func(*greenhousev1alpha2.TeamRoleBinding)

func WithTeamRoleBindingLabel added in v0.6.0

func WithTeamRoleBindingLabel(key, value string) func(*greenhousev1alpha2.TeamRoleBinding)

WithTeamRoleBindingLabel sets the label on a TeamRoleBinding

func WithTeamRoleRef

func WithTeamRoleRef(roleRef string) func(*greenhousev1alpha2.TeamRoleBinding)

func WithUIApplication

WithDescription sets the description of a ClusterPluginDefinition

func WithUsernames

func WithUsernames(usernames []string) func(*greenhousev1alpha2.TeamRoleBinding)

func WithVersion

func WithVersion(version string) func(*greenhousev1alpha1.ClusterPluginDefinition)

WithVersion sets the version of a ClusterPluginDefinition

func WithoutHelmChart

func WithoutHelmChart() func(*greenhousev1alpha1.ClusterPluginDefinition)

WithoutHelmChart sets the HelmChart of a ClusterPluginDefinition to nil

func WithoutPluginDefinitionHelmChart added in v0.7.0

func WithoutPluginDefinitionHelmChart() func(*greenhousev1alpha1.PluginDefinition)

WithoutPluginDefinitionHelmChart sets the HelmChart of a ClusterPluginDefinition to nil

Types

type TestSetup

type TestSetup struct {
	client.Client
	// contains filtered or unexported fields
}

func NewTestSetup

func NewTestSetup(ctx context.Context, c client.Client, name string) *TestSetup

NewTestSetup creates a new TestSetup object and a new namespace on the cluster for the test

func (*TestSetup) CreateCatalog added in v0.7.0

func (t *TestSetup) CreateCatalog(ctx context.Context, name string, sources ...greenhousev1alpha1.CatalogSource) *greenhousev1alpha1.Catalog

func (*TestSetup) CreateCluster

func (t *TestSetup) CreateCluster(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Cluster)) *greenhousev1alpha1.Cluster

CreateCluster creates a new Cluster resource without creating a Secret

func (*TestSetup) CreateClusterPluginDefinition added in v0.6.0

func (t *TestSetup) CreateClusterPluginDefinition(ctx context.Context, name string, opts ...func(definition *greenhousev1alpha1.ClusterPluginDefinition)) *greenhousev1alpha1.ClusterPluginDefinition

CreateClusterPluginDefinition creates and returns a ClusterPluginDefinition object. Opts can be used to set the desired state of the ClusterPluginDefinition.

func (*TestSetup) CreateConfigMap added in v0.6.0

func (t *TestSetup) CreateConfigMap(ctx context.Context, name string, opts ...func(*corev1.ConfigMap)) *corev1.ConfigMap

CreateConfigMap returns a ConfigMap object. Opts can be used to set the desired state of the ConfigMap.

func (*TestSetup) CreateDefaultOrgWithOIDCSecret added in v0.5.0

func (t *TestSetup) CreateDefaultOrgWithOIDCSecret(ctx context.Context, supportGroupTeamName string) *greenhousev1alpha1.Organization

func (*TestSetup) CreateOrgOIDCSecret added in v0.5.0

func (t *TestSetup) CreateOrgOIDCSecret(ctx context.Context, orgName, supportGroupTeamName string) *corev1.Secret

func (*TestSetup) CreateOrganization

func (t *TestSetup) CreateOrganization(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Organization)) *greenhousev1alpha1.Organization

CreateOrganization creates an Organization within the TestSetup and returns the created Organization resource.

func (*TestSetup) CreateOrganizationWithOIDCConfig

func (t *TestSetup) CreateOrganizationWithOIDCConfig(ctx context.Context, orgName, supportGroupTeamName string) (*greenhousev1alpha1.Organization, *corev1.Secret)

func (*TestSetup) CreatePlugin

func (t *TestSetup) CreatePlugin(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Plugin)) *greenhousev1alpha1.Plugin

CreatePlugin creates and returns a Plugin object. Opts can be used to set the desired state of the Plugin.

func (*TestSetup) CreatePluginDefinition

func (t *TestSetup) CreatePluginDefinition(ctx context.Context, name string, opts ...func(definition *greenhousev1alpha1.PluginDefinition)) *greenhousev1alpha1.PluginDefinition

CreatePluginDefinition creates and returns a PluginDefinition object. Opts can be used to set the desired state of the PluginDefinition.

func (*TestSetup) CreatePluginPreset added in v0.6.0

func (t *TestSetup) CreatePluginPreset(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.PluginPreset)) *greenhousev1alpha1.PluginPreset

CreatePluginPreset creates and returns a PluginPreset object. Opts can be used to set the desired state of the PluginPreset.

func (*TestSetup) CreateSecret

func (t *TestSetup) CreateSecret(ctx context.Context, name string, opts ...func(*corev1.Secret)) *corev1.Secret

CreateSecret returns a Secret object. Opts can be used to set the desired state of the Secret.

func (*TestSetup) CreateTeam

func (t *TestSetup) CreateTeam(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Team)) *greenhousev1alpha1.Team

CreateTeam returns a Team object. Opts can be used to set the desired state of the Team.st

func (*TestSetup) CreateTeamRole

func (t *TestSetup) CreateTeamRole(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.TeamRole)) *greenhousev1alpha1.TeamRole

CreateTeamRole returns a TeamRole object. Opts can be used to set the desired state of the TeamRole.

func (*TestSetup) CreateTeamRoleBinding

func (t *TestSetup) CreateTeamRoleBinding(ctx context.Context, name string, opts ...func(*greenhousev1alpha2.TeamRoleBinding)) *greenhousev1alpha2.TeamRoleBinding

CreateTeamRoleBinding returns a TeamRoleBinding object. Opts can be used to set the desired state of the TeamRoleBinding.

func (*TestSetup) Namespace

func (t *TestSetup) Namespace() string

func (*TestSetup) OnboardCluster

func (t *TestSetup) OnboardCluster(ctx context.Context, name string, kubeCfg []byte, opts ...func(*greenhousev1alpha1.Cluster)) *greenhousev1alpha1.Cluster

OnboardCluster creates a new Cluster and Kubernetes secret for a remote cluster and creates the namespace used for TestSetup on the remote cluster

func (*TestSetup) RandomizeName

func (t *TestSetup) RandomizeName(name string) string

RandomizeName returns the name with a random alphanumeric suffix

func (*TestSetup) UpdateCatalog added in v0.7.0

func (t *TestSetup) UpdateCatalog(ctx context.Context, name string, sources ...greenhousev1alpha1.CatalogSource) *greenhousev1alpha1.Catalog

func (*TestSetup) UpdateOrganization

func (t *TestSetup) UpdateOrganization(ctx context.Context, name string, opts ...func(*greenhousev1alpha1.Organization)) *greenhousev1alpha1.Organization

func (*TestSetup) UpdateSecret added in v0.6.0

func (t *TestSetup) UpdateSecret(ctx context.Context, name string, opts ...func(*corev1.Secret)) *corev1.Secret

UpdateSecret updates a Secret object. Opts can be used to set the desired state of the Secret.

Jump to

Keyboard shortcuts

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