This release is a complete rewrite of K8up from the Kooper framework to the Operator SDK.
124 changes since v0.1.10
🚀 Features
- Print version number at K8up startup (#161)
- Limit max concurrent jobs by type (prune, backup, check, etc.) (#164)
- Add e2e test with bats-detik (#170)
- Allow default resources to be set on all job types (#175)
- Add new smart schedules (#186)
- Add Conditions to the Status information (#204)
- Add JobSucceeded Condition to Status fields (#218)
- Introduce reasons and consolidate status conditions (#308)
- Print Schedule ref and status conditions in kubectl (#313)
- new CRD: EffectiveSchedule (#333)
🛠️ Minor Changes
- Replacing local playbook.yml with ad-hoc previewer command (#109)
- Rewrite (#114)
- Rewrite check executor (#135)
- Rewrite archive (#139)
- Rewrite restore (#140)
- Rewrite prune controller (#133)
- Add go test & lint gh action (#145)
- Rework Workflows and Build (#150)
- Integrate KIND into makefile (#152)
- Re-add prometheus metrics after Operator SDK migration (#146)
- Set up issue templates (#158)
- Ensure legacy and current CRD spec version support (#154)
- Merge Development to Master (#159)
- Migrate constants to Koanf (#155)
- Adjust the exclusivity of the restore and archive job (#174)
- Ensure repository is always set (#169)
- Move "Leader-election" CLI flag to Env var (#185)
- Micro Enhancements (#188)
- Add .editorconfig (#187)
- Flatten K8upStatus spec (#191)
- Add question template to GitHub (#190)
- Add .dockerignore (#192)
- Self-documenting Makefile (#189)
- Disable LEADER_ELECTION by default for make run run_kind (#200)
- add GitHub Pull Request template (#206)
- Enable pre release (#222)
- Setup CodeClimate (#233)
- Remove Prefix from issues and link questions to GH Discussions (#239)
- Skip tagging and publishing of floating tags in prereleases (#245)
- Replace Goreleaser changelog generator with PR-based generator (#248)
- Replace local registry by loading e2e images directly onto KIND cluster (#250)
- Display number of changes since which tag in the changelog (#252)
- Separate e2e tests and KIND from main Makefile (#255)
- Add junit reporting for e2e tests (#259)
- Avoid reconciliation loops with predicates (#268)
- Improve failure handling in GH e2e report workflow (#275)
- Load the e2e image into KIND in its own make-target (#269)
- Show partial release notes for PreReleases (#279)
- Add K8up viewer and editor roles to default built-in roles (#289)
- Adds a test for mergeBackendWithDefaults (#298)
- Rework GitHub workflows (#285)
- Rename new global environment vars (#302)
- Add config option to enable verbose logging and set default to 'info' (#307)
- Convert executor/restore_test.go to unit test (#330)
- Introduce Integration Tests using envtest (#310)
- Speed up
make test
(#342) - Use '%w' syntax in fmt.Errorf (#343)
- Introduce BackendInterface and document more backend settings (#345)
- Ensure linter checks for generated code too (#348)
🔎 Breaking Changes
- Change default backup image to quay.io/vshn/wrestic (#311)
🐛 Fixes
- Fix s3 restore env vars (#144)
- Only add ResticPassword if set (#147)
- Fix global S3 not applied (#157)
- Fix 'tar: Error opening File' when "make intergration_test" (#199)
- Fix Null Pointer Dereference (#202)
- Fix AccountKeySecretRef in Azure backend spec (#211)
- Grant additional RBAC permissions to K8up (#219)
- Replace internal schedules when reconciling Schedule CRs (#242)
- Fix listing of PreBackupPods in foreign namespaces (#240)
- Ignore existing prebackup deployments (#249)
- Ensure backwards compatibility of GLOBALSECRETACCESSKEY variable (#258)
- Pass Scheduler Backend Config to Childresources (#260)
- Fix Check Job Creation escapade (#266)
- Fix Application of Global Memory Limit (#280)
- Add preserveUnknownFields to generated PreBackupPod CRD (#295)
- Fixes unsolicited changes to the Schedule custom resource from globals (#297)
- Avoid name clash by using scheduler name as prefix and random suffix (#312)
- Fix "sha1sum command is not found" in e2e-tests on macOS (#340)
- Check status of PreBackupPod Deployments after operator restart (#341)
- Change logging key to avoid clash (#349)
- Fix change of random schedule not being applied (#355)
📄 Documentation
- Documentation & formatting fixes (#103)
- Fix minio install in tutorial (#113)
- Add basic contributing docs, port README (#134)
- Recover documentation (#160)
- Docs: fix typo readme (#180)
- Fixes in backup.adoc (#201)
- Update K8up Documentation (#205)
- Update documentation configuration and small docs fixes (#221)
- Use weekly random schedule in tutorial (#243)
- Show link to changelog in the docs (#253)
- Convert architecture from png to svg and include in documentation (#254)
- Document Kustomize installation instructions (#262)
- Better distinguish between non-standard and k8up generative schedules (#267)
- Document missing environment variables (#282)
- Document upgrade process for 0.x to 1.x (#303)
- Explain backupcommand for pods with same owner reference (#347)
- Generate API reference documentation with generator (#346)
- New K8up Logo (#350)
- Add documentation to manage pod resources (#351)
🔗 Dependency Updates
- Updated vale to latest version (#142)
- Upgraded antora-preview to latest version (#111)
- Pin dependency bats to 1.2.1 (#178)
- Update module onsi/gomega to v1.10.3 (#182)
- Update module imdario/mergo to v0.3.11 (#171)
- Update k8s.io/utils commit hash to 67b214c (#162)
- Update module onsi/gomega to v1.10.4 (#193)
- Update module prometheus/client_golang to v1.9.0 (#209)
- Update mikepenz/release-changelog-builder-action action to v1.3.0 (#251)
- Update mikepenz/release-changelog-builder-action action to v1.3.1 (#261)
- Update module knadh/koanf to v0.15.0 (#270)
- Update mikepenz/release-changelog-builder-action action to v1.4.1 (#278)
- Update k8s.io/utils commit hash to fddb29f (#277)
- Update module stretchr/testify to v1.7.0 (#286)
- Upgrade of Operator SDK to 1.3.0 / Kubebuilder to v3 (#283)
- Update docker.io/library/alpine Docker tag to v3.13 (#294)
- Update mikepenz/action-junit-report action to v2 (#301)
- Upgrade to controller-runtime 0.8 and K8s 1.20 (#296)
- Update module go.uber.org/zap to v1.16.0 (#309)
- Update mikepenz/release-changelog-builder-action action to v1.4.2 (#327)
- Update module sigs.k8s.io/controller-runtime to v0.8.1 and Kubernetes API to 1.20.2 (#329)
- Update module go-logr/logr to v0.4.0 (#334)
- Update module go-logr/zapr to v0.4.0 (#337)
- Update module sigs.k8s.io/controller-runtime to v0.8.2 (#353)
Docker images
docker pull docker.io/vshn/k8up:v1.0.0
docker pull quay.io/vshn/k8up:v1.0.0
docker pull docker.io/vshn/k8up:v1
docker pull quay.io/vshn/k8up:v1
docker pull docker.io/vshn/k8up:latest
docker pull quay.io/vshn/k8up:latest