Как поместить параметр триггера веб-перехватчика Argo в артефакт?

Я хочу иметь возможность отправлять большой кусок данных на веб-перехватчик в Argo. В моем определении Sensor я получаю данные из запроса и помещаю их в «необработанный» артефакт рабочего процесса. Поскольку данные закодированы в base64, я использую шаблон Sprig для декодирования закодированных данных.

К сожалению, когда я использую большой объем данных, Kubernetes отказывается обрабатывать сгенерированное определение рабочего процесса.

Пример с необработанными данными

Этот пример работает с небольшими объемами данных.

      apiVersion: argoproj.io/v1alpha1
kind: Sensor
metadata:
  name: webhook
spec:
  template:
    serviceAccountName: argo-events-sa
  dependencies:
    - name: input-dep
      eventSourceName: webhook-datapost
      eventName: datapost
  triggers:
    - template:
        name: webhook-datapost-trigger
        k8s:
          group: argoproj.io
          version: v1alpha1
          resource: workflows
          operation: create
          source:
            resource:
              apiVersion: argoproj.io/v1alpha1
              kind: Workflow
              metadata:
                generateName: webhook-datapost-
              spec:
                entrypoint: basefile
                imagePullSecrets:
                  - name: regcred
                arguments:
                  artifacts:
                  - name: filecontents
                    raw:
                      data: ""
                templates:
                - name: basefile
                  serviceAccountName: argo-events-sa
                  inputs:
                    artifacts:
                    - name: filecontents
                      path: /input.file
                  container:
                    image: alpine:latest
                    command: ["ls"]
                    args: ["/input.file"]
          parameters:
            - src:
                dependencyName: input-dep
                dataTemplate: "{{ .Input.body.basedata | b64dec }}"
              dest: spec.arguments.artifacts.0.raw.data

Ошибка с большим набором данных

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

      Pod "webhook-datapost-7rwsm" is invalid: metadata.annotations: Too long: must have at most 262144 bytes

Я так понимаю, это связано с копированием всех необработанных данных в шаблон Workflow. Затем этот большой шаблон отклоняется Kubernetes.

Я ищу способ скопировать данные из POST-запроса веб-перехватчика в артефакт без копирования всей полезной нагрузки в шаблон рабочего процесса. Есть ли возможность с Арго?

0 ответов

Другие вопросы по тегам