183 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)
- New configuration variable to pass options to restic (#431)
- Clean histories for successful and failed jobs separately (#462)
🛠️ 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)
- Various maintainability improvements (#363)
- Refactor e2e tests (#369)
- Introduce ScheduleSpecInterface (#352)
- Simplify feature request template a bit (#378)
- E2E-Test Backup (#372)
- Pin wrestic image for e2e-tests (#386)
- Refactor e2e-test utils (#388)
- Verify the correctness of a backup (#390)
- E2E-Test for Restore operation (#387)
- Better names for e2e tests (#401)
- BackupCommand Annotation E2E Test (#410)
- Enable 'go mod tidy' for renovate (#411)
- New style for documentation preview (#446)
- Manage kind version via go.mod (#468)
🔎 Breaking Changes
- Change default backup image to quay.io/vshn/wrestic (#311)
- Replace 'Succeeded' reason in PreBackupReady condition with 'Ready' (#383)
🐛 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)
- Fix loading of Operator environment variables (#364)
- Add missing finalizer RBAC rules (#380)
- Rework job status and PreBackup handling (#384)
- Fix pre-backup condition not being displayed after renaming it (#403)
- Actually Perform the Cleanup of Checks (#400)
- Remove preserveUnknownFields in v1 PreBackupPod CRD (#412)
- Fix missing cleanup of PreBackupPod deployments (#414)
- Fix missing jobType label in the metrics (#422)
- Fix integration tests by migrating setup-envtest.sh to setup-envtest util (#430)
📄 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)
- Fix wrong structure of samples (#368)
- Document k8up annotations (#409)
- Document how to release k8up (#415)
- Clarify BACKUP_GLOBALKEEPJOBS usage (#419)
- Add a new section "About" in documentation (#425)
- Fix documentation for upgrading K8up from 0.x (#443)
- Add a note about docs version bump on release (#451)
- Remove duplicate keys initialDelaySeconds, timeoutSeconds (#452)
- Validate and update tutorial (#455)
- Use the official mariadb image in tutorial (#460)
🔗 Dependency Updates
- 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)
- Update module elastic/crd-ref-docs to v0.0.7 (#360)
- Pin mikepenz/release-changelog-builder-action to v1 (#362)
- Update module k8s.io/client-go to v0.20.3 (#367)
- Update module k8s.io/client-go to v0.20.4 (#375)
- Update module sigs.k8s.io/controller-tools to v0.5.0 (#376)
- Update Go to v1.16 (#377)
- Update k8s.io/utils commit hash to 2afb431 (#385)
- Update module sigs.k8s.io/controller-runtime to v0.8.3 (#389)
- Update vshn/wrestic image to v0.2.2 in e2e-tests (#391)
- Update module github.com/imdario/mergo to v0.3.12 (#392)
- Update dependency bats to v1.3.0 (#398)
- Update module k8s.io/client-go to v0.20.5 (#408)
- Update module github.com/prometheus/client_golang to v1.10.0 (#404)
- Update module github.com/knadh/koanf to v0.16.0 (#420)
- Update module github.com/knadh/koanf to v1 (#429)
- Update sigs.k8s.io/controller-runtime/tools/setup-envtest commit hash to 7181f11 (#432)
- Pin quay.io/vshn/wrestic to latest (#434)
- Update module go.uber.org/zap to v1.17.0 (#433)
- Update module github.com/knadh/koanf to v1.1.0 (#438)
- Update module github.com/prometheus/client_golang to v1.11.0 (#439)
- Update module github.com/knadh/koanf to v1.1.1 (#447)
- Update mikepenz/release-changelog-builder-action action to v2 (#448)
- Update kind to 0.11.1 (#457)
- Update docker.io/library/alpine Docker tag to v3.14 (#444)
- Update module go.uber.org/zap to v1.18.1 (#449)
Docker images
docker pull docker.io/vshn/k8up:v0.3.2
docker pull quay.io/vshn/k8up:v0.3.2
docker pull docker.io/vshn/k8up:v0
docker pull quay.io/vshn/k8up:v0