From 43e9de81255ba2d220c0b975cf27d6d886bf50dc Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Mon, 8 Apr 2024 10:45:38 +0000 Subject: [PATCH 1/7] genpolicy: add default implementation for get_annotations - Provide default implementation for get_annontations. - Remove default implementation from structs implementing the trait K8sResource Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/list.rs | 5 ----- src/tools/genpolicy/src/no_policy.rs | 5 ----- src/tools/genpolicy/src/secret.rs | 4 ---- src/tools/genpolicy/src/yaml.rs | 5 ++++- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/tools/genpolicy/src/list.rs b/src/tools/genpolicy/src/list.rs index 3b6667261b..9e4a48836e 100644 --- a/src/tools/genpolicy/src/list.rs +++ b/src/tools/genpolicy/src/list.rs @@ -18,7 +18,6 @@ use protocols::agent; use serde::{Deserialize, Serialize}; use serde_yaml::Value; use std::boxed; -use std::collections::BTreeMap; use std::marker::{Send, Sync}; #[derive(Debug, Serialize, Deserialize)] @@ -90,10 +89,6 @@ impl yaml::K8sResource for List { panic!("Unsupported"); } - fn get_annotations(&self) -> &Option> { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index e5af283319..b920550999 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -14,7 +14,6 @@ use crate::yaml; use async_trait::async_trait; use protocols::agent; -use std::collections::BTreeMap; #[derive(Clone, Debug)] pub struct NoPolicyResource { @@ -57,10 +56,6 @@ impl yaml::K8sResource for NoPolicyResource { panic!("Unsupported"); } - fn get_annotations(&self) -> &Option> { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index 62f8fe9ca0..6def0cf49c 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -104,10 +104,6 @@ impl yaml::K8sResource for Secret { panic!("Unsupported"); } - fn get_annotations(&self) -> &Option> { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index 9ac1302f33..71f4f93195 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -66,7 +66,10 @@ pub trait K8sResource { ); fn get_containers(&self) -> &Vec; - fn get_annotations(&self) -> &Option>; + fn get_annotations(&self) -> &Option> { + panic!("Unsupported"); + } + fn use_host_network(&self) -> bool; fn use_sandbox_pidns(&self) -> bool; } From 09b0b4c11d9eed53dc5c433ab17ba75bd06d6af9 Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:02:28 +0000 Subject: [PATCH 2/7] genpolicy: add default implementation for get_sandbox_name - Provide default implementation for get_sandbox_name in K8sResource trait - Remove default implementation from structs implementing the trait K8sResource Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/config_map.rs | 4 ---- src/tools/genpolicy/src/list.rs | 4 ---- src/tools/genpolicy/src/no_policy.rs | 4 ---- src/tools/genpolicy/src/secret.rs | 4 ---- src/tools/genpolicy/src/yaml.rs | 5 ++++- 5 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/tools/genpolicy/src/config_map.rs b/src/tools/genpolicy/src/config_map.rs index da6290f3e7..479fbc5c56 100644 --- a/src/tools/genpolicy/src/config_map.rs +++ b/src/tools/genpolicy/src/config_map.rs @@ -89,10 +89,6 @@ impl yaml::K8sResource for ConfigMap { self.doc_mapping = doc_mapping.clone(); } - fn get_sandbox_name(&self) -> Option { - panic!("Unsupported"); - } - fn get_container_mounts_and_storages( &self, _policy_mounts: &mut Vec, diff --git a/src/tools/genpolicy/src/list.rs b/src/tools/genpolicy/src/list.rs index 9e4a48836e..4a0daf28f6 100644 --- a/src/tools/genpolicy/src/list.rs +++ b/src/tools/genpolicy/src/list.rs @@ -49,10 +49,6 @@ impl yaml::K8sResource for List { } } - fn get_sandbox_name(&self) -> Option { - panic!("Unsupported"); - } - fn get_container_mounts_and_storages( &self, _policy_mounts: &mut Vec, diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index b920550999..0b7e2b75c7 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -30,10 +30,6 @@ impl yaml::K8sResource for NoPolicyResource { ) { } - fn get_sandbox_name(&self) -> Option { - panic!("Unsupported"); - } - fn get_container_mounts_and_storages( &self, _policy_mounts: &mut Vec, diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index 6def0cf49c..ac497510af 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -78,10 +78,6 @@ impl yaml::K8sResource for Secret { self.doc_mapping = doc_mapping.clone(); } - fn get_sandbox_name(&self) -> Option { - panic!("Unsupported"); - } - fn get_container_mounts_and_storages( &self, _policy_mounts: &mut Vec, diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index 71f4f93195..17b9394354 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -52,7 +52,10 @@ pub trait K8sResource { fn generate_policy(&self, agent_policy: &policy::AgentPolicy) -> String; fn serialize(&mut self, policy: &str) -> String; - fn get_sandbox_name(&self) -> Option; + fn get_sandbox_name(&self) -> Option { + panic!("Unsupported"); + } + fn get_namespace(&self) -> Option { panic!("Unsupported"); } From 2db3470602692295921c373f30045c32483344cd Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:09:42 +0000 Subject: [PATCH 3/7] genpolicy: add default impl for get_container_mounts_and_storages - Provide default impl for get_container_mounts_and_storages - Remove default impl from structs implementing the trait K8sResource Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/config_map.rs | 12 ------------ src/tools/genpolicy/src/no_policy.rs | 12 ------------ src/tools/genpolicy/src/secret.rs | 12 ------------ src/tools/genpolicy/src/yaml.rs | 12 +++++++----- 4 files changed, 7 insertions(+), 41 deletions(-) diff --git a/src/tools/genpolicy/src/config_map.rs b/src/tools/genpolicy/src/config_map.rs index 479fbc5c56..ba02979440 100644 --- a/src/tools/genpolicy/src/config_map.rs +++ b/src/tools/genpolicy/src/config_map.rs @@ -9,13 +9,11 @@ use crate::obj_meta; use crate::pod; use crate::policy; -use crate::settings; use crate::utils::Config; use crate::yaml; use async_trait::async_trait; use log::debug; -use protocols::agent; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::fs::File; @@ -89,16 +87,6 @@ impl yaml::K8sResource for ConfigMap { self.doc_mapping = doc_mapping.clone(); } - fn get_container_mounts_and_storages( - &self, - _policy_mounts: &mut Vec, - _storages: &mut Vec, - _container: &pod::Container, - _settings: &settings::Settings, - ) { - panic!("Unsupported"); - } - fn generate_policy(&self, _agent_policy: &policy::AgentPolicy) -> String { "".to_string() } diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index 0b7e2b75c7..fc0536feed 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -8,12 +8,10 @@ use crate::pod; use crate::policy; -use crate::settings; use crate::utils::Config; use crate::yaml; use async_trait::async_trait; -use protocols::agent; #[derive(Clone, Debug)] pub struct NoPolicyResource { @@ -30,16 +28,6 @@ impl yaml::K8sResource for NoPolicyResource { ) { } - fn get_container_mounts_and_storages( - &self, - _policy_mounts: &mut Vec, - _storages: &mut Vec, - _container: &pod::Container, - _settings: &settings::Settings, - ) { - panic!("Unsupported"); - } - fn generate_policy(&self, _agent_policy: &policy::AgentPolicy) -> String { "".to_string() } diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index ac497510af..0f2cf13ed0 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -9,13 +9,11 @@ use crate::obj_meta; use crate::pod; use crate::policy; -use crate::settings; use crate::utils::Config; use crate::yaml; use async_trait::async_trait; use base64::{engine::general_purpose, Engine as _}; -use protocols::agent; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; @@ -78,16 +76,6 @@ impl yaml::K8sResource for Secret { self.doc_mapping = doc_mapping.clone(); } - fn get_container_mounts_and_storages( - &self, - _policy_mounts: &mut Vec, - _storages: &mut Vec, - _container: &pod::Container, - _settings: &settings::Settings, - ) { - panic!("Unsupported"); - } - fn generate_policy(&self, _agent_policy: &policy::AgentPolicy) -> String { "".to_string() } diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index 17b9394354..d76a74686a 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -62,11 +62,13 @@ pub trait K8sResource { fn get_container_mounts_and_storages( &self, - policy_mounts: &mut Vec, - storages: &mut Vec, - container: &pod::Container, - settings: &settings::Settings, - ); + _policy_mounts: &mut Vec, + _storages: &mut Vec, + _container: &pod::Container, + _settings: &settings::Settings, + ) { + panic!("Unsupported"); + } fn get_containers(&self) -> &Vec; fn get_annotations(&self) -> &Option> { From 9a3eac5306cf295e8cc45f6ef62c18ca374ad558 Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:14:58 +0000 Subject: [PATCH 4/7] genpolicy: add default impl for get_containers - Provide default impl for get_containers - Remove default impl from structs implementing the trait K8sResource Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/config_map.rs | 4 ---- src/tools/genpolicy/src/list.rs | 4 ---- src/tools/genpolicy/src/no_policy.rs | 5 ----- src/tools/genpolicy/src/secret.rs | 4 ---- src/tools/genpolicy/src/yaml.rs | 5 ++++- 5 files changed, 4 insertions(+), 18 deletions(-) diff --git a/src/tools/genpolicy/src/config_map.rs b/src/tools/genpolicy/src/config_map.rs index ba02979440..6f46d07753 100644 --- a/src/tools/genpolicy/src/config_map.rs +++ b/src/tools/genpolicy/src/config_map.rs @@ -95,10 +95,6 @@ impl yaml::K8sResource for ConfigMap { serde_yaml::to_string(&self.doc_mapping).unwrap() } - fn get_containers(&self) -> &Vec { - panic!("Unsupported"); - } - fn get_annotations(&self) -> &Option> { &self.metadata.annotations } diff --git a/src/tools/genpolicy/src/list.rs b/src/tools/genpolicy/src/list.rs index 4a0daf28f6..834f8c334f 100644 --- a/src/tools/genpolicy/src/list.rs +++ b/src/tools/genpolicy/src/list.rs @@ -81,10 +81,6 @@ impl yaml::K8sResource for List { serde_yaml::to_string(&self).unwrap() } - fn get_containers(&self) -> &Vec { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index fc0536feed..e78bc17214 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -6,7 +6,6 @@ // Allow K8s YAML field names. #![allow(non_snake_case)] -use crate::pod; use crate::policy; use crate::utils::Config; use crate::yaml; @@ -36,10 +35,6 @@ impl yaml::K8sResource for NoPolicyResource { self.yaml.clone() } - fn get_containers(&self) -> &Vec { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index 0f2cf13ed0..12dcb1fd31 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -84,10 +84,6 @@ impl yaml::K8sResource for Secret { serde_yaml::to_string(&self.doc_mapping).unwrap() } - fn get_containers(&self) -> &Vec { - panic!("Unsupported"); - } - fn use_host_network(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index d76a74686a..def95ccaa1 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -70,7 +70,10 @@ pub trait K8sResource { panic!("Unsupported"); } - fn get_containers(&self) -> &Vec; + fn get_containers(&self) -> &Vec { + panic!("Unsupported"); + } + fn get_annotations(&self) -> &Option> { panic!("Unsupported"); } From d5d3f9cda75a652f5ca1515396af294446cdb5aa Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:18:08 +0000 Subject: [PATCH 5/7] genpolicy: add default implementation for use_host_network - Provide default implementation for use_host_network - Remove default implementation from structs implementing the trait K8sResource Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/config_map.rs | 4 ---- src/tools/genpolicy/src/list.rs | 4 ---- src/tools/genpolicy/src/no_policy.rs | 4 ---- src/tools/genpolicy/src/secret.rs | 4 ---- src/tools/genpolicy/src/yaml.rs | 5 ++++- 5 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/tools/genpolicy/src/config_map.rs b/src/tools/genpolicy/src/config_map.rs index 6f46d07753..34d822b451 100644 --- a/src/tools/genpolicy/src/config_map.rs +++ b/src/tools/genpolicy/src/config_map.rs @@ -99,10 +99,6 @@ impl yaml::K8sResource for ConfigMap { &self.metadata.annotations } - fn use_host_network(&self) -> bool { - panic!("Unsupported"); - } - fn use_sandbox_pidns(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/list.rs b/src/tools/genpolicy/src/list.rs index 834f8c334f..7b99b2b139 100644 --- a/src/tools/genpolicy/src/list.rs +++ b/src/tools/genpolicy/src/list.rs @@ -81,10 +81,6 @@ impl yaml::K8sResource for List { serde_yaml::to_string(&self).unwrap() } - fn use_host_network(&self) -> bool { - panic!("Unsupported"); - } - fn use_sandbox_pidns(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index e78bc17214..9face779e8 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -35,10 +35,6 @@ impl yaml::K8sResource for NoPolicyResource { self.yaml.clone() } - fn use_host_network(&self) -> bool { - panic!("Unsupported"); - } - fn use_sandbox_pidns(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index 12dcb1fd31..3ebb7e8ba1 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -84,10 +84,6 @@ impl yaml::K8sResource for Secret { serde_yaml::to_string(&self.doc_mapping).unwrap() } - fn use_host_network(&self) -> bool { - panic!("Unsupported"); - } - fn use_sandbox_pidns(&self) -> bool { panic!("Unsupported"); } diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index def95ccaa1..a5b1034d66 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -78,7 +78,10 @@ pub trait K8sResource { panic!("Unsupported"); } - fn use_host_network(&self) -> bool; + fn use_host_network(&self) -> bool { + panic!("Unsupported"); + } + fn use_sandbox_pidns(&self) -> bool; } From 6edc3b6b0a258e8bcad976ba769bb0d906ba42ea Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:21:28 +0000 Subject: [PATCH 6/7] genpolicy: add default implementation for use_sandbox_pidns This patch adds a default implementation for the use_sandbox_pidns and updates the structs that implement the K8sResource trait to use the default. Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/config_map.rs | 4 ---- src/tools/genpolicy/src/list.rs | 4 ---- src/tools/genpolicy/src/no_policy.rs | 4 ---- src/tools/genpolicy/src/secret.rs | 4 ---- src/tools/genpolicy/src/yaml.rs | 4 +++- 5 files changed, 3 insertions(+), 17 deletions(-) diff --git a/src/tools/genpolicy/src/config_map.rs b/src/tools/genpolicy/src/config_map.rs index 34d822b451..ac84c623b7 100644 --- a/src/tools/genpolicy/src/config_map.rs +++ b/src/tools/genpolicy/src/config_map.rs @@ -98,8 +98,4 @@ impl yaml::K8sResource for ConfigMap { fn get_annotations(&self) -> &Option> { &self.metadata.annotations } - - fn use_sandbox_pidns(&self) -> bool { - panic!("Unsupported"); - } } diff --git a/src/tools/genpolicy/src/list.rs b/src/tools/genpolicy/src/list.rs index 7b99b2b139..e88d5a1ded 100644 --- a/src/tools/genpolicy/src/list.rs +++ b/src/tools/genpolicy/src/list.rs @@ -80,8 +80,4 @@ impl yaml::K8sResource for List { } serde_yaml::to_string(&self).unwrap() } - - fn use_sandbox_pidns(&self) -> bool { - panic!("Unsupported"); - } } diff --git a/src/tools/genpolicy/src/no_policy.rs b/src/tools/genpolicy/src/no_policy.rs index 9face779e8..ce9f5ec554 100644 --- a/src/tools/genpolicy/src/no_policy.rs +++ b/src/tools/genpolicy/src/no_policy.rs @@ -34,8 +34,4 @@ impl yaml::K8sResource for NoPolicyResource { fn serialize(&mut self, _policy: &str) -> String { self.yaml.clone() } - - fn use_sandbox_pidns(&self) -> bool { - panic!("Unsupported"); - } } diff --git a/src/tools/genpolicy/src/secret.rs b/src/tools/genpolicy/src/secret.rs index 3ebb7e8ba1..7b870886d7 100644 --- a/src/tools/genpolicy/src/secret.rs +++ b/src/tools/genpolicy/src/secret.rs @@ -83,8 +83,4 @@ impl yaml::K8sResource for Secret { fn serialize(&mut self, _policy: &str) -> String { serde_yaml::to_string(&self.doc_mapping).unwrap() } - - fn use_sandbox_pidns(&self) -> bool { - panic!("Unsupported"); - } } diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index a5b1034d66..dd2b4cadc8 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -82,7 +82,9 @@ pub trait K8sResource { panic!("Unsupported"); } - fn use_sandbox_pidns(&self) -> bool; + fn use_sandbox_pidns(&self) -> bool { + panic!("Unsupported"); + } } /// See Reference / Kubernetes API / Common Definitions / LabelSelector. From 4a010cf71bd5bbdbad94eb9fdea7f47ba4e58b84 Mon Sep 17 00:00:00 2001 From: Archana Choudhary Date: Sun, 21 Apr 2024 12:28:43 +0000 Subject: [PATCH 7/7] genpolicy: add default implementations for K8sResource trait This commit adds default implementations for following methods of K8sResource trait: - generate_policy - serialize Fixes: #8960 Signed-off-by: Archana Choudhary --- src/tools/genpolicy/src/yaml.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/tools/genpolicy/src/yaml.rs b/src/tools/genpolicy/src/yaml.rs index dd2b4cadc8..6b7bf0065c 100644 --- a/src/tools/genpolicy/src/yaml.rs +++ b/src/tools/genpolicy/src/yaml.rs @@ -49,8 +49,13 @@ pub trait K8sResource { silent_unsupported_fields: bool, ); - fn generate_policy(&self, agent_policy: &policy::AgentPolicy) -> String; - fn serialize(&mut self, policy: &str) -> String; + fn generate_policy(&self, _agent_policy: &policy::AgentPolicy) -> String { + panic!("Unsupported"); + } + + fn serialize(&mut self, _policy: &str) -> String { + panic!("Unsupported"); + } fn get_sandbox_name(&self) -> Option { panic!("Unsupported");