diff --git a/README.md b/README.md index 312c4da..ebc8b29 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,9 @@ - [Mark and delete process](#mark-and-delete-process) - [Usage](#usage) - [Labels](#labels) - - [Development setup](#development-setup) + - [Development](#development) + - [Development Setup](#development-setup) + - [Releasing new versions](#releasing-new-versions) - [Maintainers](#maintainers) - [License](#license) - [Alternative projects](#alternative-projects) @@ -16,7 +18,7 @@ ## Introduction -> This project is currently in a **alpha** state and only used internally at allaboutapps. +> This project is currently in an **alpha** state and only used internally at allaboutapps. > Thus is **not ready for production use**! Expect **breaking changes**. This project extends Kubernetes CSI-based snapshots with application-aware (also called application-consistent) creation mechanisms. It is designed to be used in a multi-tenant cluster environments where namespaces are used to separate different customer applications. @@ -35,7 +37,7 @@ This section describes the various processes of the backup-ns tool. ### Application-aware backup creation -This diagram shows the process of a backup job for a PostgreSQL database. The same is possibel with MySQL or by entirely skipping the database. +This diagram shows the process of a backup job for a PostgreSQL database. The same is possible with MySQL or by entirely skipping the database. ```mermaid sequenceDiagram @@ -120,7 +122,7 @@ sequenceDiagram ### Mark and delete process -Volume snapshot that have lost all retention-related labels will be marked for deletion and subsequentally deleted. This diagram shows that. Like the retain process, this process is typically run globally, but can also be run on a per-namespace basis (as to how the RBAC service account allows access). +Volume snapshots that have lost all retention-related labels will be marked for deletion and subsequently deleted. This diagram shows that. Like the retain process, this process is typically run globally, but can also be run on a per-namespace basis (as to how the RBAC service account allows access). ```mermaid sequenceDiagram @@ -160,24 +162,26 @@ sequenceDiagram Here are some typical labels backup-ns currently uses and how to manipulate them manually: ```bash -# remove a deleteAfter labeled vs (this prevents the backup-ns pruner from deleting the vs): +# Remove a deleteAfter labeled vs (this prevents the backup-ns pruner from deleting the vs): kubectl label vs/ "backup-ns.sh/delete-after"- -# remove a specific label for daily/weekly/monthly retention +# Remove a specific label for daily/weekly/monthly retention kubectl label vs/ "backup-ns.sh/daily"- kubectl label vs/ "backup-ns.sh/weekly"- kubectl label vs/ "backup-ns.sh/monthly"- -# add a specific label daily/weekly/monthly +# Add a specific label daily/weekly/monthly kubectl label vs/ "backup-ns.sh/daily"="YYYY-MM-DD" kubectl label vs/ "backup-ns.sh/weekly"="YYYY-w04" kubectl label vs/ "backup-ns.sh/monthly"="YYYY-MM" -# add a specific deleteAfter label (the pruner will delete the vs after the specified date)! +# Add a specific deleteAfter label (the pruner will delete the vs after the specified date)! kubectl label vs/ "backup-ns.sh/delete-after"="YYYY-MM-DD" ``` -## Development setup +## Development + +### Development Setup Requires the following local setup for development: @@ -231,6 +235,17 @@ development@f4a7ad3b5e3d:/app$ make test development@f4a7ad3b5e3d:/app$ make watch ``` +### Releasing new versions + +This project uses GitHub Actions to build and push the Docker image to the GitHub Container Registry. +Auto-Publish is active for the `dev` and `main` branch. + +The `helm/chart-releaser-action` ensures that the Helm chart is published to the GitHub Pages branch. + +To deploy a new app and chart version: +* Bump the `version` (for the chart) and `appVersion` (for the docker image) in the `charts/backup-ns/Chart.yaml` file and push to `main`. +* Create a new git tag with the above `appVersion` (e.g. `git tag -a v0.1.1 -m "v0.1.1"` ) and push it to the GitHub repository. + ## Maintainers - [Mario Ranftl - @majodev](https://github.com/majodev) diff --git a/charts/backup-ns/Chart.yaml b/charts/backup-ns/Chart.yaml index eeeffc9..8ff42fb 100644 --- a/charts/backup-ns/Chart.yaml +++ b/charts/backup-ns/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: backup-ns -description: A Helm chart for Kubernetes +description: An application-aware backup solution for a single Kubernetes namespace # A chart can be either an 'application' or a 'library' chart. # @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +version: 0.1.1 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v0.1.0" +appVersion: "v0.1.1" diff --git a/charts/backup-ns/templates/NOTES.txt b/charts/backup-ns/templates/NOTES.txt index 74ee226..0e2c0a3 100644 --- a/charts/backup-ns/templates/NOTES.txt +++ b/charts/backup-ns/templates/NOTES.txt @@ -1 +1 @@ -Thank you for installing the backup-ns cronjob. Your release is named {{ .Release.Name }}. \ No newline at end of file +Thank you for installing the backup-ns cronjob. Your release is named '{{ .Release.Name }}'. \ No newline at end of file