Documentation ¶
Overview ¶
Package stateval is used for generating Helmfile state values. State values are consumed in both helmfile.yaml and values.yaml.gotmpl files.
Note: We serialize yaml keys with upper case name for greater readability in Go templates. (so that we can use .Values.Release.ChartPath and not .Values.release.chartPath)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AppValues ¶
type AppValues struct { // Release the release that is being rendered Release Release `yaml:"Release"` // ChartPath filesystem path for the chart that is being rendered ChartPath string `yaml:"ChartPath"` // Destination destination where the release is being deployed Destination Destination `yaml:"Destination"` // Environment environment where the release is being deployed (for app releases only) Environment Environment `yaml:"Environment,omitempty"` // Cluster cluster where the release is being deployed Cluster Cluster `yaml:"Cluster,omitempty"` }
AppValues -- the full set of helmfile state values for rendering application manifests (used by $THELMA_HOME/helmfile.yaml)
type ArgoApp ¶
type ArgoApp struct { // ProjectName name of the ArgoCD project the release's Argo app will belong to ProjectName string `yaml:"ProjectName"` // ClusterName name of the cluster this release is being deployed to ClusterName string `yaml:"ClusterName"` // ClusterAddress address of the cluster this release is being deployed to ClusterAddress string `yaml:"ClusterAddress"` // TerraHelmfileRef override terra-helmfile ref TerraHelmfileRef string `yaml:"TerraHelmfileRef"` // FirecloudDevelopRef override firecloud-develop ref FirecloudDevelopRef string `yaml:"FirecloudDevelopRef"` }
ArgoApp -- information about the Argo application that will be used to deploy this release
type ArgoAppValues ¶
type ArgoAppValues struct { // Release the release this Argo app will deploy Release Release `yaml:"Release"` // Destination destination where this Argo app will deploy the release to Destination Destination `yaml:"Destination"` // ArgoApp information about the cluster and project the ArgoApp will deploy to ArgoApp ArgoApp `yaml:"ArgoApp"` // Environment environment where the release is being deployed (for app releases only) Environment Environment `yaml:"Environment,omitempty"` // Cluster cluster where the release is being deployed Cluster Cluster `yaml:"Cluster"` }
ArgoAppValues -- the full set of helmfile state values for rendering argo apps (used by $THELMA_HOME/argocd/application/helmfile.yaml)
func BuildArgoAppValues ¶
func BuildArgoAppValues(r terra.Release) ArgoAppValues
BuildArgoAppValues generates an ArgoAppValues for the given release
type ArgoProject ¶
type ArgoProject struct { // ProjectName name of the ArgoCD project that is being rendered ProjectName string `yaml:"ProjectName"` // Generator settings for the project's application generator, if enabled Generator Generator `yaml:"Generator"` }
ArgoProject -- information about the ArgoProject that will be used to deploy this release
type ArgoProjectValues ¶
type ArgoProjectValues struct { // Destination environment or cluster that apps in this project will deploy to Destination Destination `yaml:"Destination"` // ArgoProject information about the Argo project that is being rendered ArgoProject ArgoProject `yaml:"ArgoProject"` }
ArgoProjectValues -- the full set of helmfile state values for rendering argo projects (used by $THELMA_HOME/argocd/projects/helmfile.yaml)
func BuildArgoProjectValues ¶
func BuildArgoProjectValues(d terra.Destination) ArgoProjectValues
BuildArgoProjectValues generates an ArgoProjectValues for the given destination
type Cluster ¶
type Cluster struct { // Name of the cluster this release is being deployed to (omitted if app release) Name string `yaml:"Name"` // GoogleProject name of the Google project the cluster lives in GoogleProject string `yaml:"GoogleProject"` // GoogleProjectSuffix suffix of the Google project where this release is being deployed GoogleProjectSuffix string `yaml:"GoogleProjectSuffix"` }
Cluster -- information about the cluster the release is being deployed to
type Destination ¶
type Destination struct { // Name of the environment or cluster Name string `yaml:"Name"` // Type -- either "environment" or "cluster" Type string `yaml:"Type"` // ConfigBase configuration base for this environment or cluster. Eg. "live", "terra" ConfigBase string `yaml:"ConfigBase"` // ConfigName configuration name for this environment for cluster. // (same as Name except for dynamically-created environments) ConfigName string `yaml:"ConfigName"` // RequireSuitable whether users must be suitable in order to access/deploy to this destination RequireSuitable bool `yaml:"RequireSuitable"` }
Destination -- information about where chart release is being deployed (env, cluster)
type Environment ¶
type Environment struct { // Name of the environment this release is being deployed to Name string `yaml:"Name"` // UniqueResourcePrefix for the environment this release is being deployed to UniqueResourcePrefix string `yaml:"UniqueResourcePrefix"` }
Environment -- information about the environment the release is being deployed to.
type Generator ¶ added in v0.0.39
type Generator struct { // Name name of the project's application generator Name string `yaml:"Name"` // TerraHelmfileRef override terra-helmfile ref for the project's app generator TerraHelmfileRef string `yaml:"TerraHelmfileRef"` }
Generator information about an Argo project's application generator
type Release ¶
type Release struct { // Name of this release Name string `yaml:"Name"` // ChartName name of the chart that is being deployed ChartName string `yaml:"ChartName"` // Type of this release Type string `yaml:"Type"` // Namespace this release is being deployed to Namespace string `yaml:"Namespace"` // AppVersion version of the application that's being deployed (only included for app releases) AppVersion string `yaml:"AppVersion,omitempty"` // Overlays representing other sets of values files that should be included Overlays []string `yaml:"Overlays,omitempty"` }
Release -- information related to the chart release that is being rendered