From d03738a7571b55b1e22475af002b7ab8afd926e0 Mon Sep 17 00:00:00 2001 From: Leonard Cohnen Date: Tue, 3 Dec 2024 20:56:05 +0100 Subject: [PATCH] genpolicy: expose create as library This commit allows to programmatically invoke genpolicy. This allows for other rust tools that don't want to consume genpolicy as binary to generate policies. One such use-case is the policy integration test implemented in the following commits. Signed-off-by: Leonard Cohnen --- src/tools/genpolicy/src/lib.rs | 30 ++++++++++++++++++++++++++++++ src/tools/genpolicy/src/policy.rs | 2 +- src/tools/genpolicy/src/utils.rs | 6 ++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/tools/genpolicy/src/lib.rs diff --git a/src/tools/genpolicy/src/lib.rs b/src/tools/genpolicy/src/lib.rs new file mode 100644 index 000000000..e6bb2100b --- /dev/null +++ b/src/tools/genpolicy/src/lib.rs @@ -0,0 +1,30 @@ +// Copyright (c) 2024 Edgeless Systems GmbH +// +// SPDX-License-Identifier: Apache-2.0 +// + +pub mod config_map; +pub mod containerd; +pub mod cronjob; +pub mod daemon_set; +pub mod deployment; +pub mod job; +pub mod list; +pub mod mount_and_storage; +pub mod no_policy; +pub mod obj_meta; +pub mod persistent_volume_claim; +pub mod pod; +pub mod pod_template; +pub mod policy; +pub mod registry; +pub mod registry_containerd; +pub mod replica_set; +pub mod replication_controller; +pub mod secret; +pub mod settings; +pub mod stateful_set; +pub mod utils; +pub mod verity; +pub mod volume; +pub mod yaml; diff --git a/src/tools/genpolicy/src/policy.rs b/src/tools/genpolicy/src/policy.rs index 656e41066..4879260b2 100644 --- a/src/tools/genpolicy/src/policy.rs +++ b/src/tools/genpolicy/src/policy.rs @@ -33,7 +33,7 @@ use std::io::Write; /// Intermediary format of policy data. pub struct AgentPolicy { /// K8s resources described by the input YAML file. - resources: Vec>, + pub resources: Vec>, /// K8s ConfigMap resources described by an additional input YAML file /// or by the "main" input YAML file, containing additional pod settings. diff --git a/src/tools/genpolicy/src/utils.rs b/src/tools/genpolicy/src/utils.rs index 002eafaf1..6696338cd 100644 --- a/src/tools/genpolicy/src/utils.rs +++ b/src/tools/genpolicy/src/utils.rs @@ -161,3 +161,9 @@ impl Config { } } } + +impl Default for Config { + fn default() -> Self { + Self::new() + } +}