Skip to content

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.