Jaka jest różnica między Mutating, a Validating Admission Controllerem?¶
Validating Admission Controller¶
Validating Admission Controller służy do weryfikacji, czy nowo tworzony zasób dany User może zdefiniować na klastrze, czy może utworzyć nowego Poda, PVC w danym namespace, itd.
Przykładem może być NamespaceExists, który sprawdza, czy dany namespace istnieje. Jeżeli istnieje - request jest przyjmowany, jeżeli jest jego brak - następuje odrzucenie.
Mutating Admission Controller¶
Mutating Admission Controller służy do przypisywania jakichś parametrów do nowo tworzonych zasobów, np. w momencie tworzenia Poda będzie dodany do niego nowe oznaczenie, lub domyślnie zostanie umieszczony w namespace: New-default.
Przykładem może być klasa DefaultStorageClass, która przypisuje do default strorage klasy, gdy nie istnieje pole spec.storageClassName w definicji PVC.
Warning
Mutating Admission Controller jest uruchamiany przed Validating Admission Controllerem!
Podsumowanie¶
W skrócie: - Validating Admission Controller - sprawdza i odrzuca lub akceptuje żądanie tworzenia/aktualizacji zasobu.
- Mutating Admission Controller - może zmieniać zasób przed jego zapisaniem, np. dodając etykiety, sidecary, lub przypisując domyślny namespace.