- Updated metallb to 0.14.8 #1154
- Adapt Kong addon to the
kong/kong
Helm chart v2.39.0 that requiresenterprise.rbac.session_conf_secret
to be explicitly defined. #1105
- The former
kubectl.runKustomize
helper is now the publickubectl.RunKustomize
. This function allows building an existing kustomization directory.
- Fixed
ProxyUDPURL
function to return the correct URL (<IP>:<PORT>
), the type of returned value changed from*url.URL
tostring
. RenamedProxyURL
toProxyHTTPURL
. #1008
- Added support for arbitrary Helm chart values to the Kuma plugin. #958
- Introduced new functions
ProxyTCPURL
andProxyTLSURL
that returns the URL in the format<IP>:<PORT>
. Introduced new functionProxyHTTPSURL
. #1008
Kuma
addon now properly uses the Helm chart version passed in its builder'sWithVersion
method. #949- When
Kuma
addon is used with version greater or equal to2.6.0
and mTLS enabled, a default allow-allTrafficPermission
gets installed to preserve previous behavior. #950
- Added a call to
NegotiateAPIVersion
when creating a Docker client to ensure that the client is able to communicate with the Docker daemon. #932
- Added
WithReleaseChannel
to the GKE cluster builder to allow specifying a release channel for the cluster. #911
- Bump Kong Gateway Enterprise default image to 3.4 #867 #868
- Replace deck libraries with their new go-database-reconciler home. #883
- Updated metallb to v0.13.12.
- Allow deploying multiple kong addons to the cluster and identifying them by their name. #845
- Allow setting kong addon admin API and proxy NodePorts. #844
- Metallb addon now has a builder. The builder can disable IPAddressPool creation. #835
- Removed a module exclude that made
go install
unhappy. #813
- Upgrade
metallb
addon tov0.13.11
#799
- Fix an API name typo. The
WithAdditonalValue
Kong addon builder method is nowWithAdditionalValue
- Allow specifying arbitrary helm values when deploying Kong addon. #776
- Allow customizing Helm chart version and proxy readiness probe used in Kong addon. #774
- Support specifying namespace of Kong addon to deploy Kong in certain namespace. #766
- Fix setting UDP proxy service type in Kong addon. #770
- Add ArgoCD and KongArgoCD addons to support
ArgoCD
. #762
- Fix KTF to properly deploy Kong Gateway Enterprise in DBLess mode #757
- Make
KustomizeDeployForCluster
andKustomizeDeleteForCluster
always use a cluster's temporary kubeconfig file instead of the default one. #754
- Allow passing additional flags to kubectl kustomize in
KustomizeDeployForCluster
andKustomizeDeleteForCluster
. #741
- Bump Kong Gateway Enterprise default image to 3.3 #734
- Upgrade
metallb
addon tov0.13.10
#703
- Allow passing config for Kind clusters with io.Reader - introduce method
WithConfigReader(cfg io.Reader)
#683 - Migrate from github.com/jetstack/cert-manager to github.com/cert-manager/cert-manager #669
- Allow setting stdin, stdout, stderr in
retry.Command
#676 - Convert dumpDiag to use kind export logs #591
- Switch from
CoreV1 Endpoints
toDiscoveryV1 EndpointSlice
#643
- Upgrade
metallb
addon tov0.13.9
#602
- Bump Kong Gateway Enterprise default image to 3.1.1.3 #566
- Added the ability to specify node machine type with GKE cluster builder. #567
- Fix an endless loop in cleaner's
Cleanup()
when a namespace to be deleted is already gone. #553 - Fix calico manifests URL #555
clusters.Cleaner
can be used concurrently #552
- Fix command error handling when error is
nil
#527
- Add arm64 artifacts #518
- Add a retry when deploying knative manifests and during kong chart installation #520 #523
- fix cluster cleaner for Gateway API objects #510
- gRPC API is used instead of gcloud CLI when createSubnetwork is enabled in GKE cluster builder. #498
- GKE cluster builder accepts custom labels. #499
- GKE cluster builder allows creating a subnet for the cluster instead of using a default one. #490
- GKE cluster is able to wait for its cleanup synchronously. #491
- MetalLB addon will use an extended timeout when fetching manifests from GH which should improve its stability. #492
- Golang dependencies for several Kubernetes libraries were updated to
the latest
v0.26.0
release (corresponds with Kubernetesv1.26.0
release). ([email protected]) - sigs.k8s.io/yaml is used as the only YAML library. #463
- When available, calls to Github API, requesting the latest release from a repository
will use
GITHUB_TOKEN
environment variable as token to authenticate against Github API. #456 - Changed Kong addon to use udpProxy dict from charts value file to instantiate a udp proxy, instead of creating a udp proxy by kubectl.
- Upgrade
metallb
addon tov0.13.6
- Increased the metallb
IPAddressPool
IP range.
- Increased the metallb startup timeout.
- Moved metallb error recording inside context switch, to avoid recording the context expiration as the last error.
- loadimage addon now supports loading multiple images. #391
- Delete
IPAddressPool
andL2Advertisement
resources if the resource exists before creating in metallb addon. #390
- Support k8s v1.25 in metallb addon by bumping to v0.13.5 #371
- Added the ability to select the
Service
type for the proxy when using the Kong addon via the Go library. #346 - Added
WithProxyEnvVar()
Kong addon builder function, which sets environment variables for the proxy container. #369
- Diagnostics now gets all resources, not the reduced set of resources returned
by
kubectl get all
. #362
- Added feature to support waiting for a port of a service to be connective by TCP. #338
- Increased retry times to increase the timeout to wait for kuma webhook to be ready to serve. #341 #342
- Diagnostics runs the correct command for
kubectl describe
. #343
- Added support for Postgres Kong config diagnostics and improved DB-less format. #334
- The cleaner now has an
AddManifest()
function, to clean raw YAML manifests. #334
ApplyYAML
andDeleteYAML
cluster utilities were renamed toApplyManifestByYAML
andDeleteManifestByYAML
, respectively. #330
- Added the ability to use Calico CNI instead of the default CNI for
kind
clusters. This can be triggered via the CLI using--cni-calico
OR using the Go library withWithCalicoCNI()
. #330 - Added
ApplyManifestByURL
andDeleteManifestByURL
helper functions to thecluster
package as siblings toApplyYAML
andDeleteYAML
. #330 - Added a diagnostics system to collect resources, describe information, pod logs, and available plugin diagnostics. #332
- Added
WithProxyImagePullSecret()
(proxy-pull
withKTF_TEST_KONG_PULL_USERNAME
andKTF_TEST_KONG_PULL_PASSWORD
set on the CLI) feature to the Kong addon builder. It sets a pull secret for the proxy image. #314
- Added missing Kuma addon CLI entry.
- Retry Kuma mesh installations to handle delayed webhook start.
- Update metallb to
v0.12.1
.
- The new Kuma addon installs the Kuma service mesh.
--kong-ingress-controller-image
selects the ingress controller image for the Kong addon.
- Disabled Google Ingress controller on GKE to avoid conflicts with other controllers.
- Added
clusters.KustomizeDeleteForCluster
utility to clean up kustomize deployed manifests that were deployed previously to a cluster.
- Added a
clusters.Cleaner
type which can be used to generically clean up cluster resources.
- Kubernetes
v1.24.0
became the default recently forkind
based clusters, which had a backwards incompatible change that caused new KTF builds to fail due to a significant change in how ServiceAccounts worked which stopped their Secrets from being automatically generated. A patch was issued to stop waiting for the defaultServiceAccount
to have aSecret
to consider the cluster initialized. #273
- The
--kong-gateway-image
flag can now be used with the CLI to signal which Kong Gateway container image to use in environments.
- various dependency updates
- Added
--kong-admin-service-loadbalancer
to thektf envs create
subcommand to make it easy to deploy the Kong Admin API as aLoadBalancer
typeService
when deploying with the Kong addon. #245
- Updates dependencies for relevant Docker and Containerd GHSA reports. GHSA-qq97-vm5h-rrhg GHSA-crp2-qrr5-8pq7
- Added
WithConfig()
to KIND cluster builder, which allows you to specify a custom KIND configuration. (see https://kind.sigs.k8s.io/docs/user/configuration/ for the available configuration options). (#222)
- Retry Knative install in the event that CRDs are not yet available. (#209)
- Knative defaults to the latest available version, and supports user-supplied versions. (#196)
- The default Kong Enterprise tag is now
2.7.0.0-alpine
.
- Replicas exceeding the desired replica count (e.g. while a Deployment update spawns replacement replicas) no longer blocks Knative readiness. (#177)
- Namespace readiness checks confirm the presence of the namespace itself and the presence of Deployments within it. (#166)
- Addons can now indicate dependencies on other addons. (#166)
- Kong addon instances now listen on TCP port 8899 for TLS connections. (#167)
- Added registry addon to provide a local Docker registry within the test cluster. (#170)
- Fixed a readiness timing issue with cert-manager wherein the webhook could be unready when the addon reports as ready. (#159)
- Added a CertManager addon. (#148)
- Added a utility function to invoke
kubectl wait --for-condition=CONDITION
. (#148) - Added a utility function to delete a YAML manifest from the cluster. (#148)
- Added an addon to load images into the test cluster from a local Docker environment. (#151)
- Enterprise license utilities were added for the Kong cluster addon. (#144)
- Cluster utilities were added to apply raw YAML or Kustomize configurations to a cluster object for convenience. (#135)
- Several helper functions in the kubernetes
generators
package which were centered around cluster related functionality have been moved to theclusters
package (e.g.TempKubeconfig()
,GenerateNamespace()
,CleanupGeneratedResources()
, andTestGenerators()
) (#135)
- Fixed the CLI
main.go
location to fixgo install
(#133)
- Added release tooling for pipelining releases in Github Actions CI (#134)
- CI improvements for releasing pipelining were the only changes made, so this release is simply an exercise of those changes.
- The Istio addon now retries deployment of components such as Kiali to deal
with order of operations issues found in some older Istio releases. This
fixes compatibility with
v1.9
andv1.10
. (#130)
- containerd Go dependency updated to
v1.4.11
- docker Go dependency updated to
v20.10.9
- HttpBin is now an available addon (also available via the CLI). (#127)
- The Istio addon is now available via the CLI. (#127)
- Networking testing utils now include HTTP testing functions. (#127)
- General stability improvements to Addon readiness functionality. (#127)
- Fixed a bug with generation of secrets for enterprise enabled Kong addons which would occasionally cause the addon to fail to deploy. (#125)
- Integration test parallelization was re-tuned according to some problems that were found with running multiple kind clusters in Github Actions. (#125)
- This release was entirely CI related and has no end-user effect.
- Added Istio as an available cluster addon. (#122)
- Several public builder methods for the Kong cluster addon had name changes intended to make the naming more consistent and use prefixes as indices to improve readability and understanding of which components are being effected. (#121)
- Knative resources bumped to v0.18.0 for Kubernetes 1.22 compatibility.
- Utilities for generating and cleaning up transient testing namespaces were added in support of simplified setup in Golang test suites when using the KTF Go libraries for integration tests. (#17)
- Fixed an issue where the Kong addon was not idempotent because adding the relevant helm repository could fail on re-entry despite the repository being present. (#80)
- Golang dependencies for several Kubernetes libraries were updated to
the latest
v0.22.0
release (corresponds with Kubernetesv1.22.0
release). ([email protected])
- Knative is now available as a cluster addon. (#77)
- GKE clusters created by KTF now get a label added that indicate that they were KTF-provisioned and by which IAM service account they were created by. (#73)
- Removed a check when creating a cluster client that would validate that the /version endpoint of the cluster was up, as some use cases actually want to create the client first and then wait. (#73)
- The
clusters.Cluster
interface now requires that implementations provide a method to retrieve the cluster version. (#72)
- Added utilities for auto-handling Ingress resources on older clusters. (#70)
- Deployed GKE clusters default to no addons enabled. (#69)
- Existing GKE clusters can now be loaded into a testing environment. (#67)
- The Kong addon now supports all service types where it previously
only accepted (and assumed) type
LoadBalancer
. (#64)
- GKE Cluster implementation added. (#32)
- Previously when KIND was the only Cluster implementation we defaulted to exposing the Kong Admin API via a LoadBalancer type service as this would not be accessible outside of the local docker network. Now that a GKE Cluster implementation exists this default would no longer be secure, so the default has been changed to ClusterIP. (#32)
- Containerd dependency updated to v1.4.8 to fix upstream security issue. (GHSA-c72p-9xmj-rx3w) (#58)
- Added Kubernetes version specification when building a
new environments.Environment. This is now accessible in
the CLI via
ktf env create --kubernetes-version <VER>
. (#58)