kudo-v0.10.0
Highlights
Skeleton Generators (#1206 and (#1222))
In addition to directly working with UYAML, it is now possible to create or update an operator from prompts in the kudo CLI. The following is now possible:
- Add Maintainer
- Add Task
- Add Plan
- Add Parameter
In addition to kudo package new
to create a new operator. kudo package new foo
will create a new subfolder to the current folder named operator
(by default) and stub out an operator.yaml
and params.yaml
file. By using the -i
flag you can create using interactive prompts.
Example to create a new operator.
# non-interactive
kubectl kudo package new foo
✔ ~/projects/
16:11 $ tree operator/
operator/
├── operator.yaml
└── params.yaml
# interactive
kubectl kudo package new foo -i
Operator Name: foo
Operator directory: operator
Operator Version: 0.1.0
Application Version: 0.1.0
Required KUDO Version: 0.10.0
Project URL: http://kudo.dev
All the commands to add content to an operator are located under kudo package add
. Give it a try!
Understand Operator Details ((#1223))
Previously it was challenging to understand the internal details of an operator. As an operator developer you may want to know what plans are currently supported. As a KUDO user you may want to know what parameters are currently supported and what their defaults are. KUDO 0.10.0 now supports package list
for the following commands:
- tasks
- plans
- parameters
This feature is useful against local operators or against operators in a repository.
The follow is the list of plans for zookeeper from the current repository.
kubectl kudo package list plans zookeeper
plans
├── deploy (serial)
│ ├── [phase] zookeeper (parallel)
│ │ └── [step] deploy
│ │ ├── infra
│ │ └── app
│ └── [phase] validation (serial)
│ ├── [step] validation
│ │ └── validation
│ └── [step] cleanup
│ └── validation-cleanup
└── validation (serial)
└── [phase] connection (serial)
├── [step] connection
│ └── validation
└── [step] cleanup
└── validation-cleanup
Operator Package Update ((#1028) and (#1257)
Note: Breaking Change
We came to agreement on how to handle versioning with KEP-19 and this release implements that agreement. The core change to the operator developer is that version
was renamed to operatorVersion
. An additional consequence is the tgz packages have the full version of appVersion_operatorVersion
in their file names. This necessitated the creation of another operator repository.
Note: Previous users will need to either re-init their client or add the new repository to their repository listings.
To add the latest repository:
kubectl kudo repo remove community
kubectl kudo repo add community https://kudo-repository.storage.googleapis.com/0.10.0
Note: Breaking Change
For consistency and better UX, the command
kubectl kudo params list
was changed to
kubectl kudo package list parameters
Changelog
689004b Add annotations for controller-gen. (#1194)
23b777c Add appVersion and version to CRD to match the structs. (#1195)
f5e963b Add leading dashes to please controller-gen. (#1239)
1f0be0b Add verifier support for the special $
variable. (#1255)
fa80cbd Adding funk library to the project (#1237)
fddf492 Adds a fix to include CA data in generated kubeconfig (#1226)
a6be57a Adjust description in the PR template (#1220)
61e2194 Always pass in obj with latest generation (#1187)
09f3743 Arrange import sections following our styleguide (#1192)
7d84119 Autogeneration of CRDs. (#1240)
291de81 Bump 'golangci-lint' to v1.22.2 (#1249)
c85e68c Bump code generator and remove stale workaround note. (#1244)
b4a92ba Check that generated files are up to date (#1233)
6dcbee3 Check the type assertion on funk.Keys return value. (#1256)
189b0ce Chore: Update direct dependencies to their latest versions (#1193)
eb7e166 Code gen updates (#1230)
ef07673 Do not deepcopy, instance can be nil (#1185)
9b97bd0 Document how to do pre-releases (#1174)
a90277d Fix example, add links, mention make import
(#1154)
0aeb801 Fix goroutine leak and remove duplicate health (#1246)
c3bf32b Get rid of dependency on kustomize in controller (#1234)
d2310b1 Implement KEP-19 by distinguishing between app and operator version (#1257)
cbdfb88 Improve test transparency. (#1209)
55576a2 Include dots in regex for image version substitution. (#1259)
e2d383f Include phase strategy in plan status output (#1173)
b85bd6c KEP-19: Versioning for operator packages (#1028)
08f299e Mention how to get imports right in IDEA or Goland. (#1242)
3ca2ebe Operator Skeleton Generator (#1206)
60b0f19 Operator Skeleton Generators (#1222)
52ecf33 Package List (Parameters | Tasks | Plans) (#1223)
8b5a2ee Refactor Instance Methods Try 2 (#1254)
06e3085 Refactor KinD usage in test harness and allow to add (local) containers (#1217)
366222d Refactored instance validation webhook (#1207)
09691f1 Reintroduce 366222d (#1207) (#1232)
e492fc7 Remove and prevent unchecked type assertions (#1245)
c953e30 Remove confusing no-op validate:
tags. (#1251)
5977dda Remove obsolete linting steps from the styleguide (#1203)
59f9ec9 Remove some unused labels. (#1190)
1f93044 Remove the stale references to kustomize
. (#1241)
ff75b96 Remove the unused crdVersion from CRD. (#1204)
01808de Remove unnecessary accidental debug logging from test harness (#1227)
50d5706 Removed duplicated parameterDiff
method (#1215)
8412987 Rename the CRD files. (#1210)
3e2625e Replace 'properties/assert' with 'testify/assert' (#1248)
854feb2 Revert PR 1207 (bug) and Regen code (to fix imports) (#1229)
64fc8fc Sort required fields. (#1212)
fec74d4 Start operatorVersion field with lower-case letter. (#1196)
537dc98 Unify description spelling in cmd and pkg/apis. (#1172)
ef9d22d Update field description to match the one in kudoinit. (#1198)
e706bac Update release.md with another step (#1200)
6b31202 Update the krew description (#1199)
aacc831 Update to bindata file
20bdc93 Use a KUDO deployment for E2E testing (#1243)
e5361cb Use empty json tags to please controller-gen. (#1181) (#1191)
8b55215 Use go-bindata to embed YAML files with CRDs. (#1211)
770d862 Use the correct type for UpgradableFrom. (#1197)
343696a Verifier for tasks and plans (#1224)
ec73f07 When building binaries, compile the whole package. (#1208)
857f9e6 Windows CLI is not currently built for KUDO so do not include in Krew manifest (#1202)
6e29e32 adding code gen to ci build (#1231)
e7244b3 need to lock in version of generators (#1236)
Docker images
docker pull kudobuilder/controller:latest
docker pull kudobuilder/controller:v0.10.0