# Kubernetes Kyverno

**Originalni autor ove stranice je** [**Guillaume**](https://www.linkedin.com/in/guillaume-chapela-ab4b9a196)

## Definicija&#x20;

Kyverno je open-source okvir za upravljanje politikama za Kubernetes koji omogućava organizacijama da definišu, sprovode i audituju politike širom svoje Kubernetes infrastrukture. Pruža skalabilno, proširivo i veoma prilagodljivo rešenje za upravljanje bezbednošću, usklađenošću i upravljanjem Kubernetes klasterima.

## Upotrebe

Kyverno se može koristiti u raznim slučajevima, uključujući:

1. **Sprovođenje mrežnih politika**: Kyverno se može koristiti za sprovođenje mrežnih politika, kao što su dozvoljavanje ili blokiranje saobraćaja između podova ili servisa.
2. **Upravljanje tajnama**: Kyverno se može koristiti za sprovođenje politika upravljanja tajnama, kao što je zahtev da se tajne čuvaju u specifičnom formatu ili lokaciji.
3. **Kontrola pristupa**: Kyverno se može koristiti za sprovođenje politika kontrole pristupa, kao što je zahtev da korisnici imaju specifične uloge ili dozvole za pristup određenim resursima.

## **Primer: ClusterPolicy i Policy**

Recimo da imamo Kubernetes klaster sa više namespace-ova, i želimo da sprovedemo politiku koja zahteva da svi podovi u `default` namespace-u imaju specifičnu oznaku.

**ClusterPolicy**

ClusterPolicy je politika na visokom nivou koja definiše ukupnu nameru politike. U ovom slučaju, naša ClusterPolicy bi mogla izgledati ovako:
```yaml
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-label
spec:
rules:
- validate:
message: "Pods in the default namespace must have the label 'app: myapp'"
match:
any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
- any:
- resources:
kinds:
- Pod
namespaceSelector:
matchLabels:
namespace: default
validationFailureAction: enforce
```
Kada se pod kreira u `default` imenskom prostoru bez oznake `app: myapp`, Kyverno će blokirati zahtev i vratiti poruku o grešci koja ukazuje da pod ne ispunjava zahteve politike.

## References

* [https://kyverno.io/](https://kyverno.io/)
