rancher-partner-charts/packages
Christophe Jauffret 17c84a06bf
remove overlay
2023-05-12 17:46:30 +02:00
..
ambassador Fix ambassador patch 2021-06-23 18:50:19 -07:00
aquarist-labs/s3gw Charts CI 2022-11-10 16:45:34 -05:00
argo/argo-cd CI Updated Charts 2022-10-26 02:48:21 -04:00
asserts/asserts CI Updated Charts 2022-10-20 20:46:00 -04:00
avesha Charts CI 2022-12-02 16:38:07 -05:00
bitnami CI Updated Charts 2022-10-26 11:53:33 -04:00
btp fix(chronicle): allow remote chart dependencies 2023-04-06 15:59:18 +01:00
cert-manager/cert-manager CI Updated Charts 2022-10-26 02:48:21 -04:00
citrix Migrating citrix charts to automated process 2022-12-02 00:00:00 -05:00
clastix/kamaji CI Updated Charts 2022-10-23 16:31:05 -04:00
cloudcasa/cloudcasa Adding cloudcasa version 3.4.0 2023-04-25 17:10:24 +05:30
cockroach-labs/cockroachdb Migrating cockroachdb 2022-10-26 04:01:31 -04:00
codefresh/cf-runtime Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
confluent/confluent-for-kubernetes Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
crate-io/crate-operator CI Updated Charts 2022-10-26 02:48:21 -04:00
crowdstrike/falcon-sensor Migrating crowdstrike/falcon-sensor chart 2022-12-16 20:00:54 -05:00
datadog Migrating datadog 2022-10-26 05:02:51 -04:00
datawiza/access-broker Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
dell Adding Dell CSI PowerScale 2023-05-04 10:05:36 -06:00
dh2i/dxemssql Removing icon:<url> entry from upstream.yaml since we want to use the one from Chart.yaml 2023-04-24 14:44:47 -06:00
digitalis/vals-operator Removing unneeded PackageVersion 2023-01-31 09:05:01 -07:00
dkube Update Dkube: Changes in package to update Dkube chart 2022-07-07 11:58:37 +05:30
dynatrace/dynatrace-operator Removing packages entries for deprecated charts 2022-12-01 22:41:24 -05:00
elastic CI Updated Charts 2022-10-26 02:48:21 -04:00
external-secrets-operator CI Updated Charts 2022-10-11 16:41:32 -04:00
f5 Update NSM overlay 2023-04-19 12:38:54 -06:00
gitlab/gitlab CI Updated Charts 2022-10-26 11:53:33 -04:00
gluu/flex ci: updating overlay files 2023-05-03 09:01:38 +00:00
gopaddle/gopaddle-lite delete readme.md 2023-04-12 13:15:43 -04:00
haproxy/kubernetes-ingress Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
harbor/harbor CI Updated Charts 2022-10-26 02:48:21 -04:00
hashicorp CI Updated Charts 2022-10-18 13:07:31 -04:00
hpe Add HPE storage exporters and CSI driver cleanup 2023-04-07 09:57:46 -07:00
inaccel/fpga-operator Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
instana/instana-agent Migrating Instana Agent 2022-10-26 11:48:27 -04:00
intel Add questions to intel/qat-device-plugin 2023-03-15 09:48:59 +02:00
jaeger/jaeger-operator CI Updated Charts 2022-10-26 02:48:21 -04:00
jenkins/jenkins CI Updated Charts 2022-10-26 02:48:21 -04:00
jfrog Migrating jfrog artifactory-ha & artifactory-jcr 2022-10-26 03:10:22 -04:00
kasten/k10 Migrating kasten k10 chart 2023-02-03 13:04:36 +05:30
komodor Komodor kick 2022-07-17 15:14:17 +03:00
kong/kong Charts CI 2022-11-10 16:45:34 -05:00
kubecost/cost-analyzer Add Kubecost AWS optimized package 2023-05-03 15:47:31 -07:00
kubemq Add KubeMQ Helm Charts Components 2023-03-18 15:06:35 +02:00
kuma/kuma Fixing some chart logos 2022-12-02 02:07:34 -05:00
linkerd Linkerd chart 2021-09-30 16:51:22 -05:00
loft/loft Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
metallb/metallb CI Updated Charts 2022-10-26 02:48:21 -04:00
minio/operator Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
mongodb/mongodb CI Updated Charts 2022-10-26 02:48:21 -04:00
nats/nats Charts CI 2022-11-10 16:45:34 -05:00
netfoundry/ziti-host Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
neuvector Updating NeuVector chart version to 2.2.4 2022-11-02 01:59:34 +00:00
new-relic/nri-bundle Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
nutanix remove overlay 2023-05-12 17:46:30 +02:00
ondat/ondat-operator Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
openebs/openebs Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
percona fix PR comments 2022-12-22 11:32:24 +04:00
pixie/pixie-operator-chart Fixing some chart logos 2022-12-02 02:07:34 -05:00
portworx Migrating 'portworx' and 'portworx-essentials' config 2022-08-22 20:53:48 -04:00
prophetstor/federatorai Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
quobyte/quobyte-cluster CI Updated Charts 2022-10-20 22:43:14 -04:00
redpanda/redpanda Adding Redpanda upstream 2022-10-11 16:32:30 -04:00
shipa/shipa Fixing some chart logos 2022-12-02 02:07:34 -05:00
softiron Add SoftIron Chart overlay 2021-12-15 07:55:12 -05:00
speedscale/speedscale-operator Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
sumologic/sumologic Charts CI 2022-11-28 22:54:22 -05:00
sysdig/sysdig Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
tetrate-istio Tetrate Istio package 1.12.6 2022-06-21 13:19:43 -07:00
traefik/traefik Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
triggermesh/triggermesh Fixing some chart logos 2022-12-02 02:07:34 -05:00
trilio/k8s-triliovault-operator Migrating k8s-triliovault-operator 2022-10-26 13:28:36 -04:00
universal-crossplane universal-crossplane: add v1.5.2001 2022-04-21 08:12:46 -04:00
weka/csi-wekafsplugin Migrated to automated workflow: 2022-12-01 22:36:04 -05:00
yugabyte Charts CI 2022-11-03 15:30:22 -04:00
README.md Initialize new scripts and make minor changes 2021-06-23 18:50:15 -07:00

README.md

Packages

What is a Package?

A Package represents a grouping of one or more Helm Charts. It is declared within packages/<package>/package.yaml with the following spec:

version: # The version of the generated chart. This value will override the upstream chart's version. Mutually exclusive with packageVersion
packageVersion: 1 # The value range is from 1 to 99. Mutually exclusive with version
workingDir: # The directory within your package that will contain your working copy of the chart (e.g. charts)
url: # A URL pointing to an UpstreamConfiguration
subdirectory: # Optional field for a specific subdirectory for all upstreams
commit: # Optional field for a specific commit if your URL point to a Github Repository
additionalCharts:
# These contain other charts that you would like to package alongside this chart
- workingDir: # same as above
  upstreamOptions:
    # Mutually exclusive with crdOptions
    url: # same as above
    subdirectory: # optional, same as above
    commit: # optional, same as above
  crdOptions:
    # Mutually exclusive with upstreamOptions
    templateDirectory: # A directory within packages/<package>/template that will contain a template for your CRD chart
    crdDirectory: # Where to place your CRDs within a CRD chart (e.g. crds for default charts)
    addCRDValidationToMainChart: # Whether to add additional validation to your main chart to check that the CRD chart is installed.

As seen in the spec above, every Package must have exactly one Chart designated as a main Chart (multiple main Charts are not supported at this time) and all other Charts will be considered AdditionalCharts.

UpstreamOptions

Charts or AdditionalCharts can provide UpstreamOptions with the following possible configurations:

  • Chart Archive: provide the url and optionally subdirectory
  • Github Repository: provide the url (e.g. https://github.com/rancher/charts-build-scripts.git) and optionally a subdirectory and a commit
  • Package: provide a url: packages/<package> and the main Chart from that package can be pulled. You should ensure that a loop is not introduced.
  • Local: provide url: local and the package will assume the contents of workingDir are exactly the chart you want to use.

[AdditionalCharts] CRDOptions

AdditionalCharts can provide CRDOptions instead of UpstreamOptions. These CRDOptions allow the scripts to automatically construct a CRD chart from your main Chart's contents based on the template provided.

A CRD Chart is a Helm Chart whose sole purpose is to install CRDs onto a cluster before the main Chart is installed.

You should not need a CRD chart if your main chart has the following qualities:

  1. Your main chart does not install any CRDs.
  2. Even if your main chart installs CRDs, it never installs resources of that kind as part of the release. In this case, CRDs can just remain in your templates/ directory to be managed by Helm.
  3. Neither option from above applies to you, but you do not need to facilitate automatically upgrading CRDs or providing a way for a user to cleanly delete CRDs via a second Helm release. In this case, the current Helm feature of having your CRDs placed in the crds/ directory should work for you.

Directory Structure

packages/
  <package>/
    package.yaml # A file that represents your package's overall configuration
    generated-changes/
      additional-charts/
        # Contains one directory per additional chart, keeping track of its dependencies and patches
        <additionalChart>/
          generated-changes/
            # Same as above, but no more additionalCharts
      dependencies/
        # Contains one directory per dependency.
        <dependency>
          dependency.yaml # The UpstreamConfiguration of a particular dependency
      exclude/
        # Files that were excluded from upstream verbatim. Follows the same directory structure as the chart
      overlay/
        # Files that were overlaid onto upstream verbatim. Follows the same directory structure as the chart
      patch/
        # Files that were patches from upstream. Follows the same directory structure as the chart and contains Unified Unix Diffs
    templates/ 
      # Contains any templates. Currently only used by CRDOptions

Developer Workflow

Developers will use the following commands to work with packages:

  • make prepare: Pulls in your charts from upstream and creates a basic generated-changes/ directory with your dependencies from upstream

  • make patch: Updates your generated-changes/ to reflect the difference between upstream and the current working directory of your branch. Requires prepare

  • make charts: Runs prepare and then exports your charts to assets/ and charts/ and generates or updates your index.yaml. This is expected to be run before submitting a PR. Once this has been run and pushed to a branch, a Rancher Helm Repository that points to a branch that has these directories with the index.yaml should be able to find and deploy working copies of your chart.

  • make clean: Cleans up all the working directories of charts to get your repository ready for a PR

To update your working copy of the charts-build-scripts after rebasing against upstream, run:

  • make pull-scripts: Pulls in the version of the charts-build-scripts indicated in scripts

To check whether the new packages you are introducing will cause any issues with upstream that contains already released charts, run:

  • make validate: Validates your current repository branch against all the repository branches indicated in your configuration.yaml

Common Workflow

  • Make or update the packages/<package>/package.yaml to point to your upstream and set any other chart options
  • Run PACKAGE=<package> make prepare to pull in your upstream repositories
    • Note: On a prepare, the charts-build-scripts will automatically replace your charts existing dependencies with dependencies that will show up in generated-changes/dependencies/<dependency>/dependency.yaml. Since the spec of this file follows the UpstreamConfiguration described above, you can modify this to point your dependencies to a local chart (rooted at generated-changes/dependencies/<dependency>/), another package, a Chart archive (e.g. point it to a newer version of the dependency), or a Github Repository (at a subdirectory / commit).
    • Note: As part of replacing your dependencies, the Chart.yaml and requirements.yaml are considered "Managed Files". These files are prone to having conflicts and may need to be deleted / recreated on a prepare if there are conflicts. Please open up an issue if you encounter frequent bugs with these files so that we can take a look.
  • Make changes to the relevant working directories
  • Run PACKAGE=<package> make patch to save your changes
  • Run make clean. Make a commit with your packages/ changes
  • Run make charts. Make a commit with your charts/ changes
  • Test your changes by pushing it to a branch. Once it is available at such a branch, it can be picked up by any tools that can point to Github based Helm Repositories (e.g. Rancher Cluster Explorer Apps & Marketplace).
    • Note: If you encounter bugs on testing and need to modify your commits, it is recommended that you continue to keep your packages/ changes and charts/ changes separate. Ideally, you should have 1+ commits that modify the packages/ directory for reviewers to view and 1 commit that modifies the charts/ directory as a generated changes commit.
  • Once you are ready to make a PR, ensure the last commit contains only the generated make charts changes and submit a PR. The PR workflow will automatically run make validate to ensure that your current repository wouldn't introduce any conflicts during a release.
  • Open up a PR with your changes.

Troubleshooting

Open up an issue on https://github.com/rancher/charts-build-scripts

Maintainers