Skip to content

Commit 03986db

Browse files
author
Jonah Back
authored
Fix health check for gRPC (#1663)
* Fix health check for gRPC * Remove extra code that shouldn't have been pushed * Address review comments, fix failing tests from last PR * Fix healthcheck drift detect * Add test for detecting drift in gRPC status * Incorporate review comment * Fix last commit
1 parent 8f19263 commit 03986db

8 files changed

+152
-81
lines changed

pkg/deploy/elbv2/target_group_manager.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ func isSDKTargetGroupHealthCheckDrifted(tgSpec elbv2model.TargetGroupSpec, sdkTG
165165
if hcConfig.Path != nil && awssdk.StringValue(hcConfig.Path) != awssdk.StringValue(sdkObj.HealthCheckPath) {
166166
return true
167167
}
168-
if hcConfig.Matcher != nil && (sdkObj.Matcher == nil || hcConfig.Matcher.HTTPCode != awssdk.StringValue(sdkObj.Matcher.HttpCode)) {
168+
if hcConfig.Matcher != nil && (sdkObj.Matcher == nil || awssdk.StringValue(hcConfig.Matcher.GRPCCode) != awssdk.StringValue(sdkObj.Matcher.GrpcCode) || awssdk.StringValue(hcConfig.Matcher.HTTPCode) != awssdk.StringValue(sdkObj.Matcher.HttpCode)) {
169169
return true
170170
}
171171
if hcConfig.IntervalSeconds != nil && awssdk.Int64Value(hcConfig.IntervalSeconds) != awssdk.Int64Value(sdkObj.HealthCheckIntervalSeconds) {
@@ -235,7 +235,8 @@ func buildSDKModifyTargetGroupInput(tgSpec elbv2model.TargetGroupSpec) *elbv2sdk
235235

236236
func buildSDKMatcher(modelMatcher elbv2model.HealthCheckMatcher) *elbv2sdk.Matcher {
237237
return &elbv2sdk.Matcher{
238-
HttpCode: awssdk.String(modelMatcher.HTTPCode),
238+
GrpcCode: modelMatcher.GRPCCode,
239+
HttpCode: modelMatcher.HTTPCode,
239240
}
240241
}
241242

pkg/deploy/elbv2/target_group_manager_test.go

Lines changed: 63 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
3535
Port: &port9090,
3636
Protocol: &protocolHTTP,
3737
Path: awssdk.String("/healthcheck"),
38-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
38+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
3939
IntervalSeconds: awssdk.Int64(10),
4040
TimeoutSeconds: awssdk.Int64(5),
4141
HealthyThresholdCount: awssdk.Int64(3),
@@ -70,7 +70,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
7070
Port: &port9090,
7171
Protocol: &protocolHTTP,
7272
Path: awssdk.String("/healthcheck"),
73-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
73+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
7474
IntervalSeconds: awssdk.Int64(10),
7575
TimeoutSeconds: awssdk.Int64(5),
7676
HealthyThresholdCount: awssdk.Int64(3),
@@ -105,7 +105,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
105105
Port: &port9090,
106106
Protocol: &protocolHTTP,
107107
Path: awssdk.String("/healthcheck"),
108-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
108+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
109109
IntervalSeconds: awssdk.Int64(10),
110110
TimeoutSeconds: awssdk.Int64(5),
111111
HealthyThresholdCount: awssdk.Int64(3),
@@ -140,7 +140,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
140140
Port: &port9090,
141141
Protocol: &protocolHTTP,
142142
Path: awssdk.String("/healthcheck"),
143-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
143+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
144144
IntervalSeconds: awssdk.Int64(10),
145145
TimeoutSeconds: awssdk.Int64(5),
146146
HealthyThresholdCount: awssdk.Int64(3),
@@ -175,7 +175,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
175175
Port: &port9090,
176176
Protocol: &protocolHTTP,
177177
Path: awssdk.String("/healthcheck"),
178-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
178+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
179179
IntervalSeconds: awssdk.Int64(10),
180180
TimeoutSeconds: awssdk.Int64(5),
181181
HealthyThresholdCount: awssdk.Int64(3),
@@ -198,6 +198,41 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
198198
},
199199
want: true,
200200
},
201+
{
202+
name: "matcher GrpcCode changed",
203+
args: args{
204+
tgSpec: elbv2model.TargetGroupSpec{
205+
Name: "my-tg",
206+
TargetType: elbv2model.TargetTypeIP,
207+
Port: 8080,
208+
Protocol: elbv2model.ProtocolHTTP,
209+
HealthCheckConfig: &elbv2model.TargetGroupHealthCheckConfig{
210+
Port: &port9090,
211+
Protocol: &protocolHTTP,
212+
Path: awssdk.String("/healthcheck"),
213+
Matcher: &elbv2model.HealthCheckMatcher{GRPCCode: awssdk.String("200")},
214+
IntervalSeconds: awssdk.Int64(10),
215+
TimeoutSeconds: awssdk.Int64(5),
216+
HealthyThresholdCount: awssdk.Int64(3),
217+
UnhealthyThresholdCount: awssdk.Int64(2),
218+
},
219+
},
220+
sdkTG: TargetGroupWithTags{
221+
TargetGroup: &elbv2sdk.TargetGroup{
222+
HealthCheckEnabled: awssdk.Bool(true),
223+
HealthCheckIntervalSeconds: awssdk.Int64(10),
224+
HealthCheckPath: awssdk.String("/healthcheck"),
225+
HealthCheckPort: awssdk.String("9090"),
226+
HealthCheckProtocol: awssdk.String("HTTP"),
227+
HealthCheckTimeoutSeconds: awssdk.Int64(5),
228+
HealthyThresholdCount: awssdk.Int64(3),
229+
Matcher: &elbv2sdk.Matcher{GrpcCode: awssdk.String("503")},
230+
UnhealthyThresholdCount: awssdk.Int64(2),
231+
},
232+
},
233+
},
234+
want: true,
235+
},
201236
{
202237
name: "intervalSeconds changed",
203238
args: args{
@@ -210,7 +245,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
210245
Port: &port9090,
211246
Protocol: &protocolHTTP,
212247
Path: awssdk.String("/healthcheck"),
213-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
248+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
214249
IntervalSeconds: awssdk.Int64(10),
215250
TimeoutSeconds: awssdk.Int64(5),
216251
HealthyThresholdCount: awssdk.Int64(3),
@@ -245,7 +280,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
245280
Port: &port9090,
246281
Protocol: &protocolHTTP,
247282
Path: awssdk.String("/healthcheck"),
248-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
283+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
249284
IntervalSeconds: awssdk.Int64(10),
250285
TimeoutSeconds: awssdk.Int64(5),
251286
HealthyThresholdCount: awssdk.Int64(3),
@@ -280,7 +315,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
280315
Port: &port9090,
281316
Protocol: &protocolHTTP,
282317
Path: awssdk.String("/healthcheck"),
283-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
318+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
284319
IntervalSeconds: awssdk.Int64(10),
285320
TimeoutSeconds: awssdk.Int64(5),
286321
HealthyThresholdCount: awssdk.Int64(3),
@@ -315,7 +350,7 @@ func Test_isSDKTargetGroupHealthCheckDrifted(t *testing.T) {
315350
Port: &port9090,
316351
Protocol: &protocolHTTP,
317352
Path: awssdk.String("/healthcheck"),
318-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
353+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
319354
IntervalSeconds: awssdk.Int64(10),
320355
TimeoutSeconds: awssdk.Int64(5),
321356
HealthyThresholdCount: awssdk.Int64(3),
@@ -371,7 +406,7 @@ func Test_buildSDKCreateTargetGroupInput(t *testing.T) {
371406
Port: &port9090,
372407
Protocol: &protocolHTTP,
373408
Path: awssdk.String("/healthcheck"),
374-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
409+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
375410
IntervalSeconds: awssdk.Int64(10),
376411
TimeoutSeconds: awssdk.Int64(5),
377412
HealthyThresholdCount: awssdk.Int64(3),
@@ -408,7 +443,7 @@ func Test_buildSDKCreateTargetGroupInput(t *testing.T) {
408443
Port: &port9090,
409444
Protocol: &protocolHTTP,
410445
Path: awssdk.String("/healthcheck"),
411-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
446+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
412447
IntervalSeconds: awssdk.Int64(10),
413448
TimeoutSeconds: awssdk.Int64(5),
414449
HealthyThresholdCount: awssdk.Int64(3),
@@ -465,7 +500,7 @@ func Test_buildSDKModifyTargetGroupInput(t *testing.T) {
465500
Port: &port9090,
466501
Protocol: &protocolHTTP,
467502
Path: awssdk.String("/healthcheck"),
468-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
503+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
469504
IntervalSeconds: awssdk.Int64(10),
470505
TimeoutSeconds: awssdk.Int64(5),
471506
HealthyThresholdCount: awssdk.Int64(3),
@@ -496,7 +531,8 @@ func Test_buildSDKModifyTargetGroupInput(t *testing.T) {
496531

497532
func Test_buildSDKMatcher(t *testing.T) {
498533
type args struct {
499-
modelMatcher elbv2model.HealthCheckMatcher
534+
modelMatcher elbv2model.HealthCheckMatcher
535+
protocolVersion elbv2model.ProtocolVersion
500536
}
501537
tests := []struct {
502538
name string
@@ -507,13 +543,26 @@ func Test_buildSDKMatcher(t *testing.T) {
507543
name: "standard case",
508544
args: args{
509545
modelMatcher: elbv2model.HealthCheckMatcher{
510-
HTTPCode: "200",
546+
HTTPCode: awssdk.String("200"),
511547
},
548+
protocolVersion: elbv2model.ProtocolVersionHTTP1,
512549
},
513550
want: &elbv2sdk.Matcher{
514551
HttpCode: awssdk.String("200"),
515552
},
516553
},
554+
{
555+
name: "grpc case",
556+
args: args{
557+
modelMatcher: elbv2model.HealthCheckMatcher{
558+
GRPCCode: awssdk.String("2"),
559+
},
560+
protocolVersion: elbv2model.ProtocolVersionGRPC,
561+
},
562+
want: &elbv2sdk.Matcher{
563+
GrpcCode: awssdk.String("2"),
564+
},
565+
},
517566
}
518567
for _, tt := range tests {
519568
t.Run(tt.name, func(t *testing.T) {

pkg/deploy/elbv2/target_group_synthesizer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ func isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(sdkTG TargetGroupWit
188188
if hcConfig.Protocol != nil && string(*hcConfig.Protocol) != awssdk.StringValue(sdkObj.HealthCheckProtocol) {
189189
return true
190190
}
191-
if hcConfig.Matcher != nil && (sdkObj.Matcher == nil || hcConfig.Matcher.HTTPCode != awssdk.StringValue(sdkObj.Matcher.HttpCode)) {
191+
if hcConfig.Matcher != nil && (sdkObj.Matcher == nil || awssdk.StringValue(hcConfig.Matcher.GRPCCode) != awssdk.StringValue(sdkObj.Matcher.GrpcCode) || awssdk.StringValue(hcConfig.Matcher.HTTPCode) != awssdk.StringValue(sdkObj.Matcher.HttpCode)) {
192192
return true
193193
}
194194
if hcConfig.IntervalSeconds != nil && awssdk.Int64Value(hcConfig.IntervalSeconds) != awssdk.Int64Value(sdkObj.HealthCheckIntervalSeconds) {

pkg/deploy/elbv2/target_group_synthesizer_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ func Test_isSDKTargetGroupRequiresReplacement(t *testing.T) {
644644
Port: &port8080,
645645
Protocol: &protocolHTTP,
646646
Path: awssdk.String("/"),
647-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
647+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
648648
IntervalSeconds: awssdk.Int64(10),
649649
TimeoutSeconds: awssdk.Int64(5),
650650
HealthyThresholdCount: awssdk.Int64(3),
@@ -702,7 +702,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
702702
Port: &port8080,
703703
Protocol: &protocolHTTP,
704704
Path: awssdk.String("/"),
705-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
705+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
706706
IntervalSeconds: awssdk.Int64(10),
707707
TimeoutSeconds: awssdk.Int64(5),
708708
HealthyThresholdCount: awssdk.Int64(3),
@@ -739,7 +739,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
739739
Port: &port8080,
740740
Protocol: &protocolHTTP,
741741
Path: awssdk.String("/"),
742-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
742+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
743743
IntervalSeconds: awssdk.Int64(10),
744744
TimeoutSeconds: awssdk.Int64(5),
745745
HealthyThresholdCount: awssdk.Int64(3),
@@ -776,7 +776,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
776776
Port: &port8080,
777777
Protocol: &protocolHTTP,
778778
Path: awssdk.String("/"),
779-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
779+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
780780
IntervalSeconds: awssdk.Int64(10),
781781
TimeoutSeconds: awssdk.Int64(5),
782782
HealthyThresholdCount: awssdk.Int64(3),
@@ -813,7 +813,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
813813
Port: &port8080,
814814
Protocol: &protocolHTTP,
815815
Path: awssdk.String("/"),
816-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
816+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
817817
IntervalSeconds: awssdk.Int64(10),
818818
TimeoutSeconds: awssdk.Int64(5),
819819
HealthyThresholdCount: awssdk.Int64(3),
@@ -850,7 +850,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
850850
Port: &port8080,
851851
Protocol: &protocolHTTP,
852852
Path: awssdk.String("/"),
853-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
853+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
854854
IntervalSeconds: awssdk.Int64(10),
855855
TimeoutSeconds: awssdk.Int64(5),
856856
HealthyThresholdCount: awssdk.Int64(3),
@@ -887,7 +887,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
887887
Port: &port8080,
888888
Protocol: &protocolHTTP,
889889
Path: awssdk.String("/"),
890-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
890+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
891891
IntervalSeconds: awssdk.Int64(10),
892892
TimeoutSeconds: awssdk.Int64(5),
893893
HealthyThresholdCount: awssdk.Int64(3),
@@ -924,7 +924,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
924924
Port: &port8080,
925925
Protocol: &protocolHTTP,
926926
Path: awssdk.String("/"),
927-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
927+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
928928
IntervalSeconds: awssdk.Int64(10),
929929
TimeoutSeconds: awssdk.Int64(5),
930930
HealthyThresholdCount: awssdk.Int64(3),
@@ -961,7 +961,7 @@ func Test_isSDKTargetGroupRequiresReplacementDueToNLBHealthCheck(t *testing.T) {
961961
Port: &port8080,
962962
Protocol: &protocolHTTP,
963963
Path: awssdk.String("/"),
964-
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: "200"},
964+
Matcher: &elbv2model.HealthCheckMatcher{HTTPCode: awssdk.String("200")},
965965
IntervalSeconds: awssdk.Int64(10),
966966
TimeoutSeconds: awssdk.Int64(5),
967967
HealthyThresholdCount: awssdk.Int64(3),

pkg/ingress/model_build_target_group.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ func (t *defaultModelBuildTask) buildTargetGroupSpec(ctx context.Context,
110110
if err != nil {
111111
return elbv2model.TargetGroupSpec{}, err
112112
}
113-
healthCheckConfig, err := t.buildTargetGroupHealthCheckConfig(ctx, svc, svcAndIngAnnotations, targetType, tgProtocol)
113+
healthCheckConfig, err := t.buildTargetGroupHealthCheckConfig(ctx, svc, svcAndIngAnnotations, targetType, tgProtocol, tgProtocolVersion)
114114
if err != nil {
115115
return elbv2model.TargetGroupSpec{}, err
116116
}
@@ -126,7 +126,6 @@ func (t *defaultModelBuildTask) buildTargetGroupSpec(ctx context.Context,
126126
if err != nil {
127127
return elbv2model.TargetGroupSpec{}, err
128128
}
129-
130129
tgPort := t.buildTargetGroupPort(ctx, targetType, svcPort)
131130
name := t.buildTargetGroupName(ctx, k8s.NamespacedName(ing), svc, port, tgPort, targetType, tgProtocol, tgProtocolVersion)
132131
return elbv2model.TargetGroupSpec{
@@ -222,7 +221,7 @@ func (t *defaultModelBuildTask) buildTargetGroupProtocolVersion(_ context.Contex
222221
}
223222
}
224223

225-
func (t *defaultModelBuildTask) buildTargetGroupHealthCheckConfig(ctx context.Context, svc *corev1.Service, svcAndIngAnnotations map[string]string, targetType elbv2model.TargetType, tgProtocol elbv2model.Protocol) (elbv2model.TargetGroupHealthCheckConfig, error) {
224+
func (t *defaultModelBuildTask) buildTargetGroupHealthCheckConfig(ctx context.Context, svc *corev1.Service, svcAndIngAnnotations map[string]string, targetType elbv2model.TargetType, tgProtocol elbv2model.Protocol, tgProtocolVersion elbv2model.ProtocolVersion) (elbv2model.TargetGroupHealthCheckConfig, error) {
226225
healthCheckPort, err := t.buildTargetGroupHealthCheckPort(ctx, svc, svcAndIngAnnotations, targetType)
227226
if err != nil {
228227
return elbv2model.TargetGroupHealthCheckConfig{}, err
@@ -232,7 +231,7 @@ func (t *defaultModelBuildTask) buildTargetGroupHealthCheckConfig(ctx context.Co
232231
return elbv2model.TargetGroupHealthCheckConfig{}, err
233232
}
234233
healthCheckPath := t.buildTargetGroupHealthCheckPath(ctx, svcAndIngAnnotations)
235-
healthCheckMatcher := t.buildTargetGroupHealthCheckMatcher(ctx, svcAndIngAnnotations)
234+
healthCheckMatcher := t.buildTargetGroupHealthCheckMatcher(ctx, svcAndIngAnnotations, tgProtocolVersion)
236235
healthCheckIntervalSeconds, err := t.buildTargetGroupHealthCheckIntervalSeconds(ctx, svcAndIngAnnotations)
237236
if err != nil {
238237
return elbv2model.TargetGroupHealthCheckConfig{}, err
@@ -306,11 +305,16 @@ func (t *defaultModelBuildTask) buildTargetGroupHealthCheckPath(_ context.Contex
306305
return rawHealthCheckPath
307306
}
308307

309-
func (t *defaultModelBuildTask) buildTargetGroupHealthCheckMatcher(_ context.Context, svcAndIngAnnotations map[string]string) elbv2model.HealthCheckMatcher {
308+
func (t *defaultModelBuildTask) buildTargetGroupHealthCheckMatcher(_ context.Context, svcAndIngAnnotations map[string]string, tgProtocolVersion elbv2model.ProtocolVersion) elbv2model.HealthCheckMatcher {
310309
rawHealthCheckMatcherHTTPCode := t.defaultHealthCheckMatcherHTTPCode
311310
_ = t.annotationParser.ParseStringAnnotation(annotations.IngressSuffixSuccessCodes, &rawHealthCheckMatcherHTTPCode, svcAndIngAnnotations)
311+
if tgProtocolVersion == elbv2model.ProtocolVersionGRPC {
312+
return elbv2model.HealthCheckMatcher{
313+
GRPCCode: &rawHealthCheckMatcherHTTPCode,
314+
}
315+
}
312316
return elbv2model.HealthCheckMatcher{
313-
HTTPCode: rawHealthCheckMatcherHTTPCode,
317+
HTTPCode: &rawHealthCheckMatcherHTTPCode,
314318
}
315319
}
316320

0 commit comments

Comments
 (0)