Categorygithub.com/navikt/knep
modulepackage
0.0.0-20241216203954-ec074932a89a
Repository: https://github.com/navikt/knep.git
Documentation: pkg.go.dev

# README

Knada NetworkPolicy Admission Webhook - knep

Knada Network Policy Admission Webhook - knep - er en Validating Admission Webhook som oppretter egress FQDN network policies og standard network policies for Jupyterhub og Airflow workers for å tillate trafikk ut fra poddene til en liste med hoster som brukerne selv angir. I utgangspunktet vil podder ha en default egress network policy som tillater trafikk ut til det som er felles (som f.eks. private.googleapis.com). Denne default network policien rulles ut i team namespacet av replicator når brukeren gjennom Knorten enabler allowlist featuren for teamet sitt. Alt utover det angitt i default network policien må brukerne selv spesifisere for enten notebooken sin eller hver enkelt task i Airflow DAGene sine som beskrevet i KNADA docs.

Admission Webhook callbacken vil se etter podder som har labels component: singleuser-server (for notebook podder) og dag_id (for Airflow pods), og lage FQDN og vanlige network policies spesifikt for podden som tillater trafikk ut til hostene angitt i allowlist annotasjonen til pod ressursen før podden blir tillat å starte. Etter at podden terminerer (enten med suksess eller feil) vil kontrolleren fjerne de pod spesifikke network policiene.

graph TB;
    user(user)
    user--"enable allowlist"-->knorten[knorten]
    subgraph "cluster: knada-gke"
        direction LR
        subgraph "namespace: knada-system"
            knorten[knorten]--"enabled label for team namespace"-->replicator[replicator]
            knep[knep]
        end
        subgraph " "
            apiserver[apiserver]--"call webhook"-->knep
        end
        subgraph "namespace: team-a"
            apiserver--"deploy"-->task[notebook/airflow worker]
            service[airflow/jupyter]--"create pod request"-->apiserver
            defaultnetpol[default netpol]
            knep[knep]--"deploy"-->tasknetpol[pod specific netpol]
            knep--"allowed"-->apiserver
            replicator--"deploy"-->defaultnetpol[default netpol]
        end
    end

Den resulterende egress network policien for en Jupyterhub eller Airflow worker pod blir da en kombinasjon av default policien og de task spesifikke policiene.

# Packages

No description provided by the author

# Structs

No description provided by the author