Skip to main content
Version: 1.4

Overview of Helm Packages

Helm packages provide a delivery method for installing and/or bootstrapping multiple clusters with software. Wayfinder uses packages to maintain its own package installations. Wayfinder administrators and workspace administrators can also use packages as building blocks to install software in clusters in order to achieve standardization, ensure company security policies, and save DevOps time.

Wayfinder automatically installs Flux on every workspace cluster, in the wf-manager namespace. During Wayfinder installation, Flux is preloaded with a number of HelmRepositories alongside the Wayfinder-maintained collection of charts. Flux helm-controller lets you declaratively manage helm chart releases, as described below.

Using packages to deploy software on multiple clusters

As a Wayfinder administrator, you can deploy applications across multiple clusters by creating global packages in the management cluster. The package configuration determines which clusters a software package applies to. When a cluster matches the selection criteria, the software package is automatically installed on that cluster, whether it's an existing cluster, or a cluster that is being created.

Click this demo to see this in action.

Package definition objects

There are two forms of packages:

  • GlobalHelm and GlobalRepository—these are globally scoped and applied to some or all workspace clusters.

    GlobalHelm specifies the source helm chart for the software you want to deploy. GlobalRepository specifies a helm repository to make available in clusters, including any secrets required. Both of these objects include cluster label selectors which, when matched to clusters, will cause the software to be installed on those clusters.

    You can have one GlobalRepository for multiple GlobalHelm objects. If a GlobalHelm refers to a different repository (other than the ones preloaded with Flux), then you can add another GlobalRepository object.

  • Helm and Repository—these are scoped to a specific workspace and the clusters contained in it.

    These objects are automatically generated when you create GlobalHelm and GlobalRepository packages. Read-only Helm and Repository are created for the relevant workspaces. Workspace admins can also create their own custom Helm or Repository objects in their workspace. This requires some knowledge of Flux.

See Package Definition for some yaml examples.

Release objects

A release is an installation instance. Package definitions include cluster label selectors (MatchLabels and/or MatchExpressions) to filter on the cluster labels within the associated workspace. When a cluster matches a label selector, a Release object is created that represents the installation of the package into a specific cluster.

For more information, see:

Software delivery flow using packages

This diagram illustrates how a Wayfinder admin can use packages to deploy software across multiple clusters.

How packages are installed

View available Helm packages and releases

You can view packages available to a workspace, or to the admin workspace, in the UI or CLI. If you see available packages but no releases it means there are no clusters in the workspace that match the cluster label selectors in the Helm package. When there is both a package and a release, the package is installed automatically on the cluster(s) matching the label selectors. See Software delivery flow using packages for more information.

To view available packages and associated releases (UI):

  • Workspace members

    In your workspace, navigate to Resources > Packages.

    The Packages page is displayed. You can click the Releases tab to see the available releases.

  • Wayfinder admins

    In Wayfinder settings, navigate to Cluster configuration > Packages.

To view available packages and associated releases (CLI):

  1. Run the following CLI commands to view:

    • Helm packages

      wf get helm
      wf get globalhelm for admin

    • Repository packages

      wf get repository
      wf get globalrepository for admin

    • Release objects

      wf get helmrelease
      wf get repositoryrelease

    For example:

    # View the helm packages
    $ wf get helm
    gke-certificates Success 12d

    # View the release objects
    $ wf get helmrelease
    gke-certificates Success 12d

Apply global packages

As a Wayfinder administrator, you can apply GlobalHelm and GlobalRepository packages. You can do so regardless of your current default workspace—as global objects they will be applied globally, and will be automatically installed on any cluster that matches the package label selectors, in any workspace.

To apply global packages:

  1. Run the applicable CLI command below.

    • GlobalHelm package: wf apply GLOBALHELMOBJECT.yaml
    • GlobalRepository package: wf apply GLOBALREPOSITORYOBJECT.yaml

    See Package Definitions for how to define these objects.