Skip to content

Commit 42ff487

Browse files
authored
[AppResource] Some cosmetics (#35)
1 parent 2de056a commit 42ff487

File tree

3 files changed

+46
-32
lines changed

3 files changed

+46
-32
lines changed

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ require (
77
github.com/nuclio/logger v0.0.1
88
github.com/nuclio/zap v0.2.0
99
github.com/v3io/scaler v0.7.0
10-
k8s.io/apimachinery v0.26.10
11-
k8s.io/client-go v0.26.10
12-
k8s.io/metrics v0.26.10
10+
k8s.io/apimachinery v0.26.15
11+
k8s.io/client-go v0.26.15
12+
k8s.io/metrics v0.26.15
1313
)
1414

1515
require (
@@ -20,7 +20,7 @@ require (
2020
github.com/go-openapi/jsonreference v0.20.0 // indirect
2121
github.com/go-openapi/swag v0.19.14 // indirect
2222
github.com/gogo/protobuf v1.3.2 // indirect
23-
github.com/golang/protobuf v1.5.2 // indirect
23+
github.com/golang/protobuf v1.5.4 // indirect
2424
github.com/google/gnostic v0.5.7-v3refs // indirect
2525
github.com/google/go-cmp v0.5.9 // indirect
2626
github.com/google/gofuzz v1.1.0 // indirect
@@ -37,17 +37,17 @@ require (
3737
go.uber.org/multierr v1.11.0 // indirect
3838
go.uber.org/zap v1.25.0 // indirect
3939
golang.org/x/net v0.17.0 // indirect
40-
golang.org/x/oauth2 v0.4.0 // indirect
40+
golang.org/x/oauth2 v0.7.0 // indirect
4141
golang.org/x/sys v0.13.0 // indirect
4242
golang.org/x/term v0.13.0 // indirect
4343
golang.org/x/text v0.13.0 // indirect
4444
golang.org/x/time v0.3.0 // indirect
4545
google.golang.org/appengine v1.6.7 // indirect
46-
google.golang.org/protobuf v1.28.1 // indirect
46+
google.golang.org/protobuf v1.33.0 // indirect
4747
gopkg.in/inf.v0 v0.9.1 // indirect
4848
gopkg.in/yaml.v2 v2.4.0 // indirect
4949
gopkg.in/yaml.v3 v3.0.1 // indirect
50-
k8s.io/api v0.26.10 // indirect
50+
k8s.io/api v0.26.15 // indirect
5151
k8s.io/klog/v2 v2.80.1 // indirect
5252
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 // indirect
5353
k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect

go.sum

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W
4040
github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0=
4141
github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
4242
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
43-
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
4443
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
44+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
45+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
4546
github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54=
4647
github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ=
4748
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
@@ -145,8 +146,8 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY
145146
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
146147
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
147148
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
148-
golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M=
149-
golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec=
149+
golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g=
150+
golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
150151
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
151152
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
152153
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -200,8 +201,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
200201
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
201202
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
202203
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
203-
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
204-
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
204+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
205+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
205206
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
206207
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
207208
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -220,18 +221,18 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
220221
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
221222
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
222223
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
223-
k8s.io/api v0.26.10 h1:skTnrDR0r8dg4MMLf6YZIzugxNM0BjFsWKPkNc5kOvk=
224-
k8s.io/api v0.26.10/go.mod h1:ou/H3yviqrHtP/DSPVTfsc7qNfmU06OhajytJfYXkXw=
225-
k8s.io/apimachinery v0.26.10 h1:aE+J2KIbjctFqPp3Y0q4Wh2PD+l1p2g3Zp4UYjSvtGU=
226-
k8s.io/apimachinery v0.26.10/go.mod h1:iT1ZP4JBP34wwM+ZQ8ByPEQ81u043iqAcsJYftX9amM=
227-
k8s.io/client-go v0.26.10 h1:4mDzl+1IrfRxh4Ro0s65JRGJp14w77gSMUTjACYWVRo=
228-
k8s.io/client-go v0.26.10/go.mod h1:sh74ig838gCckU4ElYclWb24lTesPdEDPnlyg5vcbkA=
224+
k8s.io/api v0.26.15 h1:tjMERUjIwkq+2UtPZL5ZbSsLkpxUv4gXWZfV5lQl+Og=
225+
k8s.io/api v0.26.15/go.mod h1:CtWOrFl8VLCTLolRlhbBxo4fy83tjCLEtYa5pMubIe0=
226+
k8s.io/apimachinery v0.26.15 h1:GPxeERYBSqSZlj3xIkX4L6mBjzZ9q8JPnJ+Vj15qe+g=
227+
k8s.io/apimachinery v0.26.15/go.mod h1:O/uIhIOWuy6ndHqQ6qbkjD7OgeMhVtlk8+Z66ZcmJQc=
228+
k8s.io/client-go v0.26.15 h1:A2Yav2v+VZQfpEsf5ESFp2Lqq5XACKBDrwkG+jEtOg0=
229+
k8s.io/client-go v0.26.15/go.mod h1:KJs7snLEyKPlypqTQG/ngcaqE6h3/6qTvVHDViRL+iI=
229230
k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4=
230231
k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0=
231232
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 h1:+70TFaan3hfJzs+7VK2o+OGxg8HsuBr/5f6tVAjDu6E=
232233
k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280/go.mod h1:+Axhij7bCpeqhklhUTe3xmOn6bWxolyZEeyaFpjGtl4=
233-
k8s.io/metrics v0.26.10 h1:CuGfiy57Wfuh6QszXUaVOqwJq0UUeonS91l/ru6YEEs=
234-
k8s.io/metrics v0.26.10/go.mod h1:wbN+rQFodbdAfN/n6OweeiofbdR4iM7N5xsiafJpMGk=
234+
k8s.io/metrics v0.26.15 h1:U+FLqs8aFMVBWycx/lZn8nSBP5lfdmQMCqG288XOsbs=
235+
k8s.io/metrics v0.26.15/go.mod h1:zUiNijWF/4zP8s+BXjPNEaswdwE7g2VSJr5lT3eBMYs=
235236
k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs=
236237
k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
237238
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k=

pkg/resourcescaler/resourcescaler.go

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -308,22 +308,26 @@ func (s *AppResourceScaler) patchIguazioTenantAppServiceSets(ctx context.Context
308308
}
309309

310310
func (s *AppResourceScaler) waitForNoProvisioningInProcess(ctx context.Context) error {
311-
s.logger.DebugWithCtx(ctx, "Waiting for IguazioTenantAppServiceSet to finish provisioning")
311+
s.logger.DebugWithCtx(ctx, "Ensuring IguazioTenantAppServiceSet is not provisioning")
312312

313-
finiteStateDiscoveryTimeout := 30 * time.Second
314-
315-
var finiteStateDiscoveryTime *time.Time
313+
// as a start, wait 20 seconds for the state to be stable
314+
// as we can naively assume the state has been stable for a while now.
315+
finiteStateDiscoveryTimeout := 20 * time.Second
316+
now := time.Now()
317+
finiteStateDiscoveryTime := &now
316318
for {
317319
select {
318320
case <-ctx.Done():
321+
s.logger.DebugWithCtx(ctx, "Context done, returning")
319322
return ctx.Err()
320323

321324
case <-time.After(5 * time.Second):
322-
s.logger.DebugWithCtx(ctx, "Checking the state of the Iguazio tenant app service sets")
323325
_, _, state, err := s.getIguazioTenantAppServiceSets(ctx)
324326
if err != nil {
325-
s.logger.WarnWithCtx(ctx, "Failed to get iguazio tenant app service sets",
326-
"err", err.Error())
327+
s.logger.WarnWithCtx(ctx,
328+
"Failed to get iguazio tenant app service sets",
329+
"err", errors.GetErrorStackString(err, 10),
330+
)
327331
continue
328332
}
329333

@@ -332,20 +336,27 @@ func (s *AppResourceScaler) waitForNoProvisioningInProcess(ctx context.Context)
332336
now := time.Now()
333337
finiteStateDiscoveryTime = &now
334338
s.logger.DebugWithCtx(ctx,
335-
"IguazioTenantAppServiceSet finished provisioning", "state", state)
339+
"IguazioTenantAppServiceSet finished provisioning",
340+
"state", state)
336341
}
337342
} else {
338343

339344
// reset the time if the state is not stable
340345
if finiteStateDiscoveryTime != nil {
341-
s.logger.DebugWithCtx(ctx, "IguazioTenantAppServiceSet is provisioning again, "+
342-
"resetting discovery time",
346+
s.logger.DebugWithCtx(ctx,
347+
"IguazioTenantAppServiceSet is provisioning again, "+
348+
"resetting discovery time",
343349
"state", state,
344350
"finiteStateDiscoveryTime", time.Since(*finiteStateDiscoveryTime).String())
345351
}
346352
finiteStateDiscoveryTime = nil
353+
354+
// if we have observed a transient state, we should increase the timeout
355+
// to allow the waiters to observe the stable state for longer.
356+
finiteStateDiscoveryTimeout = 30 * time.Second
347357
}
348358

359+
// verify state stable for finiteStateDiscoveryTimeout amount of time
349360
if finiteStateDiscoveryTime != nil {
350361

351362
// it has been finite for finiteStateDiscoveryTimeout amount of time
@@ -357,11 +368,13 @@ func (s *AppResourceScaler) waitForNoProvisioningInProcess(ctx context.Context)
357368
return nil
358369

359370
}
360-
s.logger.DebugWithCtx(ctx, "IguazioTenantAppServiceSet waiting for the state to be stable",
371+
s.logger.DebugWithCtx(ctx,
372+
"IguazioTenantAppServiceSet waiting for the state to be stable",
361373
"state", state,
362374
"timeSince", timeSince.String())
363375
} else {
364-
s.logger.DebugWithCtx(ctx, "IguazioTenantAppServiceSet is still provisioning",
376+
s.logger.DebugWithCtx(ctx,
377+
"IguazioTenantAppServiceSet is still provisioning",
365378
"state", state)
366379
}
367380
}

0 commit comments

Comments
 (0)