All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Split up documentation into smaller chapters
- Race condition in subscriber, causing panics
- The operator passes the configured annotation names to Wrestic
- KeepJobs value of sub items in Schedule are not overridden
The annotations for including/excluding PVCs as well as the backupcommand annotation have changed. If you're using them this is a breaking change and needs to be adjusted properly.
- Change defaults for
BACKUP_ANNOTATION
andBACKUP_BACKUPCOMMANDANNOTATION
to usek8up.syn.tools
as their prefix.
- Race conditions in the locking logic
- Archive cleanup panic, the archives were cleaned up twice which lead to a nilpointer
- Simplyfied merging logic for backend configs using mergo
- More monitoring metrics
- PVC restores now work correctly
- Memory leak due to incorrectly unregistering jobs
- Ability to define podtemplates that will be started before the actual backup is run
- Bug that prevents from overriding the global statsURL -> need to be fixed properly though (APPU-1673)
v0.1.4 - 2019-03-06
From now on the K8up operator uses go modules instead of dep for dependency management. Also this version needs at least v0.0.10 of wrestic.
- Ability to set file extension for stdin jobs via annotation
- Aggregated cluster roles for users
- More granular S3 merge of credentials and buckets (global vs. CRD definitions)
- Wrong restart policy for restore
- Fix detection of failed jobs
- Locking considers chronology of the jobs
- Restore job handling
- TraviCI instead of GitlabCI
- Pod lockups from the operator
v0.1.3 - 2018-12-09
- Don't quote backup commands
- Observe jobs instead of pods
- Fix owner reference creation
- Choose the right target for archival jobs
v0.1.2 - 2018-11-08
- Removed a lot of duplicated code
- Locking management, jobs that disturb each other shouldn't run concurrently anymore
v0.1.1 - 2018-11-02
- Cleanup of the CRDs
v0.1.0 - 2018-11-01
With this release it is possible to trigger every action on demand. But there's also a schedule CRD that can put everything on its own schedule. These changes are the plumbing for further improvements especially with the locking problem.
CAUTION: All the CRD definitions have changed slightly. So this is not backwards compatible with the old CRDs.
Also some known issues in this version:
- No lock management yet, only the plumbing, so if there's a shared repository it can and will sometimes fail due to stale locks
- If a job still fails after it reached the back-off limit the operator doesn't notice it. That's due to the k8s job controller cleaning up the pod. This can be resolved by observing the job states.
- Archive function
- Check function
- Prune function
- Schedule CRD to schedule all functions
- Group name of the API, it's now backup.appuio.ch
- New CRDs please consult manifest/examples for how to use them
v0.0.10 - 2018-09-28
- Pass arbitrary URL to wrestic, which is used to post additional backup information.
- When setting the backup annotation on PVC it will be backed up even if RWO
- Broken locking when using global backend
v0.0.9 - 2018-09-18
- Global S3 endpoint, S3 bucket and keepJobs. Using env vars, global default values can be specified. The defaults can be overwritten by a backup spec.
v0.0.8 - 2018-09-14
- Push images to Docker Hub
- Divide installation manifests into own files
v0.0.7 - 2018-09-13
- Global repo password. The operator can use a global password for Restic repositories for backups which don't specify an own password.
v0.0.6 - 2018-09-12
- Manage service accounts, roles and rolebindings in namespaces for backup commands. Please see the README chapter
Installation changes
about the new permissions necessary for the operator service account. - Global cluster state. The operator now knows when a prune job is running to a shared repository and waits before starting the next backup/prune.
- Global S3 credentials. The operator can use global S3 credentials to be used with backups which don't specify own credentials.
- Ignore if the service account, roles or rilebindings already exist in the namespace.
v0.0.5 - 2018-08-15
- Consistent backups -> it is now possible to set backup commands on pods. This changes the prerequisites, please consult the README chapter
Installation changes
for more infos.
- Crash when a running job got deleted
- Skip backup if there are no backup commands and no PVCs
v0.0.4 - 2018-08-06
- Skip backup if no suitable PVCs are found
- Minor refactoring
- When the backup definition is deleted it will also cleanup all jobs and pods
v0.0.3 - 2018-07-27
- CRD status, start and end are now timestamps
- Print namespace wenn a backup is created
v0.0.2 - 2018-07-27
- Vscode launch config
- Read credentials and password from OpenShift secrets
- Specifiy default Prometheus push gateway for the operator
- Read the Prometheus push gateway url from the CRD, has precedence over the operator settings
- Use alpine for operator image
- Moved the Restic wrapper to its own project: https://git.vshn.net/vshn/wrestic
- Initial version