Forma recomendada para cambiar persistentemente las variables kube-env

Estamos utilizando elasticsearch / kibana en lugar de gcp para iniciar sesión (según lo que se describeaquí)

Para lanzar las cápsulas de fluentd-elsticsearch, hemos establecidoLOGGING_DESTINATION=elasticsearch yENABLE_NODE_LOGGING="true" en la "Plantilla de instancia de proceso" -> "Metadatos personalizados" -> "kube-env".

Si bien esto funciona bien cuando se hace manualmente, se sobrescribe con cadagcloud container clusters upgrade como una nueva plantilla de instancia con valores predeterminados (LOGGING_DESTINATION=gcp ...) es creado.

Mi pregunta es: ¿Cómo persisto este tipo de configuración para GKE / GCE?

Pensé en agregar unscript de inicio de usuario k8s pero eso también se define en la Plantilla de instancia y, por lo tanto, se sobrescribe congcloud container clusters upgrade. También he intentado agregar unscript de inicio de usuario k8s a los metadatos del proyecto pero eso no se tiene en cuenta.

//EDITAR
La solución actual (sin recrear la plantilla de instancia y las instancias) para volver a cambiar manualmente a elasticsearch es:

for node in $(kubectl get nodes -o name | cut -f2 -d/); do
    gcloud compute ssh $node \
      --command="sudo cp -a /srv/salt/fluentd-es/fluentd-es.yaml /etc/kubernetes/manifests/; sudo rm /etc/kubernetes/manifests/fluentd-gcp.yaml";
done

kubelet lo recogerá, matará fluentd-gcp y comenzará a fluentd-es.

// EDITAR # 2 Ahora ejecuta un DaemonSet "startup-script" para esto:

kind: DaemonSet
apiVersion: extensions/v1beta1
metadata:
  name: startup-script
  namespace: kube-system
  labels:
    app: startup-script
spec:
  template:
    metadata:
      labels:
        app: startup-script
    spec:
      hostPID: true
      containers:
        - name: startup-script
          image: gcr.io/google-containers/startup-script:v1
          securityContext:
            privileged: true
          env:
          - name: STARTUP_SCRIPT
            value: |
              #! /bin/bash

              set -o errexit
              set -o pipefail
              set -o nounset

              # Replace Google-Cloud-Logging with EFK
              if [[ ! -f /etc/kubernetes/manifests/fluentd-es.yaml ]]; then
                if [[ -f /home/kubernetes/kube-manifests/kubernetes/fluentd-es.yaml ]]; then
                  # GCI images
                  cp -a /home/kubernetes/kube-manifests/kubernetes/fluentd-es.yaml /etc/kubernetes/manifests/
                elif [[ -f /srv/salt/fluentd-es/fluentd-es.yaml ]]; then
                  # Debian based GKE images
                  cp -a /srv/salt/fluentd-es/fluentd-es.yaml /etc/kubernetes/manifests/
                fi
                test -f /etc/kubernetes/manifests/fluentd-es.yaml && rm /etc/kubernetes/manifests/fluentd-gcp.yaml
              fi

Respuestas a la pregunta(1)

Su respuesta a la pregunta