github Kong/kongctl v1.17.0

3 hours ago

Kong logo Kong logo kongctl Release Highlights

✨ What's New

  • AI Gateway 2.1 support — kongctl now manages AI Gateway 2.1 resources via the updated Konnect SDK (v0.68.1). Declarative workflows for AI Gateway providers, models, agents, vaults, policies, MCP servers, and credential stores are fully supported. (#2285)

  • KONGCTL_CONFIG_FILE environment variable — You can now point kongctl at a custom config file path using KONGCTL_CONFIG_FILE, making it easier to run in CI/CD pipelines or multi-environment setups without relying on XDG defaults. (#2231)

    export KONGCTL_CONFIG_FILE=/path/to/my/config.yaml
    kongctl get apis

🐛 Fixes & Improvements

  • Declarative name-based matching — Resources that previously required ID-based matching now match by name across the board: agents, models, vaults, policies, MCP servers, providers, auth strategies, stores, groups, credentials, and certificate families. This makes declarative manifests more portable and human-readable. (#2218, #2227, #2234, #2239, #2245)

  • Safe ordering for AI Gateway and control plane changes — Provider and model changes are now ordered to avoid dependency conflicts during apply, and control plane deletions are sequenced after any APIs that reference them. (#2283, #2275)

  • Explicit AI Gateway child names required — AI Gateway child resources now require explicit name fields in manifests, preventing ambiguous implicit derivation. (#2249)

  • Idempotent encrypt_fields policies — The encrypt_fields produce policy is now idempotent, so repeated applies no longer create duplicate entries. (#2196)

  • Styled nested field diffs — Text-format diffs now render nested field changes with proper styling, making plan output easier to review. (#2201)

  • Custom YAML tags preserved in patch output — The patch command now preserves custom YAML tags (e.g., !vault) when writing output files. (#2215)

  • TUI resource counts and pagination — The interactive view now shows loaded resource counts and handles model pagination more reliably. (#2236)

📚 Docs & DX

  • GitHub Actions CI/CD setup guide — New documentation walks users through setting up basic kongctl CI/CD pipelines with GitHub Actions. (#2178)

  • E2E replay refresh guide — Contributors now have clear guidance for refreshing E2E test replay recordings. (#2217)

🔗 Commit References

Features

  • d622499 feat(config): support KONGCTL_CONFIG_FILE environment variable (#2231)
  • 8524c7c feat(ci): consolidate E2E run results and transient diagnostics (#2247)
  • 69a99af feat(konnect): support AI Gateway 2.1 with patched SDK 0.68.1 (#2285)

Fixes

  • 08a6e4f fix(deps): update module github.com/kong/kongctl to v1.16.0 (#2189)
  • c7f81c0 fix(declarative): make encrypt_fields produce policies idempotent (#2196)
  • 06c8bd9 fix(declarative): show styled nested field changes in text diffs (#2201)
  • a8f2a95 fix(cmd): preserve custom YAML tags in patch file output (#2215)
  • e5d88e6 fix(declarative): match agents, models, and vaults by name (#2218)
  • cd12191 fix(e2e): preserve initial plan coverage across partial sync retries (#2221)
  • d160ff8 fix(e2e): separate request deadlines and recover stalled reads (#2225)
  • 8e4aee5 fix(declarative): match policies and MCP servers by name (#2227)
  • 7a986ec fix(declarative): match providers and auth strategies by name (#2234)
  • a14ff30 fix(tui): show loaded resource counts and harden model pagination (#2236)
  • bf8c7a1 fix(e2e): bound reset waits and trace HTTP connection phases (#2237)
  • 5b55211 fix(declarative): match stores groups and credentials by name (#2239)
  • d9466e2 fix(declarative): match certificate families by title and name (#2245)
  • 9c4a3ec fix(declarative): require explicit AI Gateway child names (#2249)
  • 4a566af fix(deps): update dependency astro to v7.3.2 (#2256)
  • 779c594 fix(deps): update module golang.org/x/term to v0.46.0 (#2257)
  • ae3e4a6 fix(deps): update module golang.org/x/text to v0.42.0 (#2258)
  • 0c5e116 fix(e2e): allow concurrent portal-owned cleanup replay (#2264)
  • 9f888b4 fix(e2e): make team creation and cleanup retry-safe (#2268)
  • ec0948b fix(declarative): order control plane deletion after referenced APIs (#2275)
  • bade295 fix(deps): update module github.com/mattn/go-runewidth to v0.0.30 (#2280)
  • 44a7a47 fix(declarative): order AI Gateway provider and model changes safely (#2283)

Other Changes

  • 5ad6323 test(e2e): replay Event Gateway consume-policy scenarios on PRs (#2188)
  • ec6261a refactor(declarative): register organization assignment loading (#2190)
  • 0b4ba7d test(e2e): verify event gateway dump excludes children by default (#2193)
  • 1284ad3 test(e2e): expand event gateway external sync child coverage (#2192)
  • 3c8d475 test(e2e): cover decrypt_fields consume policy lifecycle (#2194)
  • cb0b366 refactor(simplify): streamline vault matching and persistent flags (#2195)
  • a13a911 refactor(declarative): register ordered collection validation (#2197)
  • f3fd82a chore(deps): update dependency @playwright/test to v1.63.0 (#2206)
  • 8b4f7de chore(deps): update zgosalvez/github-actions-ensure-sha-pinned-actions action to v5.0.8 (#2214)
  • bfdc2a0 test(e2e): replay Portal IP allow-list scenarios on PRs (#2207)
  • dd6c2dc refactor(declarative): validate pipeline coverage and register dump collectors (#2208)
  • b799bee chore(deps): update Go version to 1.26.2 and upgrade libssl3 and libcrypto3 in Dockerfile (#2213)
  • 8d13ecd test(e2e): cover control-plane sync updates and idempotency (#2216)
  • ca542de task(docs): guide agents through E2E replay refresh (#2217)
  • 4669f7d chore(deps): update dependency goreleaser/goreleaser to v2.18.1 (#2219)
  • c831d87 build(deps): bump devalue from 5.8.2 to 5.9.2 in /site (#2220)
  • da8e041 test(e2e): replay Portal pages scenarios on PRs (#2226)
  • ba93aae chore(deps): update node.js to v24.21.0 (#2233)
  • 02ecbcc chore(deps): update github/gh-aw-actions action to v0.89.16 (#2232)
  • 5ee6a15 task(e2e): parallelize reset inventory reads (#2229)
  • a030180 chore(deps): update github/gh-aw-actions action to v0.89.17 (#2241)
  • afee854 test(e2e): replay Portal teams scenarios on PRs (#2240)
  • a0bd62f refactor(simplify): streamline declarative validation and planner helpers (#2242)
  • fbbd6cb refactor(simplify): streamline planner comparisons and dump checks (#2243)
  • b8a3833 test(e2e): replay Portal email templates on PRs (#2244)
  • 2d4ee64 refactor(simplify): simplify MCP server planning and retry config (#2246)
  • e53392b test(e2e): replay Portal customization on PRs (#2248)
  • dcb908d test(e2e): replay scenarios requiring registered organization users (#2250)
  • 508b6a3 test(e2e): replay portal-owned dump round trips (#2252)
  • 154c37d refactor(declarative): share consumer-group lifecycle reconciliation (#2255)
  • bed7fb9 chore(deps): update dependency prettier-plugin-astro to v1 (#2259)
  • d279cdf test(e2e): balance user scenarios across acceptance shards (#2260)
  • fc7d124 refactor(declarative): unify AI Gateway child planning traversal (#2262)
  • 517e64b test(e2e): make external API parent assertions retry-safe (#2263)
  • c13a382 chore: upgrade Go version to 1.26.8 (#2267)
  • 0d27fa5 task(sdk): update to patched sdk-konnect-go v0.66.0 (#2261)
  • 714f6d0 refactor(declarative): register AI Gateway child export coverage (#2269)
  • 2dc3d87 test(e2e): migrate retry-sensitive scenario assertions (#2270)
  • 0e371d3 refactor(declarative): register Event Gateway child export coverage (#2273)
  • 18bf5f1 chore(deps): update dependency @types/node to v24.13.4 (#2274)
  • 3da402c refactor(declarative): register API child export coverage (#2276)
  • e568ef3 test(e2e): make adoption cleanup assertions retry-safe (#2277)
  • c5cfb23 refactor(declarative): register Portal child export coverage (#2281)
  • dffd706 test(e2e): harden team and API implementation assertions for retries (#2284)
  • e80ce76 task(docs): guide basic GitHub Actions CI/CD setup (#2178)
  • e62a1a6 task(ci): bump KSAI to v3.104.1 (#2286)
  • ae9bb99 refactor(declarative): share Portal child planning traversal (#2287)
  • f2de508 refactor(declarative): complete managed dump registration coverage (#2289)
  • c5ea2ee test(e2e): replan saved deck applies before retrying (#2288)
  • 0710ba6 test(e2e): retry transient reset failures by HTTP status (#2290)
  • c7e91e2 refactor(declarative): share MCP server lifecycle reconciliation (#2293)
  • 79ddd85 test(e2e): make system account sync assertions retry-safe (#2291)
  • 86287a6 test(e2e): poll adoption plans for read-only convergence (#2292)
  • d406688 refactor(declarative): share owner collection reconciliation (#2294)
  • 1397242 refactor(declarative): share optional Portal singleton reconciliation (#2295)
  • 57628cf refactor(declarative): share indexed Event Gateway child reconciliation (#2296)
  • 13ff7b2 test(e2e): harden saved-plan apply workflows against retries (#2297)
  • b8547fb refactor(declarative): share lifecycle decisions for roots owning children (#2298)
  • 17cfb50 test(e2e): extend saved-plan retry recovery across scenarios (#2300)

🙏 Contributors

Thanks to @VarunAthreya and @bartsmykla for their contributions to this release!


Full Changelog: v1.16.0...v1.17.0> Generated by Release · opus46 · 105.1 AIC · ⌖ 32.1 AIC · ⊞ 4.4K

Don't miss a new kongctl release

NewReleases is sending notifications on new releases.