docs: base extension support on instance capabilities
E2E Tests / Run on Ubuntu (pull_request) Failing after 33s
Tests / Run on Ubuntu (pull_request) Successful in 5m33s
Lint / Run on Ubuntu (pull_request) Successful in 7m40s

This commit is contained in:
2026-09-14 14:18:00 +00:00
parent ed6fd7bb85
commit 55869acfd5
7 changed files with 43 additions and 20 deletions
+5 -5
View File
@@ -40,15 +40,16 @@ cluster-scoped,short name 为 `pginstance`。
| `spec.adminCredentialRef.name` | string | 必填 | controller namespace 内的管理 Secret 名称 |
| `spec.adminCredentialRef.usernameKey` | string | `username` | Secret data 中的键名 |
| `spec.adminCredentialRef.passwordKey` | string | `password` | Secret data 中的键名 |
| `spec.allowedExtensions` | set[string] | 空集合 | 合法 extension 名称的 allowlist |
`adminCredentialRef` 不接受 namespace 或 Bao path。管理 Secret 固定在 controller
namespace,名称须合法,两个字段须存在且非空。管理员维护 ExternalSecret,由 ESO
同步;controller 只读管理 Secret,不创建或修改它。此为 2026-09-13 批准的修订,
现有 API types、生成 CRD 和 samples 尚未更新。
Instance endpoint、管理凭据引用和 allowlist 可以修改。修改后 controller 重新验证;
删除 allowlist 项目不会自动从已有 Tenant database 删除 extension。
Instance endpoint、管理凭据引用可以修改。修改后 controller 重新验证。
2026-09-14 修订:v1alpha1 不实现 allowedExtensions;现有 API types、生成 CRD 和
samples 中的字段待后续移除,不作为一个可配置但被忽略的策略保留。
扩展请求按目标 PostgreSQL 实际可安装列表判断,可用列表由应用层查询。
endpoint 由管理员负责,不校验变更前后是否同一物理服务器/registry,只重验新配置
的连接与管理能力。新 UID 按新 Instance 处理,不授权接管旧 UID 的 Tenant 资源。
@@ -81,7 +82,7 @@ namespaced,short name 为 `pgtenant`。
| `spec.instanceRef` | string | 必填 | cluster-scoped Instance 名称 |
| `spec.database` | string | `metadata.name` | 合法 PostgreSQL identifier |
| `spec.loginRole` | string | `metadata.name` | database owner 兼应用 login |
| `spec.extensions` | set[string] | 空集合 | 必须属于 Instance allowlist;成功创建后只允许追加 |
| `spec.extensions` | set[string] | 空集合 | 必须属于目标实例实际可安装的扩展列表;成功创建后只允许追加 |
| `spec.credential.secretName` | string | `<instance>-<name>-postgresql` | 合法的同 namespace ESO target Secret 名称 |
| `spec.deletionPolicy` | enum | `Retain` | `Retain` 或 `Delete` |
@@ -172,7 +173,6 @@ spec:
sslMode: verify-full
adminCredentialRef:
name: shared-postgresql-admin
allowedExtensions: [pg_trgm]
---
apiVersion: database.ddupan.top/v1alpha1
kind: PostgreSQLTenant