Files
blog-nationtech/blog-sre/bug-okd-root-ceph/doc.md

50 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 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"]
```