50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
|
||
## 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 vers `rook-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"]
|
||
```
|