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