diff --git a/chart/chart-index/Chart.yaml b/chart/chart-index/Chart.yaml index 070acce3e9..ddc6e3d709 100644 --- a/chart/chart-index/Chart.yaml +++ b/chart/chart-index/Chart.yaml @@ -19,7 +19,7 @@ dependencies: repository: https://cloudnative-pg.github.io/charts - name: plugin-barman-cloud alias: cloudnative-pg-plugin-barman-cloud - version: 0.6.0 + version: 0.7.0 repository: https://cloudnative-pg.github.io/charts - name: cloud-firewall-crd version: 0.2.0 diff --git a/charts/cloudnative-pg-plugin-barman-cloud/Chart.yaml b/charts/cloudnative-pg-plugin-barman-cloud/Chart.yaml index 8920221d41..f2a8aa780e 100644 --- a/charts/cloudnative-pg-plugin-barman-cloud/Chart.yaml +++ b/charts/cloudnative-pg-plugin-barman-cloud/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: v0.12.0 +appVersion: v0.13.0 description: Helm Chart for CloudNativePG's CNPG-I backup plugin using Barman Cloud home: https://cloudnative-pg.io icon: https://raw.githubusercontent.com/cloudnative-pg/artwork/main/cloudnativepg-logo.svg @@ -24,4 +24,4 @@ name: plugin-barman-cloud sources: - https://github.com/cloudnative-pg/plugin-barman-cloud type: application -version: 0.6.0 +version: 0.7.0 diff --git a/charts/cloudnative-pg-plugin-barman-cloud/README.md b/charts/cloudnative-pg-plugin-barman-cloud/README.md index d997e7204e..ebd78e5def 100644 --- a/charts/cloudnative-pg-plugin-barman-cloud/README.md +++ b/charts/cloudnative-pg-plugin-barman-cloud/README.md @@ -1,18 +1,75 @@ # plugin-barman-cloud -![Version: 0.6.0](https://img.shields.io/badge/Version-0.6.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.12.0](https://img.shields.io/badge/AppVersion-v0.12.0-informational?style=flat-square) +![Version: 0.7.0](https://img.shields.io/badge/Version-0.7.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v0.13.0](https://img.shields.io/badge/AppVersion-v0.13.0-informational?style=flat-square) Helm Chart for CloudNativePG's CNPG-I backup plugin using Barman Cloud **Homepage:** -## Maintainers +About this chart +---------------- -| Name | Email | Url | -| ---- | ------ | --- | -| itay-grudev | | | -| quantumenigmaa | | | -| quentinbisson | | | +Helm chart to install the [CNPG-I Barman Cloud Plugin](https://github.com/cloudnative-pg/plugin-barman-cloud), +the [CloudNativePG](https://cloudnative-pg.io) plugin that adds backup and restore capabilities to PostgreSQL +`Cluster` resources via [Barman Cloud](https://pgbarman.org/). + +**NOTE**: this chart supports only the latest point release of the plugin. + +**IMPORTANT**: this chart requires a working installation of [cert-manager](https://cert-manager.io/). +Please refer to the cert-manager +[installation page](https://cert-manager.io/docs/installation/helm/) for more information. + +The chart deploys the plugin only. It does **not** install the CloudNativePG operator (use the companion +[`cloudnative-pg`](https://github.com/cloudnative-pg/charts/tree/main/charts/cloudnative-pg) chart for that), +and it does not create any `Cluster` resource. To provision a PostgreSQL cluster that uses this plugin, use +the [`cluster`](https://github.com/cloudnative-pg/charts/tree/main/charts/cluster) chart +(see the [Cluster chart README](https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/README.md) for details) +or apply your own `Cluster` manifest. + +Getting Started +--------------- + +### Prerequisites + +This chart requires [cert-manager](https://cert-manager.io/) to issue the plugin's TLS certificates. +Install it and wait until it is ready **before** installing this chart, otherwise the install fails because +the certificates cannot be issued. + +### Add the chart repository + +```console +helm repo add cnpg https://cloudnative-pg.github.io/charts +helm repo update +``` + +### Install the plugin + +```console +helm upgrade --install plugin-barman-cloud \ + --namespace cnpg-system \ + cnpg/plugin-barman-cloud +``` + +See the [Values](#values) section below for the full list of configurable parameters. + +### Verify the installation + +```console +kubectl -n cnpg-system get deploy +kubectl -n cnpg-system rollout status deploy/plugin-barman-cloud +``` + +Uninstalling +------------ + +```console +helm uninstall plugin-barman-cloud --namespace cnpg-system +``` + +> **Warning** +> Uninstalling the chart does not remove the plugin's CRDs (for example `ObjectStore`). Deleting them removes +> every `ObjectStore` resource and the backup configuration it holds, so only delete the CRDs if you are sure +> no resource depends on them. ## Source Code @@ -27,7 +84,7 @@ Kubernetes: `>=1.29.0-0` | Key | Type | Default | Description | |-----|------|---------|-------------| | additionalArgs | list | `[]` | Additional arguments to be added to the operator's args list. | -| additionalEnv | list | `[]` | Array containing extra environment variables which can be templated. For example: - name: RELEASE_NAME value: "{{ .Release.Name }}" - name: MY_VAR value: "mySpecialKey" | +| additionalEnv | list | `[]` | Array containing extra environment variables which can be templated. | | affinity | object | `{}` | Affinity for the operator to be installed. | | certificate.createClientCertificate | bool | `true` | Specifies whether the client certificate should be created. | | certificate.createServerCertificate | bool | `true` | Specifies whether the server certificate should be created. | @@ -66,4 +123,23 @@ Kubernetes: `>=1.29.0-0` | sidecarImage.tag | string | `""` | Overrides the image tag whose default is the chart appVersion. | | tolerations | list | `[]` | Tolerations for the operator to be installed. | | topologySpreadConstraints | list | `[]` | Topology Spread Constraints for the operator to be installed. | -| updateStrategy | object | `{}` | Update strategy for the operator. ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy For example: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% WARNING: the RollingUpdate strategy is not supported by the operator yet so it can currently only use the Recreate strategy. | +| updateStrategy | object | `{}` | Update strategy for the operator. ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy | + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| itay-grudev | | | +| quantumenigmaa | | | +| quentinbisson | | | + +Contributing +------------ + +Please read the [code of conduct](https://github.com/cloudnative-pg/charts/blob/main/CODE-OF-CONDUCT.md) and the +[guidelines](https://github.com/cloudnative-pg/charts/blob/main/CONTRIBUTING.md) to contribute to the project. + +Copyright +--------- + +Helm charts for CloudNativePG are distributed under [Apache License 2.0](./LICENSE). diff --git a/charts/cloudnative-pg-plugin-barman-cloud/README.md.gotmpl b/charts/cloudnative-pg-plugin-barman-cloud/README.md.gotmpl new file mode 100644 index 0000000000..77c421d642 --- /dev/null +++ b/charts/cloudnative-pg-plugin-barman-cloud/README.md.gotmpl @@ -0,0 +1,108 @@ +{{ template "chart.header" . }} + + +{{ template "chart.deprecationWarning" . }} + + +{{ template "chart.badgesSection" . }} + + +{{ template "chart.description" . }} + + +{{ template "chart.homepageLine" . }} + + +About this chart +---------------- + +Helm chart to install the [CNPG-I Barman Cloud Plugin](https://github.com/cloudnative-pg/plugin-barman-cloud), +the [CloudNativePG](https://cloudnative-pg.io) plugin that adds backup and restore capabilities to PostgreSQL +`Cluster` resources via [Barman Cloud](https://pgbarman.org/). + +**NOTE**: this chart supports only the latest point release of the plugin. + +**IMPORTANT**: this chart requires a working installation of [cert-manager](https://cert-manager.io/). +Please refer to the cert-manager +[installation page](https://cert-manager.io/docs/installation/helm/) for more information. + +The chart deploys the plugin only. It does **not** install the CloudNativePG operator (use the companion +[`cloudnative-pg`](https://github.com/cloudnative-pg/charts/tree/main/charts/cloudnative-pg) chart for that), +and it does not create any `Cluster` resource. To provision a PostgreSQL cluster that uses this plugin, use +the [`cluster`](https://github.com/cloudnative-pg/charts/tree/main/charts/cluster) chart +(see the [Cluster chart README](https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/README.md) for details) +or apply your own `Cluster` manifest. + + +Getting Started +--------------- + +### Prerequisites + +This chart requires [cert-manager](https://cert-manager.io/) to issue the plugin's TLS certificates. +Install it and wait until it is ready **before** installing this chart, otherwise the install fails because +the certificates cannot be issued. + +### Add the chart repository + +```console +helm repo add cnpg https://cloudnative-pg.github.io/charts +helm repo update +``` + +### Install the plugin + +```console +helm upgrade --install plugin-barman-cloud \ + --namespace cnpg-system \ + cnpg/plugin-barman-cloud +``` + +See the [Values](#values) section below for the full list of configurable parameters. + +### Verify the installation + +```console +kubectl -n cnpg-system get deploy +kubectl -n cnpg-system rollout status deploy/plugin-barman-cloud +``` + + +Uninstalling +------------ + +```console +helm uninstall plugin-barman-cloud --namespace cnpg-system +``` + +> **Warning** +> Uninstalling the chart does not remove the plugin's CRDs (for example `ObjectStore`). Deleting them removes +> every `ObjectStore` resource and the backup configuration it holds, so only delete the CRDs if you are sure +> no resource depends on them. + +{{ template "chart.sourcesSection" . }} + + +{{ template "chart.requirementsSection" . }} + + +{{ template "chart.valuesSection" . }} + +{{ template "chart.maintainersSection" . }} + +Contributing +------------ + +Please read the [code of conduct](https://github.com/cloudnative-pg/charts/blob/main/CODE-OF-CONDUCT.md) and the +[guidelines](https://github.com/cloudnative-pg/charts/blob/main/CONTRIBUTING.md) to contribute to the project. + + +Copyright +--------- + +Helm charts for CloudNativePG are distributed under [Apache License 2.0](./LICENSE). + + +{{- if not .SkipVersionFooter }} +{{ template "helm-docs.versionFooter" . }} +{{- end }} diff --git a/charts/cloudnative-pg-plugin-barman-cloud/templates/crds/crds.yaml b/charts/cloudnative-pg-plugin-barman-cloud/templates/crds/crds.yaml index 7b316b6ca0..1cde99b057 100644 --- a/charts/cloudnative-pg-plugin-barman-cloud/templates/crds/crds.yaml +++ b/charts/cloudnative-pg-plugin-barman-cloud/templates/crds/crds.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.20.1 + controller-gen.kubebuilder.io/version: v0.21.0 helm.sh/resource-policy: keep name: objectstores.barmancloud.cnpg.io spec: @@ -145,10 +145,11 @@ spec: description: |- Compress a backup file (a tar file per tablespace) while streaming it to the object store. Available options are empty string (no - compression, default), `gzip`, `bzip2`, and `snappy`. + compression, default), `gzip`, `bzip2`, `lz4`, and `snappy`. enum: - bzip2 - gzip + - lz4 - snappy type: string encryption: @@ -176,6 +177,25 @@ spec: format: int32 minimum: 1 type: integer + restoreAdditionalCommandArgs: + description: |- + Additional arguments that can be appended to the 'barman-cloud-restore' + command-line invocation. These arguments provide flexibility to customize + the data restore process further, according to specific requirements or + configurations. + + Example: + In a scenario where specialized restore options are required, such as setting + a specific read timeout or defining custom behavior, users can use this field + to specify additional command arguments. + + Note: + It's essential to ensure that the provided arguments are valid and supported + by the 'barman-cloud-restore' command, to avoid potential errors or unintended + behavior during execution. + items: + type: string + type: array type: object destinationPath: description: |- diff --git a/charts/cloudnative-pg-plugin-barman-cloud/values.schema.json b/charts/cloudnative-pg-plugin-barman-cloud/values.schema.json index 112c01ae19..dd85a69a9b 100644 --- a/charts/cloudnative-pg-plugin-barman-cloud/values.schema.json +++ b/charts/cloudnative-pg-plugin-barman-cloud/values.schema.json @@ -7,85 +7,62 @@ "items": { "required": [] }, - "required": [], - "title": "additionalArgs" + "required": [] }, "additionalEnv": { "additionalProperties": true, - "description": "Array containing extra environment variables which can be templated.\nFor example:\n - name: RELEASE_NAME\n value: \"{{ .Release.Name }}\"\n - name: MY_VAR\n value: \"mySpecialKey\"", + "description": "Array containing extra environment variables which can be templated.", "items": { "required": [] }, - "required": [], - "title": "additionalEnv" + "required": [] }, "affinity": { "additionalProperties": true, "description": "Affinity for the operator to be installed.", - "required": [], - "title": "affinity" + "required": [] }, "certificate": { "properties": { "createClientCertificate": { "default": true, "description": "Specifies whether the client certificate should be created.", - "required": [], - "title": "createClientCertificate", "type": "boolean" }, "createServerCertificate": { "default": true, "description": "Specifies whether the server certificate should be created.", - "required": [], - "title": "createServerCertificate", "type": "boolean" }, "duration": { "default": "2160h", "description": "The duration of the certificates.", - "required": [], - "title": "duration", "type": "string" }, "issuerName": { "default": "selfsigned-issuer", "description": "The name of the issuer to use for the certificates.", - "required": [], - "title": "issuerName", "type": "string" }, "renewBefore": { "default": "360h", "description": "The renew before time for the certificates.", - "required": [], - "title": "renewBefore", "type": "string" } }, - "required": [ - "createClientCertificate", - "createServerCertificate", - "issuerName", - "duration", - "renewBefore" - ], - "title": "certificate", + "required": [], "type": "object" }, "commonAnnotations": { "additionalProperties": true, "description": "Annotations to be added to all other resources.", - "required": [], - "title": "commonAnnotations" + "required": [] }, "containerSecurityContext": { "description": "Container Security Context.", "properties": { "allowPrivilegeEscalation": { "default": false, - "required": [], - "title": "allowPrivilegeEscalation", "type": "boolean" }, "capabilities": { @@ -94,66 +71,41 @@ "items": { "anyOf": [ { - "required": [], "type": "string" } ], "required": [] }, - "required": [], - "title": "drop", "type": "array" } }, - "required": [ - "drop" - ], - "title": "capabilities", + "required": [], "type": "object" }, "readOnlyRootFilesystem": { "default": true, - "required": [], - "title": "readOnlyRootFilesystem", "type": "boolean" }, "runAsGroup": { "default": 10001, - "required": [], - "title": "runAsGroup", "type": "integer" }, "runAsUser": { "default": 10001, - "required": [], - "title": "runAsUser", "type": "integer" }, "seccompProfile": { "properties": { "type": { "default": "RuntimeDefault", - "required": [], - "title": "type", "type": "string" } }, - "required": [ - "type" - ], - "title": "seccompProfile", + "required": [], "type": "object" } }, - "required": [ - "allowPrivilegeEscalation", - "readOnlyRootFilesystem", - "runAsUser", - "runAsGroup", - "seccompProfile", - "capabilities" - ], - "title": "containerSecurityContext", + "required": [], "type": "object" }, "crds": { @@ -161,76 +113,50 @@ "create": { "default": true, "description": "Specifies whether the CRDs should be created when installing the chart.", - "required": [], - "title": "create", "type": "boolean" } }, - "required": [ - "create" - ], - "title": "crds", + "required": [], "type": "object" }, "dnsPolicy": { "default": "", - "required": [], - "title": "dnsPolicy", "type": "string" }, "fullnameOverride": { "default": "", - "required": [], - "title": "fullnameOverride", "type": "string" }, "global": { "description": "Global values are values that can be accessed from any chart or subchart by exactly the same name.", "required": [], - "title": "global", "type": "object" }, "hostNetwork": { "default": false, - "required": [], - "title": "hostNetwork", "type": "boolean" }, "image": { "properties": { "pullPolicy": { "default": "IfNotPresent", - "required": [], - "title": "pullPolicy", "type": "string" }, "registry": { "default": "ghcr.io", - "required": [], - "title": "registry", "type": "string" }, "repository": { "default": "cloudnative-pg/plugin-barman-cloud", - "required": [], - "title": "repository", "type": "string" }, "tag": { "default": "", "description": "Overrides the image tag whose default is the chart appVersion.", - "required": [], - "title": "tag", "type": "string" } }, - "required": [ - "registry", - "repository", - "pullPolicy", - "tag" - ], - "title": "image", + "required": [], "type": "object" }, "imagePullSecrets": { @@ -238,76 +164,55 @@ "items": { "required": [] }, - "required": [], - "title": "imagePullSecrets" + "required": [] }, "nameOverride": { "default": "", - "required": [], - "title": "nameOverride", "type": "string" }, "namespaceOverride": { "default": "", - "required": [], - "title": "namespaceOverride", "type": "string" }, "nodeSelector": { "additionalProperties": true, "description": "Nodeselector for the operator to be installed.", - "required": [], - "title": "nodeSelector" + "required": [] }, "podAnnotations": { "additionalProperties": true, "description": "Annotations to be added to the pod.", - "required": [], - "title": "podAnnotations" + "required": [] }, "podLabels": { "additionalProperties": true, "description": "Labels to be added to the pod.", - "required": [], - "title": "podLabels" + "required": [] }, "podSecurityContext": { "description": "Security Context for the whole pod.", "properties": { "runAsNonRoot": { "default": true, - "required": [], - "title": "runAsNonRoot", "type": "boolean" }, "seccompProfile": { "properties": { "type": { "default": "RuntimeDefault", - "required": [], - "title": "type", "type": "string" } }, - "required": [ - "type" - ], - "title": "seccompProfile", + "required": [], "type": "object" } }, - "required": [ - "runAsNonRoot", - "seccompProfile" - ], - "title": "podSecurityContext", + "required": [], "type": "object" }, "priorityClassName": { "default": "", "description": "Priority indicates the importance of a Pod relative to other Pods.", - "required": [], - "title": "priorityClassName", "type": "string" }, "rbac": { @@ -315,27 +220,19 @@ "create": { "default": true, "description": "Specifies whether Role and RoleBinding should be created.", - "required": [], - "title": "create", "type": "boolean" } }, - "required": [ - "create" - ], - "title": "rbac", + "required": [], "type": "object" }, "replicaCount": { "default": 1, - "required": [], - "title": "replicaCount", "type": "integer" }, "resources": { "additionalProperties": true, - "required": [], - "title": "resources" + "required": [] }, "service": { "properties": { @@ -348,37 +245,24 @@ ], "required": [] }, - "required": [], - "title": "ipFamilies", "type": "array" }, "ipFamilyPolicy": { "default": "", "description": "Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)", - "required": [], - "title": "ipFamilyPolicy", "type": "string" }, "name": { "default": "barman-cloud", "description": "DO NOT CHANGE THE SERVICE NAME as it is currently used to generate the certificate\nand can not be configured", - "required": [], - "title": "name", "type": "string" }, "port": { "default": 9090, - "required": [], - "title": "port", "type": "integer" } }, - "required": [ - "name", - "port", - "ipFamilyPolicy" - ], - "title": "service", + "required": [], "type": "object" }, "serviceAccount": { @@ -386,53 +270,34 @@ "create": { "default": true, "description": "Specifies whether the service account should be created.", - "required": [], - "title": "create", "type": "boolean" }, "name": { "default": "", "description": "The name of the service account to use.\nIf not set and create is true, a name is generated using the fullname template.", - "required": [], - "title": "name", "type": "string" } }, - "required": [ - "create", - "name" - ], - "title": "serviceAccount", + "required": [], "type": "object" }, "sidecarImage": { "properties": { "registry": { "default": "ghcr.io", - "required": [], - "title": "registry", "type": "string" }, "repository": { "default": "cloudnative-pg/plugin-barman-cloud-sidecar", - "required": [], - "title": "repository", "type": "string" }, "tag": { "default": "", "description": "Overrides the image tag whose default is the chart appVersion.", - "required": [], - "title": "tag", "type": "string" } }, - "required": [ - "registry", - "repository", - "tag" - ], - "title": "sidecarImage", + "required": [], "type": "object" }, "tolerations": { @@ -441,8 +306,7 @@ "items": { "required": [] }, - "required": [], - "title": "tolerations" + "required": [] }, "topologySpreadConstraints": { "additionalProperties": true, @@ -450,33 +314,14 @@ "items": { "required": [] }, - "required": [], - "title": "topologySpreadConstraints" + "required": [] }, "updateStrategy": { "additionalProperties": true, - "description": "Update strategy for the operator.\nref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy\nFor example:\n type: RollingUpdate\n rollingUpdate:\n maxSurge: 25%\n maxUnavailable: 25%\n\nWARNING: the RollingUpdate strategy is not supported by the operator yet so it can\ncurrently only use the Recreate strategy.", - "required": [], - "title": "updateStrategy" + "description": "Update strategy for the operator.\nref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy", + "required": [] } }, - "required": [ - "replicaCount", - "image", - "sidecarImage", - "nameOverride", - "fullnameOverride", - "namespaceOverride", - "hostNetwork", - "dnsPolicy", - "crds", - "serviceAccount", - "rbac", - "containerSecurityContext", - "podSecurityContext", - "priorityClassName", - "service", - "certificate" - ], + "required": [], "type": "object" -} \ No newline at end of file +} diff --git a/charts/cloudnative-pg-plugin-barman-cloud/values.yaml b/charts/cloudnative-pg-plugin-barman-cloud/values.yaml index ea37056316..f71c5a078f 100644 --- a/charts/cloudnative-pg-plugin-barman-cloud/values.yaml +++ b/charts/cloudnative-pg-plugin-barman-cloud/values.yaml @@ -51,6 +51,7 @@ dnsPolicy: "" # @schema # -- Update strategy for the operator. # ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy +updateStrategy: {} # For example: # type: RollingUpdate # rollingUpdate: @@ -59,7 +60,6 @@ dnsPolicy: "" # # WARNING: the RollingUpdate strategy is not supported by the operator yet so it can # currently only use the Recreate strategy. -updateStrategy: {} crds: # -- Specifies whether the CRDs should be created when installing the chart. @@ -75,12 +75,12 @@ additionalArgs: [] # additionalProperties: true # @schema # -- Array containing extra environment variables which can be templated. +additionalEnv: [] # For example: # - name: RELEASE_NAME # value: "{{ .Release.Name }}" # - name: MY_VAR # value: "mySpecialKey" -additionalEnv: [] serviceAccount: # -- Specifies whether the service account should be created.