@@ -2220,6 +2220,39 @@ func TestResolveChartJobs_CredentialFields(t *testing.T) {
22202220 }
22212221}
22222222
2223+ func TestResolveChartJobs_CaFilePrecedence (t * testing.T ) {
2224+ tests := []struct {
2225+ name string
2226+ cli string
2227+ annotation string
2228+ perChart string
2229+ want string
2230+ }{
2231+ {name : "annotation used when CLI and per-chart unset" , annotation : "/ann/ca.crt" , want : "/ann/ca.crt" },
2232+ {name : "per-chart wins over annotation" , annotation : "/ann/ca.crt" , perChart : "/chart/ca.crt" , want : "/chart/ca.crt" },
2233+ {name : "CLI wins over per-chart and annotation" , cli : "/cli/ca.crt" , annotation : "/ann/ca.crt" , perChart : "/chart/ca.crt" , want : "/cli/ca.crt" },
2234+ {name : "none set stays empty" , want : "" },
2235+ }
2236+
2237+ for _ , tc := range tests {
2238+ t .Run (tc .name , func (t * testing.T ) {
2239+ o := & flags.SyncOpts {CaFile : tc .cli }
2240+ a := map [string ]string {}
2241+ if tc .annotation != "" {
2242+ a [consts .ImageAnnotationCaFile ] = tc .annotation
2243+ }
2244+
2245+ jobs , err := resolveChartJobs (o , a , "/manifests" , []v1.Chart {{Name : "rancher" , CaFile : tc .perChart }})
2246+ if err != nil {
2247+ t .Fatalf ("resolveChartJobs: %v" , err )
2248+ }
2249+ if got := jobs [0 ].opts .ChartOpts .CaFile ; got != tc .want {
2250+ t .Errorf ("CaFile = %q, want %q" , got , tc .want )
2251+ }
2252+ })
2253+ }
2254+ }
2255+
22232256// TestResolveChartJobs_CredentialEnv pins that UsernameEnv/PasswordEnv are
22242257// resolved into ChartOpts.Username/Password via resolveChartCreds.
22252258func TestResolveChartJobs_CredentialEnv (t * testing.T ) {
0 commit comments