Documentation
¶
Index ¶
Constants ¶
const DefaultUpdateTimeout = 5 * time.Minute
#595 - DefaultUpdateTimeout is in ns Per https://pkg.go.dev/helm.sh/helm/v3/pkg/action#Upgrade
const ProviderName = "helm3"
ProviderName - helm provider name
Variables ¶
var ErrKeelConfigNotFound = errors.New("keel configuration not found")
ErrKeelConfigNotFound - default error when keel configuration for chart is not defined
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
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 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) 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