Skip to content

Commit ad581e0

Browse files
authored
add config parameter to configure number of service bindings (#568)
1 parent 50d010f commit ad581e0

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
@@ -167,6 +167,7 @@ provides:
167167
- cc.logging.format.timestamp
168168
- cc.logging_level
169169
- cc.logging_max_retries
170+
- cc.max_service_credential_bindings_per_app_service_instance
170171
- cc.max_labels_per_resource
171172
- cc.max_annotations_per_resource
172173
- cc.maximum_health_check_timeout
@@ -895,6 +896,14 @@ properties:
895896
default: false
896897
description: "Enable development features for monitoring and insight"
897898

899+
cc.max_service_credential_bindings_per_app_service_instance:
900+
default: 1
901+
description: |
902+
Maximum number of service credential bindings allowed per app–service instance pair.
903+
A value of 1 (default) enforces a single binding per app–service instance pair.
904+
Higher values enable multiple bindings, e.g. for credential rotation without app redeployments.
905+
Must be an integer greater than or equal to 1.
906+
898907
cc.max_annotations_per_resource:
899908
description: "Maximum number of annotations allowed on any single resource. Too many annotations may degrade performance of annotation selectors."
900909
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
@@ -566,6 +566,7 @@ diego:
566566
perm:
567567
enabled: false
568568

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

jobs/cloud_controller_worker/templates/cloud_controller_ng.yml.erb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,8 @@ system_hostnames: <%= link("cloud_controller_internal").p("cc.system_hostnames")
344344

345345
disable_private_domain_cross_space_context_path_route_sharing: <%= link("cloud_controller_internal").p("cc.disable_private_domain_cross_space_context_path_route_sharing") %>
346346

347+
max_service_credential_bindings_per_app_service_instance: <%= link("cloud_controller_internal").p("cc.max_service_credential_bindings_per_app_service_instance") %>
348+
347349
max_labels_per_resource: <%= link("cloud_controller_internal").p("cc.max_labels_per_resource") %>
348350
max_annotations_per_resource: <%= link("cloud_controller_internal").p("cc.max_annotations_per_resource") %>
349351
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
@@ -964,6 +964,22 @@ module Test
964964
end
965965
end
966966
end
967+
968+
context 'with max_service_credential_bindings_per_app_service_instance parameter' do
969+
it 'defaults to 1' do
970+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
971+
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(1)
972+
end
973+
974+
context 'when set in the manifest' do
975+
before { merged_manifest_properties['cc']['max_service_credential_bindings_per_app_service_instance'] = 5 }
976+
977+
it 'renders the value from the manifest' do
978+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
979+
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(5)
980+
end
981+
end
982+
end
967983
end
968984
end
969985
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)