Releases: kudobuilder/kudo
kudo-v0.7.2
Release Highlights
Bug Fix
Shortly after releasing 0.7.1
, it was discovered that there was a bug in the new logic for health check. This release resolves that. Here are the release highlights:
Richer Metadata
Maintainer metadata is now consistent between the index and operator package files. It consists of separating name and email adderss of maintainer.
name: "zookeeper"
version: "0.2.0"
kudoVersion: 0.5.0
appVersion: 3.4.14
kubernetesVersion: 1.15.0
appVersion: 3.4.10
maintainers:
- name: Alena Varkockova
email: [email protected]
Init --crd-only
There are times when it is useful to have access to the CRDs of KUDO without launching kudo or setting up it's prerequisites. It is very useful for testing. With 0.7.0
, this is now possible with kudo init --crd-only
.
kubectl kudo init --dry-run --crd-only -o yaml
will provide the CRDS as an output to stdout
kubectl kudo init --dry-run --crd-only -o yaml | kubectl delete -f -
will delete the CRDs from the cluster.
In addition init
has been updated to not fail if a resources is present, which allows init
to ensure all resources are created if not present.
Learn more about the KUDO CLI init
Removal of PlanExecution CRD
KUDO's handling of plans has been completely refactored resulting in the removal of plan execution as a CRD type. Plans are now part of the instance.
Based on this refactor, kudo plan history
is temporarily removed and will return in a future release.
Repo Index Merge
Newly add to kudo repo index
is the ability to --merge
or --merge-repo
. This will pull down the index.yaml file from the repo referenced and integrate the local repository with it (local operators will take precedence).
kubectl kudo repo index repo_dir --merge-repo community
will create an index.yaml file for operators in the "repo_dir" folder and will download the index.yaml from the community repository and merge them together. Operators at the repository are not downloaded.
Verbose CLI Debug Output
KUDO now provides functionality for verbosity similar to that which is expected with Kubernetes with a -v
or --v
. It has not been fully integrated across all CLI commands yet. It is complete with kudo init -v 9
where -v 9
will provide the maximum resolution of debug tracing.
Built on Go 1.13.1
Go 1.13.1 provided a security release for an issue which did NOT affect KUDO. Regardless we have upgraded to 1.13.1 for this build.
Updated to Latest Kubernetes API
StatefulSets in KUDO were previously accessed through v1beta2 APIs which has been removed from Kubernetes 1.16. Now KUDO uses the AppsV1 API.
Changelog
b48cef3 Fix health checks by passing in the resolved remote resource rather than the local, in-memory created one (#881)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.7.2
kudo-v0.7.1
kudo-v0.7.0
Release Highlights
Richer Metadata
Maintainer metadata is now consistent between the index and operator package files. It consists of separating name and email adderss of maintainer.
name: "zookeeper"
version: "0.2.0"
kudoVersion: 0.5.0
appVersion: 3.4.14
kubernetesVersion: 1.15.0
appVersion: 3.4.10
maintainers:
- name: Alena Varkockova
email: [email protected]
Init --crd-only
There are times when it is useful to have access to the CRDs of KUDO without launching kudo or setting up it's prerequisites. It is very useful for testing. With 0.7.0
, this is now possible with kudo init --crd-only
.
kubectl kudo init --dry-run --crd-only -o yaml
will provide the CRDS as an output to stdout
kubectl kudo init --dry-run --crd-only -o yaml | kubectl delete -f -
will delete the CRDs from the cluster.
In addition init
has been updated to not fail if a resources is present, which allows init
to ensure all resources are created if not present.
Learn more about the KUDO CLI init
Removal of PlanExecution CRD
KUDO's handling of plans has been completely refactored resulting in the removal of plan execution as a CRD type. Plans are now part of the instance.
Based on this refactor, kudo plan history
is temporarily removed and will return in a future release.
Repo Index Merge
Newly add to kudo repo index
is the ability to --merge
or --merge-repo
. This will pull down the index.yaml file from the repo referenced and integrate the local repository with it (local operators will take precedence).
kubectl kudo repo index repo_dir --merge-repo community
will create an index.yaml file for operators in the "repo_dir" folder and will download the index.yaml from the community repository and merge them together. Operators at the repository are not downloaded.
Verbose CLI Debug Output
KUDO now provides functionality for verbosity similar to that which is expected with Kubernetes with a -v
or --v
. It has not been fully integrated across all CLI commands yet. It is complete with kudo init -v 9
where -v 9
will provide the maximum resolution of debug tracing.
Built on Go 1.13.1
Go 1.13.1 provided a security release for an issue which did NOT affect KUDO. Regardless we have upgraded to 1.13.1 for this build.
Updated to Latest Kubernetes API
StatefulSets in KUDO were previously accessed through v1beta2 APIs which has been removed from Kubernetes 1.16. Now KUDO uses the AppsV1 API.
Changelog
335be6c Add 'errors' file handling to test harness (#867)
c81392a Add Master releases via Github Actions (#820)
ad6f10c Add an integration test for the 'first-operator' example (#828)
af7cd8a Add error handling where it was missing (excluding tests) (#807)
ba79375 Bug Fix: Init YAML Generation (#813)
c237bb3 Bump docker library to latest in tests (#832)
00edf6b Bumping go version to 1.13 for builds and tests (#791)
27f7838 CLI cleanup (#824)
0b88dd5 Change the Prow KEP to rejected (#825)
cab9448 Change the codeowners file (#848)
ab84e1d Cleanup controller registration to the runtime 0.2.0 (#833)
7ee6586 Clog Client Controlled Verbosity (-V) (#831)
b9438a7 Collect test metadata in integration tests (#773)
80a9972 Fix flake in operator-in-operator test (#799)
e7ceb87 Fix scheme to support all apigroups (#864)
5031efa Fix type in examples and change the wording a bit (#861)
df806d0 Fixes Master (#841)
c4d9c13 Fixing repo command short message (#787)
12a4e7d Get rid of word bundle and use package everywhere (#834)
d895faf Global flag refactor (#792)
239e2a4 Golangci-lint and fixes (#800)
50a6626 Handle pipeline failures in Makefile steps (#809)
26f609f Implement test commands feature (#788)
694a4f0 Init Error Handling Enhancement (#858)
37dd630 Instance controller refactoring (#850)
268932d KEP-0017 Pipe Tasks (#819)
190c86f KEP-0018 Controller Redesign (#830)
9b27e7a Kubernetes Version Server Check For Kudo Install (#836)
289be93 Lint shell scripts and ensure consistency (#793)
211a2f8 Log a timeout that is going to be used for the suite (#794)
37bb33d Log test timeout only once, not per file (#866)
d4a5719 Move KEP-18 to implementable (#846)
29b2048 Negotiate Docker API version before attempting to create node volumes in tests. (#840)
6d024e5 Nit: Remove the trailing period after printing $KUDO_HOME (#782)
ad087d6 Package URLS in index file used for package download (#842)
22d8101 Plan execution logic extraction covered by first unit tests (#759)
aea5c2e Proper io.Closing around Packages (#843)
8c28565 Proposal to print out events after finishing test run (#797)
d103287 Remove a nil-dereference (#844)
a2487bc Remove broken link to getting started GIF (#744)
a4aedaf Remove dead code (kudoctl/helpers) (#865)
f513b1a Remove make manifest (#786)
ee36805 Repo Index Merge (#801)
d733387 Richer Maintainer Metadata (#762)
06d527d Simplified PR template (#826)
08c555b Support persisting images pulled in KIND in tests when KINDNodeCache is set. (#805)
543a4b9 Updates current-time to published version (#823)
2ca9418 Upgrade kind to 0.5.1 (#802)
41fe038 We require Go 1.13
6e6b017 adding init --crd-only flag (#853)
7ef72c3 brew is deprecated and replaced by a brews list (#771)
6d85573 fix broken link to getting started (#785)
5987b53 fixing misuse of var name and error handling for no config in repo (#821)
1ccaab5 removing fields from structs for which we do not want to expose thru yaml (#863)
a19c69b reset to default community repo url (#869)
4cc0bd6 set minimum go version (#804)
91d7922 update to deepcopy from generated code (#835)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.7.0
kudo-v0.6.0
Release Highlights
KUDO INIT
With new CLI installed you can now use kubectl kudo init
command to setup a Kubernetes cluster with install version of KUDO and establish a KUDO_HOME on the client. To manage the details yourself, run kubectl kudo init --dry-run -o=yaml
. Using the --dry-run
flag will make no changes locally nor at the cluster, however the -o=yaml
will output the YAML definitions for the server to STDOUT, making kubectl kudo init --dry-run -o=yaml > kudo-install.yaml
an option.
KUDO v0.6.0 introduces the ability to use your own operator repository, details below. In order to configure KUDO to use a different repository it must be configured at the client. Assuming you already have KUDO installed in the cluster, run kubectl kudo init --client-only
will establish the default KUDO repository options.
TIP: Looking to have the KUDO CLI "Wait" until KUDO is ready in the cluster? Try kubectl kudo init --wait
.
Run kubectl kudo init --help
for more details.
KUDO Repository Management
KUDO 0.6.0 introduces the ability to manager repository options with the ability to Add, Remove and List repositories (details with kubectl kudo repo
).
kudo repo list
will provide a table of repository options with an *
denoting the default or "current" repository.
kubectl kudo repo list
NAME URL
*community https://kudo-repository.storage.googleapis.com
Repository Index Creation
Looking to create your own repository? This release provides kubectl kudo repo index ...
which will create the index.yaml
needed at a repository. Assuming you have a folder operators
will a set of operators, you simply run kubectl kudo repo index operators --url=http:/localhost:8080
. This assumes you will run a web server at port 8080 locally to use the repository.
Selecting a Repository
All commands that need to interact with a repository (install
, upgrade
, etc.) now support a new flag --repo
. By default without using --repo
, the current context repository will be used (denoted by *
in repo list
). --repo
makes it possible to use another repository for a command without change the default context. Assuming a test
repo, it is possible to install using kubectl kudo install zookeeper --repo=test
.
Creating an Operator Package
Newly add is the ability to create an operator tarball package from a folder with project defined naming conventions and some validation. Run kubectl kudo package operator
, assuming operator is the folder of your operator. This will confirm the operator has a valid operator.yaml and params.yaml file and will create a foo-1.0.0.tgz, where foo is the name of the operator and 1.0.0 is the version.
For more details run kubectl kudo package --help
.
Changelog
6fab360 Add Arkansas event (#715)
04840db Add Hamburg meetup (#699)
76b5095 Add Nordics tour (#720)
47a70be Add Phoenix date (#719)
8cbb168 Add Tampa Kubernetes Meetup information (#726)
c607f9c Add missing kind to the PR template (#701)
82bf2ee Add update and upgrade docs (#700)
6e498a5 Blogpost for 0.5.0 (#695)
e94ec41 Bundle Feature: Create Package Bundle (#677)
d18ae0e Change date for Glasgow (#724)
3c3346a Final phase of 'developing operators' docs (#651)
c0ae416 Fix broken link to developing-operators (#697)
6f7ba7a Fix flake in CreateOrUpdate (#707)
fa7a7b2 Fix getting started installation for 0.5.0 (#714)
47e7da7 Fix race with ActivePlan between Instance and PlanExecution controllers (#722)
388a9f9 Fix some wording around the update subcommand (#727)
6fdef76 Fix testing link (#716)
842c7f1 Get ready for 0.5.0 (#689)
750c4c9 Instance spec as part of plan execution CRD (#705)
aa31c5a Integration test for update plan (#706)
be37229 KEP: Draft For Repository (targeted for KEP-15) (#654)
3d81a36 KUDO Init (#736)
7d7ce10 Minor docs overhaul: wording, grammar, formatting (#709)
c74d227 Proposal: Support calling out to arbitrary commands in the test harness. (#754)
eddf74b Reduce the indirection by directly referencing controllers (#694)
a0d82e6 Remove the site and docs since they now live in the www repo (#734)
e915644 Repo Add, Remove, List and Context Features (#757)
333e1fb Repo Index (#730)
fba47ba Unify feel of install, upgrade and update (#688)
f6081b9 Update controller dependencies (#746)
9d5c0da Update date for K8s Finland Meetup, fix community link in announcements (#708)
bf8362c Upgrade plan test (#702)
94ef046 Uses Repo Name in kudo install and upgrade
3312f42 add Data Natives Vienna meetup information (#732)
a6162c2 fix lingo in docs: task, not step (#698)
e6ef0ef kafka: use kudo cli in the quickstart examples (#690)
42a347c kudo init client side (#751)
79a2f56 switching maintainer back to 0.5.0 release and adding marshaling tests (#749)
414a82e these are generated files. fixing the grammar causes the repo to be dirty on builds. (#735)
de4f770 update min minikube spec to allow zk/kafka (#704)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.6.0
kudo-v0.5.0
Release Highlights
kudo upgrade command
With new CLI installed you can now use kubectl kudo upgrade
command to upgrade running instance on your cluster from one version of operator to another one. That means you can now automatically update for example from one version of Kafka to another. Run kubectl kudo upgrade --help
for more details.
kudo update command
kubectl kudo update
command provides a new way to patch parameters on a running instance of an operator. So for example if Kafka exposes parameter BROKER_MEM_LIMIT
you can run kudo update --instance kafka -p "BROKER_MEM_LIMIT=4444Mi"
to change it for already installed Kafka. Run kubectl kudo update --help
for more details.
Ability to execute kubectl commands using test harness
If you're using test harness to write your tests (and you should!) you can now execute kubectl commands as part of your steps. See this test for a reference.
Changelog
a34320f Add 0.4.0 blog post (#676)
7400c6a Add contributing section to documentation (#678)
a94bd6a Add generated kubeconfigs and kubeconfig cache to gitignore. (#674)
b7840d2 Add script for generating a krew plugin manifest. (#645)
ef6a9ba Backport Krew review feedback to generate_krew.sh (#675)
8ae7542 Consistent help messages for all commands (#685)
ae24abc Drop arrows from short descriptions (#669)
dc52d09 Fix EXE path when generating Krew plugin. (#671)
3f45ece Implement CLI and E2E testing using the KUDO test harness. (#656)
182c83d Instance Controller: Refactored Create Operation (#670)
0555202 Kudo update integration test (#680)
d48182a Overhaul test harness documentation. (#643)
f9f6aa8 Print out some messages in happy path of kudo upgrade (#686)
596b012 Remove SilenceUsage:true from all commands (#687)
8201c10 Update OWNERS file. (#667)
f15ae36 Update command (#673)
0a7f2e1 Update event queue (#666)
5e2dfd0 Upgrade command (#659)
5d83b49 Upgrade integration test (#681)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.5.0
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 contributor...
kudo-v0.3.3
Changelog
fc29a79 Bump deployment.yaml before upcoming release (#620)
5ce6775 Do not Get after Create/Patch in plan execution controller (#612) (#616)
3c1b9e9 Do not apply label with version to fix upgrade issues (#617)
c7b29e7 Makefile build info should be identical to goreleaser build info (#579) (#580)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.3.3
kudo-v0.3.2
Changelog
5b683b9 Adding Ability to MergePatch CRDs properly (#488)
3cb7a44 Change install version StringVar to StringVarP (#545)
4a9e01a Fix KUDO step object deletion logic (#551)
f05d5a8 Refactoring of "get instances" CLI command (#553)
e9991ab Switch CRD version reference to the next release (#566)
81cbddc adding IDs to release builds
d2d1edd fixes to the flaky test. timeouts already correct on master
3445618 use correct operator label for instance in KUDO cli (#565)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.3.2
kudo-v0.3.1
Changelog
0dde726 Fix install into non-default namespace (#515)
7e4306f If set, use $KUBECONFIG when creating a new client (#472)
19d4316 Look for KUBECONFIG environment variable for 'get' and 'plan' (#478)
c6e9d3a No panic when getting a plan status for an instance with no plan (#461)
0addb5b Pass displayName to server, remove mustache mentions (#505)
b9c6b68 Propagate trigger from CLI to the server side (#498)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.3.1
kudo-v0.3.0
Release Highlights
Switch from Framework to Operator
Framework was the term the project previously used to represent a service that KUDO "the operator" would be instrumented to be an operator for. The intention was to bring clarity by introducing a new term. It was thought that the new term would allow for more accuracy in technical communication by reduce the overloading of the term operator. For some it caused more confusion and almost always resulted in the need for explanation. We have abandon the term completely resulting in a breaking change to the CRDs.
All previous concepts and required objects using the word Framework have been replaced with Operator, resulting Operator and OperatorVersion in the type definition.
This will result in some overloading of the term operator, but aligns better with the eco-system. The running KUDO controller is an operator that manages operators built with KUDO's packaging format. In the future, this will be expanded with support for Helm charts (v0.4.0), other packaging formats, existing operators, and beyond. KUDO's mission is to enable easy, declarative day two operations and API management for complex applications, no matter how they were originally built.
Package Format
KEP-10 for the package manager is underway, with release providing 2 features; package repository and a package format.
The general format allows for a number of files, but starts with an operator.yaml
. A common layout might be:
operator.yaml
params.yaml
templates/
<additional files>.yaml
The operator.yaml
defines the operator and its plans. params.yaml
defines the params to be used through all templated files. While the templated files are defined under the templates folder. The templated files are referenced in the operator.yaml
file. The zookeeper operator provides a good example.
These package files are group together in a folder or subfolder or can be tarred together in a tgz
file providing a couple of ways to install an operator.
Package Installation Options
Introduced with this released are 2 ways to install an operator to KUDO. The first is designed for operator developers which is to install from the local filesystem. This can be either a folder with the operator package files or a tarball of those files.
kubectl kudo install ./kafka
or kubectl kudo install kafka.tgz
This release also introduces a repository which allows for automatic discovery of operators to be installed.
kubectl kudo install kakfa
Note: The order of operation when installing an operator is to check the local filesystem first, then to query the repository.
Skip Instance
kudoctl install now supports -skip-instance
flag which skips installing an Instance when installing Operator and OperatorVersions. This is useful in a testing scenario - we install all of the Operators and OperatorVersions but don't want to install the Instances until later.
Test Harness
The test harness outlined in KEP-8 has been implemented. The harness described in testing.md provides a mechanism for operator developers to create end to end integration testing for their frameworks. Introduced with the test harness is the kind: TestAssert
to assert operator state. Example tests are provided for the zookeeper operator.
Operator Dependency Management Removed (For Now)
The proper handling of operator dependencies is more complex than first imagined / implemented. This fact was called out in Issue 438. For this reason we have removed the all-dependencies
flag from kudoctl
. This feature needs to be designed through the KEP process and will be implemented properly in the future.
Changelog
6096c39 Install frameworks from local file system (#389)
8943b52 Add -skip-instance flag to kudoctl install to skip installing instances. (#443)
9761d40 Add missing codegen (#444)
ebd7d91 Add slides from Warsaw Meetup (#450)
40f8a46 Add test for immutable client IP bug (#446)
8bbe6a9 Allow to install multiple instances of the same FV (#428)
5fdf5ec Better docs for Trigger field (#350)
da1da8e Better installation instructions (#292)
9d94c75 Better message when installing instance of given name (#454)
726bf0b Blog post for v0.2.0 (#313)
b118eeb Change default instance name to have random characters that are valid for DNS names. Fixes #432 (#437)
b9398ae Clean up comments (#329)
b7be7cb Docs fixes (#316)
458605e Documentation for KUDO test harness. (#359)
5689a25 Drop usage page (#458)
0922165 Extract method from package processing (#372)
db5f868 Fail on lint errors (#327)
885a832 Fix broken image link. (#436)
ddbc071 Fix broken link to Zookeeper example (#455)
39ea396 Fix comparing parameter values on Instance Spec updates (#348)
f6377b6 Fix error reported by linter (#328)
f2f9ce4 Fix marshalling of patched objects. (#445)
a5903db Fix racy FrameworkVersion and Instance reconciliation (#363)
326d7e2 Fixing homebrew tap cmd (#314)
b6c233c Hide integration tests behind the integration build tag. (#361)
d47a55b If FrameworkVersion Namespace is not specified in Instance, default to same namespace as the Instance. (#426)
06f5294 Implementation of framework test harness (KEP-0008) (#285)
3acefb1 Improve getting started and contributing docs (#324)
7560376 Improve install experience (#311)
b41748c Improve kudo install help message (#457)
9412312 Install Parameter Parsing Cleanup w/ Tests (#346)
d18883d Integrate KUDO test harness into kudoctl. (#366)
b9b6c52 KEP-0012 Framework Extensions (#351)
d1ba637 KEP-0013 External Application Formats (#356)
dfe2810 Make the CI run again after git-credentials removal (#319)
a64d6c1 Making code easier to read (#315)
0e1a7b8 Minor CLI refactoring, mostly changing names (#323)
d07498b Minor renaming in kudo install command (#312)
2cf3470 Move statement back into internal method because of tests (#318)
3c46ad2 Propose design for listing objects in tests (#421)
5ff2289 Refactor of bundle (#414)
0a349b8 Refactored install parameters (#339)
31bb65a Remove Kubebuilder Generated Tests (#358)
a144204 Remove redundant TestRunWithKUDO. (#427)
aaa7faa Remove vars, pass params explicitly (#320)
a30c5fb Removed unused dependencies (#456)
4e41c0f Removes patches and uses the raw template object as the patch instead (#447)
61aa3db Rename files to follow naming convention (#321)
a221ac3 Repairing Anchors on Website + Docs (#388)
2c7a85b Retry json decoding errors from the Kubernetes API to prevent flaky tests. (#423)
723c0c6 Run Circle CI only for the merge target. (#425)
d98da9b Run tests in verbose mode (#345)
f3bd8b8 Soft disable client side dependencies (#440)
fefb2cb Support listing objects in test harness (#441)
12babe2 Support new KEP-9 package format in installs (#343)
b3fb19c Switch HUGO theme (#364)
4e08317 Switch from Framework to Operator (#442)
57e1ea9 Update CLI docs before upcoming release (#460)
75ac0c6 Update KEP-0004 to describe testing procedures, types, and policies. (#342)
75ed1bc Update KEP-9 to implemented (#431)
d8fe5b9 Update to Release Process (#317)
311e1ae Use Kind instead of Singular when looking up types in test harness. (#463)
34ffdb1 Use lowercase for local variable (#453)
479e0ed Use patches to update things (#367)
3fc3c8d [KEP-0010] KUDO Package Manager (#248)
e6aa1e1 [test harness] Use the test utils CreateOrUpdate method to update CRDs and manifests. (#362)
b49ff7d adjust pre-reqs
a082f59 link to zookeeper is broken (#325)
ffe8b16 set integration test tags on instance_controller tests. (#387)
6be2bfb updating codeowners (#341)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.3.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):