kudo-v0.4.0
Release Highlights
API Change to kudo.dev (Breaking)
All apiVersion
fields were updated from k8s.io domain to kudo.dev domain. If you already have KUDO running in your cluster you have to remove all installed CRDs and operators and re-recreate CRDs and re-install operators as a part of upgrading to 0.4.0.
Improvements in Test harness
There are a number of enhancements in the test harness mostly around resolving flaky tests and increasing usability for non-KUDO use-cases:
- Built-in support for launching and testing kind clusters.
--start-control-plane
no longer implies--start-kudo
.- The test harness supports minimal updates in test steps via patching.
- Namespaces set on resources in test steps are now respected.
- It is now possible to delete all resources of a given type in a test step.
- Various fixes related to handling of CRDs in tests.
- It is now possible to specify many manifest directories to install prior to running tests.
Read the test docs for more details.
Global KUBECONFIG
--kubeconfig
and $KUBECONFIG
environmental configuration was moved to be a KUDO root configuration and is honored for all KUDO commands.
Install Operator from URL
KUDO now allows for the installation of an operator from an URL to a tgz bundle. Installation previous supported installation from the local file system which was great for a developer and installation from the repository which is great after an operator is released. Installation from an URL is seen as a way to get help from testers prior to release.
To install: kubectl kudo install http://kudo.dev/zk.tar.gz
Remove interactive install
--auto-approve
option from kudo install
was removed. If you want to install operator without installing an instance, you can still use --skip-instance
.
Prefix our labels and annotations
To be a good citizens in the kubernetes ecosystem we now prefix all labels and annotations that are automatically populated by kudo with our namespace. For example instead of operator
label we now use kudo.dev/operator
label. The same goes for all other labels and annotations.
Remove possibility to install multiple packages
It is not possible anymore to pass multiple arguments to kudo install
command. Run multiple kudo install
commands if you need to install more packages.
Changelog
cb22b76 --start-control-plane no longer implies --start-kudo (#598)
6e9d71c Add a Watch method to the RetryClient (#624)
2aa1194 Add documentation for KUDO integration tests and move into test/integration. (#490)
e2230a1 Add integration tests for InstanceController (#504)
577ce33 Add title tag to website (#507)
8f5f345 Adding Ability to MergePatch CRDs properly (#488)
e5f7d0b Adding Test for Parameter Parsing within Operators (#546)
0bb97d3 Allow overriding the test parallelism. (#593)
fe22b4d Better message when instance does not have plan starter (#647)
257213b Break down methods in instance controller (#563)
ad10396 Bump lodash from 4.17.11 to 4.17.14 in /site (#574)
a5d4b16 Bunch of small improvements to ease debugging (#592)
0facf40 Change install version StringVar to StringVarP (#545)
4def9dc Change uses of .k8s.io to .kudo.dev (#637)
3eebef4 Clean up instance controller. (#380)
8de6e2e Clean up integration tests that use controller-runtime envtest. (#525)
ee0bece Clean up repo management functions (#550)
38a8a20 Distinguish between empty string and not provided (#541)
2d7474f Do not Get after Create/Patch in plan execution controller (#612)
6f67542 Do not requeue PlanExecution reconciliation if Instance does not exist. (#657)
4cf6a31 Do not use semver library for repo index (#518)
08a300d Docs for templates and params (#641)
aa6bcc9 Document Prow usage in KEP. (#585)
d9b5a33 Emit no error for missing parameter when default present (#581)
919881a Ensure that test harness returns an error if no resources exist when listing (#521)
8fa68ef Extract all kustomize logic to a separate file (#604)
22d619c Extract part of logic from PlanExecutionController into function (#608)
957d284 First draft of developer's guide to KUDO (#621)
5642548 Fix InstallCRDs method to only install CRDs and ignore other resource types. (#607)
9cf796b Fix KUDO step object deletion logic (#551)
46287db Fix apiVersion (#487)
5b11e70 Fix broken link (#527)
8ee3d78 Fix configuring kudo test assert timeouts via configuration file (#564)
31b453e Fix default test timeout and make default test timeout configurable at the test suite level. (#534)
3615c8c Fix docs after rename of param (#642)
c27e6f7 Fix documentation after code changes (#516)
73e29ce Fix install into non-default namespace (#515)
227d28f Fix labels for kustomize and fix upgrades again (#660)
e9657e1 Fix leftover bug after renaming of labels (#658)
c7bc97b Fix matching objects when listing in test harness (#497)
32ec485 Fix operator upgrades (#587)
a1e7a05 Fix plan marked as completed when template was broken (#519)
d24e84e Fix race between OV and I creation in tests (#630)
5a327e8 Fix test harness deletion to be able to delete all resources in a namespace. (#638)
55b7409 Fix the default kind context to match kind's default. (#605)
f89ed62 Fixed missed variable name changes from move to operator (#559)
c5a430e Get rid of mesosphere email from builds
42a6299 If set, use $KUBECONFIG when creating a new client (#472)
3befd46 Implement a new RetryClient that wraps the Kubernetes Client with retries. (#547)
4fab602 Implement object deletion in test steps. (#493)
5faf8f6 Import auth providers to support GKE, etc. (#661)
a385830 Improve concepts docs a bit (#473)
ea2ea7c Improve log messages in controller (#591)
324b7e7 Increase Docker RAM allocation to 4 gigabytes. (#533)
cba6b9c Inline the Code of Conduct (#536)
f8df1fa Install docs should always point to latest release, not to master (#631)
fa217f9 Logs and test renames to ease debugging (#648)
8c5300c Look for KUBECONFIG environment variable for 'get' and 'plan' (#478)
80e335a Make parameters required by default, pass in required field, fail installation when missing (#506)
10d897e Makefile build info should be identical to goreleaser build info (#579)
8ce623d More cleanup after removing dependencies (#476)
f53d245 No panic when getting a plan status for an instance with no plan (#461)
0785f61 Operator Install from URL (#489)
baa65cd Pass displayName to server, remove mustache mentions (#505)
0356f0c Prefix our labels and annotations (#603)
65682f1 Prepare deployments for 0.4.0 (#665)
992a8d5 Propagate trigger from CLI to the server side (#498)
8791eea Proposal for E2E and CLI testing via test harness. (#625)
66b4240 Refactoring of "get instances" CLI command (#553)
45a8bed Remove interactive install, more install refactoring (#500)
2bc1cb6 Remove merge check from circle CI configuration. (#613)
ebe82db Remove possibility to install multiple packages (#479)
beca886 Rename package-version parameter to just version (#517)
ea2860f Rename some functions in instance controller (#640)
e4d1ae7 Replace manifests-dir and manifests-dirs with manifest-dir and ManifestsDirs and ManifestsDir with ManifestDirs. (#644)
b466605 Respect namespaces if they are set in test harness. (#596)
6ede82d Retry docker pull in tests if it fails. (#535)
d000c09 Revert "Revert "Support installing a CRD in a test step and using it in a later test step."" (#610)
eaf0376 Revert "Support installing a CRD in a test step and using it in a later test step. (#595)" (#609)
ebadcd4 Set Docker memory limit for tests to prevent hangs (#511), set --rm to remove containers after tests (#512), -it to support cancelling tests. (#522)
94ca01d Set the --advertise-address when starting Kubernetes API server in tests. (#529)
31f013b Set title tag everywhere based on page name (#524)
eb6338b Small test harness logging improvements: enable verbose test logging, log created/updated resources, time to start test environment. (#481)
63a1292 Split out community pages and add events mechanism (#480)
7899477 Stop KUDO first then stop the control plane. (#483)
9175502 Support --skip-delete to skip deletion of resources created during tests (#484)
d16a318 Support installing a CRD in a test step and using it in a later test step. (#595)
ff154a8 Support specifying many manifest directories to install in test harness. (#572)
46e195d Support starting either kind or a mocked control plane or use the default kube context (#554)
3382acf Update 0012-operator-extensions.md (#531)
c8bb3c6 Update Events for Edinburgh and Paris (#578)
99e0fe7 Update KUDO version to 0.3.0 in deployment.yaml. (#466)
eebd631 Update deployment.yaml (#632)
704aa27 Use DynamicRESTMapper to reload REST mappings when types are not found. (#663)
bdca4c4 Use kubeconfig flag set at root for subcommands (#575)
c27a5be Use merge patch instead of Update method in test harness. (#606)
7f417ba Use specific names for test objects (#555)
1e7fd26 Wait for healthy plan before continuing. (#468)
81a20bb adding IDs to release builds (#571)
8646b6a adding announcement for release v0.3.0 (#465)
d1c39ae adding dev and release branch details (#569)
7b3470d adding notes for installation via url (#514)
0b4e26e fix planexecution controller to check parameter default also (#570)
26d91c4 kafka: update cli.md reference to KAKFA_ZOOKEEPER_URI (#502)
ac24bbc support collecting cluster logs with kind. (#597)
3a8cd6d tests for bundle finder and http client (#513)
0090741 use correct operator label for instance in KUDO cli (#565)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.4.0
Contributors to this release
KUDO relies on the work of its contributors to succeed. The following people contributed to this release (in no particular order):