feat(crd): add dual-format Args field supporting map and list

Add a custom Args type that accepts both a key-value map and a flat
CLI-style list, normalizing internally to []string so downstream code
requires no changes.

- Args: new []string alias with UnmarshalJSON (map + list) and
  MarshalJSON (map) — keys are sorted for deterministic ordering
- CRD schema: switch args from typed array to
  x-kubernetes-preserve-unknown-fields to accept either shape
- Bump go-flink-client to v0.2.2 (fix: programArgsList → programArg
  query parameter name for Flink REST API)

Args can now be written as:
  args:
    kafka-host: broker:9092
    kafka-group-id: my-group

Or the existing list format:
  args:
    - "--kafka-host"
    - broker:9092
This commit is contained in:
2026-07-23 15:25:08 +03:30
parent 7fb18cd45f
commit 91c10c89da
6 changed files with 68 additions and 8 deletions

View File

@@ -44,9 +44,8 @@ spec:
jarURIBasicAuthPassword:
type: string
args:
type: array
items:
type: string
description: "Program arguments. Accepts a list of strings (--key, value, ...) or a map of key-value pairs."
x-kubernetes-preserve-unknown-fields: true
savepointInterval:
type: string
format: duration