Files
blog-nationtech/articles/sre/doc.md

2.0 KiB
Raw Blame History

Message de will ds affilium

https://discord.com/channels/874270880975450112/1291867776310579221/1441782992258207846

Bonjour, Hier, on a finalement réussi à régler lerreur de création dIPAddress qui tournait en boucle. Au final, cétait un bug connu avec OCP 4.20 et Ceph. Linfo est ici : https://github.com/okd-project/okd/issues/2280

En gros, le problème était : -Après lupgrade 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 lopérateur les supprimait immédiatement
  • Ce qui créait une boucle infinie
  • Lerreur alternait entre rook-ceph-mgr-dashboard et rook-ceph-mgr selon lequel était actif
  • Aucun Service Ceph nexistait dans default, mais des IPAddress y étaient quand même créés avec un ref vers rook-ceph

Lapplication 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"]