@@ -2799,6 +2799,9 @@ fn pod_dependency_references(pod: &Pod, namespace: &str) -> Vec<ResourceReferenc
27992799 if let Some ( reference) = pod_service_account_reference ( pod, namespace) {
28002800 push_unique_reference ( & mut references, reference) ;
28012801 }
2802+ for reference in pod_image_pull_secret_references ( pod, namespace) {
2803+ push_unique_reference ( & mut references, reference) ;
2804+ }
28022805 for reference in pod_env_references ( pod, namespace) {
28032806 push_unique_reference ( & mut references, reference) ;
28042807 }
@@ -2813,6 +2816,16 @@ fn pod_service_account_reference(pod: &Pod, namespace: &str) -> Option<ResourceR
28132816 . map ( |name| resource_reference ( "ServiceAccount" , namespace, name) )
28142817}
28152818
2819+ fn pod_image_pull_secret_references ( pod : & Pod , namespace : & str ) -> Vec < ResourceReference > {
2820+ pod. spec
2821+ . as_ref ( )
2822+ . and_then ( |spec| spec. image_pull_secrets . as_deref ( ) )
2823+ . unwrap_or_default ( )
2824+ . iter ( )
2825+ . map ( |secret| resource_reference ( "Secret" , namespace, & secret. name ) )
2826+ . collect ( )
2827+ }
2828+
28162829fn pod_volume_references ( pod : & Pod , namespace : & str ) -> Vec < ResourceReference > {
28172830 pod. spec
28182831 . as_ref ( )
@@ -3130,8 +3143,8 @@ mod tests {
31303143 use super :: * ;
31313144 use k8s_openapi:: api:: core:: v1:: {
31323145 ConfigMapEnvSource , ConfigMapKeySelector , ConfigMapVolumeSource , Container , ContainerState ,
3133- ContainerStateWaiting , EnvFromSource , EnvVar , EnvVarSource , ObjectReference , PersistentVolumeClaimVolumeSource ,
3134- PodSpec , PodStatus , SecretEnvSource , SecretKeySelector , SecretVolumeSource , Volume ,
3146+ ContainerStateWaiting , EnvFromSource , EnvVar , EnvVarSource , LocalObjectReference , ObjectReference ,
3147+ PersistentVolumeClaimVolumeSource , PodSpec , PodStatus , SecretEnvSource , SecretKeySelector , SecretVolumeSource , Volume ,
31353148 } ;
31363149 use k8s_openapi:: api:: discovery:: v1:: { Endpoint , EndpointConditions , EndpointSlice } ;
31373150 use k8s_openapi:: api:: networking:: v1:: {
@@ -3983,6 +3996,9 @@ mod tests {
39833996 let mut pod = Pod :: default ( ) ;
39843997 pod. spec = Some ( PodSpec {
39853998 service_account_name : Some ( "api-sa" . to_string ( ) ) ,
3999+ image_pull_secrets : Some ( vec ! [ LocalObjectReference {
4000+ name: "registry-creds" . to_string( ) ,
4001+ } ] ) ,
39864002 containers : vec ! [ Container {
39874003 name: "api" . to_string( ) ,
39884004 env_from: Some ( vec![
@@ -4057,7 +4073,7 @@ mod tests {
40574073
40584074 let references = pod_dependency_references ( & pod, "default" ) ;
40594075
4060- assert_eq ! ( references. len( ) , 6 ) ;
4076+ assert_eq ! ( references. len( ) , 7 ) ;
40614077 assert_eq ! ( references[ 0 ] . kind, "ConfigMap" ) ;
40624078 assert_eq ! ( references[ 0 ] . name, "app-config" ) ;
40634079 assert_eq ! ( references[ 1 ] . kind, "Secret" ) ;
@@ -4067,9 +4083,11 @@ mod tests {
40674083 assert_eq ! ( references[ 3 ] . kind, "ServiceAccount" ) ;
40684084 assert_eq ! ( references[ 3 ] . name, "api-sa" ) ;
40694085 assert_eq ! ( references[ 4 ] . kind, "Secret" ) ;
4070- assert_eq ! ( references[ 4 ] . name, "env-secret" ) ;
4071- assert_eq ! ( references[ 5 ] . kind, "ConfigMap" ) ;
4072- assert_eq ! ( references[ 5 ] . name, "feature-config" ) ;
4086+ assert_eq ! ( references[ 4 ] . name, "registry-creds" ) ;
4087+ assert_eq ! ( references[ 5 ] . kind, "Secret" ) ;
4088+ assert_eq ! ( references[ 5 ] . name, "env-secret" ) ;
4089+ assert_eq ! ( references[ 6 ] . kind, "ConfigMap" ) ;
4090+ assert_eq ! ( references[ 6 ] . name, "feature-config" ) ;
40734091 }
40744092
40754093 #[ test]
0 commit comments