Как поместить параметр триггера веб-перехватчика 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-запроса веб-перехватчика в артефакт без копирования всей полезной нагрузки в шаблон рабочего процесса. Есть ли возможность с Арго?