helm

package
v2.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2023 License: AGPL-3.0 Imports: 34 Imported by: 0

README

Chart upgrades

All services that are installed via helm-install are upgraded via helm-upgrade. Two aspects are not full covered by running helm-upgrade: CRDs and values. While helm-install can install CRDs if they are contained in a chart's crds folder, upgrade won't change any installed CRDs. Furthermore, new values introduced with a new version of a chart will not be installed into the cluster if the --reuse-values flag is set. Nevertheless, we have to rely on the values already present in the cluster because some of the values are set by the bootstrapper during installation. Because upgrades should be a CLI-only operation and we want to avoid the behaviour of --reuse-values, we fetch the cluster values and merge them with any new values.

Here is how we manage CRD upgrades for each chart.

Cilium

  • CRDs are updated by cilium-operator.

cert-manager

  • installCRDs flag is set during upgrade. This flag is managed by cert-manager. cert-manager is in charge of correctly upgrading the CRDs.
  • WARNING: upgrading cert-manager might break other installations of cert-manager in the cluster, if those other installation are not on the same version as the Constellation-manager installation. This is due to the cluster-wide CRDs.

Operators

  • Manually update CRDs before upgrading the chart. Update by running applying the CRDs found in the operators/crds/ folder.

Constellation-services

  • There currently are no CRDs in this chart.

Documentation

Overview

Package helm provides a higher level interface to the Helm GO SDK.

It is used by the CLI to: - load embedded charts - install charts - update helm releases - get versions for installed helm releases - create local backups before running service upgrades

Index

Constants

View Source
const (
	// AllowDestructive is a named bool to signal that destructive actions have been confirmed by the user.
	AllowDestructive = true
	// DenyDestructive is a named bool to signal that destructive actions have not been confirmed by the user yet.
	DenyDestructive = false
)

Variables

View Source
var ErrConfirmationMissing = errors.New("action requires user confirmation")

ErrConfirmationMissing signals that an action requires user confirmation.

Functions

This section is empty.

Types

type ChartLoader

type ChartLoader struct {
	// contains filtered or unexported fields
}

ChartLoader loads embedded helm charts.

func NewLoader added in v2.3.0

func NewLoader(csp cloudprovider.Provider, k8sVersion versions.ValidK8sVersion) *ChartLoader

NewLoader creates a new ChartLoader.

func (*ChartLoader) Load

func (i *ChartLoader) Load(config *config.Config, conformanceMode bool, helmWaitMode helm.WaitMode, masterSecret, salt []byte) ([]byte, error)

Load the embedded helm charts.

type Client added in v2.3.0

type Client struct {
	// contains filtered or unexported fields
}

Client handles interaction with helm and the cluster.

func NewClient added in v2.3.0

func NewClient(client crdClient, kubeConfigPath, helmNamespace string, log debugLog) (*Client, error)

NewClient returns a new initializes client for the namespace Client.

func (*Client) GetValues added in v2.4.0

func (c *Client) GetValues(release string) (map[string]any, error)

GetValues queries the cluster for the values of the given release.

func (*Client) Upgrade added in v2.4.0

func (c *Client) Upgrade(ctx context.Context, config *config.Config, timeout time.Duration, allowDestructive, force bool, upgradeID string) error

Upgrade runs a helm-upgrade on all deployments that are managed via Helm. If the CLI receives an interrupt signal it will cancel the context. Canceling the context will prompt helm to abort and roll back the ongoing upgrade.

func (*Client) Versions added in v2.6.0

func (c *Client) Versions() (ServiceVersions, error)

Versions queries the cluster for running versions and returns a map of releaseName -> version.

type ServiceVersions added in v2.7.0

type ServiceVersions struct {
	// contains filtered or unexported fields
}

ServiceVersions bundles the versions of all services that are part of Constellation.

func NewServiceVersions added in v2.7.0

func NewServiceVersions(cilium, certManager, constellationOperators, constellationServices string) ServiceVersions

NewServiceVersions returns a new ServiceVersions struct.

func (ServiceVersions) CertManager added in v2.7.0

func (s ServiceVersions) CertManager() string

CertManager returns the version of the cert-manager release.

func (ServiceVersions) Cilium added in v2.7.0

func (s ServiceVersions) Cilium() string

Cilium returns the version of the Cilium release.

func (ServiceVersions) ConstellationOperators added in v2.7.0

func (s ServiceVersions) ConstellationOperators() string

ConstellationOperators returns the version of the constellation-operators release.

func (ServiceVersions) ConstellationServices added in v2.7.0

func (s ServiceVersions) ConstellationServices() string

ConstellationServices returns the version of the constellation-services release.

Directories

Path Synopsis
Package imageversion contains the pinned container images for the helm charts.
Package imageversion contains the pinned container images for the helm charts.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL