All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.22.0 - 2024-05-20
- If relevant env vars are found populate the Cluster Apps and Org CRs with labels containing the Tekton run names
0.21.0 - 2024-05-14
- Add support for unified cluster-aws app. With cluster-aws v0.76.0 and newer, default apps are deployed with cluster-aws and default-apps-aws app is not deployed anymore.
0.20.1 - 2024-05-13
- Improve reliability of cluster deletion by ignoring possible network flake errors when checking if a resource has been deleted
0.20.0 - 2024-05-11
- Removed
application.DefaultAppsValues
in favour of getting the values from the cluster values instead.
0.19.1 - 2024-05-09
- Change double quoted log message with single quotes to make them more readable when displayed in the json output of Ginkgo
0.19.0 - 2024-05-06
- Better log message for app status
- Improve error message when
E2E_KUBECONFIG
points to a non-existing file - Show finalizers if object still exists
- Do not unnecessarily allocate TTY for running commands, return stderr content even if command fails with error exit code
0.18.0 - 2024-04-18
- Add new WaitConditions to check for Cluster API status conditions.
0.17.0 - 2024-04-02
- Added a
GetClusterName
function that returns the friendly name of the cluster from the kubeconfig
0.16.0 - 2024-03-11
- Add possibility to exec a command in a pod.
0.15.0 - 2024-02-26
- Safely handle an empty values file being provided by replacing it with a single newline character
- Updated
.WithVersion()
to better handle sha based versions and set the catalog to the currently set catalog with a-test
suffix (instead of hardcoded tocluster-test
)
0.14.0 - 2023-12-04
- Increased the character length of the random cluster name to 20 characters
0.13.0 - 2023-11-30
- Added a custom unmarshaller to
application.ClusterValues
to dynamically handle both the old and new values schemas while we migrate all cluster apps
- Bumped
golangci-lint
to latest version in CI
0.12.5 - 2023-11-09
0.12.4 - 2023-11-09
0.12.3 - 2023-11-09
0.12.2 - 2023-11-07
- Add
oidc
plugin for controller runtime client creation in order to be able use OIDC kubeconfigs for local testing.
0.12.1 - 2023-11-03
- Ensure
testuser
isn't reapplied whenApplyCluster
is called again (e.g. during the upgrade tests)
0.12.0 - 2023-11-02
- Instead of relying on the CAPI-generated kubeconfig we now create a specific ServiceAccount in the workload cluster and authenticate as that for the test suites.
0.11.0 - 2023-10-27
- Updated
GetExpectedControlPlaneReplicas
to handle managed clusters (e.g. EKS) and return0
if no control plane CR is found.
0.10.1 - 2023-10-27
- Add provider EKS.
0.10.0 - 2023-10-06
- Added
GetExpectedControlPlaneReplicas
function to get expected number of control plane nodes fromKubeadmControlPlane
resource
0.9.0 - 2023-10-05
- Reduce the
DefaultTimeout
value from 60 min to 30 min
0.8.0 - 2023-09-27
- Modify kubeconfig of workload clusters to use DNS hostname of server also when an AWS ELB dns is found.
0.7.0 - 2023-09-15
0.6.1 - 2023-09-15
- Correctly set the namespace on Applications
- Added a
GetInstallNamespace
helper function for Application - Added
DeleteApp
helper function to remove an App CR and its ConfigMap from the cluster
0.6.0 - 2023-09-14
- Added
WithInstallNamespace
andWithClusterName
to Application to support installing apps into workload clusters - Added error handler to ensure a
ClusterName
is provided with an Application ifInCluster
is set tofalse
- Added
DeployApp
andDeployAppManifests
helpers to ensure that App CRs and their ConfigMaps are installed in the correct order.
- Correctly set the
app.Spec.KubeConfig.Context.Name
to the value used by CAPI
0.5.0 - 2023-09-14
- Check for
-app
suffix variations when failing to lookup an apps releases
0.4.0 - 2023-09-12
- Added
IsAllAppStatus
wait condition for checking a list of apps all have an expected status (e.g. "deployed") - Added
IsAppDeployed
andIsAllAppDeployed
helper functions that wrap aroundIsAppStatus
andIsAllAppStatus
0.3.1 - 2023-08-31
- Correctly handle both types of NodePools in our values yaml
0.3.0 - 2023-08-24
- Allow setting the
Organization
when modeling anApplication
, as that's what will be used bykubectl-gs
to determine the app namespace.
0.2.0 - 2023-08-17
- Support passing additional template values to Application. This changes the signature of
WithValues
andWithValuesFile
when creating ClusterApps.
0.1.1 - 2023-07-28
- Support a
GITHUB_TOKEN_FILE
environment variable that points to a file location containing the GitHub token
0.1.0 - 2023-07-27
CreateOrUpdate
function added to the kube client that allows you to create or overwrite the given resource in the cluster.IsAppStatus
andIsAppVersion
wait conditions to check for an app being in an expected release status and expected version deployed.GetApp
function to get an App resource from the MCGetConfigMap
function to get a ConfigMap from the MC
ApplyCluster
can now be called again with an updated Cluster resource to update the Apps in the MCGetAppAndValues
now takes in a context argument to be consistent with the other helper functions
0.0.18 - 2023-07-20
- Correctly get resource kind for logging
0.0.17 - 2023-07-20
- Improved log message when waiting for resource to be created/deleted so that it includes the kind of resource being waited for
0.0.16 - 2023-07-11
- If a
GITHUB_TOKEN
env var is found, use it when making API calls to GitHub
0.0.15 - 2023-07-07
- Add base domain to ClusterValues
- Bumped go modules
0.0.14 - 2023-06-01
- Add DoesNotHaveLabels controller-runtime ListOption. This will check if a label does not exist on an option when listing and deleting Objects.
- AreNumNodesReady and AreNumNodesReadyWithinRange now accept variadic arguments as list options.
0.0.13 - 2023-05-25
0.0.12 - 2023-05-16
- Builder for specifying extraConfigs for (cluster) app called
WithExtraConfigs
.
- Add DefaultAppsValues
- Save *rest.Config instead of raw config in the kubernetes client wrapper
0.0.11 - 2023-05-11
- Wait for successful Org deletion when deleting cluster
0.0.10 - 2023-05-10
- Add
GetHelmValues
function to controller-runtime client wrapper. This will get the full values for a Helm release and unmarshal them into a user provided struct.
0.0.9 - 2023-04-26
- Add
Consistently
function. This takes in a function that returns an error and runs it for a specified period, stopping on the first error.
0.0.8 - 2023-04-13
- Add
LoadCluster
function. This will return a Cluster object constructed from an existing WC on the targeted MC (using the cluster and default-apps App CRs). The cluster is specified with theE2E_WC_NAME
andE2E_WC_NAMESPACE
env vars. It returns nil if they are not set.
0.0.7 - 2023-03-31
- Version override values are now provided using a single env var (
E2E_OVERRIDE_VERSIONS
)
0.0.6 - 2023-03-28
- Ability to override App version from environment variable
0.0.5 - 2023-03-27
- Ability to use an MC kubeconfig with multiple contexts and switch between them
- Removed
NewWithKubeconfig
function in favour of always using the env var for the path.
0.0.4 - 2023-03-24
- Lint issues (ignored returns)
- Cluster app namespace if using constructors random org
- Added CircleCI configuration for linting and unit tests
- Added some ignores for nancy until a fix is available for the vulnerabilities
0.0.3 - 2023-03-24
- Fix App unit tests (version lookup)
0.0.2 - 2023-03-20
- Modify kubeconfig of workload clusters to use DNS hostname of server if an IP address is found (required for CAPG clusters)
0.0.1 - 2023-03-16
- Added initial framework layout
- Added Kubernetes client extended from controller-runtime client