L'éditeur php Yuzai vous présentera le contenu pertinent des modifications des objets de coordination du contrôleur dans cet article. Au cours du processus de développement, le contrôleur joue un rôle important, chargé de recevoir les demandes des utilisateurs et de planifier la logique métier correspondante. Cependant, nous pouvons parfois être amenés à modifier l'objet de coordination du contrôleur pour répondre à des besoins spécifiques. Cet article expliquera en détail comment modifier l'objet de coordination du contrôleur pour aider les développeurs à mieux comprendre et appliquer ce concept. Que vous soyez débutant ou développeur expérimenté, vous obtiendrez des connaissances et des conseils utiles grâce à cet article. Commençons!
J'essaie d'utiliser le SDK de l'opérateur pour écouter les modifications secrètes Le problème c'est que lorsque j'applique le secret en utilisant le label que j'ai défini dans l'opérateur, je ne reçois pas l'évènement de coordination
J'ai fait ce qui suit
mgr, err := ctrl.newmanager(ctrl.getconfigordie(), ctrl.options{ scheme: scheme, … newcache: cache.builderwithoptions(cache.options{ selectorsbyobject: cache.selectorsbyobject{ &corev1.secret{}: { label: labels.selectorfromset(labels.set{"foo": "bar"}), }, }, }),
Je dirige l'opérateur et applique le secret suivant, mais la coordination ne s'appelle pas, une idée ?
apiVersion: v1 kind: Secret metadata: labels: foo: bar name: mysecret namespace: dev type: Opaque data: USER_NAME: YWRtaW4= PASSWORD: dGVzdBo=
On dirait que vous utilisez le champ cache.options.selectorsbyobject pour spécifier les balises qui doivent déclencher l'événement de coordination. Cependant, ce champ est utilisé pour spécifier la balise qui doit être utilisée pour sélectionner l'objet dans le cache, et non la balise qui doit déclencher l'événement de réconciliation.
Pour spécifier les balises qui doivent déclencher l'événement de coordination, vous pouvez utiliser la fonction ctrl.watch comme suit :
mgr.Watch(&source.Kind{Type: &corev1.Secret{}}, &handler.EnqueueRequestForObject{}, predicate.Funcs{ UpdateFunc: func(e event.UpdateEvent) bool { return labels.Set(e.MetaNew.GetLabels()).Has("foo", "bar") }, })
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!