Documentation ¶
Index ¶
- func GenerateVariantValuesFile(variant string) (string, error)
- func GetHttpEchoImage() string
- func GetTestReleasedVersion(ctx context.Context, repoName string) string
- func GetUpgradeVersions(ctx context.Context, repoName string) (*versionutils.Version, *versionutils.Version, error)
- type Options
- type OptionsMutator
- type SoloTestHelper
- func (h *SoloTestHelper) ChartPath() string
- func (h *SoloTestHelper) ChartVersion() string
- func (h *SoloTestHelper) CurrentGlooRevision() (int, error)
- func (h *SoloTestHelper) InstallGloo(ctx context.Context, timeout time.Duration, options ...OptionsMutator) error
- func (h *SoloTestHelper) RevertGlooUpgrade(ctx context.Context, timeout time.Duration, crdsPath string, ...) error
- func (h *SoloTestHelper) SetKubeCli(cli *kubectl.Cli)
- func (h *SoloTestHelper) UninstallGloo() error
- func (h *SoloTestHelper) UninstallGlooAll() error
- func (h *SoloTestHelper) UpgradeGloo(ctx context.Context, timeout time.Duration, options ...OptionsMutator) (revertFunc func() error, err error)
- type TestConfig
- type TestConfigFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetHttpEchoImage ¶
func GetHttpEchoImage() string
Deprecated; if this is needed create a resource yaml for it.
func GetTestReleasedVersion ¶
For nightly runs, we want to install a released version rather than using a locally built chart To do this, set the environment variable RELEASED_VERSION with either a version name or "LATEST" to get the last release
func GetUpgradeVersions ¶
func GetUpgradeVersions(ctx context.Context, repoName string) (*versionutils.Version, *versionutils.Version, error)
GetUpgradeVersions returns two semantic versions of a repository:
- prevLtsRelease: the latest patch release of v1.m-1.x
- latestRelease: the latest patch release of v1.m.x
Originally intended for use in upgrade testing, it can return any of:
- (prevLtsRelease, latestRelease, nil): all release versions computable
- (prevLtsRelease, nil, nil): only prevLtsRelease computable (ie current branch has never been released)
- (nil, nil, err): unable to fetch versions for upgrade test
Types ¶
type OptionsMutator ¶
type OptionsMutator func(opts *Options)
func WithCRDs ¶ added in v1.18.0
func WithCRDs(crdDir string) OptionsMutator
WithCRDs installs the CRDs from the specific directory.
func WithExtraArgs ¶
func WithExtraArgs(args ...string) OptionsMutator
WithExtraArgs specifies additional args to pass to the lifecycle command
func WithLocalChart ¶ added in v1.18.0
func WithLocalChart(version string, repo string) OptionsMutator
WithLocalChart downloads the specified version of the chart and extracts it.
func WithVersion ¶ added in v1.18.0
func WithVersion(version string) OptionsMutator
WithVersion specifies the version to use
type SoloTestHelper ¶
type SoloTestHelper struct { *TestConfig // The kubernetes helper *kubectl.Cli }
func GetTestHelperForRootDir ¶
func GetTestHelperForRootDir(ctx context.Context, rootDir, namespace string) (*SoloTestHelper, error)
func NewSoloTestHelper ¶
func NewSoloTestHelper(configFunc TestConfigFunc) (*SoloTestHelper, error)
NewSoloTestHelper is meant to provide a standard way of deploying Gloo/GlooE to a k8s cluster during tests. It assumes that build and test assets are present in the `_output` and `_test` directories (these are configurable). Specifically, it expects the glooctl executable in the BuildAssetDir and a helm chart in TestAssetDir. It also assumes that a kubectl executable is on the PATH.
func (*SoloTestHelper) ChartPath ¶
func (h *SoloTestHelper) ChartPath() string
Return the path to the chart used for installation
func (*SoloTestHelper) ChartVersion ¶
func (h *SoloTestHelper) ChartVersion() string
Return the version of the Helm chart
func (*SoloTestHelper) CurrentGlooRevision ¶
func (h *SoloTestHelper) CurrentGlooRevision() (int, error)
func (*SoloTestHelper) InstallGloo ¶
func (h *SoloTestHelper) InstallGloo(ctx context.Context, timeout time.Duration, options ...OptionsMutator) error
InstallGloo calls glooctl to install Gloo. This is where image variants are handled as well.
func (*SoloTestHelper) RevertGlooUpgrade ¶
func (h *SoloTestHelper) RevertGlooUpgrade(ctx context.Context, timeout time.Duration, crdsPath string, options ...OptionsMutator) error
Rollback Gloo. The version can be passed via the ExtraArgs option. If not specified it rolls-back to the previous version Eg: RevertGlooUpgrade(ctx, timeout, WithExtraArgs([]string{revision}))
func (*SoloTestHelper) SetKubeCli ¶
func (h *SoloTestHelper) SetKubeCli(cli *kubectl.Cli)
func (*SoloTestHelper) UninstallGloo ¶
func (h *SoloTestHelper) UninstallGloo() error
does not pass the --all flag to glooctl uninstall
func (*SoloTestHelper) UninstallGlooAll ¶
func (h *SoloTestHelper) UninstallGlooAll() error
passes the --all flag to glooctl uninstall
func (*SoloTestHelper) UpgradeGloo ¶
func (h *SoloTestHelper) UpgradeGloo(ctx context.Context, timeout time.Duration, options ...OptionsMutator) (revertFunc func() error, err error)
Upgrades Gloo via a helm upgrade. It returns a method that rolls-back helm to the version prior to this upgrade If localChart is false, the crdDir provided should be the path from the root of a chart pulled from remote. e.g. for gloo, this would be gloo/crds
type TestConfig ¶
type TestConfig struct { // All relative paths will assume this as the base directory. This is usually the project base directory. RootDir string // The directory holding the test assets. Must be relative to RootDir. TestAssetDir string // The directory holding the build assets. Must be relative to RootDir. BuildAssetDir string // Helm chart name HelmChartName string // Name of the helm index file name HelmRepoIndexFileName string // The namespace gloo (and the test server) will be installed to. If empty, will use the helm chart version. InstallNamespace string // Name of the glooctl executable GlooctlExecName string // If provided, the license key to install the enterprise version of Gloo LicenseKey string // Install a released version of gloo. This is the value of the github tag that may have a leading 'v' ReleasedVersion string // If true, glooctl will be run with a -v flag Verbose bool // contains filtered or unexported fields }
type TestConfigFunc ¶
type TestConfigFunc func(defaults TestConfig) TestConfig
Function to provide/override test configuration. Default values will be passed in.