@@ -86,7 +86,7 @@ std::unique_ptr<KeyFetcherManagerInterface> CreateKeyFetcherManager(
8686 return std::make_unique<server_common::FakeKeyFetcherManager>();
8787 }
8888
89- google::scp::cpio::PrivateKeyVendingEndpoint primary, secondary ;
89+ google::scp::cpio::PrivateKeyVendingEndpoint primary;
9090 primary.account_identity =
9191 config_client.GetStringParameter (PRIMARY_COORDINATOR_ACCOUNT_IDENTITY );
9292 primary.private_key_vending_service_endpoint =
@@ -95,33 +95,42 @@ std::unique_ptr<KeyFetcherManagerInterface> CreateKeyFetcherManager(
9595 primary.service_region =
9696 config_client.GetStringParameter (PRIMARY_COORDINATOR_REGION );
9797
98- secondary.account_identity =
99- config_client.GetStringParameter (SECONDARY_COORDINATOR_ACCOUNT_IDENTITY );
100- secondary.private_key_vending_service_endpoint =
101- config_client.GetStringParameter (
102- SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT );
103- secondary.service_region =
104- config_client.GetStringParameter (SECONDARY_COORDINATOR_REGION );
105-
10698 if (config_client.HasParameter (GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER )) {
10799 PS_VLOG (3 ) << " Found GCP Workload Identity Pool Provider, proceeding..." ;
108100 primary.gcp_private_key_vending_service_cloudfunction_url =
109101 config_client.GetStringParameter (
110102 GCP_PRIMARY_KEY_SERVICE_CLOUD_FUNCTION_URL );
111103 primary.gcp_wip_provider = config_client.GetStringParameter (
112104 GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER );
105+ }
106+
107+ std::vector<google::scp::cpio::PrivateKeyVendingEndpoint> secondaries{};
108+ if (config_client.HasParameter (SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT )) {
109+ google::scp::cpio::PrivateKeyVendingEndpoint secondary;
113110
114- secondary.gcp_private_key_vending_service_cloudfunction_url =
111+ secondary.account_identity =
112+ config_client.GetStringParameter (SECONDARY_COORDINATOR_ACCOUNT_IDENTITY );
113+ secondary.private_key_vending_service_endpoint =
115114 config_client.GetStringParameter (
116- GCP_SECONDARY_KEY_SERVICE_CLOUD_FUNCTION_URL );
117- secondary.gcp_wip_provider = config_client.GetStringParameter (
118- GCP_SECONDARY_WORKLOAD_IDENTITY_POOL_PROVIDER );
115+ SECONDARY_COORDINATOR_PRIVATE_KEY_ENDPOINT );
116+ secondary.service_region =
117+ config_client.GetStringParameter (SECONDARY_COORDINATOR_REGION );
118+
119+ if (config_client.HasParameter (GCP_PRIMARY_WORKLOAD_IDENTITY_POOL_PROVIDER )) {
120+ secondary.gcp_private_key_vending_service_cloudfunction_url =
121+ config_client.GetStringParameter (
122+ GCP_SECONDARY_KEY_SERVICE_CLOUD_FUNCTION_URL );
123+ secondary.gcp_wip_provider = config_client.GetStringParameter (
124+ GCP_SECONDARY_WORKLOAD_IDENTITY_POOL_PROVIDER );
125+ }
126+
127+ secondaries.push_back (secondary);
119128 }
120129
121130 absl::Duration private_key_ttl = absl::Seconds (
122131 config_client.GetIntParameter (PRIVATE_KEY_CACHE_TTL_SECONDS ));
123132 std::unique_ptr<PrivateKeyFetcherInterface> private_key_fetcher =
124- server_common::PrivateKeyFetcherFactory::Create (primary, {secondary} ,
133+ server_common::PrivateKeyFetcherFactory::Create (primary, secondaries ,
125134 private_key_ttl);
126135
127136 absl::Duration key_refresh_flow_run_freq = absl::Seconds (
0 commit comments