首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes在Informer中过滤对象

kubernetes在Informer中过滤对象
EN

Stack Overflow用户
提问于 2017-11-09 23:23:08
回答 1查看 2.5K关注 0票数 2

我正在为kubernetes编写自定义控制器。Im正在创建共享告密者

代码语言:javascript
复制
cache.NewSharedIndexInformer(
            &cache.ListWatch{
                ListFunc: func(options meta_v1.ListOptions) (k8sruntime.Object, error) {

                    return client.CoreV1().ConfigMaps(nameSpace).List(options)
                },
                WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) {

                    return client.CoreV1().ConfigMaps(nameSpace).Watch(options)
                },
            },
            &api_v1.ConfigMap{},
            0, //Skip resyncr
            cache.Indexers{},
        )

我可以选择将过滤功能添加到回调函数中,以进一步减少im使用的对象数量。类似这样的东西

代码语言:javascript
复制
options.FieldSelector := fields.OneTermEqualSelector("metadata.name", nodeName).String()

我想通过正则表达式过滤出对象。或者至少被贴上某种标签。不幸的是,文档无济于事。除了代码本身的测试之外,找不到任何其他内容。如何在过滤机制上应用正则表达式?我在哪里可以得到一些关于这个问题的例子?

EN

回答 1

Stack Overflow用户

发布于 2017-11-19 22:57:48

不可能通过正则表达式来过滤对象。可以通过标记来过滤对象

这是将按标签过滤的代码

代码语言:javascript
复制
labelSelector := labels.Set(map[string]string{"mylabel": "ourdaomain1"}).AsSelector()

informer := cache.NewSharedIndexInformer(
    &cache.ListWatch{
        ListFunc: func(options meta_v1.ListOptions) (k8sruntime.Object, error) {

            options.LabelSelector = labelSelector.String()
            return client.CoreV1().ConfigMaps(nameSpace).List(options)
        },
        WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) {

            options.LabelSelector = labelSelector.String()
            return client.CoreV1().ConfigMaps(nameSpace).Watch(options)
        },
    },
    &api_v1.ConfigMap{},
    0, //Skip resyncr
    cache.Indexers{},
)

另一件需要记住的重要事情是,如何向k8s添加新对象我正在做的事情如下

代码语言:javascript
复制
kubectl --namespace==ourdomain1 create configmap config4 -f ./config1.yaml

这真是不太好。它覆盖配置映射中的所有字段,并将整个文件内容放入新对象的数据中。正确的方法是

代码语言:javascript
复制
kubectl create  -f ./config1.yam
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47205516

复制
相关文章

相似问题

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