This is a decent-sized refactor, primarily in how the controller is setup, that I think enhances readability. Additionally, wrangler has been upgraded which now supports openapi schema creation so norman has been dropped.
Primarily, however, this change is meant to address #25 (and possibly #36) caused by a bug in wrangler that:
- prevented the controller from properly replacing jobs that could not be patched (pod tempalte spec changes)
- prevented the controller from replacing a job generated with the `apply.WithNoDelete` option
- prevented the controller from processing external plan edits in a timely manner (no more long waits due to spurious replace-wait errors)
Fixes#25Fixes#34
Depends on rancher/wrangler#66
This fixes the use case where a channel resolves to (or a version value is) a legitimate SemVer with metadata by replacing all `+` with `-`.
i.e. in the case of k3s, git tag v1.17.2+k3s1 as the version becomes the docker tag v1.17.2-k3s1
Fixes#28
- includes removal of controller serviceAccountName references and envvar
- image tarballs a la `docker save` are added to dist/artifacts
- sonobuoy plugin yaml added to dist/artifacts
- introduces e2e-tests tag suffix image that can be used for the sonobuoy plugin
- Add `secrets` references to **Plan** spec. Changes in referenced `secrets` can trigger re-application of a **Plans**.
- The label that a **Plan** places on an applied `node` is no longer the `status.latestVersion` but is instead a sha224 digest of `status.latestVersion` and the key-order-value(s) of each secret's `data` in the order each `secret` is specified. This value is represented as `status.latestHash`