DeployServiceAccountName не работает для расписаний в потоке данных Spring Cloud

Я использую поток данных Spring Cloud для весенних пакетов (с удаленным разделением), завернутых в весеннюю облачную задачу, развернутую в kubernetes. Я также создал для этого сервисный аккаунт. Пакет работает нормально, когда я использую параметр запуска на вкладке задач в пользовательском интерфейсе SCDF. Но когда я пытаюсь использовать параметр расписания в пользовательском интерфейсе SCDF, он, кажется, не учитывает настроенное имя учетной записи службы и дает следующую ошибку

      io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://<IP>/api/v1/namespaces/test/pods/batchsampleappworker-aeghj644g. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. pods "batchsampleappworker-j3ljqq3de9" is forbidden: User "system:serviceaccount:test:default" cannot get resource "pods" in API group "" in the namespace "test".

Ниже приведен пример конфигурации, представленной в конфигурации сервера SCDF.

      data:
  application.yaml: |-
    spring:
      cloud:
        dataflow:
          task:
            platform:
              kubernetes:
                accounts:
                  default:
                    deploymentServiceAccountName: myserviceaccountname

Пожалуйста, пролейте свет на эту проблему и помогите мне решить эту проблему.

1 ответ

По пути изучения решения проблемы я наткнулся на эту страницу github, где было предложено добавить либо

      env:
- name: SPRING_CLOUD_SCHEDULER_KUBERNETES_TASK_SERVICE_ACCOUNT_NAME
  value: myserviceaccountname

к развертыванию сервера SCDF или,

      deployer.kubernetes.taskServiceAccountName=myserviceaccountname

к индивидуальному расписанию при его создании. К сожалению, ни один из них не помог мне, но побудил меня попробовать с созданным ниже расписанием, и это сработало для меня.

      scheduler.kubernetes.taskServiceAccountName=myserviceaccountname

Было бы здорово, если бы мне кто-нибудь помог мне объяснить, почему не сработал первый вариант - развертывание обновления?