亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用自定義 fieldSelector 列出來自緩存客戶端的自定義資源

使用自定義 fieldSelector 列出來自緩存客戶端的自定義資源

Go
慕婉清6462132 2023-07-04 16:54:10
我正在使用Operator SDK構建自定義 Kubernetes Operator。我使用相應的 Operator SDK 命令創建了自定義資源定義和控制器:operator-sdk add api --api-version example.com/v1alpha1 --kind=Exampleoperator-sdk add controller --api-version example.com/v1alpha1 --kind=Example在主協調循環中(對于上面的示例,自動生成的ReconcileExample.Reconcile方法),我有一些自定義業務邏輯,需要我在 Kubernetes API 中查詢具有特定字段值的同類其他對象。我突然想到,我也許可以使用默認的 API 客戶端(由控制器提供)和自定義字段選擇器:func (r *ReconcileExample) Reconcile(request reconcile.Request) (reconcile.Result, error) {    ctx := context.TODO()    listOptions := client.ListOptions{        FieldSelector: fields.SelectorFromSet(fields.Set{"spec.someField": "someValue"}),        Namespace:     request.Namespace,    }    otherExamples := v1alpha1.ExampleList{}    if err := r.client.List(ctx, &listOptions, &otherExamples); err != nil {        return reconcile.Result{}, err    }    // do stuff...    return reconcile.Result{}, nil}當我運行該運算符并創建新Example資源時,該運算符失敗并顯示以下錯誤消息:{"level":"info","ts":1563388786.825384,"logger":"controller_example","msg":"Reconciling Example","Request.Namespace":"default","Request.Name":"example-test"}{"level":"error","ts":1563388786.8255732,"logger":"kubebuilder.controller","msg":"Reconciler error","controller":"example-controller","request":"default/example-test","error":"Index with name field:spec.someField does not exist","stacktrace":"..."}最重要的部分是名稱字段索引:spec.someField 不存在我已經搜索了關于默認 API 客戶端的 Operator SDK 文檔,并了解了一些有關客戶端內部工作原理的信息,但沒有詳細解釋此錯誤或如何修復它。此錯誤消息是什么意思,如何創建此缺失索引以按此字段值有效列出對象?
查看完整描述

目前暫無任何回答

  • 0 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號