【Spark Operator】webhook的NamespaceSelector和ObjectSelector

之前走读 Spark Opeartor Webhook 部分的代码的时候发现,因为业务种类很多,我们需要在 webhook 层加很多参数和配置来控制用户的一些行为但是发现原生的 Spark Operator 只接受 NamespaceSelector 也就是这种行为的控制职能针对一个命名空间的对象。这个范围对我们来说有点太大了,我们喜欢更精细一点去控制 Webhook 的效果,所以这里可以通过修改 Webhook,引入 ObjectSelector 来控制。修改 spark-operator webhook 源码,添加了 ObjectSelector,保证只有 Spark 的 Pod 会被发送到 /webhook。

	mutatingWebhook := v1beta1.MutatingWebhook{
		Name:  webhookName,
		Rules: mutatingRules,
		ObjectSelector: &metav1.LabelSelector{
			MatchLabels: map[string]string{"sparkoperator.k8s.io/launched-by-spark-operator": "true"},
		},
		ClientConfig: v1beta1.WebhookClientConfig{
			Service:  wh.serviceRef,
			CABundle: caCert,
		},
		FailurePolicy:     &wh.failurePolicy,
		NamespaceSelector: wh.selector,
	}

上述方案只能在 k8s 1.16+ 才能使用了,目前来说,对于大部分 1.14 的集群,只能通过 Namespace 来区分了,Namespace 加上特定的 Label,也就是只有符合 nameSpaceSelector 这个 Namespace 下的资源对象才会被 webhook 拦截,所以 ObjectSelector 是否生效还要取决于 Webhook 所在的 k8s 集群。
2020年最后一天了,水一篇…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值