helmbase

package module
v0.0.14 Latest Latest
Warning

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

Go to latest
Published: May 16, 2022 License: Apache-2.0 Imports: 5 Imported by: 0

README

Pulumi Helm Chart Component Base

This repository contains boilerplate for creating a Pulumi Component Package which wraps a Kubernetes Helm Chart, and gives it a strongly typed interface. This exposes the chart to the Pulumi's Infrastructure as Code tool in multiple languages, including JavaScript, TypeScript, Python, Go, and C#, and adds compile-time type-checking for chart parameters, built-in documentation, and more.

Documentation

Index

Constants

View Source
const (
	FieldHelmStatusOutput = "status"
	FieldHelmOptionsInput = "helmOptions"
)

Variables

This section is empty.

Functions

func Construct

func Construct(ctx *pulumi.Context, c Chart, typ, name string,
	args ChartArgs, inputs provider.ConstructInputs, opts pulumi.ResourceOption) (*provider.ConstructResult, error)

Construct is the RPC call that initiates the creation of a new Chart component. It creates, registers, and returns the resulting component object. This contains most of the boilerplate so that the calling component can be relatively simple.

func InitDefaults

func InitDefaults(args *ReleaseType, chart, repo string, values interface{})

InitDefaults copies the default chart, repo, and values onto the args struct.

func To

func To(args *ReleaseType) *helmv3.ReleaseArgs

To turns the args struct into a Helm-ready ReleaseArgs struct.

Types

type Chart

type Chart interface {
	pulumi.ComponentResource
	// Type returns the fully qualified Pulumi type token for this resource.
	Type() string
	// SetOutputs registers the resulting Helm Release child resource, after it
	// has been created and registered. This contains the Status, among other things.
	SetOutputs(out helmv3.ReleaseStatusOutput)
	// DefaultChartName returns the default name for this chart.
	DefaultChartName() string
	// DefaultRepo returns the default Helm repo URL for this chart.
	DefaultRepoURL() string
}

Chart represents a strongly typed Helm Chart resource. For the most part, it merely participates in the Pulumi resource lifecycle (by virtue of extending pulumi.ComponentResource), but it also offers a few specific helper methods.

type ChartArgs

type ChartArgs interface {
	R() **ReleaseType
}

ChartArgs is a properly annotated structure (with `pulumi:""` and `json:""` tags) which carries the strongly typed argument payload for the given Chart resource.

type ReleaseType

type ReleaseType struct {
	// If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used.
	Atomic pulumi.BoolPtrInput `pulumi:"atomic"`
	// Chart name to be installed. A path may be used.
	Chart pulumi.StringInput `pulumi:"chart"`
	// Allow deletion of new resources created in this upgrade when upgrade fails.
	CleanupOnFail pulumi.BoolPtrInput `pulumi:"cleanupOnFail"`
	// Create the namespace if it does not exist.
	CreateNamespace pulumi.BoolPtrInput `pulumi:"createNamespace"`
	// Run helm dependency update before installing the chart.
	DependencyUpdate pulumi.BoolPtrInput `pulumi:"dependencyUpdate"`
	// Add a custom description
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored.
	Devel pulumi.BoolPtrInput `pulumi:"devel"`
	// Prevent CRD hooks from, running, but run other hooks.  See helm install --no-crd-hook
	DisableCRDHooks pulumi.BoolPtrInput `pulumi:"disableCRDHooks"`
	// If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema
	DisableOpenapiValidation pulumi.BoolPtrInput `pulumi:"disableOpenapiValidation"`
	// Prevent hooks from running.
	DisableWebhooks pulumi.BoolPtrInput `pulumi:"disableWebhooks"`
	// Force resource update through delete/recreate if needed.
	ForceUpdate pulumi.BoolPtrInput `pulumi:"forceUpdate"`
	// Location of public keys used for verification. Used only if `verify` is true
	Keyring pulumi.StringPtrInput `pulumi:"keyring"`
	// Run helm lint when planning.
	Lint pulumi.BoolPtrInput `pulumi:"lint"`
	// The rendered manifests as JSON. Not yet supported.
	Manifest pulumi.MapInput `pulumi:"manifest"`
	// Limit the maximum number of revisions saved per release. Use 0 for no limit.
	MaxHistory pulumi.IntPtrInput `pulumi:"maxHistory"`
	// Release name.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// Namespace to install the release into.
	Namespace pulumi.StringPtrInput `pulumi:"namespace"`
	// Postrender command to run.
	Postrender pulumi.StringPtrInput `pulumi:"postrender"`
	// Perform pods restart during upgrade/rollback.
	RecreatePods pulumi.BoolPtrInput `pulumi:"recreatePods"`
	// If set, render subchart notes along with the parent.
	RenderSubchartNotes pulumi.BoolPtrInput `pulumi:"renderSubchartNotes"`
	// Re-use the given name, even if that name is already used. This is unsafe in production
	Replace pulumi.BoolPtrInput `pulumi:"replace"`
	// Specification defining the Helm chart repository to use.
	RepositoryOpts helmv3.RepositoryOptsArgs `pulumi:"repositoryOpts"`
	// When upgrading, reset the values to the ones built into the chart.
	ResetValues pulumi.BoolPtrInput `pulumi:"resetValues"`
	// Names of resources created by the release grouped by "kind/version".
	ResourceNames pulumi.StringArrayMapInput `pulumi:"resourceNames"`
	// When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored
	ReuseValues pulumi.BoolPtrInput `pulumi:"reuseValues"`
	// By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic.
	SkipAwait pulumi.BoolPtrInput `pulumi:"skipAwait"`
	// If set, no CRDs will be installed. By default, CRDs are installed if not already present.
	SkipCrds pulumi.BoolPtrInput `pulumi:"skipCrds"`
	// Status of the deployed release.
	Status helmv3.ReleaseStatus `pulumi:"status"`
	// Time in seconds to wait for any individual kubernetes operation.
	Timeout pulumi.IntPtrInput `pulumi:"timeout"`
	// List of assets (raw yaml files). Content is read and merged with values. Not yet supported.
	ValueYamlFiles []pulumi.AssetOrArchive `pulumi:"valueYamlFiles"`
	// Custom values set for the release.
	Values map[string]interface{} `pulumi:"values"`
	// Verify the package before installing it.
	Verify pulumi.BoolPtrInput `pulumi:"verify"`
	// Specify the exact chart version to install. If this is not specified, the latest version is installed.
	Version pulumi.StringPtrInput `pulumi:"version"`
	// Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled.
	WaitForJobs pulumi.BoolPtrInput `pulumi:"waitForJobs"`
}

ReleaseType added because it was deprecated upstream.

Jump to

Keyboard shortcuts

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