有一篇关于使用 Terraform 构建 Konnect 环境 的文章,介绍了如何用 Terraform 配置 Konnect 环境。本文不涉及 Konnect,而是记录如何用 Terraform 配置本地(On-prem)Kong Gateway。
本次使用的 Terraform provider 如下:
https://github.com/Kong/terraform-provider-kong-gateway
https://registry.terraform.io/providers/Kong/kong-gateway/latest/docs
Kong 和 Terraform 的安装过程略。
最低所需文件
- 指定 provider 及 Kong Gateway Admin API 地址
|
|
- Service 定义
|
|
- Route 定义,通过 ID 关联 Service
|
|
应用配置
Kong Gateway 的配置非常轻量,处理速度很快。
|
|
动作确认
Service 和 Route 已新建
|
|
访问也没问题
|
|
添加插件
为 Service 添加 Basic Auth 插件。目标 Service 可用 ID 指定。
|
|
接着定义 Consumer,并为其设置认证信息。
|
|
|
|
再次动作确认
再次 terraform apply
后,如果不设置认证信息,访问会失败:
|
|
加上用户名和密码后,访问成功:
|
|
删除配置
|
|
所感
- 与 deck 不同,应用配置不会影响现有设置
- 与 deck 不同,Service 和 Route 可分开管理
- 截至撰写时,
kong-admin-token
还无法设置,RBAC 环境下无法使用
(20250403 更新)该 Issue 已解决,现在 RBAC 环境也能用了!
https://github.com/Kong/terraform-provider-kong-gateway/pull/7