Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions jobs/cloud_controller_ng/spec
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ provides:
- cc.logging.format.timestamp
- cc.logging_level
- cc.logging_max_retries
- cc.max_service_credential_bindings_per_app_service_instance
- cc.max_labels_per_resource
- cc.max_annotations_per_resource
- cc.maximum_health_check_timeout
Expand Down Expand Up @@ -894,6 +895,14 @@ properties:
default: false
description: "Enable development features for monitoring and insight"

cc.max_service_credential_bindings_per_app_service_instance:
default: 1
description: |
Maximum number of service credential bindings allowed per app–service instance pair.
A value of 1 (default) enforces a single binding per app–service instance pair.
Higher values enable multiple bindings, e.g. for credential rotation without app redeployments.
Must be an integer greater than or equal to 1.

cc.max_annotations_per_resource:
description: "Maximum number of annotations allowed on any single resource. Too many annotations may degrade performance of annotation selectors."
default: 200
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,7 @@ diego:
perm:
enabled: false

max_service_credential_bindings_per_app_service_instance: <%= p("cc.max_service_credential_bindings_per_app_service_instance") %>
max_labels_per_resource: <%= p("cc.max_labels_per_resource") %>
max_annotations_per_resource: <%= p("cc.max_annotations_per_resource") %>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,8 @@ internal_route_vip_range: <%= internal_vip_range %>

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

max_service_credential_bindings_per_app_service_instance: <%= link("cloud_controller_internal").p("cc.max_service_credential_bindings_per_app_service_instance") %>

max_labels_per_resource: <%= link("cloud_controller_internal").p("cc.max_labels_per_resource") %>
max_annotations_per_resource: <%= link("cloud_controller_internal").p("cc.max_annotations_per_resource") %>
custom_metric_tag_prefix_list: <%= link("cloud_controller_internal").p("cc.custom_metric_tag_prefix_list") %>
Expand Down
16 changes: 16 additions & 0 deletions spec/cloud_controller_ng/cloud_controller_ng_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -993,6 +993,22 @@ module Test
end
end
end

context 'with max_service_credential_bindings_per_app_service_instance parameter' do
it 'defaults to 1' do
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(1)
end

context 'when set in the manifest' do
before { merged_manifest_properties['cc']['max_service_credential_bindings_per_app_service_instance'] = 5 }

it 'renders the value from the manifest' do
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
expect(template_hash['max_service_credential_bindings_per_app_service_instance']).to eq(5)
end
end
end
end
end
end
Expand Down
3 changes: 2 additions & 1 deletion spec/cloud_controller_worker/cloud_controller_worker_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ module Test
'packages' => {
'max_valid_packages_stored' => 5
},
'default_app_lifecycle' => 'cnb'
'default_app_lifecycle' => 'cnb',
'max_service_credential_bindings_per_app_service_instance' => 1
}
}
end
Expand Down