前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Spark Operator】webhook的NamespaceSelector和ObjectSelector

【Spark Operator】webhook的NamespaceSelector和ObjectSelector

原创
作者头像
runzhliu
发布2020-12-31 11:29:35
1K0
发布2020-12-31 11:29:35
举报
文章被收录于专栏:容器计算

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

代码语言:go
复制
	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年最后一天了,水一篇…

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档