helm3

package
v0.0.0-...-2174185 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MPL-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultUpdateTimeout = 5 * time.Minute

#595 - DefaultUpdateTimeout is in ns Per https://pkg.go.dev/helm.sh/helm/v3/pkg/action#Upgrade

View Source
const ProviderName = "helm3"

ProviderName - helm provider name

Variables

View Source
var ErrKeelConfigNotFound = errors.New("keel configuration not found")

ErrKeelConfigNotFound - default error when keel configuration for chart is not defined

View Source
var (
	ErrPolicyNotSpecified = errors.New("policy not specified")
)

ErrPolicyNotSpecified helm related errors

Functions

This section is empty.

Types

type Helm3Implementer

type Helm3Implementer struct {
	// actionConfig *action.Configuration
	HelmDriver    string
	KubeContext   string
	KubeToken     string
	KubeAPIServer string
}

Helm3Implementer - actual helm3 implementer

func NewHelm3Implementer

func NewHelm3Implementer() *Helm3Implementer

NewHelm3Implementer - get new helm implementer

func (*Helm3Implementer) ListReleases

func (i *Helm3Implementer) ListReleases() ([]*release.Release, error)

ListReleases - list available releases

func (*Helm3Implementer) UpdateReleaseFromChart

func (i *Helm3Implementer) UpdateReleaseFromChart(rlsName string, chart *chart.Chart, vals map[string]string, namespace string, opts ...bool) (*release.Release, error)

UpdateReleaseFromChart - update release from chart

type ImageDetails

type ImageDetails struct {
	RepositoryPath  string `json:"repository"`
	TagPath         string `json:"tag"`
	DigestPath      string `json:"digest"`
	ReleaseNotes    string `json:"releaseNotes"`
	ImagePullSecret string `json:"imagePullSecret"`
}

ImageDetails - image details

type Implementer

type Implementer interface {
	// ListReleases(opts ...helm.ReleaseListOption) ([]*release.Release, error)
	ListReleases() ([]*release.Release, error)
	UpdateReleaseFromChart(rlsName string, chart *chart.Chart, vals map[string]string, namespace string, opts ...bool) (*release.Release, error)
}

Implementer - generic helm implementer used to abstract actual implementation

type KeelChartConfig

type KeelChartConfig struct {
	Policy               string            `json:"policy"`
	MatchTag             bool              `json:"matchTag"`
	MatchPreRelease      bool              `json:"matchPreRelease"`
	Trigger              types.TriggerType `json:"trigger"`
	PollSchedule         string            `json:"pollSchedule"`
	Approvals            int               `json:"approvals"`        // Minimum required approvals
	ApprovalDeadline     int               `json:"approvalDeadline"` // Deadline in hours
	Images               []ImageDetails    `json:"images"`
	NotificationChannels []string          `json:"notificationChannels"` // optional notification channels

	Plc policy.Policy `json:"-"`
}

KeelChartConfig - keel related configuration taken from values.yaml

type Manager

type Manager interface {
	Images() ([]*image.Reference, error)
}

Manager - high level interface into helm provider related data used by triggers

type Provider

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

Provider - helm3 provider, responsible for managing release updates

func NewProvider

func NewProvider(implementer Implementer, sender notification.Sender, approvalManager approvals.Manager) *Provider

NewProvider - create new Helm provider

func (*Provider) GetName

func (p *Provider) GetName() string

GetName - get provider name

func (*Provider) Start

func (p *Provider) Start() error

Start - starts kubernetes provider, waits for events

func (*Provider) Stop

func (p *Provider) Stop()

Stop - stops kubernetes provider

func (*Provider) Submit

func (p *Provider) Submit(event types.Event) error

Submit - submit event to provider

func (*Provider) TrackedImages

func (p *Provider) TrackedImages() ([]*types.TrackedImage, error)

TrackedImages - returns tracked images from all releases that have keel configuration

type Root

type Root struct {
	Keel KeelChartConfig `json:"keel"`
}

Root - root element of the values yaml

type UpdatePlan

type UpdatePlan struct {
	Namespace string
	Name      string

	Config *KeelChartConfig

	// chart
	Chart *hapi_chart.Chart

	// values to update path=value
	Values map[string]string

	// Current (last seen cluster version)
	CurrentVersion string
	// New version that's already in the deployment
	NewVersion string

	// ReleaseNotes is a slice of combined release notes.
	ReleaseNotes []string

	// used as fix to bug in chartutil.coalesce v3.1.2
	EmptyConfig bool
}

UpdatePlan - release update plan

Jump to

Keyboard shortcuts

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