2022-02-10 11:25:03 +02:00
// Code generated by piper's step-generator. DO NOT EDIT.
package cmd
import (
"fmt"
"os"
2022-08-15 21:41:24 +02:00
"path/filepath"
2022-02-10 11:25:03 +02:00
"time"
"github.com/SAP/jenkins-library/pkg/config"
"github.com/SAP/jenkins-library/pkg/log"
2022-08-15 21:41:24 +02:00
"github.com/SAP/jenkins-library/pkg/piperenv"
2022-02-10 11:25:03 +02:00
"github.com/SAP/jenkins-library/pkg/splunk"
"github.com/SAP/jenkins-library/pkg/telemetry"
"github.com/SAP/jenkins-library/pkg/validation"
"github.com/spf13/cobra"
)
type helmExecuteOptions struct {
AdditionalParameters [ ] string ` json:"additionalParameters,omitempty" `
ChartPath string ` json:"chartPath,omitempty" `
2022-03-17 18:13:34 +02:00
TargetRepositoryURL string ` json:"targetRepositoryURL,omitempty" `
2022-04-14 15:43:47 +02:00
TargetRepositoryName string ` json:"targetRepositoryName,omitempty" `
2022-03-17 18:13:34 +02:00
TargetRepositoryUser string ` json:"targetRepositoryUser,omitempty" `
TargetRepositoryPassword string ` json:"targetRepositoryPassword,omitempty" `
2022-11-07 17:35:00 +02:00
SourceRepositoryURL string ` json:"sourceRepositoryURL,omitempty" `
SourceRepositoryName string ` json:"sourceRepositoryName,omitempty" `
SourceRepositoryUser string ` json:"sourceRepositoryUser,omitempty" `
SourceRepositoryPassword string ` json:"sourceRepositoryPassword,omitempty" `
2022-02-10 11:25:03 +02:00
HelmDeployWaitSeconds int ` json:"helmDeployWaitSeconds,omitempty" `
HelmValues [ ] string ` json:"helmValues,omitempty" `
Image string ` json:"image,omitempty" `
KeepFailedDeployments bool ` json:"keepFailedDeployments,omitempty" `
KubeConfig string ` json:"kubeConfig,omitempty" `
KubeContext string ` json:"kubeContext,omitempty" `
Namespace string ` json:"namespace,omitempty" `
DockerConfigJSON string ` json:"dockerConfigJSON,omitempty" `
2022-03-30 08:18:51 +02:00
HelmCommand string ` json:"helmCommand,omitempty" validate:"possible-values=upgrade lint install test uninstall dependency publish" `
2022-02-10 11:25:03 +02:00
AppVersion string ` json:"appVersion,omitempty" `
2022-03-30 08:18:51 +02:00
Dependency string ` json:"dependency,omitempty" validate:"possible-values=build list update" `
PackageDependencyUpdate bool ` json:"packageDependencyUpdate,omitempty" `
2022-02-10 11:25:03 +02:00
DumpLogs bool ` json:"dumpLogs,omitempty" `
FilterTest string ` json:"filterTest,omitempty" `
2022-03-17 18:13:34 +02:00
CustomTLSCertificateLinks [ ] string ` json:"customTlsCertificateLinks,omitempty" `
Publish bool ` json:"publish,omitempty" `
2022-04-14 15:43:47 +02:00
Version string ` json:"version,omitempty" `
2022-02-10 11:25:03 +02:00
}
2022-08-15 21:41:24 +02:00
type helmExecuteCommonPipelineEnvironment struct {
custom struct {
2022-09-02 11:55:30 +02:00
helmChartURL string
2022-08-15 21:41:24 +02:00
}
}
func ( p * helmExecuteCommonPipelineEnvironment ) persist ( path , resourceName string ) {
content := [ ] struct {
category string
name string
value interface { }
} {
2022-09-02 11:55:30 +02:00
{ category : "custom" , name : "helmChartUrl" , value : p . custom . helmChartURL } ,
2022-08-15 21:41:24 +02:00
}
errCount := 0
for _ , param := range content {
err := piperenv . SetResourceParameter ( path , resourceName , filepath . Join ( param . category , param . name ) , param . value )
if err != nil {
log . Entry ( ) . WithError ( err ) . Error ( "Error persisting piper environment." )
errCount ++
}
}
if errCount > 0 {
log . Entry ( ) . Error ( "failed to persist Piper environment" )
}
}
2022-02-10 11:25:03 +02:00
// HelmExecuteCommand Executes helm3 functionality as the package manager for Kubernetes.
func HelmExecuteCommand ( ) * cobra . Command {
const STEP_NAME = "helmExecute"
metadata := helmExecuteMetadata ( )
var stepConfig helmExecuteOptions
var startTime time . Time
2022-08-15 21:41:24 +02:00
var commonPipelineEnvironment helmExecuteCommonPipelineEnvironment
2022-02-10 11:25:03 +02:00
var logCollector * log . CollectorHook
var splunkClient * splunk . Splunk
telemetryClient := & telemetry . Telemetry { }
var createHelmExecuteCmd = & cobra . Command {
Use : STEP_NAME ,
Short : "Executes helm3 functionality as the package manager for Kubernetes." ,
Long : ` Alpha version : please expect incompatible changes
Executes helm functionality as the package manager for Kubernetes .
* [ Helm ] ( https : //helm.sh/) is the package manager for Kubernetes.
* [ Helm documentation https : //helm.sh/docs/intro/using_helm/ and best practies https://helm.sh/docs/chart_best_practices/conventions/]
* [ Helm Charts ] ( https : //artifacthub.io/)
` + " ` " + `` + " ` " + ` ` + " ` " + `
Available Commands :
2022-03-30 08:18:51 +02:00
` + " ` " + `upgrade` + " ` " + ` , ` + " ` " + `lint` + " ` " + ` , ` + " ` " + `install` + " ` " + ` , ` + " ` " + `test` + " ` " + ` , ` + " ` " + `uninstall` + " ` " + ` , ` + " ` " + `dependency` + " ` " + ` , ` + " ` " + `publish` + " ` " + `
upgrade upgrade a release
lint examine a chart for possible issues
install install a chart
test run tests for a release
uninstall uninstall a release
dependency package a chart directory into a chart archive
publish package and puslish a release
2022-02-10 11:25:03 +02:00
` + " ` " + `` + " ` " + ` ` + " ` " + `
Note : piper supports only helm3 version , since helm2 is deprecated . ` ,
PreRunE : func ( cmd * cobra . Command , _ [ ] string ) error {
startTime = time . Now ( )
log . SetStepName ( STEP_NAME )
log . SetVerbose ( GeneralConfig . Verbose )
GeneralConfig . GitHubAccessTokens = ResolveAccessTokens ( GeneralConfig . GitHubTokens )
path , _ := os . Getwd ( )
fatalHook := & log . FatalHook { CorrelationID : GeneralConfig . CorrelationID , Path : path }
log . RegisterHook ( fatalHook )
err := PrepareConfig ( cmd , & metadata , STEP_NAME , & stepConfig , config . OpenPiperFile )
if err != nil {
log . SetErrorCategory ( log . ErrorConfiguration )
return err
}
2022-03-17 18:13:34 +02:00
log . RegisterSecret ( stepConfig . TargetRepositoryUser )
log . RegisterSecret ( stepConfig . TargetRepositoryPassword )
2022-11-07 17:35:00 +02:00
log . RegisterSecret ( stepConfig . SourceRepositoryUser )
log . RegisterSecret ( stepConfig . SourceRepositoryPassword )
2022-02-10 11:25:03 +02:00
log . RegisterSecret ( stepConfig . KubeConfig )
log . RegisterSecret ( stepConfig . DockerConfigJSON )
if len ( GeneralConfig . HookConfig . SentryConfig . Dsn ) > 0 {
sentryHook := log . NewSentryHook ( GeneralConfig . HookConfig . SentryConfig . Dsn , GeneralConfig . CorrelationID )
log . RegisterHook ( & sentryHook )
}
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunkClient = & splunk . Splunk { }
logCollector = & log . CollectorHook { CorrelationID : GeneralConfig . CorrelationID }
log . RegisterHook ( logCollector )
}
2022-06-22 13:31:17 +02:00
if err = log . RegisterANSHookIfConfigured ( GeneralConfig . CorrelationID ) ; err != nil {
log . Entry ( ) . WithError ( err ) . Warn ( "failed to set up SAP Alert Notification Service log hook" )
}
2022-02-10 11:25:03 +02:00
validation , err := validation . New ( validation . WithJSONNamesForStructFields ( ) , validation . WithPredefinedErrorMessages ( ) )
if err != nil {
return err
}
if err = validation . ValidateStruct ( stepConfig ) ; err != nil {
log . SetErrorCategory ( log . ErrorConfiguration )
return err
}
return nil
} ,
Run : func ( _ * cobra . Command , _ [ ] string ) {
stepTelemetryData := telemetry . CustomData { }
stepTelemetryData . ErrorCode = "1"
handler := func ( ) {
2022-08-15 21:41:24 +02:00
commonPipelineEnvironment . persist ( GeneralConfig . EnvRootPath , "commonPipelineEnvironment" )
2022-02-10 11:25:03 +02:00
config . RemoveVaultSecretFiles ( )
stepTelemetryData . Duration = fmt . Sprintf ( "%v" , time . Since ( startTime ) . Milliseconds ( ) )
stepTelemetryData . ErrorCategory = log . GetErrorCategory ( ) . String ( )
stepTelemetryData . PiperCommitHash = GitCommit
telemetryClient . SetData ( & stepTelemetryData )
telemetryClient . Send ( )
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunkClient . Send ( telemetryClient . GetData ( ) , logCollector )
}
}
log . DeferExitHandler ( handler )
defer handler ( )
telemetryClient . Initialize ( GeneralConfig . NoTelemetry , STEP_NAME )
if len ( GeneralConfig . HookConfig . SplunkConfig . Dsn ) > 0 {
splunkClient . Initialize ( GeneralConfig . CorrelationID ,
GeneralConfig . HookConfig . SplunkConfig . Dsn ,
GeneralConfig . HookConfig . SplunkConfig . Token ,
GeneralConfig . HookConfig . SplunkConfig . Index ,
GeneralConfig . HookConfig . SplunkConfig . SendLogs )
}
2022-08-15 21:41:24 +02:00
helmExecute ( stepConfig , & stepTelemetryData , & commonPipelineEnvironment )
2022-02-10 11:25:03 +02:00
stepTelemetryData . ErrorCode = "0"
log . Entry ( ) . Info ( "SUCCESS" )
} ,
}
addHelmExecuteFlags ( createHelmExecuteCmd , & stepConfig )
return createHelmExecuteCmd
}
func addHelmExecuteFlags ( cmd * cobra . Command , stepConfig * helmExecuteOptions ) {
cmd . Flags ( ) . StringSliceVar ( & stepConfig . AdditionalParameters , "additionalParameters" , [ ] string { } , "Defines additional parameters for Helm like \"helm install [NAME] [CHART] [flags]\"." )
2022-04-14 15:43:47 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . ChartPath , "chartPath" , os . Getenv ( "PIPER_chartPath" ) , "Defines the chart path for helm. chartPath is mandatory for install/upgrade/publish commands." )
2022-03-17 18:13:34 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . TargetRepositoryURL , "targetRepositoryURL" , os . Getenv ( "PIPER_targetRepositoryURL" ) , "URL of the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment." )
2022-04-14 15:43:47 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . TargetRepositoryName , "targetRepositoryName" , os . Getenv ( "PIPER_targetRepositoryName" ) , "set the chart repository. The value is required for install/upgrade/uninstall commands." )
2022-06-28 13:03:03 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . TargetRepositoryUser , "targetRepositoryUser" , os . Getenv ( "PIPER_targetRepositoryUser" ) , "Username for the chart repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment." )
2022-03-17 18:13:34 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . TargetRepositoryPassword , "targetRepositoryPassword" , os . Getenv ( "PIPER_targetRepositoryPassword" ) , "Password for the target repository where the compiled helm .tgz archive shall be uploaded - typically provided by the CI/CD environment." )
2022-11-07 17:35:00 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . SourceRepositoryURL , "sourceRepositoryURL" , os . Getenv ( "PIPER_sourceRepositoryURL" ) , "URL of the source repository where the dependencies can be downloaded." )
cmd . Flags ( ) . StringVar ( & stepConfig . SourceRepositoryName , "sourceRepositoryName" , os . Getenv ( "PIPER_sourceRepositoryName" ) , "Set the name of the chart repository. The value might be required for fetching dependencies." )
cmd . Flags ( ) . StringVar ( & stepConfig . SourceRepositoryUser , "sourceRepositoryUser" , os . Getenv ( "PIPER_sourceRepositoryUser" ) , "Username for the chart repository for fetching the dependencies." )
cmd . Flags ( ) . StringVar ( & stepConfig . SourceRepositoryPassword , "sourceRepositoryPassword" , os . Getenv ( "PIPER_sourceRepositoryPassword" ) , "Password for the chart repository for fetching the dependencies." )
2022-02-10 11:25:03 +02:00
cmd . Flags ( ) . IntVar ( & stepConfig . HelmDeployWaitSeconds , "helmDeployWaitSeconds" , 300 , "Number of seconds before helm deploy returns." )
cmd . Flags ( ) . StringSliceVar ( & stepConfig . HelmValues , "helmValues" , [ ] string { } , "List of helm values as YAML file reference or URL (as per helm parameter description for `-f` / `--values`)" )
cmd . Flags ( ) . StringVar ( & stepConfig . Image , "image" , os . Getenv ( "PIPER_image" ) , "Full name of the image to be deployed." )
cmd . Flags ( ) . BoolVar ( & stepConfig . KeepFailedDeployments , "keepFailedDeployments" , false , "Defines whether a failed deployment will be purged" )
cmd . Flags ( ) . StringVar ( & stepConfig . KubeConfig , "kubeConfig" , os . Getenv ( "PIPER_kubeConfig" ) , "Defines the path to the \"kubeconfig\" file." )
cmd . Flags ( ) . StringVar ( & stepConfig . KubeContext , "kubeContext" , os . Getenv ( "PIPER_kubeContext" ) , "Defines the context to use from the \"kubeconfig\" file." )
cmd . Flags ( ) . StringVar ( & stepConfig . Namespace , "namespace" , ` default ` , "Defines the target Kubernetes namespace for the deployment." )
cmd . Flags ( ) . StringVar ( & stepConfig . DockerConfigJSON , "dockerConfigJSON" , os . Getenv ( "PIPER_dockerConfigJSON" ) , "Path to the file `.docker/config.json` - this is typically provided by your CI/CD system. You can find more details about the Docker credentials in the [Docker documentation](https://docs.docker.com/engine/reference/commandline/login/)." )
2022-03-30 08:18:51 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . HelmCommand , "helmCommand" , os . Getenv ( "PIPER_helmCommand" ) , "Helm: defines the command `upgrade`, `lint`, `install`, `test`, `uninstall`, `dependency`, `publish`." )
2022-02-10 11:25:03 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . AppVersion , "appVersion" , os . Getenv ( "PIPER_appVersion" ) , "set the appVersion on the chart to this version" )
2022-03-30 08:18:51 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . Dependency , "dependency" , os . Getenv ( "PIPER_dependency" ) , "manage a chart's dependencies" )
cmd . Flags ( ) . BoolVar ( & stepConfig . PackageDependencyUpdate , "packageDependencyUpdate" , false , "update dependencies from \"Chart.yaml\" to dir \"charts/\" before packaging" )
2022-02-10 11:25:03 +02:00
cmd . Flags ( ) . BoolVar ( & stepConfig . DumpLogs , "dumpLogs" , false , "dump the logs from test pods (this runs after all tests are complete, but before any cleanup)" )
cmd . Flags ( ) . StringVar ( & stepConfig . FilterTest , "filterTest" , os . Getenv ( "PIPER_filterTest" ) , "specify tests by attribute (currently `name`) using attribute=value syntax or `!attribute=value` to exclude a test (can specify multiple or separate values with commas `name=test1,name=test2`)" )
2022-03-17 18:13:34 +02:00
cmd . Flags ( ) . StringSliceVar ( & stepConfig . CustomTLSCertificateLinks , "customTlsCertificateLinks" , [ ] string { } , "List of download links to custom TLS certificates. This is required to ensure trusted connections to instances with repositories (like nexus) when publish flag is set to true." )
cmd . Flags ( ) . BoolVar ( & stepConfig . Publish , "publish" , false , "Configures helm to run the deploy command to publish artifacts to a repository." )
2022-04-14 15:43:47 +02:00
cmd . Flags ( ) . StringVar ( & stepConfig . Version , "version" , os . Getenv ( "PIPER_version" ) , "Defines the artifact version to use from helm package/publish commands." )
2022-02-10 11:25:03 +02:00
cmd . MarkFlagRequired ( "image" )
}
// retrieve step metadata
func helmExecuteMetadata ( ) config . StepData {
var theMetaData = config . StepData {
Metadata : config . StepMetadata {
Name : "helmExecute" ,
Aliases : [ ] config . Alias { } ,
Description : "Executes helm3 functionality as the package manager for Kubernetes." ,
} ,
Spec : config . StepSpec {
Inputs : config . StepInputs {
Secrets : [ ] config . StepSecrets {
2022-06-28 13:03:03 +02:00
{ Name : "kubeConfigFileCredentialsId" , Description : "Jenkins 'Secret file' credentials ID containing kubeconfig file. Details can be found in the [Kubernetes documentation](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)." , Type : "jenkins" , Aliases : [ ] config . Alias { { Name : "kubeCredentialsId" , Deprecated : true } } } ,
2022-02-10 11:25:03 +02:00
{ Name : "dockerConfigJsonCredentialsId" , Description : "Jenkins 'Secret file' credentials ID containing Docker config.json (with registry credential(s))." , Type : "jenkins" } ,
2022-06-28 13:03:03 +02:00
{ Name : "targetRepositoryCredentialsId" , Description : "Jenkins 'Username Password' credentials ID containing username and password for the Helm Repository authentication" , Type : "jenkins" } ,
2022-02-10 11:25:03 +02:00
} ,
Resources : [ ] config . StepResources {
{ Name : "deployDescriptor" , Type : "stash" } ,
} ,
Parameters : [ ] config . StepParameters {
{
Name : "additionalParameters" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "[]string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "helmDeploymentParameters" } } ,
Default : [ ] string { } ,
} ,
{
Name : "chartPath" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
2022-04-14 15:43:47 +02:00
Mandatory : false ,
2022-02-10 11:25:03 +02:00
Aliases : [ ] config . Alias { { Name : "helmChartPath" } } ,
Default : os . Getenv ( "PIPER_chartPath" ) ,
} ,
{
2022-03-17 18:13:34 +02:00
Name : "targetRepositoryURL" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference {
2022-03-21 09:41:22 +02:00
{
Name : "commonPipelineEnvironment" ,
Param : "custom/helmRepositoryURL" ,
} ,
2022-02-10 11:25:03 +02:00
{
Name : "commonPipelineEnvironment" ,
2022-03-17 18:13:34 +02:00
Param : "custom/repositoryUrl" ,
2022-02-10 11:25:03 +02:00
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2022-03-17 18:13:34 +02:00
Default : os . Getenv ( "PIPER_targetRepositoryURL" ) ,
2022-02-10 11:25:03 +02:00
} ,
{
2022-03-17 18:13:34 +02:00
Name : "targetRepositoryName" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
2022-03-17 18:13:34 +02:00
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_targetRepositoryName" ) ,
2022-02-10 11:25:03 +02:00
} ,
{
2022-03-17 18:13:34 +02:00
Name : "targetRepositoryUser" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference {
2022-06-28 13:03:03 +02:00
{
Name : "targetRepositoryCredentialsId" ,
Param : "username" ,
Type : "secret" ,
} ,
{
Name : "targetRepositoryUserSecretName" ,
Type : "vaultSecret" ,
Default : "publishing" ,
} ,
2022-03-21 09:41:22 +02:00
{
Name : "commonPipelineEnvironment" ,
Param : "custom/helmRepositoryUsername" ,
} ,
2022-02-10 11:25:03 +02:00
{
Name : "commonPipelineEnvironment" ,
2022-03-17 18:13:34 +02:00
Param : "custom/repositoryUsername" ,
2022-02-10 11:25:03 +02:00
} ,
} ,
2022-03-17 18:13:34 +02:00
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
2022-02-10 11:25:03 +02:00
Type : "string" ,
Mandatory : false ,
2022-06-28 13:03:03 +02:00
Aliases : [ ] config . Alias { { Name : "helmRepositoryUsername" } } ,
2022-03-17 18:13:34 +02:00
Default : os . Getenv ( "PIPER_targetRepositoryUser" ) ,
2022-02-10 11:25:03 +02:00
} ,
{
2022-03-17 18:13:34 +02:00
Name : "targetRepositoryPassword" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference {
2022-06-28 13:03:03 +02:00
{
Name : "targetRepositoryCredentialsId" ,
Param : "password" ,
Type : "secret" ,
} ,
{
Name : "targetRepositoryPasswordSecret" ,
Type : "vaultSecret" ,
Default : "publishing" ,
} ,
2022-03-21 09:41:22 +02:00
{
Name : "commonPipelineEnvironment" ,
Param : "custom/helmRepositoryPassword" ,
} ,
2022-03-17 09:01:00 +02:00
{
Name : "commonPipelineEnvironment" ,
2022-03-17 18:13:34 +02:00
Param : "custom/repositoryPassword" ,
2022-02-10 11:25:03 +02:00
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
2022-06-28 13:03:03 +02:00
Aliases : [ ] config . Alias { { Name : "helmRepositoryPassword" } } ,
2022-03-17 18:13:34 +02:00
Default : os . Getenv ( "PIPER_targetRepositoryPassword" ) ,
2022-11-07 17:35:00 +02:00
} ,
{
Name : "sourceRepositoryURL" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_sourceRepositoryURL" ) ,
} ,
{
Name : "sourceRepositoryName" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_sourceRepositoryName" ) ,
} ,
{
Name : "sourceRepositoryUser" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "sourceRepositoryCredentialsId" ,
Param : "username" ,
Type : "secret" ,
} ,
{
Name : "sourceRepositoryUserSecretName" ,
Type : "vaultSecret" ,
Default : "dependencies" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_sourceRepositoryUser" ) ,
} ,
{
Name : "sourceRepositoryPassword" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "sourceRepositoryCredentialsId" ,
Param : "password" ,
Type : "secret" ,
} ,
{
Name : "sourceRepositoryPasswordSecret" ,
Type : "vaultSecret" ,
Default : "dependencies" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_sourceRepositoryPassword" ) ,
2022-02-10 11:25:03 +02:00
} ,
{
Name : "helmDeployWaitSeconds" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "int" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : 300 ,
} ,
{
Name : "helmValues" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "[]string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : [ ] string { } ,
} ,
{
Name : "image" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "commonPipelineEnvironment" ,
Param : "container/imageNameTag" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : true ,
Aliases : [ ] config . Alias { { Name : "deployImage" } } ,
Default : os . Getenv ( "PIPER_image" ) ,
} ,
{
Name : "keepFailedDeployments" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : false ,
} ,
{
Name : "kubeConfig" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "kubeConfigFileCredentialsId" ,
Type : "secret" ,
} ,
{
Name : "kubeConfigFileVaultSecretName" ,
Type : "vaultSecretFile" ,
Default : "kube-config" ,
} ,
} ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_kubeConfig" ) ,
} ,
{
Name : "kubeContext" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_kubeContext" ) ,
} ,
{
Name : "namespace" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { { Name : "helmDeploymentNamespace" } } ,
Default : ` default ` ,
} ,
{
Name : "dockerConfigJSON" ,
ResourceRef : [ ] config . ResourceReference {
{
Name : "dockerConfigJsonCredentialsId" ,
Type : "secret" ,
} ,
{
Name : "dockerConfigFileVaultSecretName" ,
Type : "vaultSecretFile" ,
Default : "docker-config" ,
} ,
} ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_dockerConfigJSON" ) ,
} ,
{
Name : "helmCommand" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2022-03-17 18:13:34 +02:00
Default : os . Getenv ( "PIPER_helmCommand" ) ,
2022-02-10 11:25:03 +02:00
} ,
{
Name : "appVersion" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_appVersion" ) ,
} ,
{
2022-03-30 08:18:51 +02:00
Name : "dependency" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_dependency" ) ,
} ,
{
Name : "packageDependencyUpdate" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : false ,
} ,
{
Name : "dumpLogs" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "bool" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : false ,
} ,
{
Name : "filterTest" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_filterTest" ) ,
} ,
{
2022-03-17 18:13:34 +02:00
Name : "customTlsCertificateLinks" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
2022-03-17 18:13:34 +02:00
Type : "[]string" ,
2022-02-10 11:25:03 +02:00
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2022-03-17 18:13:34 +02:00
Default : [ ] string { } ,
2022-02-10 11:25:03 +02:00
} ,
{
2022-03-17 18:13:34 +02:00
Name : "publish" ,
2022-02-10 11:25:03 +02:00
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
2022-03-17 18:13:34 +02:00
Type : "bool" ,
2022-02-10 11:25:03 +02:00
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
2022-03-17 18:13:34 +02:00
Default : false ,
2022-02-10 11:25:03 +02:00
} ,
2022-04-14 15:43:47 +02:00
{
2022-05-18 08:58:01 +02:00
Name : "version" ,
ResourceRef : [ ] config . ResourceReference { } ,
Scope : [ ] string { "GENERAL" , "PARAMETERS" , "STAGES" , "STEPS" } ,
Type : "string" ,
Mandatory : false ,
Aliases : [ ] config . Alias { } ,
Default : os . Getenv ( "PIPER_version" ) ,
2022-04-14 15:43:47 +02:00
} ,
2022-02-10 11:25:03 +02:00
} ,
} ,
Containers : [ ] config . Container {
2022-03-17 18:13:34 +02:00
{ Image : "dtzar/helm-kubectl:3.8.0" , WorkingDir : "/config" , Options : [ ] config . Option { { Name : "-u" , Value : "0" } } } ,
2022-02-10 11:25:03 +02:00
} ,
2022-08-15 21:41:24 +02:00
Outputs : config . StepOutputs {
Resources : [ ] config . StepResources {
{
Name : "commonPipelineEnvironment" ,
Type : "piperEnvironment" ,
Parameters : [ ] map [ string ] interface { } {
2022-09-02 11:55:30 +02:00
{ "name" : "custom/helmChartUrl" } ,
2022-08-15 21:41:24 +02:00
} ,
} ,
} ,
} ,
2022-02-10 11:25:03 +02:00
} ,
}
return theMetaData
}