How to set dynamic values with Kubernetes yaml file

前端 未结 13 2074
旧巷少年郎
旧巷少年郎 2020-12-04 16:22

For example, a deployment yaml file:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: guestbook
spec:
  replicas: 2
  template:
    metadata         


        
13条回答
  •  半阙折子戏
    2020-12-04 16:58

    You can't do it automatically, you need to use an external script to "compile" your template, or use helm as suggested by @Jakub.

    You may want to use a custom bash script, maybe integrated with your CI pipeline.

    Given a template yml file called deploy.yml.template very similar to the one you provided, you can use something like this:

    #!/bin/bash
    
    # sample value for your variables
    MYVARVALUE="nginx:latest"
    
    # read the yml template from a file and substitute the string 
    # {{MYVARNAME}} with the value of the MYVARVALUE variable
    template=`cat "deploy.yml.template" | sed "s/{{MYVARNAME}}/$MYVARVALUE/g"`
    
    # apply the yml with the substituted value
    echo "$template" | kubectl apply -f -
    

提交回复
热议问题