Skip to content

Commit 3f69344

Browse files
PeteLevineACopilot
andauthored
HTTP Type Health Readiness Check Update (#4891)
* HTTP health check context update * Update spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 9c338b3 commit 3f69344

2 files changed

Lines changed: 32 additions & 22 deletions

File tree

lib/cloud_controller/diego/app_recipe_builder.rb

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ def generate_healthcheck_definition(lrp_builder)
213213
def generate_readiness_health_check_definition(lrp_builder)
214214
return [] unless MONITORED_READINESS_HEALTH_CHECK_TYPES.include?(process.readiness_health_check_type)
215215

216-
ports = lrp_builder.ports
216+
ports = readiness_health_check_ports(lrp_builder)
217217
readiness_checks = []
218218
ports.each_with_index do |port, index|
219219
readiness_checks << build_readiness_check(port, index)
@@ -224,7 +224,7 @@ def generate_readiness_health_check_definition(lrp_builder)
224224
def generate_liveness_and_startup_health_check_defintion(lrp_builder)
225225
return [] unless MONITORED_HEALTH_CHECK_TYPES.include?(process.health_check_type)
226226

227-
desired_ports = lrp_builder.ports
227+
desired_ports = health_check_ports(lrp_builder)
228228
checks = []
229229
desired_ports.each_with_index do |port, index|
230230
checks << build_check(port, index)
@@ -280,7 +280,7 @@ def build_check(port, index)
280280
def generate_monitor_action(lrp_builder)
281281
return unless MONITORED_HEALTH_CHECK_TYPES.include?(process.health_check_type)
282282

283-
desired_ports = lrp_builder.ports
283+
desired_ports = health_check_ports(lrp_builder)
284284
actions = []
285285
desired_ports.each_with_index do |port, index|
286286
actions << build_action(lrp_builder, port, index)
@@ -305,6 +305,22 @@ def build_action(lrp_builder, port, index)
305305
)
306306
end
307307

308+
def health_check_ports(lrp_builder)
309+
if process.health_check_type == HealthCheckTypes::HTTP
310+
lrp_builder.ports.first(1)
311+
else
312+
lrp_builder.ports
313+
end
314+
end
315+
316+
def readiness_health_check_ports(lrp_builder)
317+
if process.readiness_health_check_type == HealthCheckTypes::HTTP
318+
lrp_builder.ports.first(1)
319+
else
320+
lrp_builder.ports
321+
end
322+
end
323+
308324
def generate_network
309325
Protocol::ContainerNetworkInfo.new(process.app, Protocol::ContainerNetworkInfo::APP).to_bbs_network
310326
end

spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -564,16 +564,6 @@ module Diego
564564
log_source: HEALTH_LOG_SOURCE,
565565
suppress_log_output: true
566566
)
567-
),
568-
::Diego::Bbs::Models::Action.new(
569-
run_action: ::Diego::Bbs::Models::RunAction.new(
570-
user: 'lrp-action-user',
571-
path: '/tmp/lifecycle/healthcheck',
572-
args: ['-port=5555', '-timeout=10s'],
573-
resource_limits: ::Diego::Bbs::Models::ResourceLimits.new(nofile: expected_file_descriptor_limit),
574-
log_source: HEALTH_LOG_SOURCE,
575-
suppress_log_output: true
576-
)
577567
)
578568
]
579569
)
@@ -582,12 +572,18 @@ module Diego
582572
)
583573
end
584574

585-
it 'adds a http healthcheck action using the first port' do
575+
it 'adds an HTTP healthcheck action using only the first port' do
586576
lrp = builder.build_app_lrp
587577

588578
expect(lrp.monitor).to eq(expected_monitor_action)
589579
end
590580

581+
it 'does not add monitor actions for additional ports' do
582+
lrp = builder.build_app_lrp
583+
actions = lrp.monitor.timeout_action.action.parallel_action.actions
584+
expect(actions.size).to eq(1)
585+
end
586+
591587
it 'adds an HTTP health check definition using the first port' do
592588
lrp = builder.build_app_lrp
593589
http_check = lrp.check_definition.checks.first.http_check
@@ -608,10 +604,9 @@ module Diego
608604
expect(monitor_args).to eq(['-port=4444', '-uri=http-endpoint'])
609605
end
610606

611-
it 'keeps a TCP health check definition for other ports' do
612-
lrp = builder.build_app_lrp
613-
tcp_check = lrp.check_definition.checks[1].tcp_check
614-
expect(tcp_check.port).to eq(5555)
607+
it 'does not add TCP health check definitions for other ports' do
608+
lrp = builder.build_app_lrp
609+
expect(lrp.check_definition.checks.size).to eq(1)
615610
end
616611
end
617612

@@ -715,10 +710,9 @@ module Diego
715710
expect(http_check.request_timeout_ms).to eq(0)
716711
end
717712

718-
it 'keeps a TCP readiness health check definition for other ports' do
719-
lrp = builder.build_app_lrp
720-
tcp_check = lrp.check_definition.readiness_checks[1].tcp_check
721-
expect(tcp_check.port).to eq(5555)
713+
it 'does not add TCP readiness health check definitions for other ports' do
714+
lrp = builder.build_app_lrp
715+
expect(lrp.check_definition.readiness_checks.size).to eq(1)
722716
end
723717
end
724718

0 commit comments

Comments
 (0)