Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi.

Il s'agit d'une documentation non publiée pour Admission Controller 1.34-dev.

Consignation

Vous pouvez faire en sorte que votre stratégie effectue une journalisation. Le policy-server ou le kwctl transmet ces entrées de journal avec les informations appropriées.

La bibliothèque de journalisation choisie pour le SDK Rust est slog. C’est une crate populaire, bien connue et s’intègre proprement avec SUSE Security Admission Controller.

Initialisez le journaliseur

Le projet recommande de créer un évier global vers lequel vous pouvez journaliser, depuis où cela est nécessaire dans votre stratégie. Pour cela, utilisez la crate lazy_static :

use slog::{o, Logger};

lazy_static! {
    static ref LOG_DRAIN: Logger = Logger::root(
        logging::KubewardenDrain::new(),
        o!("policy" => "sample-policy")
    );
}

Consommation du journaliseur

Maintenant, depuis les fonctions validate ou validate_settings, vous pouvez journaliser en utilisant les macros exportées par slog qui correspondent à chaque niveau de journalisation pris en charge :

use slog::{info, o, warn, Logger};

fn validate(payload: &[u8]) -> CallResult {
    // ...
    info!(LOG_DRAIN, "starting validation");
    // ...
    warn!(
        LOG_DRAIN, "structured log";
        "some_resource_name" => &some_resource_name
    );
    // ...
}

La bibliothèque slog envoie tous les journaux au drain initialisé dans la variable globale. Cela se synchronise avec l’évaluateur de stratégie exécutant la stratégie. C’est soit kwctl soit le policy-server. Ensuite, l’évaluateur de stratégie journalise cette information, ajoutant d’autres informations contextuelles connues, telles que la requête Kubernetes uid.

Plus d’informations sur les macros de journalisation offertes par slog se trouvent dans sa documentation.