Search code examples
kubernetesjenkinsyamljenkins-pipeline

Using Jenkins Parameter In Kubernetes Yaml


I'm trying to use my Jenkins Pipeline parameter to change name in .yaml file. How can i achieve that?

In Jenkins, my parameter name is defined as NEWCLAIM

yaml file

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ${params.NEWCLAIM}
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

I get errors when i use like that.


Solution

  • In Jenkins you can use readYaml and writeYaml for that.If you use a scripted pipeline aka a Jenkinsfile, I would do the following:

    pipeline {
       stages {
          stage('Manipulate Yaml file') {
             def config = readYaml file: "path/to/your/config.yml"
             config.metadata.name = params.NEWCLAIM
             writeYaml file: "path/to/your/config.yml", data: config
          }
       }
    }
    

    Please consider to set permissions correctly in order to write the file.