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. The only difference between them is their scope:
GlobalHelm and GlobalRepository—these are globally scoped and applied to all workspaces with matching 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.
Wayfinder does not come with any default repositories.
Helm and Repository—these are scoped to a specific workspace for matching clusters within that workspace.
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.
When defining a GlobalHelm package, you can choose to make it available as a Capability that can be enabled or disabled by default in cluster plans. Optionally, workspace users can enable or disable capabilities on clusters.
To make a GlobalHelm a capability, you add a set of annotations and an extra label selector to the package—see Make global package a capability.
A release is an installation instance. Package definitions include cluster label selectors (
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 deployed into Wayfinder
Packages are deployed using the CLI as detailed in Apply global packages procedure.
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):
In your workspace, navigate to Resources > Packages.
The Packages page is displayed. You can click the Releases tab to see all releases of packages to your clusters.
In Wayfinder settings, navigate to Cluster configuration > Packages.
To view available packages and associated releases (CLI):
Run the following CLI commands to view:
wf get helm
wf get globalhelmfor admin
wf get repository
wf get globalrepositoryfor admin
wf get helmrelease
wf get repositoryrelease
# View the helm packages
$ wf get helm
NAME STATUS AGE
gke-certificates Success 12d
# View the release objects
$ wf get helmrelease
NAME STATUS AGE
gke-certificates Success 12d