2.0 KiB
2.0 KiB
Message de will ds affilium
https://discord.com/channels/874270880975450112/1291867776310579221/1441782992258207846
Bonjour, Hier, on a finalement réussi à régler l’erreur de création d’IPAddress qui tournait en boucle. Au final, c’était un bug connu avec OCP 4.20 et Ceph. L’info est ici : https://github.com/okd-project/okd/issues/2280
En gros, le problème était :
-Après l’upgrade vers 4.20, le ipallocator-repair-controller créait des IPAddress dans le namespace default
-Leur spec.parentRef pointait vers des Services dans le namespace rook-ceph
- Les références cross-namespace ne sont pas permises, donc l’opérateur les supprimait immédiatement
- Ce qui créait une boucle infinie
- L’erreur alternait entre rook-ceph-mgr-dashboard et rook-ceph-mgr selon lequel était actif
- Aucun Service Ceph n’existait dans
default, mais des IPAddress y étaient quand même créés avec un ref versrook-ceph
L’application des ressources ci-dessous a réglé le problème :
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: deny-ceph-ipaddress-in-default
spec:
matchConditions:
- name: is-default-ns
expression: 'object.metadata.namespace == "default"'
- name: parent-is-ceph
expression: 'object.spec.parentRef.namespace == "rook-ceph" && (object.spec.parentRef.name == "rook-ceph-mgr" || object.spec.parentRef.name == "rook-ceph-mgr-dashboard")'
validations:
- expression: 'false'
message: 'IPAddress for Ceph service must not be created in default; cross-namespace parentRef is invalid.'
failurePolicy: Fail
matchConstraints:
resourceRules:
- apiGroups: ["networking.k8s.io"]
apiVersions: ["v1"]
operations: ["CREATE"]
resources: ["ipaddresses"]
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicyBinding
metadata:
name: deny-ceph-ipaddress-in-default-binding
spec:
policyName: deny-ceph-ipaddress-in-default
validationActions: ["Deny"]