Commit Diff


commit - b3f208ac04b3964747bb6430cf720327e3d9f712
commit + f1fda6e864ffed0ee0fb5a17945d388306e00bba
blob - e74f0a051aa742da2231a7665088f2e0f06c3c75
blob + 229379fec7987c02ced194584bcd422ee3513084
--- kopsd/src/handler.rs
+++ kopsd/src/handler.rs
@@ -83,23 +83,42 @@ impl Handler {
             }
         };
 
-        let container_name = req.container.clone().unwrap_or_else(|| {
-            spec.containers[0].name.clone() // default: first container
-        });
+        let mut vars: Vec<EnvEntry> = Vec::new();
 
-        let container =
-            match spec.containers.iter().find(|c| c.name == container_name) {
-                Some(c) => c,
-                None => {
-                    return Response::Error {
-                        message: format!(
-                            "container '{}' not found in pod {}",
-                            container_name, req.pod
-                        ),
-                    };
-                }
-            };
+        // let container_name = req.container.clone().unwrap_or_else(|| {
+        //     spec.containers[0].name.clone() // default: first container
+        // });
 
+        for container in spec.containers.clone() {
+            let container_vars: Vec<EnvEntry> = container
+                .env
+                .clone()
+                .unwrap_or_default()
+                .into_iter()
+                .filter(|_e| {
+                    // if let Some(re) = &regex { re.is_match(&e.name) } else { true }
+                    true
+                })
+                .map(|e| EnvEntry { name: e.name, value: e.value })
+                .collect();
+            vars.extend(container_vars);
+        }
+
+        vars.sort();
+
+        // let container =
+        //     match spec.containers.iter().find(|c| c.name == container_name) {
+        //         Some(c) => c,
+        //         None => {
+        //             return Response::Error {
+        //                 message: format!(
+        //                     "container '{}' not found in pod {}",
+        //                     container_name, req.pod
+        //                 ),
+        //             };
+        //         }
+        //     };
+
         // filtrar vars
         // let regex = match req.filter_regex {
         //     Some(r) => Some(match Regex::new(&r) {
@@ -113,17 +132,17 @@ impl Handler {
         //     None => None,
         // };
 
-        let vars: Vec<EnvEntry> = container
-            .env
-            .clone()
-            .unwrap_or_default()
-            .into_iter()
-            .filter(|_e| {
-                // if let Some(re) = &regex { re.is_match(&e.name) } else { true }
-                true
-            })
-            .map(|e| EnvEntry { name: e.name, value: e.value })
-            .collect();
+        // let vars: Vec<EnvEntry> = container
+        //     .env
+        //     .clone()
+        //     .unwrap_or_default()
+        //     .into_iter()
+        //     .filter(|_e| {
+        //         // if let Some(re) = &regex { re.is_match(&e.name) } else { true }
+        //         true
+        //     })
+        //     .map(|e| EnvEntry { name: e.name, value: e.value })
+        //     .collect();
 
         Response::EnvVars { vars }
     }