helm

package
v2.5.0-pre Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2023 License: AGPL-3.0 Imports: 31 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

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, 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.

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 bool) 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.

Jump to

Keyboard shortcuts

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