首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >强制Kubernetes自定义资源规范字段的不变性

强制Kubernetes自定义资源规范字段的不变性
EN

Stack Overflow用户
提问于 2019-06-25 00:38:29
回答 1查看 984关注 0票数 3

我正在使用Kubernetes golang operator sdk实现一个管理RabbitMQ队列的操作符。我想知道k8s是否有办法在我的自定义资源上强制特定规范字段的不变性。我有以下golang结构,它表示一个rabbitMQ队列和一些参数,以便将其绑定到rabbitMQ交换:

代码语言:javascript
复制
type RmqQueueSpec struct {
    VHost string `json:"vhost,required"`
    Exchange string `json:"exchange,required"`
    RoutingKey string `json:"routingKey"`
    SecretConfig map[string]string `json:"secretConfig"`
}

我之所以想要不变性,特别是对于VHost字段,是因为它是一个用于在rabbitMQ中命名队列的参数。如果对现有部署的队列进行了更改,k8s协调器将无法查询预期队列的rabbitMQ,因为它将使用不同的vhost (实际上是不同的命名空间)进行查询,这可能会导致创建新队列或更新错误的队列。

我正在考虑一些替代方案,比如使用required ObjectMeta.Name字段来同时包含连接的vhost和队列名,以确保它们对于已部署的队列是不可变的。或者以某种方式在操作符中缓存旧的规范(还没有确切地知道如何做到这一点),并在协调器中比较旧的和当前的规范,如果VHost更改,则返回错误。然而,这两种方法似乎都不理想。理想情况下,如果运算符框架可以在VHost字段上强制实现不变性,这将是处理此问题的一种简单方法。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56740758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档