Maneira recomendada de alterar persistentemente variáveis do kube-env

Estamos usando elasticsearch / kibana em vez de gcp para log (com base no que é descritoaqui)

Para lançar o pod de fluentd-elsticsearch, definimosLOGGING_DESTINATION=elasticsearch eENABLE_NODE_LOGGING="true" no "Modelo de instância de computação" -> "Metadados personalizados" -> "kube-env".

Embora isso funcione bem quando feito manualmente, ele é sobrescrito a cadagcloud container clusters upgrade como um novo modelo de instância com padrões (LOGGING_DESTINATION=gcp ...) é criado.

Minha pergunta é: Como persisto esse tipo de configuração para o GKE / GCE?

Pensei em adicionar umk8s-user-startup-script mas isso também é definido no modelo de instância e, portanto, é substituído porgcloud container clusters upgrade. Eu também tentei adicionar umk8s-user-startup-script aos metadados do projeto, mas isso não é levado em consideração.

//EDITAR
Solução atual (sem recriar o modelo e as instâncias da instância) para retornar manualmente à elasticsearch é:

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

O kubelet vai pegar isso, matar o fluentd-gcp e começar o fluentd-es.

// EDIT # 2 Agora executando um DaemonSet "script de inicialização" para isso:

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

questionAnswers(1)

yourAnswerToTheQuestion