Skip to content

Commit 157154a

Browse files
committed
add config parameter to configure number of service bindings
1 parent f171cb6 commit 157154a

File tree

5 files changed

+30
-1
lines changed

5 files changed

+30
-1
lines changed

jobs/cloud_controller_ng/spec

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ provides:
170170
- cc.logging.format.timestamp
171171
- cc.logging_level
172172
- cc.logging_max_retries
173+
- cc.max_service_credential_bindings_per_app_service_instance
173174
- cc.max_labels_per_resource
174175
- cc.max_annotations_per_resource
175176
- cc.maximum_health_check_timeout
@@ -894,6 +895,14 @@ properties:
894895
default: false
895896
description: "Enable development features for monitoring and insight"
896897

898+
cc.max_service_credential_bindings_per_app_service_instance:
899+
default: 1
900+
description: |
901+
Maximum number of service credential bindings allowed per app–service instance pair.
902+
A value of 1 (default) enforces a single binding per app–service instance pair.
903+
Higher values enable multiple bindings, e.g. for credential rotation without app redeployments.
904+
Must be an integer greater than or equal to 1.
905+
897906
cc.max_annotations_per_resource:
898907
description: "Maximum number of annotations allowed on any single resource. Too many annotations may degrade performance of annotation selectors."
899908
default: 200

jobs/cloud_controller_ng/templates/cloud_controller_ng.yml.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ diego:
565565
perm:
566566
enabled: false
567567

568+
max_service_credential_bindings_per_app_service_instance: <%= p("cc.max_service_credential_bindings_per_app_service_instance") %>
568569
max_labels_per_resource: <%= p("cc.max_labels_per_resource") %>
569570
max_annotations_per_resource: <%= p("cc.max_annotations_per_resource") %>
570571

jobs/cloud_controller_worker/templates/cloud_controller_ng.yml.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,8 @@ internal_route_vip_range: <%= internal_vip_range %>
353353

354354
disable_private_domain_cross_space_context_path_route_sharing: <%= link("cloud_controller_internal").p("cc.disable_private_domain_cross_space_context_path_route_sharing") %>
355355

356+
max_service_credential_bindings_per_app_service_instance: <%= link("cloud_controller_internal").p("cc.max_service_credential_bindings_per_app_service_instance") %>
357+
356358
max_labels_per_resource: <%= link("cloud_controller_internal").p("cc.max_labels_per_resource") %>
357359
max_annotations_per_resource: <%= link("cloud_controller_internal").p("cc.max_annotations_per_resource") %>
358360
custom_metric_tag_prefix_list: <%= link("cloud_controller_internal").p("cc.custom_metric_tag_prefix_list") %>

spec/cloud_controller_ng/cloud_controller_ng_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,22 @@ module Test
993993
end
994994
end
995995
end
996+
997+
context 'with max_service_credential_bindings_per_app_service_instance parameter' do
998+
it 'defaults to 1' do
999+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
1000+
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(1)
1001+
end
1002+
1003+
context 'when set in the manifest' do
1004+
before { merged_manifest_properties['cc']['max_service_credential_bindings_per_app_service_instance'] = 5 }
1005+
1006+
it 'renders the value from the manifest' do
1007+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
1008+
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(5)
1009+
end
1010+
end
1011+
end
9961012
end
9971013
end
9981014
end

spec/cloud_controller_worker/cloud_controller_worker_spec.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ module Test
8686
'packages' => {
8787
'max_valid_packages_stored' => 5
8888
},
89-
'default_app_lifecycle' => 'cnb'
89+
'default_app_lifecycle' => 'cnb',
90+
'max_service_credential_bindings_per_app_service_instance' => 1
9091
}
9192
}
9293
end

0 commit comments

Comments
 (0)