postgresql - 如何在 Terraform 上使用 CRD 创建 crunchydata postgres 集群?
问题描述
我使用 Terraform 创建了 K8S 集群,还为 Crunchydata Postgres Operator 创建了 CRD
Terraform 脚本如下所示(定制输出)
resource "kubectl_manifest" "pgocluster" {
yaml_body = <<YAML
apiVersion: crunchydata.com/v1
kind: Pgcluster
metadata:
annotations:
current-primary: ${var.pgo_cluster_name}
labels:
crunchy-pgha-scope: ${var.pgo_cluster_name}
deployment-name: ${var.pgo_cluster_name}
name: ${var.pgo_cluster_name}
pg-cluster: ${var.pgo_cluster_name}
pgo-version: 4.6.2
pgouser: admin
name: ${var.pgo_cluster_name}
namespace: ${var.cluster_namespace}
YAML
}
但是当我执行“terraform apply”时,它错误为
Error: pgo/UserGrp failed to create kubernetes rest client for update of resource: resource [crunchydata.com/v1/Pgcluster] isn't valid for cluster, check the APIVersion and Kind fields are valid
但是,根据上面提到的官方链接,以下应该可以工作
apiVersion: crunchydata.com/v1
kind: Pgcluster
我不确定是 Terraform 的问题还是链接没有正确更新
请让我知道应该改变/做些什么来解决这个问题,因为我遇到了这个问题
解决方案
最后,我发现了问题,问题pgo_cluster_name
不是小写的
只有当我单独执行目标时,我才能得到以下错误,即terraform apply --target=<target_name>
Error: pgo/UserGrp failed to run apply: error when creating "/tmp/773985147kubectl_manifest.yaml": Pgcluster.crunchydata.com "UserGrp" is invalid: metadata.name: Invalid value: "UserGrp": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')
我设置pgo_cluster_name=UsrGrp
而不是pgo_cluster_name=usrgrp
推荐阅读
- javascript - 需要帮助访问循环外的数据[未定义]
- shell - 在特定情况发生时读取和编辑文件
- node.js - TypeORM:关系渴望树实体
- iis - HTTP 错误 401.1 - 未经授权:由于凭据无效,访问被拒绝。互联网信息服务 (IIS)
- r - 根据来自另一个变量的值添加到行
- azure - Azure Synpase:如何在通过滑动进行缩放时触发 sql
- node.js - ReferenceError:firebase_app__WEBPACK_IMPORTED_MODULE_0__ 未在 userFunction(Autodesk 的查看器)中定义
- pine-script - Heikin-Ashi 脚本间歇性提供反向买入/卖出信号的问题
- java - Java Stream:比较一个列表是否等于第二个列表的开始(不比较整个列表)
- r - 计算不同点之间的距离并添加具有最近距离和点的列