Skip to content

kudo-v0.10.0

Compare
Choose a tag to compare
@kensipe kensipe released this 10 Jan 18:55
· 163 commits to master since this release

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