From cbc98540aae5b0cb97b6d567d7c54b400ac3cfe9 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Sun, 19 May 2024 14:38:36 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- incubator/docuseal/1.0.0/.helmignore | 32 + incubator/docuseal/1.0.0/CHANGELOG.md | 3 + incubator/docuseal/1.0.0/Chart.yaml | 37 + incubator/docuseal/1.0.0/README.md | 56 + incubator/docuseal/1.0.0/app-changelog.md | 9 + incubator/docuseal/1.0.0/app-readme.md | 8 + .../docuseal/1.0.0/charts/common-23.0.0.tgz | Bin 0 -> 96822 bytes incubator/docuseal/1.0.0/icon-small.webp | Bin 0 -> 996 bytes incubator/docuseal/1.0.0/icon.webp | Bin 0 -> 7566 bytes incubator/docuseal/1.0.0/ix_values.yaml | 53 + incubator/docuseal/1.0.0/questions.yaml | 3155 +++++++++++++++++ incubator/docuseal/1.0.0/templates/NOTES.txt | 1 + .../docuseal/1.0.0/templates/common.yaml | 1 + incubator/docuseal/1.0.0/values.yaml | 0 incubator/docuseal/item.yaml | 4 + system/openebs/6.0.1/.helmignore | 32 + system/openebs/6.0.1/CHANGELOG.md | 3 + system/openebs/6.0.1/Chart.yaml | 59 + system/openebs/6.0.1/README.md | 56 + system/openebs/6.0.1/app-changelog.md | 93 + system/openebs/6.0.1/app-readme.md | 8 + system/openebs/6.0.1/charts/common-23.0.0.tgz | Bin 0 -> 96822 bytes .../charts/localpv-provisioner-4.0.0.tgz | Bin 0 -> 7182 bytes .../6.0.1/charts/lvm-localpv-1.5.1.tgz | Bin 0 -> 17454 bytes .../6.0.1/charts/zfs-localpv-2.5.1.tgz | Bin 0 -> 19365 bytes .../6.0.1/crds/csi-volume-snapshot-class.yaml | 150 + .../crds/csi-volume-snapshot-content.yaml | 488 +++ .../6.0.1/crds/csi-volume-snapshot.yaml | 390 ++ system/openebs/6.0.1/crds/zfsbackup.yaml | 117 + system/openebs/6.0.1/crds/zfsnode.yaml | 97 + system/openebs/6.0.1/crds/zfsrestore.yaml | 239 ++ system/openebs/6.0.1/crds/zfssnapshot.yaml | 384 ++ system/openebs/6.0.1/crds/zfsvolume.yaml | 450 +++ system/openebs/6.0.1/icon-small.webp | Bin 0 -> 698 bytes system/openebs/6.0.1/icon.webp | Bin 0 -> 5462 bytes system/openebs/6.0.1/ix_values.yaml | 198 ++ system/openebs/6.0.1/questions.yaml | 359 ++ system/openebs/6.0.1/templates/NOTES.txt | 1 + system/openebs/6.0.1/templates/common.yaml | 5 + system/openebs/6.0.1/values.yaml | 0 40 files changed, 6488 insertions(+) create mode 100644 incubator/docuseal/1.0.0/.helmignore create mode 100644 incubator/docuseal/1.0.0/CHANGELOG.md create mode 100644 incubator/docuseal/1.0.0/Chart.yaml create mode 100644 incubator/docuseal/1.0.0/README.md create mode 100644 incubator/docuseal/1.0.0/app-changelog.md create mode 100644 incubator/docuseal/1.0.0/app-readme.md create mode 100644 incubator/docuseal/1.0.0/charts/common-23.0.0.tgz create mode 100644 incubator/docuseal/1.0.0/icon-small.webp create mode 100644 incubator/docuseal/1.0.0/icon.webp create mode 100644 incubator/docuseal/1.0.0/ix_values.yaml create mode 100755 incubator/docuseal/1.0.0/questions.yaml create mode 100644 incubator/docuseal/1.0.0/templates/NOTES.txt create mode 100644 incubator/docuseal/1.0.0/templates/common.yaml create mode 100644 incubator/docuseal/1.0.0/values.yaml create mode 100644 incubator/docuseal/item.yaml create mode 100644 system/openebs/6.0.1/.helmignore create mode 100644 system/openebs/6.0.1/CHANGELOG.md create mode 100644 system/openebs/6.0.1/Chart.yaml create mode 100644 system/openebs/6.0.1/README.md create mode 100644 system/openebs/6.0.1/app-changelog.md create mode 100644 system/openebs/6.0.1/app-readme.md create mode 100644 system/openebs/6.0.1/charts/common-23.0.0.tgz create mode 100644 system/openebs/6.0.1/charts/localpv-provisioner-4.0.0.tgz create mode 100644 system/openebs/6.0.1/charts/lvm-localpv-1.5.1.tgz create mode 100644 system/openebs/6.0.1/charts/zfs-localpv-2.5.1.tgz create mode 100644 system/openebs/6.0.1/crds/csi-volume-snapshot-class.yaml create mode 100644 system/openebs/6.0.1/crds/csi-volume-snapshot-content.yaml create mode 100644 system/openebs/6.0.1/crds/csi-volume-snapshot.yaml create mode 100644 system/openebs/6.0.1/crds/zfsbackup.yaml create mode 100644 system/openebs/6.0.1/crds/zfsnode.yaml create mode 100644 system/openebs/6.0.1/crds/zfsrestore.yaml create mode 100644 system/openebs/6.0.1/crds/zfssnapshot.yaml create mode 100644 system/openebs/6.0.1/crds/zfsvolume.yaml create mode 100644 system/openebs/6.0.1/icon-small.webp create mode 100644 system/openebs/6.0.1/icon.webp create mode 100644 system/openebs/6.0.1/ix_values.yaml create mode 100755 system/openebs/6.0.1/questions.yaml create mode 100644 system/openebs/6.0.1/templates/NOTES.txt create mode 100644 system/openebs/6.0.1/templates/common.yaml create mode 100644 system/openebs/6.0.1/values.yaml diff --git a/incubator/docuseal/1.0.0/.helmignore b/incubator/docuseal/1.0.0/.helmignore new file mode 100644 index 00000000000..feb7464da6f --- /dev/null +++ b/incubator/docuseal/1.0.0/.helmignore @@ -0,0 +1,32 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png +icon.webp +icon-small.webp diff --git a/incubator/docuseal/1.0.0/CHANGELOG.md b/incubator/docuseal/1.0.0/CHANGELOG.md new file mode 100644 index 00000000000..941abb8a218 --- /dev/null +++ b/incubator/docuseal/1.0.0/CHANGELOG.md @@ -0,0 +1,3 @@ +*for the complete changelog, please refer to the website* + +**Important:** \ No newline at end of file diff --git a/incubator/docuseal/1.0.0/Chart.yaml b/incubator/docuseal/1.0.0/Chart.yaml new file mode 100644 index 00000000000..438f7c96ecb --- /dev/null +++ b/incubator/docuseal/1.0.0/Chart.yaml @@ -0,0 +1,37 @@ +annotations: + max_scale_version: 24.04.1 + min_scale_version: 24.04.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: business + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.11" + truecharts.org/train: incubator +apiVersion: v2 +appVersion: 1.5.6 +dependencies: + - name: common + version: 23.0.0 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] +deprecated: false +description: Open source DocuSign alternative. Create, fill, and sign digital documents. +home: https://truecharts.org/charts/incubator/docuseal +icon: https://truecharts.org/img/hotlink-ok/chart-icons/docuseal.webp +keywords: + - docuseal + - business +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: docuseal +sources: + - https://github.com/docusealco/docuseal + - https://github.com/truecharts/charts/tree/master/charts/incubator/docuseal + - https://hub.docker.com/r/docuseal/docuseal +type: application +version: 1.0.0 diff --git a/incubator/docuseal/1.0.0/README.md b/incubator/docuseal/1.0.0/README.md new file mode 100644 index 00000000000..b5feb860aeb --- /dev/null +++ b/incubator/docuseal/1.0.0/README.md @@ -0,0 +1,56 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as TrueNAS SCALE Apps. +Both solutions are fully supported, but we heavily advice the use of normal Helm Charts where possible + +For more information about this Chart, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/docuseal) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Installation + +### Helm-Chart installation + +To install TrueCharts Helm charts using Helm, you can use our OCI Repository. + +`helm install mychart oci://tccr.io/truecharts/CHARTNAME` + +For more information on how to install TrueCharts Helm charts, checkout the instructions on the website: https://truecharts.org/helm/ + + +### TrueNAS SCALE Apps + +For more information on how to use TrueCharts as TrueNAS SCALE Apps, please checkout the [quick-start guides for TrueNAS SCALE](https://truecharts.org/scale/guides/scale-intro). + +## Configuration Options + +To view the chart specific options, please view Values.yaml included in the chart. + +All our Charts use a shared "common" library chart that contains most of the templating and options. +For the complete overview of all available options, please checkout the documentation for them on the website: https://truecharts.org/common/ + +## Chart Specific Guides and information + +All our charts have dedicated documentation pages. +The documentation for this chart can be found here: +https://truecharts.org/charts/incubator/docuseal + +## Support + + +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/general/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/incubator/docuseal/1.0.0/app-changelog.md b/incubator/docuseal/1.0.0/app-changelog.md new file mode 100644 index 00000000000..c10febd5f09 --- /dev/null +++ b/incubator/docuseal/1.0.0/app-changelog.md @@ -0,0 +1,9 @@ + + +## [docuseal-1.0.0]docuseal-1.0.0 (2024-05-19) + +### Feat + + + +- Add Docuseal ([#21453](https://github.com/truecharts/charts/issues/21453)) \ No newline at end of file diff --git a/incubator/docuseal/1.0.0/app-readme.md b/incubator/docuseal/1.0.0/app-readme.md new file mode 100644 index 00000000000..c50cf4a83f3 --- /dev/null +++ b/incubator/docuseal/1.0.0/app-readme.md @@ -0,0 +1,8 @@ +Open source DocuSign alternative. Create, fill, and sign digital documents. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/incubator/docuseal](https://truecharts.org/charts/incubator/docuseal) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/incubator/docuseal/1.0.0/charts/common-23.0.0.tgz b/incubator/docuseal/1.0.0/charts/common-23.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0622a806d94b2598dfdd18d54aff29c4facf2e3e GIT binary patch literal 96822 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 literal 0 HcmV?d00001 diff --git a/incubator/docuseal/1.0.0/icon-small.webp b/incubator/docuseal/1.0.0/icon-small.webp new file mode 100644 index 0000000000000000000000000000000000000000..6d8f281fcfebfdc926dc4cd006c3d0fc2bc17ab4 GIT binary patch literal 996 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 literal 0 HcmV?d00001 diff --git a/incubator/docuseal/1.0.0/ix_values.yaml b/incubator/docuseal/1.0.0/ix_values.yaml new file mode 100644 index 00000000000..6ad837540ae --- /dev/null +++ b/incubator/docuseal/1.0.0/ix_values.yaml @@ -0,0 +1,53 @@ +image: + repository: docuseal/docuseal + tag: 1.5.6@sha256:0523b93bc06e08e33508556aca701378a09be3b4df828b99fb7231a6f20890d5 + pullPolicy: IfNotPresent +securityContext: + container: + readOnlyRootFilesystem: false + runAsNonRoot: false + runAsUser: 0 + runAsGroup: 0 +service: + main: + ports: + main: + port: 10310 + protocol: http + targetPort: 3000 + +workload: + main: + podSpec: + containers: + main: + env: + DATABASE_URL: + secretKeyRef: + name: cnpg-main-urls + key: std + probes: + liveness: + type: http + path: / + readiness: + type: http + path: / + startup: + type: http + path: / + +persistence: + data: + enabled: true + mountPath: /data + +portal: + open: + enabled: true + +cnpg: + main: + enabled: true + user: docuseal + database: docuseal diff --git a/incubator/docuseal/1.0.0/questions.yaml b/incubator/docuseal/1.0.0/questions.yaml new file mode 100755 index 00000000000..7355746c5e0 --- /dev/null +++ b/incubator/docuseal/1.0.0/questions.yaml @@ -0,0 +1,3155 @@ +groups: + - name: Image + description: | + Configured the images to be used for the Chart. + It's wise to use "digest pinned" tags and to avoid using "latest". + + Checkout the following documentation for more information: + - https://truecharts.org/common/#images + + + - name: General + description: | + For TrueNAS SCALE We've grouped a number of settings here, that all effact how apps run in general. + + Checkout the following documentation for more information: + - https://truecharts.org/common/global/ + - https://truecharts.org/common/#tz + - https://truecharts.org/common/podoptions/ + - Image Pull Secrets + + + - name: Workload + description: | + These settings configure how the actual Pods and containers are running. + Generally, on SCALE, we only expose a limited subset of these settings for the primary workload and container. + + Checkout the following documentation for more information: + - https://truecharts.org/common/workload/ + - https://truecharts.org/common/container/ + + + - name: App Configuration + description: | + Every application has different values that may be required to run or have multiple options that the user may choose to enable or disable to change the behavior of the application. + Most options should have a Tooltip (Circled Question Mark) to further describe said option. + + To find more information, lookup your chart-specific documentation in the Charts List: https://truecharts.org/charts/description-list/ + + - name: Services + description: | + Service and Networking options for any applications are contained here. + Some applications may have complicated networking setups with multiple options or some may have no options here at all. + + Options here include the service and port configurations for the application, and more may be enabled or changed under the Advanced Settings and Show Expert Config boxes. + + Checkout the following documentation for more information: + - https://truecharts.org/common/service/ + + - name: Networking + description: | + Contains advanced networking options that are not actively supported by the TrueCharts team. + Currently only contains scaleExternalInterfaces. + + Checkout the following documentation for more information: + - https://truecharts.org/common/scaleexternalinterface/ + + - name: Persistence + description: | + Many applications will have certain options for storage to be configurable by the user, the main two being PVC and hostpath but may include other types. + This storage is called Persistence since it is not deleted upon restart or upgrade of an application. + + Checkout the following documentation for more information: + - https://truecharts.org/common/persistence/ + - https://truecharts.org/scale/guides/nfs-share/ + - https://truecharts.org/general/faq/#why-pvc-is-recommended-over-hostpath + + + - name: Ingress + description: | + Ingress (more commonly known as Reverse Proxy) settings can be configured here. This is how Kubernetes connects your Applications in containers to FQDNs (fully qualified domain names). + If you choose to enable this you must have a "Ingress Provider" aka "Reverse Proxy" installed (We highly advice Traefik: https://truecharts.org/charts/premium/traefik/) + It also requiresa DNS service to actually resolve the DNS name of the FQDN specified. + + Checkout the following documentation for more information: + - https://truecharts.org/common/ingress/ + + + - name: SecurityContext + description: | + The security settings for each application and/or permissions that each application may have for the files/directories created. + Each application will come with predefined permissions but users may want to change certain setting depending on their usage or capabilities. + + Unless necessary users are advised to keep this section mostly to defaults. + + Checkout the following documentation for more information: + - https://truecharts.org/common/securitycontext/ + + + - name: Resources + description: | + Resources limits that have been defined by each application are in this section. + Most will have a specific default that some users may want to change based on their specific hardware or needs. + + This also contains the options to mount GPUs or, more precisely, "request" GPU's to be mounted. + + Checkout the following documentation for more information: + - https://truecharts.org/common/resources/ + + - name: Devices + description: | + These are special "mountpoints" that can be used to mount miscelanious USB and PCI devices using special hostPath mounts. + For clearity we've decided to seperate this from persistence on SCALE. + + Checkout the following documentation for more information: + - https://truecharts.org/common/persistence/device/ + - https://truecharts.org/scale/guides/pci-passthrough/ + + - name: Middlewares + description: Traefik Middlewares + + - name: StorageClass + description: | + StorageClasses define where to storage Storage. + + Checkout the following documentation for more information: + + - name: Metrics + description: | + Contains options to configure Prometheus metrics for the application. + + Checkout the following documentation for more information: + - https://truecharts.org/common/metrics/ + + + - name: Addons + description: | + Addons that are supplied by the TrueCharts team to add additional capabilities for users to use on top of the application’s defaults. + Things included here are VPN addons, Codeserver for editing files inside the application’s container, Netshoot for network troubelshooting, etc. + + Generally not required for use but may be necessary or usefull at times for specific applications. + + Checkout the following documentation for more information: + - https://truecharts.org/common/addons/ + - https://truecharts.org/scale/guides/vpn-setup/ + + + - name: Experimental + description: | + Experimental Configuration Options + Often these are not fully flushed-out, could randomly break or might not work at-all. + + - name: Postgresql + description: | + For Postgresql we use "CloudNative-PG" as a backend, which has to be installed first. + + Checkout the following documentation for more information: + - https://truecharts.org/common/cnpg/ + - https://truecharts.org/scale/guides/sql-export/ + - https://truecharts.org/scale/guides/recover-cnpg/ + + - name: Dependencies + description: | + contains dependency setting for which we, currently, do not have seperate catagories (yet) + + + - name: Documentation + description: | + We added this section to make everyone aware that OpenSource isn't always easy. + It doesn't keep existing without signficant ongoing support, so please consider supporting TrueCharts and other OpenSource projects. + + Before installing, be sure you've followed the https://truecharts.org/scale/guides/getting-started/ + We would also advice going over our https://truecharts.org/scale/guides/scale-intro/ + and many of the other documentation pages... + +portals: + open: + protocols: + - "$kubernetes-resource_configmap_tcportal-open_protocol" + host: + - "$kubernetes-resource_configmap_tcportal-open_host" + ports: + - "$kubernetes-resource_configmap_tcportal-open_port" + +questions: + - variable: global + group: General + label: "Global Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: stopAll + label: Stop All + description: "Stops All Running pods and hibernates cnpg" + schema: + type: boolean + default: false + + - variable: credentialsList + group: General + label: "Credentials (Experimental)" + schema: + type: list + default: [] + items: + - variable: credentialsEntry + label: "Enter Credentials" + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: "Name" + schema: + type: string + required: true + default: "" + - variable: type + label: Type + description: "Type of Credential" + schema: + type: string + default: "s3" + enum: + - value: s3 + description: s3 Storage + - variable: url + label: "url" + schema: + type: string + default: "" + required: true + - variable: path + label: "path" + description: "Path Prefix not needed for most cases" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + show_if: [["type", "=", "s3"]] + type: string + default: "" + required: true + - variable: accessKey + label: "accessKey" + schema: + show_if: [["type", "=", "s3"]] + type: string + default: "" + required: true + - variable: secretKey + label: "secretKey" + schema: + show_if: [["type", "=", "s3"]] + type: string + default: "" + required: true + - variable: encrKey + label: "encrKey" + description: "The Encryption key is needed for tools like volsync if not needed it will be ignored" + schema: + show_if: [["type", "=", "s3"]] + type: string + default: "MYSECRETPASSPHRASE" + required: true + + - variable: workload + group: "Workload" + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: type + label: Type (Advanced) + schema: + type: string + default: Deployment + enum: + - value: Deployment + description: Deployment + - value: DaemonSet + description: DaemonSet + + - variable: replicas + label: Replicas (Advanced) + description: Set the number of Replicas + schema: + type: int + show_if: [["type", "!=", "DaemonSet"]] + default: 1 + + - variable: podSpec + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: containers + label: Containers + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: Main Container + schema: + additional_attrs: true + type: dict + attrs: + + - variable: envList + label: Extra Environment Variables + description: "Please be aware that some variables are set in the background, adding duplicates here might cause issues or prevent the app from starting..." + schema: + type: list + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + - variable: value + label: Value + schema: + type: string + - variable: extraArgs + label: Extra Args + schema: + type: list + default: [] + items: + - variable: arg + label: Arg + schema: + type: string + + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: command + label: Command + schema: + type: list + default: [] + items: + - variable: param + label: Param + schema: + type: string + + - variable: TZ + label: Timezone + group: "General" + schema: + type: string + default: "Etc/UTC" + $ref: + - "definitions/timezone" + + - variable: podOptions + group: "General" + label: "Global Pod Options (Advanced)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: expertPodOpts + label: "Expert - Pod Options" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostNetwork + label: "Host Networking" + schema: + type: boolean + default: false + - variable: dnsConfig + label: "DNS Configuration" + schema: + type: dict + additional_attrs: true + attrs: + - variable: options + label: "Options" + schema: + type: list + default: [{"name": "ndots", "value": "1"}] + items: + - variable: optionsEntry + label: "Option Entry" + schema: + type: dict + additional_attrs: true + attrs: + - variable: name + label: "Name" + schema: + type: string + required: true + - variable: value + label: "Value" + schema: + type: string + - variable: nameservers + label: "Nameservers" + schema: + type: list + default: [] + items: + - variable: nsEntry + label: "Nameserver Entry" + schema: + type: string + required: true + - variable: searches + label: "Searches" + schema: + type: list + default: [] + items: + - variable: searchEntry + label: "Search Entry" + schema: + type: string + required: true + + - variable: imagePullSecretList + group: "General" + label: "Image Pull Secrets" + schema: + type: list + default: [] + items: + - variable: pullsecretentry + label: "Pull Secret" + schema: + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: true + - variable: data + label: Data + schema: + type: dict + additional_attrs: true + attrs: + - variable: registry + label: "Registry" + schema: + type: string + required: true + default: "https://index.docker.io/v1/" + - variable: username + label: "Username" + schema: + type: string + required: true + default: "" + - variable: password + label: "Password" + schema: + type: string + required: true + private: true + default: "" + - variable: email + label: "Email" + schema: + type: string + required: true + default: "" + + - variable: service + group: Services + label: Configure Service(s) + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Service" + description: "The Primary service on which the healthcheck runs, often the webUI" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: enabled + label: Enable the Service + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "Service's Port(s) Configuration" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Service Port Configuration" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: "Port" + description: "This port exposes the container port on the service" + schema: + type: int + default: 3000 + required: true + - variable: scaleExternalInterface + description: 'Add External Interfaces (Experimental, might change or be removed without further notice)' + label: Add external Interfaces (Experimental) + group: Networking + schema: + type: list + items: + - variable: interfaceConfiguration + description: Interface Configuration + label: Interface Configuration + schema: + additional_attrs: true + type: dict + $ref: + - "normalize/interfaceConfiguration" + attrs: + - variable: hostInterface + description: Please Specify Host Interface + label: Host Interface + schema: + type: string + required: true + $ref: + - "definitions/interface" + - variable: ipam + description: Define how IP Address will be managed + label: IP Address Management + schema: + additional_attrs: true + type: dict + required: true + attrs: + - variable: type + description: Specify type for IPAM + label: IPAM Type + schema: + type: string + required: true + enum: + - value: dhcp + description: Use DHCP + - value: static + description: Use Static IP + - variable: staticIPConfigurations + label: Static IP Addresses + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticIP + label: Static IP + schema: + type: ipaddr + cidr: true + - variable: staticRoutes + label: Static Routes + schema: + type: list + show_if: [["type", "=", "static"]] + items: + - variable: staticRouteConfiguration + label: Static Route Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: destination + label: Destination + schema: + type: ipaddr + cidr: true + required: true + - variable: gateway + label: Gateway + schema: + type: ipaddr + cidr: false + required: true + + + - variable: serviceList + label: Add Manual Custom Services + group: Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Persistence + schema: + additional_attrs: true + type: dict + attrs: + + - variable: data + label: App Data Storage + description: Stores the Application Data. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: volsync + label: 'VolSync (Experimental)' + description: Backup, Restore and Synchronise PVC storage + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: VolSyncEntry + label: VolSync Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: "Name of backup configuration" + schema: + type: string + default: "" + required: true + - variable: type + label: Type VolSync/Backup + description: Sets the VolSync Type + schema: + type: string + default: "restic" + enum: + - value: restic + description: Restic + - variable: credentials + label: Credentials + description: "Name of credentials in the credentials section" + schema: + type: string + default: "" + required: true + - variable: dest + label: VolSync Destination (Restore) + description: VolSYnc Destination is the location where data is the reciever and configures recovery of backups + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: true + - variable: src + label: VolSync Source (Backup) + description: VolSYnc Source is the location where data is the sender and creates backups to storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: true + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - variable: persistenceList + label: Additional App Storage + group: Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: volsync + label: 'VolSync (Experimental)' + description: Backup, Restore and Synchronise PVC storage + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: VolSyncEntry + label: VolSync Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: "Name of backup configuration" + schema: + type: string + default: "" + required: true + - variable: type + label: Type VolSync/Backup + description: Sets the VolSync Type + schema: + type: string + default: "restic" + enum: + - value: restic + description: Restic + - variable: credentials + label: Credentials + description: "Name of credentials in the credentials section" + schema: + type: string + default: "" + required: true + - variable: dest + label: VolSync Destination (Restore) + description: VolSYnc Destination is the location where data is the reciever and configures recovery of backups + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: true + - variable: src + label: VolSync Source (Backup) + description: VolSYnc Source is the location where data is the sender and creates backups to storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable + schema: + type: boolean + default: true + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + + - variable: main + label: "Main Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + + - variable: securityContext + group: SecurityContext + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + + - variable: runAsUser + label: "runAsUser" + description: "The UserID of the user running the application" + schema: + type: int + default: 0 + - variable: runAsGroup + label: "runAsGroup" + description: "The groupID of the user running the application" + schema: + type: int + default: 0 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + + - variable: fsGroup + label: "fsGroup" + description: "The group that should own ALL storage." + schema: + type: int + default: 568 + - variable: resources + group: Resources + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: 'gpu.intel.com/i915' + label: Add Intel i915 GPUs + schema: + type: int + default: 0 + - variable: 'nvidia.com/gpu' + label: Add NVIDIA GPUs (Experimental) + schema: + type: int + default: 0 + - variable: 'amd.com/gpu' + label: Add AMD GPUs + schema: + type: int + default: 0 + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + +# - variable: horizontalPodAutoscaler +# group: Experimental +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Experimental + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true + diff --git a/incubator/docuseal/1.0.0/templates/NOTES.txt b/incubator/docuseal/1.0.0/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/incubator/docuseal/1.0.0/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/incubator/docuseal/1.0.0/templates/common.yaml b/incubator/docuseal/1.0.0/templates/common.yaml new file mode 100644 index 00000000000..b51394e00a4 --- /dev/null +++ b/incubator/docuseal/1.0.0/templates/common.yaml @@ -0,0 +1 @@ +{{ include "tc.v1.common.loader.all" . }} diff --git a/incubator/docuseal/1.0.0/values.yaml b/incubator/docuseal/1.0.0/values.yaml new file mode 100644 index 00000000000..e69de29bb2d diff --git a/incubator/docuseal/item.yaml b/incubator/docuseal/item.yaml new file mode 100644 index 00000000000..52d1f8ee6ff --- /dev/null +++ b/incubator/docuseal/item.yaml @@ -0,0 +1,4 @@ +icon_url: https://truecharts.org/img/hotlink-ok/chart-icons/docuseal.webp +categories: + - business +screenshots: [] diff --git a/system/openebs/6.0.1/.helmignore b/system/openebs/6.0.1/.helmignore new file mode 100644 index 00000000000..feb7464da6f --- /dev/null +++ b/system/openebs/6.0.1/.helmignore @@ -0,0 +1,32 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ +# OWNERS file for Kubernetes +OWNERS +# helm-docs templates +*.gotmpl +# docs folder +/docs +# icon +icon.png +icon.webp +icon-small.webp diff --git a/system/openebs/6.0.1/CHANGELOG.md b/system/openebs/6.0.1/CHANGELOG.md new file mode 100644 index 00000000000..941abb8a218 --- /dev/null +++ b/system/openebs/6.0.1/CHANGELOG.md @@ -0,0 +1,3 @@ +*for the complete changelog, please refer to the website* + +**Important:** \ No newline at end of file diff --git a/system/openebs/6.0.1/Chart.yaml b/system/openebs/6.0.1/Chart.yaml new file mode 100644 index 00000000000..ff6e0bbc65b --- /dev/null +++ b/system/openebs/6.0.1/Chart.yaml @@ -0,0 +1,59 @@ +annotations: + max_scale_version: 24.04.1 + min_scale_version: 24.04.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: CSI + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.11" + truecharts.org/train: system +apiVersion: v2 +appVersion: latest +dependencies: + - name: common + version: 23.0.0 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: localpv-provisioner + version: 4.0.0 + repository: https://openebs.github.io/dynamic-localpv-provisioner + condition: localpv-provisioner.enabled + alias: "" + tags: [] + import-values: [] + - name: zfs-localpv + version: 2.5.1 + repository: https://openebs.github.io/zfs-localpv + condition: zfs-localpv.enabled + alias: "" + tags: [] + import-values: [] + - name: lvm-localpv + version: 1.5.1 + repository: https://openebs.github.io/lvm-localpv + condition: lvm-localpv.enabled + alias: "" + tags: [] + import-values: [] +deprecated: false +description: OpenEBS is a umbrella chart for multiple container storage provisioners +home: https://truecharts.org/charts/system/openebs +icon: https://truecharts.org/img/hotlink-ok/chart-icons/openebs.webp +keywords: + - openebs + - backup +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: openebs +sources: + - https://github.com/cert-manager + - https://cert-manager.io/ + - https://github.com/truecharts/charts/tree/master/charts/system/openebs + - https://github.com/truecharts/containers/tree/master/apps/scratch +type: application +version: 6.0.1 diff --git a/system/openebs/6.0.1/README.md b/system/openebs/6.0.1/README.md new file mode 100644 index 00000000000..2dede987b95 --- /dev/null +++ b/system/openebs/6.0.1/README.md @@ -0,0 +1,56 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as TrueNAS SCALE Apps. +Both solutions are fully supported, but we heavily advice the use of normal Helm Charts where possible + +For more information about this Chart, please check the docs on the TrueCharts [website](https://truecharts.org/charts/system/openebs) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Installation + +### Helm-Chart installation + +To install TrueCharts Helm charts using Helm, you can use our OCI Repository. + +`helm install mychart oci://tccr.io/truecharts/CHARTNAME` + +For more information on how to install TrueCharts Helm charts, checkout the instructions on the website: https://truecharts.org/helm/ + + +### TrueNAS SCALE Apps + +For more information on how to use TrueCharts as TrueNAS SCALE Apps, please checkout the [quick-start guides for TrueNAS SCALE](https://truecharts.org/scale/guides/scale-intro). + +## Configuration Options + +To view the chart specific options, please view Values.yaml included in the chart. + +All our Charts use a shared "common" library chart that contains most of the templating and options. +For the complete overview of all available options, please checkout the documentation for them on the website: https://truecharts.org/common/ + +## Chart Specific Guides and information + +All our charts have dedicated documentation pages. +The documentation for this chart can be found here: +https://truecharts.org/charts/system/openebs + +## Support + + +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/general/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/system/openebs/6.0.1/app-changelog.md b/system/openebs/6.0.1/app-changelog.md new file mode 100644 index 00000000000..715dc1ab624 --- /dev/null +++ b/system/openebs/6.0.1/app-changelog.md @@ -0,0 +1,93 @@ + + +## [openebs-6.0.1](https://github.com/truecharts/charts/compare/openebs-3.6.0...openebs-6.0.1) (2024-05-19) + +### Chore + + + +- bump charts to ensure new icons are released + +- bump common + +- ensure release is pushed + +- bump common to release improved checks on volsync and cnpg ([#21454](https://github.com/truecharts/charts/issues/21454)) + +- bump everything to release new doc pages + +- update groups html ([#21121](https://github.com/truecharts/charts/issues/21121)) + +- bump charts to release new docs to fix broken links + +- bump everything to regenerate readme's and site index + +- update container image common to v20.3.7[@8cf9fc9](https://github.com/8cf9fc9) by renovate ([#20819](https://github.com/truecharts/charts/issues/20819)) + +- update container image common to v20.3.5[@aedd88a](https://github.com/aedd88a) by renovate ([#20535](https://github.com/truecharts/charts/issues/20535)) + +- update helm general minor by renovate ([#20924](https://github.com/truecharts/charts/issues/20924)) + +- update ignored updates to v20.3.9[@370bb36](https://github.com/370bb36) by renovate ([#20917](https://github.com/truecharts/charts/issues/20917)) + +- update container image common to v20.2.0[@91ade87](https://github.com/91ade87) by renovate ([#19361](https://github.com/truecharts/charts/issues/19361)) + +- update ignored updates to v20.3.11[@dae6129](https://github.com/dae6129) by renovate ([#21059](https://github.com/truecharts/charts/issues/21059)) + +- update container image common to v20.2.2[@f7d0b92](https://github.com/f7d0b92) by renovate ([#19432](https://github.com/truecharts/charts/issues/19432)) + +- update helm general minor by renovate ([#20849](https://github.com/truecharts/charts/issues/20849)) + +- update container image common to v20.3.6[@27edfed](https://github.com/27edfed) by renovate ([#20599](https://github.com/truecharts/charts/issues/20599)) + +- update ignored updates to v20.3.10[@c2f262c](https://github.com/c2f262c) by renovate ([#21034](https://github.com/truecharts/charts/issues/21034)) + +- update container image common to v20.3.4[@d7e1b23](https://github.com/d7e1b23) by renovate ([#20527](https://github.com/truecharts/charts/issues/20527)) + +- update container image common to v20.3.3[@3876ba5](https://github.com/3876ba5) by renovate ([#20478](https://github.com/truecharts/charts/issues/20478)) + +- update container image common to v20.3.2[@0722ebb](https://github.com/0722ebb) by renovate ([#20334](https://github.com/truecharts/charts/issues/20334)) + +- update container image common to v20.2.10[@6f99c97](https://github.com/6f99c97) by renovate ([#19876](https://github.com/truecharts/charts/issues/19876)) + +- update container image common to v20.2.9[@10fd6c5](https://github.com/10fd6c5) by renovate ([#19817](https://github.com/truecharts/charts/issues/19817)) + +- update ignored by renovate (patch) ([#21171](https://github.com/truecharts/charts/issues/21171)) + +- update container image common to v20.2.4[@f245f5c](https://github.com/f245f5c) by renovate ([#19731](https://github.com/truecharts/charts/issues/19731)) + +- update container image common to v20.2.3[@06e462e](https://github.com/06e462e) by renovate ([#19673](https://github.com/truecharts/charts/issues/19673)) + +- push (temporary) hotfix for questions blocking update + +- revert and ignore for now + +### Chore + + + +- rework SCALE catagories/groups to match helm and remove deprecated charts ([#21111](https://github.com/truecharts/charts/issues/21111)) + +### Feat + + + +- Add VolSync support and move CNPG backup credentials on SCALE ([#21443](https://github.com/truecharts/charts/issues/21443)) + +- Add ZFS SnapshotClass ([#21449](https://github.com/truecharts/charts/issues/21449)) + +- poolname input validation ([#21277](https://github.com/truecharts/charts/issues/21277)) + +- BREAKING CHANGE make it an umbrella chart with multiple upstream dependencies ([#19813](https://github.com/truecharts/charts/issues/19813)) + +- BREAKING CHANGE (on scale) use zfs backend instead of localpath on scale ([#19548](https://github.com/truecharts/charts/issues/19548)) + +### Fix + + + +- fixup all chart volsync/credentials settings + +- adapt for common cnpg/volsync pathing changes ([#21445](https://github.com/truecharts/charts/issues/21445)) + +- replace serviceexpert with externalinterfaces/networking-group in the SCALE GUI ([#21154](https://github.com/truecharts/charts/issues/21154)) \ No newline at end of file diff --git a/system/openebs/6.0.1/app-readme.md b/system/openebs/6.0.1/app-readme.md new file mode 100644 index 00000000000..9582b41f700 --- /dev/null +++ b/system/openebs/6.0.1/app-readme.md @@ -0,0 +1,8 @@ +OpenEBS is a umbrella chart for multiple container storage provisioners + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/system/openebs](https://truecharts.org/charts/system/openebs) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/system/openebs/6.0.1/charts/common-23.0.0.tgz b/system/openebs/6.0.1/charts/common-23.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0622a806d94b2598dfdd18d54aff29c4facf2e3e GIT binary patch literal 96822 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 literal 0 HcmV?d00001 diff --git a/system/openebs/6.0.1/charts/localpv-provisioner-4.0.0.tgz b/system/openebs/6.0.1/charts/localpv-provisioner-4.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..e946d6513e0900f70b47b06df273fb566d13c5d3 GIT binary patch literal 7182 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 Q2LJ&7|2LX{UI3f`06+jJDgXcg literal 0 HcmV?d00001 diff --git a/system/openebs/6.0.1/charts/lvm-localpv-1.5.1.tgz b/system/openebs/6.0.1/charts/lvm-localpv-1.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d94046dfe9d155dd0e47c95122baec14cbb48fad GIT binary patch literal 17454 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%0D( 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 literal 0 HcmV?d00001 diff --git a/system/openebs/6.0.1/crds/csi-volume-snapshot-class.yaml b/system/openebs/6.0.1/crds/csi-volume-snapshot-class.yaml new file mode 100644 index 00000000000..4374d595cd5 --- /dev/null +++ b/system/openebs/6.0.1/crds/csi-volume-snapshot-class.yaml @@ -0,0 +1,150 @@ + + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814 + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: volumesnapshotclasses.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshotClass + listKind: VolumeSnapshotClassList + plural: volumesnapshotclasses + shortNames: + - vsclass + - vsclasses + singular: volumesnapshotclass + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .driver + name: Driver + type: string + - description: Determines whether a VolumeSnapshotContent created through the + VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. + jsonPath: .deletionPolicy + name: DeletionPolicy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshotClass specifies parameters that a underlying storage + system uses when creating a volume snapshot. A specific VolumeSnapshotClass + is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses + are non-namespaced + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeSnapshotContent + created through the VolumeSnapshotClass should be deleted when its bound + VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". + "Retain" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the storage driver that handles this + VolumeSnapshotClass. Required. + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating snapshots. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - driver + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - jsonPath: .driver + name: Driver + type: string + - description: Determines whether a VolumeSnapshotContent created through the + VolumeSnapshotClass should be deleted when its bound VolumeSnapshot is deleted. + jsonPath: .deletionPolicy + name: DeletionPolicy + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshotClass is deprecated; + use snapshot.storage.k8s.io/v1 VolumeSnapshotClass + name: v1beta1 + schema: + openAPIV3Schema: + description: VolumeSnapshotClass specifies parameters that a underlying storage + system uses when creating a volume snapshot. A specific VolumeSnapshotClass + is used by specifying its name in a VolumeSnapshot object. VolumeSnapshotClasses + are non-namespaced + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + deletionPolicy: + description: deletionPolicy determines whether a VolumeSnapshotContent + created through the VolumeSnapshotClass should be deleted when its bound + VolumeSnapshot is deleted. Supported values are "Retain" and "Delete". + "Retain" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are kept. "Delete" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are deleted. + Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the storage driver that handles this + VolumeSnapshotClass. Required. + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + parameters: + additionalProperties: + type: string + description: parameters is a key-value map with storage driver specific + parameters for creating snapshots. These values are opaque to Kubernetes. + type: object + required: + - deletionPolicy + - driver + type: object + served: false + storage: false + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/csi-volume-snapshot-content.yaml b/system/openebs/6.0.1/crds/csi-volume-snapshot-content.yaml new file mode 100644 index 00000000000..659ec93aae5 --- /dev/null +++ b/system/openebs/6.0.1/crds/csi-volume-snapshot-content.yaml @@ -0,0 +1,488 @@ + + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814 + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: volumesnapshotcontents.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshotContent + listKind: VolumeSnapshotContentList + plural: volumesnapshotcontents + shortNames: + - vsc + - vscs + singular: volumesnapshotcontent + scope: Cluster + versions: + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the complete size of the snapshot in bytes + jsonPath: .status.restoreSize + name: RestoreSize + type: integer + - description: Determines whether this VolumeSnapshotContent and its physical + snapshot on the underlying storage system should be deleted when its bound + VolumeSnapshot is deleted. + jsonPath: .spec.deletionPolicy + name: DeletionPolicy + type: string + - description: Name of the CSI driver used to create the physical snapshot on + the underlying storage system. + jsonPath: .spec.driver + name: Driver + type: string + - description: Name of the VolumeSnapshotClass to which this snapshot belongs. + jsonPath: .spec.volumeSnapshotClassName + name: VolumeSnapshotClass + type: string + - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent + object is bound. + jsonPath: .spec.volumeSnapshotRef.name + name: VolumeSnapshot + type: string + - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent + object is bound. + jsonPath: .spec.volumeSnapshotRef.namespace + name: VolumeSnapshotNamespace + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshotContent represents the actual "on-disk" snapshot + object in the underlying storage system + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a VolumeSnapshotContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeSnapshotContent + and its physical snapshot on the underlying storage system should + be deleted when its bound VolumeSnapshot is deleted. Supported values + are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are kept. + "Delete" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are deleted. For dynamically provisioned + snapshots, this field will automatically be filled in by the CSI + snapshotter sidecar with the "DeletionPolicy" field defined in the + corresponding VolumeSnapshotClass. For pre-existing snapshots, users + MUST specify this field when creating the VolumeSnapshotContent + object. Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the CSI driver used to create the + physical snapshot on the underlying storage system. This MUST be + the same as the name returned by the CSI GetPluginName() call for + that driver. Required. + type: string + source: + description: source specifies whether the snapshot is (or should be) + dynamically provisioned or already exists, and just requires a Kubernetes + object representation. This field is immutable after creation. Required. + oneOf: + - required: + - snapshotHandle + - required: + - volumeHandle + properties: + snapshotHandle: + description: snapshotHandle specifies the CSI "snapshot_id" of + a pre-existing snapshot on the underlying storage system for + which a Kubernetes object representation was (or should be) + created. This field is immutable. + type: string + volumeHandle: + description: volumeHandle specifies the CSI "volume_id" of the + volume from which a snapshot should be dynamically taken from. + This field is immutable. + type: string + type: object + sourceVolumeMode: + description: SourceVolumeMode is the mode of the volume whose snapshot + is taken. Can be either “Filesystem” or “Block”. If not specified, + it indicates the source volume's mode is unknown. This field is + immutable. This field is an alpha field. + type: string + volumeSnapshotClassName: + description: name of the VolumeSnapshotClass from which this snapshot + was (or will be) created. Note that after provisioning, the VolumeSnapshotClass + may be deleted or recreated with different set of values, and as + such, should not be referenced post-snapshot creation. + type: string + volumeSnapshotRef: + description: volumeSnapshotRef specifies the VolumeSnapshot object + to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName + field must reference to this VolumeSnapshotContent's name for the + bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent + object, name and namespace of the VolumeSnapshot object MUST be + provided for binding to happen. This field is immutable after creation. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + x-kubernetes-map-type: atomic + required: + - deletionPolicy + - driver + - source + - volumeSnapshotRef + type: object + status: + description: status represents the current information of a snapshot. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the CSI snapshotter + sidecar with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it indicates + the creation time is unknown. The format of this field is a Unix + nanoseconds time encoded as an int64. On Unix, the command `date + +%s%N` returns the current time in nanoseconds since 1970-01-01 + 00:00:00 UTC. + format: int64 + type: integer + error: + description: error is the last observed error during snapshot creation, + if any. Upon success after retry, this error field will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if a snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the CSI snapshotter sidecar with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the complete size of the snapshot + in bytes. In dynamic snapshot creation case, this field will be + filled in by the CSI snapshotter sidecar with the "size_bytes" value + returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "size_bytes" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it. When restoring a volume from this snapshot, the size of the + volume MUST NOT be smaller than the restoreSize if it is specified, + otherwise the restoration will fail. If not specified, it indicates + that the size is unknown. + format: int64 + minimum: 0 + type: integer + snapshotHandle: + description: snapshotHandle is the CSI "snapshot_id" of a snapshot + on the underlying storage system. If not specified, it indicates + that dynamic snapshot creation has either failed or it is still + in progress. + type: string + volumeGroupSnapshotContentName: + description: VolumeGroupSnapshotContentName is the name of the VolumeGroupSnapshotContent + of which this VolumeSnapshotContent is a part of. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: Represents the complete size of the snapshot in bytes + jsonPath: .status.restoreSize + name: RestoreSize + type: integer + - description: Determines whether this VolumeSnapshotContent and its physical + snapshot on the underlying storage system should be deleted when its bound + VolumeSnapshot is deleted. + jsonPath: .spec.deletionPolicy + name: DeletionPolicy + type: string + - description: Name of the CSI driver used to create the physical snapshot on + the underlying storage system. + jsonPath: .spec.driver + name: Driver + type: string + - description: Name of the VolumeSnapshotClass to which this snapshot belongs. + jsonPath: .spec.volumeSnapshotClassName + name: VolumeSnapshotClass + type: string + - description: Name of the VolumeSnapshot object to which this VolumeSnapshotContent + object is bound. + jsonPath: .spec.volumeSnapshotRef.name + name: VolumeSnapshot + type: string + - description: Namespace of the VolumeSnapshot object to which this VolumeSnapshotContent + object is bound. + jsonPath: .spec.volumeSnapshotRef.namespace + name: VolumeSnapshotNamespace + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshotContent is deprecated; + use snapshot.storage.k8s.io/v1 VolumeSnapshotContent + name: v1beta1 + schema: + openAPIV3Schema: + description: VolumeSnapshotContent represents the actual "on-disk" snapshot + object in the underlying storage system + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: spec defines properties of a VolumeSnapshotContent created + by the underlying storage system. Required. + properties: + deletionPolicy: + description: deletionPolicy determines whether this VolumeSnapshotContent + and its physical snapshot on the underlying storage system should + be deleted when its bound VolumeSnapshot is deleted. Supported values + are "Retain" and "Delete". "Retain" means that the VolumeSnapshotContent + and its physical snapshot on underlying storage system are kept. + "Delete" means that the VolumeSnapshotContent and its physical snapshot + on underlying storage system are deleted. For dynamically provisioned + snapshots, this field will automatically be filled in by the CSI + snapshotter sidecar with the "DeletionPolicy" field defined in the + corresponding VolumeSnapshotClass. For pre-existing snapshots, users + MUST specify this field when creating the VolumeSnapshotContent + object. Required. + enum: + - Delete + - Retain + type: string + driver: + description: driver is the name of the CSI driver used to create the + physical snapshot on the underlying storage system. This MUST be + the same as the name returned by the CSI GetPluginName() call for + that driver. Required. + type: string + source: + description: source specifies whether the snapshot is (or should be) + dynamically provisioned or already exists, and just requires a Kubernetes + object representation. This field is immutable after creation. Required. + properties: + snapshotHandle: + description: snapshotHandle specifies the CSI "snapshot_id" of + a pre-existing snapshot on the underlying storage system for + which a Kubernetes object representation was (or should be) + created. This field is immutable. + type: string + volumeHandle: + description: volumeHandle specifies the CSI "volume_id" of the + volume from which a snapshot should be dynamically taken from. + This field is immutable. + type: string + type: object + volumeSnapshotClassName: + description: name of the VolumeSnapshotClass from which this snapshot + was (or will be) created. Note that after provisioning, the VolumeSnapshotClass + may be deleted or recreated with different set of values, and as + such, should not be referenced post-snapshot creation. + type: string + volumeSnapshotRef: + description: volumeSnapshotRef specifies the VolumeSnapshot object + to which this VolumeSnapshotContent object is bound. VolumeSnapshot.Spec.VolumeSnapshotContentName + field must reference to this VolumeSnapshotContent's name for the + bidirectional binding to be valid. For a pre-existing VolumeSnapshotContent + object, name and namespace of the VolumeSnapshot object MUST be + provided for binding to happen. This field is immutable after creation. + Required. + properties: + apiVersion: + description: API version of the referent. + type: string + fieldPath: + description: 'If referring to a piece of an object instead of + an entire object, this string should contain a valid JSON/Go + field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within + a pod, this would take on a value like: "spec.containers{name}" + (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" + (container with index 2 in this pod). This syntax is chosen + only to have some well-defined way of referencing a part of + an object. TODO: this design is not final and this field is + subject to change in the future.' + type: string + kind: + description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + type: string + namespace: + description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + type: string + resourceVersion: + description: 'Specific resourceVersion to which this reference + is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + type: string + uid: + description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + type: string + type: object + required: + - deletionPolicy + - driver + - source + - volumeSnapshotRef + type: object + status: + description: status represents the current information of a snapshot. + properties: + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the CSI snapshotter + sidecar with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it indicates + the creation time is unknown. The format of this field is a Unix + nanoseconds time encoded as an int64. On Unix, the command `date + +%s%N` returns the current time in nanoseconds since 1970-01-01 + 00:00:00 UTC. + format: int64 + type: integer + error: + description: error is the last observed error during snapshot creation, + if any. Upon success after retry, this error field will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if a snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the CSI snapshotter sidecar with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the complete size of the snapshot + in bytes. In dynamic snapshot creation case, this field will be + filled in by the CSI snapshotter sidecar with the "size_bytes" value + returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "size_bytes" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it. When restoring a volume from this snapshot, the size of the + volume MUST NOT be smaller than the restoreSize if it is specified, + otherwise the restoration will fail. If not specified, it indicates + that the size is unknown. + format: int64 + minimum: 0 + type: integer + snapshotHandle: + description: snapshotHandle is the CSI "snapshot_id" of a snapshot + on the underlying storage system. If not specified, it indicates + that dynamic snapshot creation has either failed or it is still + in progress. + type: string + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/csi-volume-snapshot.yaml b/system/openebs/6.0.1/crds/csi-volume-snapshot.yaml new file mode 100644 index 00000000000..ecde106c25f --- /dev/null +++ b/system/openebs/6.0.1/crds/csi-volume-snapshot.yaml @@ -0,0 +1,390 @@ + + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.kubernetes.io: https://github.com/kubernetes-csi/external-snapshotter/pull/814 + controller-gen.kubebuilder.io/version: v0.11.3 + creationTimestamp: null + name: volumesnapshots.snapshot.storage.k8s.io +spec: + group: snapshot.storage.k8s.io + names: + kind: VolumeSnapshot + listKind: VolumeSnapshotList + plural: volumesnapshots + shortNames: + - vs + singular: volumesnapshot + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: If a new snapshot needs to be created, this contains the name of + the source PVC from which this snapshot was (or will be) created. + jsonPath: .spec.source.persistentVolumeClaimName + name: SourcePVC + type: string + - description: If a snapshot already exists, this contains the name of the existing + VolumeSnapshotContent object representing the existing snapshot. + jsonPath: .spec.source.volumeSnapshotContentName + name: SourceSnapshotContent + type: string + - description: Represents the minimum size of volume required to rehydrate from + this snapshot. + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. + jsonPath: .spec.volumeSnapshotClassName + name: SnapshotClass + type: string + - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot + object intends to bind to. Please note that verification of binding actually + requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure + both are pointing at each other. Binding MUST be verified prior to usage of + this object. + jsonPath: .status.boundVolumeSnapshotContentName + name: SnapshotContent + type: string + - description: Timestamp when the point-in-time snapshot was taken by the underlying + storage system. + jsonPath: .status.creationTime + name: CreationTime + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: VolumeSnapshot is a user's request for either creating a point-in-time + snapshot of a persistent volume, or binding to a pre-existing snapshot. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: 'spec defines the desired characteristics of a snapshot requested + by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots + Required.' + properties: + source: + description: source specifies where a snapshot will be created from. + This field is immutable after creation. Required. + oneOf: + - required: + - persistentVolumeClaimName + - required: + - volumeSnapshotContentName + properties: + persistentVolumeClaimName: + description: persistentVolumeClaimName specifies the name of the + PersistentVolumeClaim object representing the volume from which + a snapshot should be created. This PVC is assumed to be in the + same namespace as the VolumeSnapshot object. This field should + be set if the snapshot does not exists, and needs to be created. + This field is immutable. + type: string + volumeSnapshotContentName: + description: volumeSnapshotContentName specifies the name of a + pre-existing VolumeSnapshotContent object representing an existing + volume snapshot. This field should be set if the snapshot already + exists and only needs a representation in Kubernetes. This field + is immutable. + type: string + type: object + volumeSnapshotClassName: + description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass + requested by the VolumeSnapshot. VolumeSnapshotClassName may be + left nil to indicate that the default SnapshotClass should be used. + A given cluster may have multiple default Volume SnapshotClasses: + one default per CSI Driver. If a VolumeSnapshot does not specify + a SnapshotClass, VolumeSnapshotSource will be checked to figure + out what the associated CSI Driver is, and the default VolumeSnapshotClass + associated with that CSI Driver will be used. If more than one VolumeSnapshotClass + exist for a given CSI Driver and more than one have been marked + as default, CreateSnapshot will fail and generate an event. Empty + string is not allowed for this field.' + type: string + required: + - source + type: object + status: + description: status represents the current information of a snapshot. + Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent + objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object. + properties: + boundVolumeSnapshotContentName: + description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent + object to which this VolumeSnapshot object intends to bind to. If + not specified, it indicates that the VolumeSnapshot object has not + been successfully bound to a VolumeSnapshotContent object yet. NOTE: + To avoid possible security issues, consumers must verify binding + between VolumeSnapshot and VolumeSnapshotContent objects is successful + (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object.' + type: string + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the snapshot controller + with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it may indicate + that the creation time of the snapshot is unknown. + format: date-time + type: string + error: + description: error is the last observed error during snapshot creation, + if any. This field could be helpful to upper level controllers(i.e., + application controller) to decide whether they should continue on + waiting for the snapshot to be created based on the type of error + reported. The snapshot controller will keep retrying when an error + occurs during the snapshot creation. Upon success, this error field + will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if the snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the snapshot controller with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the minimum size of volume required + to create a volume from this snapshot. In dynamic snapshot creation + case, this field will be filled in by the snapshot controller with + the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. + For a pre-existing snapshot, this field will be filled with the + "size_bytes" value returned from the CSI "ListSnapshots" gRPC call + if the driver supports it. When restoring a volume from this snapshot, + the size of the volume MUST NOT be smaller than the restoreSize + if it is specified, otherwise the restoration will fail. If not + specified, it indicates that the size is unknown. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + type: string + x-kubernetes-int-or-string: true + volumeGroupSnapshotName: + description: VolumeGroupSnapshotName is the name of the VolumeGroupSnapshot + of which this VolumeSnapshot is a part of. + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} + - additionalPrinterColumns: + - description: Indicates if the snapshot is ready to be used to restore a volume. + jsonPath: .status.readyToUse + name: ReadyToUse + type: boolean + - description: If a new snapshot needs to be created, this contains the name of + the source PVC from which this snapshot was (or will be) created. + jsonPath: .spec.source.persistentVolumeClaimName + name: SourcePVC + type: string + - description: If a snapshot already exists, this contains the name of the existing + VolumeSnapshotContent object representing the existing snapshot. + jsonPath: .spec.source.volumeSnapshotContentName + name: SourceSnapshotContent + type: string + - description: Represents the minimum size of volume required to rehydrate from + this snapshot. + jsonPath: .status.restoreSize + name: RestoreSize + type: string + - description: The name of the VolumeSnapshotClass requested by the VolumeSnapshot. + jsonPath: .spec.volumeSnapshotClassName + name: SnapshotClass + type: string + - description: Name of the VolumeSnapshotContent object to which the VolumeSnapshot + object intends to bind to. Please note that verification of binding actually + requires checking both VolumeSnapshot and VolumeSnapshotContent to ensure + both are pointing at each other. Binding MUST be verified prior to usage of + this object. + jsonPath: .status.boundVolumeSnapshotContentName + name: SnapshotContent + type: string + - description: Timestamp when the point-in-time snapshot was taken by the underlying + storage system. + jsonPath: .status.creationTime + name: CreationTime + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + deprecated: true + deprecationWarning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshot is deprecated; + use snapshot.storage.k8s.io/v1 VolumeSnapshot + name: v1beta1 + schema: + openAPIV3Schema: + description: VolumeSnapshot is a user's request for either creating a point-in-time + snapshot of a persistent volume, or binding to a pre-existing snapshot. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + spec: + description: 'spec defines the desired characteristics of a snapshot requested + by a user. More info: https://kubernetes.io/docs/concepts/storage/volume-snapshots#volumesnapshots + Required.' + properties: + source: + description: source specifies where a snapshot will be created from. + This field is immutable after creation. Required. + properties: + persistentVolumeClaimName: + description: persistentVolumeClaimName specifies the name of the + PersistentVolumeClaim object representing the volume from which + a snapshot should be created. This PVC is assumed to be in the + same namespace as the VolumeSnapshot object. This field should + be set if the snapshot does not exists, and needs to be created. + This field is immutable. + type: string + volumeSnapshotContentName: + description: volumeSnapshotContentName specifies the name of a + pre-existing VolumeSnapshotContent object representing an existing + volume snapshot. This field should be set if the snapshot already + exists and only needs a representation in Kubernetes. This field + is immutable. + type: string + type: object + volumeSnapshotClassName: + description: 'VolumeSnapshotClassName is the name of the VolumeSnapshotClass + requested by the VolumeSnapshot. VolumeSnapshotClassName may be + left nil to indicate that the default SnapshotClass should be used. + A given cluster may have multiple default Volume SnapshotClasses: + one default per CSI Driver. If a VolumeSnapshot does not specify + a SnapshotClass, VolumeSnapshotSource will be checked to figure + out what the associated CSI Driver is, and the default VolumeSnapshotClass + associated with that CSI Driver will be used. If more than one VolumeSnapshotClass + exist for a given CSI Driver and more than one have been marked + as default, CreateSnapshot will fail and generate an event. Empty + string is not allowed for this field.' + type: string + required: + - source + type: object + status: + description: status represents the current information of a snapshot. + Consumers must verify binding between VolumeSnapshot and VolumeSnapshotContent + objects is successful (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object. + properties: + boundVolumeSnapshotContentName: + description: 'boundVolumeSnapshotContentName is the name of the VolumeSnapshotContent + object to which this VolumeSnapshot object intends to bind to. If + not specified, it indicates that the VolumeSnapshot object has not + been successfully bound to a VolumeSnapshotContent object yet. NOTE: + To avoid possible security issues, consumers must verify binding + between VolumeSnapshot and VolumeSnapshotContent objects is successful + (by validating that both VolumeSnapshot and VolumeSnapshotContent + point at each other) before using this object.' + type: string + creationTime: + description: creationTime is the timestamp when the point-in-time + snapshot is taken by the underlying storage system. In dynamic snapshot + creation case, this field will be filled in by the snapshot controller + with the "creation_time" value returned from CSI "CreateSnapshot" + gRPC call. For a pre-existing snapshot, this field will be filled + with the "creation_time" value returned from the CSI "ListSnapshots" + gRPC call if the driver supports it. If not specified, it may indicate + that the creation time of the snapshot is unknown. + format: date-time + type: string + error: + description: error is the last observed error during snapshot creation, + if any. This field could be helpful to upper level controllers(i.e., + application controller) to decide whether they should continue on + waiting for the snapshot to be created based on the type of error + reported. The snapshot controller will keep retrying when an error + occurs during the snapshot creation. Upon success, this error field + will be cleared. + properties: + message: + description: 'message is a string detailing the encountered error + during snapshot creation if specified. NOTE: message may be + logged, and it should not contain sensitive information.' + type: string + time: + description: time is the timestamp when the error was encountered. + format: date-time + type: string + type: object + readyToUse: + description: readyToUse indicates if the snapshot is ready to be used + to restore a volume. In dynamic snapshot creation case, this field + will be filled in by the snapshot controller with the "ready_to_use" + value returned from CSI "CreateSnapshot" gRPC call. For a pre-existing + snapshot, this field will be filled with the "ready_to_use" value + returned from the CSI "ListSnapshots" gRPC call if the driver supports + it, otherwise, this field will be set to "True". If not specified, + it means the readiness of a snapshot is unknown. + type: boolean + restoreSize: + description: restoreSize represents the minimum size of volume required + to create a volume from this snapshot. In dynamic snapshot creation + case, this field will be filled in by the snapshot controller with + the "size_bytes" value returned from CSI "CreateSnapshot" gRPC call. + For a pre-existing snapshot, this field will be filled with the + "size_bytes" value returned from the CSI "ListSnapshots" gRPC call + if the driver supports it. When restoring a volume from this snapshot, + the size of the volume MUST NOT be smaller than the restoreSize + if it is specified, otherwise the restoration will fail. If not + specified, it indicates that the size is unknown. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + type: string + x-kubernetes-int-or-string: true + type: object + required: + - spec + type: object + served: false + storage: false + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/zfsbackup.yaml b/system/openebs/6.0.1/crds/zfsbackup.yaml new file mode 100644 index 00000000000..d50ea501d92 --- /dev/null +++ b/system/openebs/6.0.1/crds/zfsbackup.yaml @@ -0,0 +1,117 @@ + + + +############################################## +########### ############ +########### ZFSBackup CRD ############ +########### ############ +############################################## + +# ZFSBackups CRD is autogenerated via `make manifests` command. +# Do the modification in the code and run the `make manifests` command +# to generate the CRD definition + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: zfsbackups.zfs.openebs.io +spec: + group: zfs.openebs.io + names: + kind: ZFSBackup + listKind: ZFSBackupList + plural: zfsbackups + shortNames: + - zb + singular: zfsbackup + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Previous snapshot for backup + jsonPath: .spec.prevSnapName + name: PrevSnap + type: string + - description: Backup status + jsonPath: .status + name: Status + type: string + - description: Age of the volume + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: ZFSBackup describes a zfs backup resource created as a custom + resource + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ZFSBackupSpec is the spec for a ZFSBackup resource + properties: + backupDest: + description: BackupDest is the remote address for backup transfer + minLength: 1 + pattern: ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$ + type: string + ownerNodeID: + description: OwnerNodeID is a name of the nodes where the source volume + is + minLength: 1 + type: string + prevSnapName: + description: PrevSnapName is the last completed-backup's snapshot + name + type: string + snapName: + description: SnapName is the snapshot name for backup + minLength: 1 + type: string + volumeName: + description: VolumeName is a name of the volume for which this backup + is destined + minLength: 1 + type: string + required: + - backupDest + - ownerNodeID + - volumeName + type: object + status: + description: ZFSBackupStatus is to hold status of backup + enum: + - Init + - Done + - Failed + - Pending + - InProgress + - Invalid + type: string + required: + - spec + - status + type: object + served: true + storage: true + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/zfsnode.yaml b/system/openebs/6.0.1/crds/zfsnode.yaml new file mode 100644 index 00000000000..632ba23de5c --- /dev/null +++ b/system/openebs/6.0.1/crds/zfsnode.yaml @@ -0,0 +1,97 @@ + + + +############################################## +########### ############ +########### ZFSNode CRD ############ +########### ############ +############################################## + +# ZFSNode CRD is autogenerated via `make manifests` command. +# Do the modification in the code and run the `make manifests` command +# to generate the CRD definition + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: zfsnodes.zfs.openebs.io +spec: + group: zfs.openebs.io + names: + kind: ZFSNode + listKind: ZFSNodeList + plural: zfsnodes + shortNames: + - zfsnode + singular: zfsnode + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: ZFSNode records information about all zfs pools available in + a node. In general, the openebs node-agent creates the ZFSNode object & + periodically synchronizing the zfs pools available in the node. ZFSNode + has an owner reference pointing to the corresponding node object. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + pools: + items: + description: Pool specifies attributes of a given zfs pool that exists + on the node. + properties: + free: + anyOf: + - type: integer + - type: string + description: Free specifies the available capacity of zfs pool. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + used: + anyOf: + - type: integer + - type: string + description: Used specifies the used capacity of zfs pool. + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + name: + description: Name of the zfs pool. + minLength: 1 + type: string + uuid: + description: UUID denotes a unique identity of a zfs pool. + minLength: 1 + type: string + required: + - free + - used + - name + - uuid + type: object + type: array + required: + - pools + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/zfsrestore.yaml b/system/openebs/6.0.1/crds/zfsrestore.yaml new file mode 100644 index 00000000000..d301a8db631 --- /dev/null +++ b/system/openebs/6.0.1/crds/zfsrestore.yaml @@ -0,0 +1,239 @@ + + + +############################################## +########### ############ +########### ZFSRestore CRD ############ +########### ############ +############################################## + +# ZFSRestores CRD is autogenerated via `make manifests` command. +# Do the modification in the code and run the `make manifests` command +# to generate the CRD definition + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: zfsrestores.zfs.openebs.io +spec: + group: zfs.openebs.io + names: + kind: ZFSRestore + listKind: ZFSRestoreList + plural: zfsrestores + singular: zfsrestore + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: ZFSRestore describes a cstor restore resource created as a custom + resource + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ZFSRestoreSpec is the spec for a ZFSRestore resource + properties: + ownerNodeID: + description: owner node name where restore volume is present + minLength: 1 + type: string + restoreSrc: + description: it can be ip:port in case of restore from remote or volumeName + in case of local restore + minLength: 1 + pattern: ^([0-9]+.[0-9]+.[0-9]+.[0-9]+:[0-9]+)$ + type: string + volumeName: + description: volume name to where restore has to be performed + minLength: 1 + type: string + required: + - ownerNodeID + - restoreSrc + - volumeName + type: object + status: + description: ZFSRestoreStatus is to hold result of action. + enum: + - Init + - Done + - Failed + - Pending + - InProgress + - Invalid + type: string + volSpec: + description: VolumeInfo defines ZFS volume parameters for all modes in + which ZFS volumes can be created like - ZFS volume with filesystem, + ZFS Volume exposed as zfs or ZFS volume exposed as raw block device. + Some of the parameters can be only set during creation time (as specified + in the details of the parameter), and a few are editable. In case of + Cloned volumes, the parameters are assigned the same values as the source + volume. + properties: + capacity: + description: Capacity of the volume + minLength: 1 + type: string + compression: + description: 'Compression specifies the block-level compression algorithm + to be applied to the ZFS Volume. The value "on" indicates ZFS to + use the default compression algorithm. The default compression algorithm + used by ZFS will be either lzjb or, if the lz4_compress feature + is enabled, lz4. Compression property can be edited after the volume + has been created. The change will only be applied to the newly-written + data. For instance, if the Volume was created with "off" and the + next day the compression was modified to "on", the data written + prior to setting "on" will not be compressed. Default Value: off.' + pattern: ^(on|off|lzjb|zstd|zstd-[1-9]|zstd-1[0-9]|gzip|gzip-[1-9]|zle|lz4)$ + type: string + dedup: + description: 'Deduplication is the process for removing redundant + data at the block level, reducing the total amount of data stored. + If a file system has the dedup property enabled, duplicate data + blocks are removed synchronously. The result is that only unique + data is stored and common components are shared among files. Deduplication + can consume significant processing power (CPU) and memory as well + as generate additional disk IO. Before creating a pool with deduplication + enabled, ensure that you have planned your hardware requirements + appropriately and implemented appropriate recovery practices, such + as regular backups. As an alternative to deduplication consider + using compression=lz4, as a less resource-intensive alternative. + should be enabled on the zvol. Dedup property can be edited after + the volume has been created. Default Value: off.' + enum: + - "on" + - "off" + type: string + encryption: + description: 'Enabling the encryption feature allows for the creation + of encrypted filesystems and volumes. ZFS will encrypt file and + zvol data, file attributes, ACLs, permission bits, directory listings, + FUID mappings, and userused / groupused data. ZFS will not encrypt + metadata related to the pool structure, including dataset and snapshot + names, dataset hierarchy, properties, file size, file holes, and + deduplication tables (though the deduplicated data itself is encrypted). + Default Value: off.' + pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$ + type: string + fsType: + description: 'FsType specifies filesystem type for the zfs volume/dataset. + If FsType is provided as "zfs", then the driver will create a ZFS + dataset, formatting is not required as underlying filesystem is + ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver + will create a ZVOL and format the volume accordingly. FsType can + not be modified once volume has been provisioned. Default Value: + ext4.' + type: string + keyformat: + description: KeyFormat specifies format of the encryption key The + supported KeyFormats are passphrase, raw, hex. + enum: + - passphrase + - raw + - hex + type: string + keylocation: + description: KeyLocation is the location of key for the encryption + type: string + ownerNodeID: + description: OwnerNodeID is the Node ID where the ZPOOL is running + which is where the volume has been provisioned. OwnerNodeID can + not be edited after the volume has been provisioned. + minLength: 1 + type: string + poolName: + description: poolName specifies the name of the pool where the volume + has been created. PoolName can not be edited after the volume has + been provisioned. + minLength: 1 + type: string + recordsize: + description: 'Specifies a suggested block size for files in the file + system. The size specified must be a power of two greater than or + equal to 512 and less than or equal to 128 Kbytes. RecordSize property + can be edited after the volume has been created. Changing the file + system''s recordsize affects only files created afterward; existing + files are unaffected. Default Value: 128k.' + minLength: 1 + type: string + shared: + description: Shared specifies whether the volume can be shared among + multiple pods. If it is not set to "yes", then the ZFS-LocalPV Driver + will not allow the volumes to be mounted by more than one pods. + enum: + - "yes" + - "no" + type: string + snapname: + description: SnapName specifies the name of the snapshot where the + volume has been cloned from. Snapname can not be edited after the + volume has been provisioned. + type: string + thinProvision: + description: 'ThinProvision describes whether space reservation for + the source volume is required or not. The value "yes" indicates + that volume should be thin provisioned and "no" means thick provisioning + of the volume. If thinProvision is set to "yes" then volume can + be provisioned even if the ZPOOL does not have the enough capacity. + If thinProvision is set to "no" then volume can be provisioned only + if the ZPOOL has enough capacity and capacity required by volume + can be reserved. ThinProvision can not be modified once volume has + been provisioned. Default Value: no.' + enum: + - "yes" + - "no" + type: string + volblocksize: + description: 'VolBlockSize specifies the block size for the zvol. + The volsize can only be set to a multiple of volblocksize, and cannot + be zero. VolBlockSize can not be edited after the volume has been + provisioned. Default Value: 8k.' + minLength: 1 + type: string + volumeType: + description: volumeType determines whether the volume is of type "DATASET" + or "ZVOL". If fstype provided in the storageclass is "zfs", a volume + of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs" + is mentioned as fstype in the storageclass, then a volume of type + zvol will be created, which will be further formatted as the fstype + provided in the storageclass. VolumeType can not be modified once + volume has been provisioned. + enum: + - ZVOL + - DATASET + type: string + required: + - capacity + - ownerNodeID + - poolName + - volumeType + type: object + required: + - spec + - status + type: object + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/zfssnapshot.yaml b/system/openebs/6.0.1/crds/zfssnapshot.yaml new file mode 100644 index 00000000000..b1cc78919a5 --- /dev/null +++ b/system/openebs/6.0.1/crds/zfssnapshot.yaml @@ -0,0 +1,384 @@ + + + +############################################## +########### ############ +########### ZFSSnapshot CRD ############ +########### ############ +############################################## + +# ZFSSnapshot CRD is autogenerated via `make manifests` command. +# Do the modification in the code and run the `make manifests` command +# to generate the CRD definition + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: zfssnapshots.zfs.openebs.io +spec: + group: zfs.openebs.io + names: + kind: ZFSSnapshot + listKind: ZFSSnapshotList + plural: zfssnapshots + shortNames: + - zfssnap + singular: zfssnapshot + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: ZFSSnapshot represents a ZFS Snapshot of the zfsvolume + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: VolumeInfo defines ZFS volume parameters for all modes in + which ZFS volumes can be created like - ZFS volume with filesystem, + ZFS Volume exposed as zfs or ZFS volume exposed as raw block device. + Some of the parameters can be only set during creation time (as specified + in the details of the parameter), and a few are editable. In case of + Cloned volumes, the parameters are assigned the same values as the source + volume. + properties: + capacity: + description: Capacity of the volume + minLength: 1 + type: string + compression: + description: 'Compression specifies the block-level compression algorithm + to be applied to the ZFS Volume. The value "on" indicates ZFS to + use the default compression algorithm. The default compression algorithm + used by ZFS will be either lzjb or, if the lz4_compress feature + is enabled, lz4. Compression property can be edited after the volume + has been created. The change will only be applied to the newly-written + data. For instance, if the Volume was created with "off" and the + next day the compression was modified to "on", the data written + prior to setting "on" will not be compressed. Default Value: off.' + pattern: ^(on|off|lzjb|zstd|zstd-[1-9]|zstd-1[0-9]|gzip|gzip-[1-9]|zle|lz4)$ + type: string + dedup: + description: 'Deduplication is the process for removing redundant + data at the block level, reducing the total amount of data stored. + If a file system has the dedup property enabled, duplicate data + blocks are removed synchronously. The result is that only unique + data is stored and common components are shared among files. Deduplication + can consume significant processing power (CPU) and memory as well + as generate additional disk IO. Before creating a pool with deduplication + enabled, ensure that you have planned your hardware requirements + appropriately and implemented appropriate recovery practices, such + as regular backups. As an alternative to deduplication consider + using compression=lz4, as a less resource-intensive alternative. + should be enabled on the zvol. Dedup property can be edited after + the volume has been created. Default Value: off.' + enum: + - "on" + - "off" + type: string + encryption: + description: 'Enabling the encryption feature allows for the creation + of encrypted filesystems and volumes. ZFS will encrypt file and + zvol data, file attributes, ACLs, permission bits, directory listings, + FUID mappings, and userused / groupused data. ZFS will not encrypt + metadata related to the pool structure, including dataset and snapshot + names, dataset hierarchy, properties, file size, file holes, and + deduplication tables (though the deduplicated data itself is encrypted). + Default Value: off.' + pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$ + type: string + fsType: + description: 'FsType specifies filesystem type for the zfs volume/dataset. + If FsType is provided as "zfs", then the driver will create a ZFS + dataset, formatting is not required as underlying filesystem is + ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver + will create a ZVOL and format the volume accordingly. FsType can + not be modified once volume has been provisioned. Default Value: + ext4.' + type: string + keyformat: + description: KeyFormat specifies format of the encryption key The + supported KeyFormats are passphrase, raw, hex. + enum: + - passphrase + - raw + - hex + type: string + keylocation: + description: KeyLocation is the location of key for the encryption + type: string + ownerNodeID: + description: OwnerNodeID is the Node ID where the ZPOOL is running + which is where the volume has been provisioned. OwnerNodeID can + not be edited after the volume has been provisioned. + minLength: 1 + type: string + poolName: + description: poolName specifies the name of the pool where the volume + has been created. PoolName can not be edited after the volume has + been provisioned. + minLength: 1 + type: string + recordsize: + description: 'Specifies a suggested block size for files in the file + system. The size specified must be a power of two greater than or + equal to 512 and less than or equal to 128 Kbytes. RecordSize property + can be edited after the volume has been created. Changing the file + system''s recordsize affects only files created afterward; existing + files are unaffected. Default Value: 128k.' + minLength: 1 + type: string + shared: + description: Shared specifies whether the volume can be shared among + multiple pods. If it is not set to "yes", then the ZFS-LocalPV Driver + will not allow the volumes to be mounted by more than one pods. + enum: + - "yes" + - "no" + type: string + snapname: + description: SnapName specifies the name of the snapshot where the + volume has been cloned from. Snapname can not be edited after the + volume has been provisioned. + type: string + thinProvision: + description: 'ThinProvision describes whether space reservation for + the source volume is required or not. The value "yes" indicates + that volume should be thin provisioned and "no" means thick provisioning + of the volume. If thinProvision is set to "yes" then volume can + be provisioned even if the ZPOOL does not have the enough capacity. + If thinProvision is set to "no" then volume can be provisioned only + if the ZPOOL has enough capacity and capacity required by volume + can be reserved. ThinProvision can not be modified once volume has + been provisioned. Default Value: no.' + enum: + - "yes" + - "no" + type: string + volblocksize: + description: 'VolBlockSize specifies the block size for the zvol. + The volsize can only be set to a multiple of volblocksize, and cannot + be zero. VolBlockSize can not be edited after the volume has been + provisioned. Default Value: 8k.' + minLength: 1 + type: string + volumeType: + description: volumeType determines whether the volume is of type "DATASET" + or "ZVOL". If fstype provided in the storageclass is "zfs", a volume + of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs" + is mentioned as fstype in the storageclass, then a volume of type + zvol will be created, which will be further formatted as the fstype + provided in the storageclass. VolumeType can not be modified once + volume has been provisioned. + enum: + - ZVOL + - DATASET + type: string + required: + - capacity + - ownerNodeID + - poolName + - volumeType + type: object + status: + description: SnapStatus string that reflects if the snapshot was created + successfully + properties: + state: + type: string + type: object + required: + - spec + - status + type: object + served: true + storage: true + - name: v1alpha1 + schema: + openAPIV3Schema: + description: ZFSSnapshot represents a ZFS Snapshot of the zfsvolume + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: VolumeInfo defines ZFS volume parameters for all modes in + which ZFS volumes can be created like - ZFS volume with filesystem, + ZFS Volume exposed as zfs or ZFS volume exposed as raw block device. + Some of the parameters can be only set during creation time (as specified + in the details of the parameter), and a few are editable. In case of + Cloned volumes, the parameters are assigned the same values as the source + volume. + properties: + capacity: + description: Capacity of the volume + minLength: 1 + type: string + compression: + description: 'Compression specifies the block-level compression algorithm + to be applied to the ZFS Volume. The value "on" indicates ZFS to + use the default compression algorithm. The default compression algorithm + used by ZFS will be either lzjb or, if the lz4_compress feature + is enabled, lz4. Compression property can be edited after the volume + has been created. The change will only be applied to the newly-written + data. For instance, if the Volume was created with "off" and the + next day the compression was modified to "on", the data written + prior to setting "on" will not be compressed. Default Value: off.' + pattern: ^(on|off|lzjb|gzip|gzip-[1-9]|zle|lz4)$ + type: string + dedup: + description: 'Deduplication is the process for removing redundant + data at the block level, reducing the total amount of data stored. + If a file system has the dedup property enabled, duplicate data + blocks are removed synchronously. The result is that only unique + data is stored and common components are shared among files. Deduplication + can consume significant processing power (CPU) and memory as well + as generate additional disk IO. Before creating a pool with deduplication + enabled, ensure that you have planned your hardware requirements + appropriately and implemented appropriate recovery practices, such + as regular backups. As an alternative to deduplication consider + using compression=lz4, as a less resource-intensive alternative. + should be enabled on the zvol. Dedup property can be edited after + the volume has been created. Default Value: off.' + enum: + - "on" + - "off" + type: string + encryption: + description: 'Enabling the encryption feature allows for the creation + of encrypted filesystems and volumes. ZFS will encrypt file and + zvol data, file attributes, ACLs, permission bits, directory listings, + FUID mappings, and userused / groupused data. ZFS will not encrypt + metadata related to the pool structure, including dataset and snapshot + names, dataset hierarchy, properties, file size, file holes, and + deduplication tables (though the deduplicated data itself is encrypted). + Default Value: off.' + pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$ + type: string + fsType: + description: 'FsType specifies filesystem type for the zfs volume/dataset. + If FsType is provided as "zfs", then the driver will create a ZFS + dataset, formatting is not required as underlying filesystem is + ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver + will create a ZVOL and format the volume accordingly. FsType can + not be modified once volume has been provisioned. Default Value: + ext4.' + type: string + keyformat: + description: KeyFormat specifies format of the encryption key The + supported KeyFormats are passphrase, raw, hex. + enum: + - passphrase + - raw + - hex + type: string + keylocation: + description: KeyLocation is the location of key for the encryption + type: string + ownerNodeID: + description: OwnerNodeID is the Node ID where the ZPOOL is running + which is where the volume has been provisioned. OwnerNodeID can + not be edited after the volume has been provisioned. + minLength: 1 + type: string + poolName: + description: poolName specifies the name of the pool where the volume + has been created. PoolName can not be edited after the volume has + been provisioned. + minLength: 1 + type: string + recordsize: + description: 'Specifies a suggested block size for files in the file + system. The size specified must be a power of two greater than or + equal to 512 and less than or equal to 128 Kbytes. RecordSize property + can be edited after the volume has been created. Changing the file + system''s recordsize affects only files created afterward; existing + files are unaffected. Default Value: 128k.' + minLength: 1 + type: string + snapname: + description: SnapName specifies the name of the snapshot where the + volume has been cloned from. Snapname can not be edited after the + volume has been provisioned. + type: string + thinProvision: + description: 'ThinProvision describes whether space reservation for + the source volume is required or not. The value "yes" indicates + that volume should be thin provisioned and "no" means thick provisioning + of the volume. If thinProvision is set to "yes" then volume can + be provisioned even if the ZPOOL does not have the enough capacity. + If thinProvision is set to "no" then volume can be provisioned only + if the ZPOOL has enough capacity and capacity required by volume + can be reserved. ThinProvision can not be modified once volume has + been provisioned. Default Value: no.' + enum: + - "yes" + - "no" + type: string + volblocksize: + description: 'VolBlockSize specifies the block size for the zvol. + The volsize can only be set to a multiple of volblocksize, and cannot + be zero. VolBlockSize can not be edited after the volume has been + provisioned. Default Value: 8k.' + minLength: 1 + type: string + volumeType: + description: volumeType determines whether the volume is of type "DATASET" + or "ZVOL". If fstype provided in the storageclass is "zfs", a volume + of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs" + is mentioned as fstype in the storageclass, then a volume of type + zvol will be created, which will be further formatted as the fstype + provided in the storageclass. VolumeType can not be modified once + volume has been provisioned. + enum: + - ZVOL + - DATASET + type: string + required: + - capacity + - ownerNodeID + - poolName + - volumeType + type: object + status: + description: SnapStatus string that reflects if the snapshot was created + successfully + properties: + state: + type: string + type: object + required: + - spec + - status + type: object + served: true + storage: false +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/crds/zfsvolume.yaml b/system/openebs/6.0.1/crds/zfsvolume.yaml new file mode 100644 index 00000000000..acb412eddf1 --- /dev/null +++ b/system/openebs/6.0.1/crds/zfsvolume.yaml @@ -0,0 +1,450 @@ + + + +############################################## +########### ############ +########### ZFSVolume CRD ############ +########### ############ +############################################## + +# ZFSVolume CRD is autogenerated via `make manifests` command. +# Do the modification in the code and run the `make manifests` command +# to generate the CRD definition + + +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.0 + creationTimestamp: null + name: zfsvolumes.zfs.openebs.io +spec: + group: zfs.openebs.io + names: + kind: ZFSVolume + listKind: ZFSVolumeList + plural: zfsvolumes + shortNames: + - zfsvol + - zv + singular: zfsvolume + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: ZFS Pool where the volume is created + jsonPath: .spec.poolName + name: ZPool + type: string + - description: Node where the volume is created + jsonPath: .spec.ownerNodeID + name: NodeID + type: string + - description: Size of the volume + jsonPath: .spec.capacity + name: Size + type: string + - description: Status of the volume + jsonPath: .status.state + name: Status + type: string + - description: filesystem created on the volume + jsonPath: .spec.fsType + name: Filesystem + type: string + - description: Age of the volume + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: ZFSVolume represents a ZFS based volume + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: VolumeInfo defines ZFS volume parameters for all modes in + which ZFS volumes can be created like - ZFS volume with filesystem, + ZFS Volume exposed as zfs or ZFS volume exposed as raw block device. + Some of the parameters can be only set during creation time (as specified + in the details of the parameter), and a few are editable. In case of + Cloned volumes, the parameters are assigned the same values as the source + volume. + properties: + capacity: + description: Capacity of the volume + minLength: 1 + type: string + compression: + description: 'Compression specifies the block-level compression algorithm + to be applied to the ZFS Volume. The value "on" indicates ZFS to + use the default compression algorithm. The default compression algorithm + used by ZFS will be either lzjb or, if the lz4_compress feature + is enabled, lz4. Compression property can be edited after the volume + has been created. The change will only be applied to the newly-written + data. For instance, if the Volume was created with "off" and the + next day the compression was modified to "on", the data written + prior to setting "on" will not be compressed. Default Value: off.' + pattern: ^(on|off|lzjb|zstd|zstd-[1-9]|zstd-1[0-9]|gzip|gzip-[1-9]|zle|lz4)$ + type: string + dedup: + description: 'Deduplication is the process for removing redundant + data at the block level, reducing the total amount of data stored. + If a file system has the dedup property enabled, duplicate data + blocks are removed synchronously. The result is that only unique + data is stored and common components are shared among files. Deduplication + can consume significant processing power (CPU) and memory as well + as generate additional disk IO. Before creating a pool with deduplication + enabled, ensure that you have planned your hardware requirements + appropriately and implemented appropriate recovery practices, such + as regular backups. As an alternative to deduplication consider + using compression=lz4, as a less resource-intensive alternative. + should be enabled on the zvol. Dedup property can be edited after + the volume has been created. Default Value: off.' + enum: + - "on" + - "off" + type: string + encryption: + description: 'Enabling the encryption feature allows for the creation + of encrypted filesystems and volumes. ZFS will encrypt file and + zvol data, file attributes, ACLs, permission bits, directory listings, + FUID mappings, and userused / groupused data. ZFS will not encrypt + metadata related to the pool structure, including dataset and snapshot + names, dataset hierarchy, properties, file size, file holes, and + deduplication tables (though the deduplicated data itself is encrypted). + Default Value: off.' + pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$ + type: string + fsType: + description: 'FsType specifies filesystem type for the zfs volume/dataset. + If FsType is provided as "zfs", then the driver will create a ZFS + dataset, formatting is not required as underlying filesystem is + ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver + will create a ZVOL and format the volume accordingly. FsType can + not be modified once volume has been provisioned. Default Value: + ext4.' + type: string + keyformat: + description: KeyFormat specifies format of the encryption key The + supported KeyFormats are passphrase, raw, hex. + enum: + - passphrase + - raw + - hex + type: string + keylocation: + description: KeyLocation is the location of key for the encryption + type: string + ownerNodeID: + description: OwnerNodeID is the Node ID where the ZPOOL is running + which is where the volume has been provisioned. OwnerNodeID can + not be edited after the volume has been provisioned. + minLength: 1 + type: string + poolName: + description: poolName specifies the name of the pool where the volume + has been created. PoolName can not be edited after the volume has + been provisioned. + minLength: 1 + type: string + recordsize: + description: 'Specifies a suggested block size for files in the file + system. The size specified must be a power of two greater than or + equal to 512 and less than or equal to 128 Kbytes. RecordSize property + can be edited after the volume has been created. Changing the file + system''s recordsize affects only files created afterward; existing + files are unaffected. Default Value: 128k.' + minLength: 1 + type: string + shared: + description: Shared specifies whether the volume can be shared among + multiple pods. If it is not set to "yes", then the ZFS-LocalPV Driver + will not allow the volumes to be mounted by more than one pods. + enum: + - "yes" + - "no" + type: string + snapname: + description: SnapName specifies the name of the snapshot where the + volume has been cloned from. Snapname can not be edited after the + volume has been provisioned. + type: string + thinProvision: + description: 'ThinProvision describes whether space reservation for + the source volume is required or not. The value "yes" indicates + that volume should be thin provisioned and "no" means thick provisioning + of the volume. If thinProvision is set to "yes" then volume can + be provisioned even if the ZPOOL does not have the enough capacity. + If thinProvision is set to "no" then volume can be provisioned only + if the ZPOOL has enough capacity and capacity required by volume + can be reserved. ThinProvision can not be modified once volume has + been provisioned. Default Value: no.' + enum: + - "yes" + - "no" + type: string + volblocksize: + description: 'VolBlockSize specifies the block size for the zvol. + The volsize can only be set to a multiple of volblocksize, and cannot + be zero. VolBlockSize can not be edited after the volume has been + provisioned. Default Value: 8k.' + minLength: 1 + type: string + volumeType: + description: volumeType determines whether the volume is of type "DATASET" + or "ZVOL". If fstype provided in the storageclass is "zfs", a volume + of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs" + is mentioned as fstype in the storageclass, then a volume of type + zvol will be created, which will be further formatted as the fstype + provided in the storageclass. VolumeType can not be modified once + volume has been provisioned. + enum: + - ZVOL + - DATASET + type: string + required: + - capacity + - ownerNodeID + - poolName + - volumeType + type: object + status: + description: VolStatus string that specifies the current state of the + volume provisioning request. + properties: + state: + description: State specifies the current state of the volume provisioning + request. The state "Pending" means that the volume creation request + has not processed yet. The state "Ready" means that the volume has + been created and it is ready for the use. + enum: + - Pending + - Ready + - Failed + type: string + type: object + required: + - spec + type: object + served: true + storage: true + subresources: {} + - additionalPrinterColumns: + - description: ZFS Pool where the volume is created + jsonPath: .spec.poolName + name: ZPool + type: string + - description: Node where the volume is created + jsonPath: .spec.ownerNodeID + name: Node + type: string + - description: Size of the volume + jsonPath: .spec.capacity + name: Size + type: string + - description: Status of the volume + jsonPath: .status.state + name: Status + type: string + - description: filesystem created on the volume + jsonPath: .spec.fsType + name: Filesystem + type: string + - description: Age of the volume + jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1alpha1 + schema: + openAPIV3Schema: + description: ZFSVolume represents a ZFS based volume + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: VolumeInfo defines ZFS volume parameters for all modes in + which ZFS volumes can be created like - ZFS volume with filesystem, + ZFS Volume exposed as zfs or ZFS volume exposed as raw block device. + Some of the parameters can be only set during creation time (as specified + in the details of the parameter), and a few are editable. In case of + Cloned volumes, the parameters are assigned the same values as the source + volume. + properties: + capacity: + description: Capacity of the volume + minLength: 1 + type: string + compression: + description: 'Compression specifies the block-level compression algorithm + to be applied to the ZFS Volume. The value "on" indicates ZFS to + use the default compression algorithm. The default compression algorithm + used by ZFS will be either lzjb or, if the lz4_compress feature + is enabled, lz4. Compression property can be edited after the volume + has been created. The change will only be applied to the newly-written + data. For instance, if the Volume was created with "off" and the + next day the compression was modified to "on", the data written + prior to setting "on" will not be compressed. Default Value: off.' + pattern: ^(on|off|lzjb|gzip|gzip-[1-9]|zle|lz4)$ + type: string + dedup: + description: 'Deduplication is the process for removing redundant + data at the block level, reducing the total amount of data stored. + If a file system has the dedup property enabled, duplicate data + blocks are removed synchronously. The result is that only unique + data is stored and common components are shared among files. Deduplication + can consume significant processing power (CPU) and memory as well + as generate additional disk IO. Before creating a pool with deduplication + enabled, ensure that you have planned your hardware requirements + appropriately and implemented appropriate recovery practices, such + as regular backups. As an alternative to deduplication consider + using compression=lz4, as a less resource-intensive alternative. + should be enabled on the zvol. Dedup property can be edited after + the volume has been created. Default Value: off.' + enum: + - "on" + - "off" + type: string + encryption: + description: 'Enabling the encryption feature allows for the creation + of encrypted filesystems and volumes. ZFS will encrypt file and + zvol data, file attributes, ACLs, permission bits, directory listings, + FUID mappings, and userused / groupused data. ZFS will not encrypt + metadata related to the pool structure, including dataset and snapshot + names, dataset hierarchy, properties, file size, file holes, and + deduplication tables (though the deduplicated data itself is encrypted). + Default Value: off.' + pattern: ^(on|off|aes-128-[c,g]cm|aes-192-[c,g]cm|aes-256-[c,g]cm)$ + type: string + fsType: + description: 'FsType specifies filesystem type for the zfs volume/dataset. + If FsType is provided as "zfs", then the driver will create a ZFS + dataset, formatting is not required as underlying filesystem is + ZFS anyway. If FsType is ext2, ext3, ext4 or xfs, then the driver + will create a ZVOL and format the volume accordingly. FsType can + not be modified once volume has been provisioned. Default Value: + ext4.' + type: string + keyformat: + description: KeyFormat specifies format of the encryption key The + supported KeyFormats are passphrase, raw, hex. + enum: + - passphrase + - raw + - hex + type: string + keylocation: + description: KeyLocation is the location of key for the encryption + type: string + ownerNodeID: + description: OwnerNodeID is the Node ID where the ZPOOL is running + which is where the volume has been provisioned. OwnerNodeID can + not be edited after the volume has been provisioned. + minLength: 1 + type: string + poolName: + description: poolName specifies the name of the pool where the volume + has been created. PoolName can not be edited after the volume has + been provisioned. + minLength: 1 + type: string + recordsize: + description: 'Specifies a suggested block size for files in the file + system. The size specified must be a power of two greater than or + equal to 512 and less than or equal to 128 Kbytes. RecordSize property + can be edited after the volume has been created. Changing the file + system''s recordsize affects only files created afterward; existing + files are unaffected. Default Value: 128k.' + minLength: 1 + type: string + snapname: + description: SnapName specifies the name of the snapshot where the + volume has been cloned from. Snapname can not be edited after the + volume has been provisioned. + type: string + thinProvision: + description: 'ThinProvision describes whether space reservation for + the source volume is required or not. The value "yes" indicates + that volume should be thin provisioned and "no" means thick provisioning + of the volume. If thinProvision is set to "yes" then volume can + be provisioned even if the ZPOOL does not have the enough capacity. + If thinProvision is set to "no" then volume can be provisioned only + if the ZPOOL has enough capacity and capacity required by volume + can be reserved. ThinProvision can not be modified once volume has + been provisioned. Default Value: no.' + enum: + - "yes" + - "no" + type: string + volblocksize: + description: 'VolBlockSize specifies the block size for the zvol. + The volsize can only be set to a multiple of volblocksize, and cannot + be zero. VolBlockSize can not be edited after the volume has been + provisioned. Default Value: 8k.' + minLength: 1 + type: string + volumeType: + description: volumeType determines whether the volume is of type "DATASET" + or "ZVOL". If fstype provided in the storageclass is "zfs", a volume + of type dataset will be created. If "ext4", "ext3", "ext2" or "xfs" + is mentioned as fstype in the storageclass, then a volume of type + zvol will be created, which will be further formatted as the fstype + provided in the storageclass. VolumeType can not be modified once + volume has been provisioned. + enum: + - ZVOL + - DATASET + type: string + required: + - capacity + - ownerNodeID + - poolName + - volumeType + type: object + status: + description: VolStatus string that specifies the current state of the + volume provisioning request. + properties: + state: + description: State specifies the current state of the volume provisioning + request. The state "Pending" means that the volume creation request + has not processed yet. The state "Ready" means that the volume has + been created and it is ready for the use. + enum: + - Pending + - Ready + type: string + type: object + required: + - spec + type: object + served: true + storage: false + subresources: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/system/openebs/6.0.1/icon-small.webp b/system/openebs/6.0.1/icon-small.webp new file mode 100644 index 0000000000000000000000000000000000000000..5cb1c977f69716761f46bf3463fd636d6ba31fbc GIT binary patch literal 698 zcmV;r0!95&Nk&Gp0ssJ4MM6+kP&il$0000G0000V0018V06|PpNIC%k00EG5YrAQ? z+P`bx*lumxM&+bRXZ0B=&DOS6*=Fy`HrD$TYwfdEL`;BXx1HI_GJ8&{Z_#<{oW6Dq zEp+-aHfn?eT`%yOeiwRM9kX75Yws-)purJ&J3KA&&IKk$*y_L@Gb?+C*Dq#f;6dKf ziLIRXt8PrQKLD?bXSD4vK)3Q@@-7SbR-;?xq`+c}p6UIY{o&y<2YhcBSN2j!UnD2c z7E8E52w&(=>lEcrkw8dnvXpuILB4}SMJZ+pkPyK91jWzs2;a<$Yb`JPmBn`^_a}LA zE&pc;IBD^-cI;FvGoH~)27<+=&Ti^{(xhr_lRElt#7Nkl{>l+tDy z3D%4Ez0Lpt{`zC4f5A}%M4=SSwh9S^UuWm12X$NP86LIYKmHgU3FNYs=~GF|Ghp%^ zKGQW~o~#)xsaf!CMNYKVl5e2cwLQPQ(C$s=SkAdkIL#jCy zMmW#RpWKi(FA~b6l*_~q1)Tib>BYUBGb_PR?%W1^fiH9r52ZRR)hBEh{!IdSYXy;p gw-e2d?*wuqNewSkYeX*QRQ9atKU3lnGz)rw0P}c3dH?_b literal 0 HcmV?d00001 diff --git a/system/openebs/6.0.1/icon.webp b/system/openebs/6.0.1/icon.webp new file mode 100644 index 0000000000000000000000000000000000000000..31c794d120a90534975032dcc2dedfa4e67e428a GIT binary patch literal 5462 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