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
The charts themselves are embedded in the CLI binary, and values are dynamically updated depending on configuration. The charts can be found in “./charts/“. Values should be added in the chart's "values.yaml“ file if they are static i.e. don't depend on user input, otherwise they need to be dynamically created depending on a user's configuration.
Helm logic should not be implemented outside this package. All values loading, parsing, installing, uninstalling, and updating of charts should be implemented here. As such, the helm package requires to implement some CSP specific logic. However, exported functions should be CSP agnostic and take a cloudprovider.Provider as argument. As such, the number of exported functions should be kept minimal.
Copyright (c) Edgeless Systems GmbH ¶
SPDX-License-Identifier: AGPL-3.0-only
Overrides contains helm values that are dynamically injected into the helm charts.
Package helm provides types and functions shared across services.
Index ¶
Constants ¶
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 ¶
var ErrConfirmationMissing = errors.New("action requires user confirmation")
ErrConfirmationMissing signals that an action requires user confirmation.
Functions ¶
This section is empty.
Types ¶
type Applier ¶
type Applier interface { Apply(ctx context.Context) error SaveCharts(chartsDir string, fileHandler file.Handler) error }
Applier runs the Helm actions.
type ChartApplyExecutor ¶
type ChartApplyExecutor struct {
// contains filtered or unexported fields
}
ChartApplyExecutor is a Helm action executor that applies all actions.
func (ChartApplyExecutor) Apply ¶
func (c ChartApplyExecutor) Apply(ctx context.Context) error
Apply applies the charts in order.
func (ChartApplyExecutor) SaveCharts ¶
func (c ChartApplyExecutor) SaveCharts(chartsDir string, fileHandler file.Handler) error
SaveCharts saves all Helm charts and their values to the given directory.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a Helm client to apply charts.
type OpenStackValues ¶ added in v2.16.1
type OpenStackValues struct { DeployYawolLoadBalancer bool FloatingIPPoolID string YawolFlavorID string YawolImageID string }
OpenStackValues are helm values for OpenStack.
type Options ¶
type Options struct { CSP cloudprovider.Provider AttestationVariant variant.Variant Conformance bool DeployCSIDriver bool AllowDestructive bool Force bool K8sVersion versions.ValidK8sVersion MicroserviceVersion semver.Semver HelmWaitMode WaitMode ApplyTimeout time.Duration OpenStackValues *OpenStackValues }
Options are options for loading charts.
type ReleaseVersionClient ¶
type ReleaseVersionClient struct {
// contains filtered or unexported fields
}
ReleaseVersionClient is a client that can retrieve the version of a helm release.
func NewReleaseVersionClient ¶
func NewReleaseVersionClient(kubeConfig []byte, log debugLog) (*ReleaseVersionClient, error)
NewReleaseVersionClient creates a new ReleaseVersionClient.
func (ReleaseVersionClient) Versions ¶
func (c ReleaseVersionClient) Versions() (ServiceVersions, error)
Versions queries the cluster for running versions and returns a map of releaseName -> version.
type ServiceVersions ¶
type ServiceVersions struct {
// contains filtered or unexported fields
}
ServiceVersions bundles the versions of all services that are part of Constellation.
func (ServiceVersions) ConstellationServices ¶
func (s ServiceVersions) ConstellationServices() semver.Semver
ConstellationServices returns the version of the constellation-services release.
func (ServiceVersions) String ¶
func (s ServiceVersions) String() string
String returns a string representation of the ServiceVersions struct.
type WaitMode ¶
type WaitMode string
WaitMode specifies the wait mode for a helm release.
const ( // WaitModeNone specifies that the helm release should not wait for the resources to be ready. WaitModeNone WaitMode = "" // WaitModeWait specifies that the helm release should wait for the resources to be ready. WaitModeWait WaitMode = "wait" // WaitModeAtomic specifies that the helm release should // wait for the resources to be ready and roll back atomically on failure. WaitModeAtomic WaitMode = "atomic" )
Source Files ¶
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. |