mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
feat: support Knative Serving 1.5 Custom Health Checks (#9719)
* fix: Update account.proto annotaion for gen grpc gateway Signed-off-by: wei840222 <wei840222@gmail.com> * fix: Changes from codegen Signed-off-by: wei840222 <wei840222@gmail.com> * Retrigger CI pipeline Signed-off-by: wei.wan <wei.wan@linecorp.com> * Retrigger CI pipeline Signed-off-by: wei.wan <wei.wan@linecorp.com> * fix: Changes from codegen Signed-off-by: wei <wei840222@gmail.com> * Retrigger CI pipeline Signed-off-by: wei.wan <wei.wan@linecorp.com> * Retrigger CI pipeline Signed-off-by: wei <wei840222@gmail.com> * feat: support Knative Serving 1.5 Custom Health Checks Signed-off-by: wei.wan <wei.wan@linecorp.com> * fix: fix test fail Signed-off-by: wei.wan <wei.wan@linecorp.com> * feat: support Knative Serving 1.5 Custom Health Checks Signed-off-by: wei840222 <wei840222@gmail.com> Signed-off-by: wei840222 <wei840222@gmail.com> Signed-off-by: wei.wan <wei.wan@linecorp.com> Signed-off-by: wei <wei840222@gmail.com> Co-authored-by: wei.wan <wei.wan@linecorp.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
health_status = {}
|
||||
health_status.status = "Progressing"
|
||||
health_status.message = "Waiting for status update."
|
||||
if obj.status ~= nil and obj.status.conditions ~= nil then
|
||||
status_true = 0
|
||||
status_false = 0
|
||||
status_unknown = 0
|
||||
health_status.message = ""
|
||||
for i, condition in pairs(obj.status.conditions) do
|
||||
if condition.status == "True" and (condition.type == "ConfigurationsReady" or condition.type == "RoutesReady" or condition.type == "Ready") then
|
||||
status_true = status_true + 1
|
||||
elseif condition.status == "False" or condition.status == "Unknown" then
|
||||
msg = condition.type .. " is " .. condition.status
|
||||
if condition.reason ~= nil and condition.reason ~= "" then
|
||||
msg = msg .. ", since " .. condition.reason .. "."
|
||||
end
|
||||
if condition.message ~= nil and condition.message ~= "" then
|
||||
msg = msg .. " " .. condition.message
|
||||
end
|
||||
health_status.message = health_status.message .. msg .. "\n"
|
||||
if condition.status == "False" then
|
||||
status_false = status_false + 1
|
||||
else
|
||||
status_unknown = status_unknown + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
if status_true == 3 and status_false == 0 and status_unknown == 0 then
|
||||
health_status.message = "Knative Service is healthy."
|
||||
health_status.status = "Healthy"
|
||||
return health_status
|
||||
elseif status_false > 0 then
|
||||
health_status.status = "Degraded"
|
||||
return health_status
|
||||
else
|
||||
health_status.status = "Progressing"
|
||||
return health_status
|
||||
end
|
||||
end
|
||||
return health_status
|
||||
@@ -0,0 +1,13 @@
|
||||
tests:
|
||||
- healthStatus:
|
||||
status: Progressing
|
||||
message: "Ready is Unknown, since RolloutInProgress. A gradual rollout of the latest revision(s) is in progress.\nRoutesReady is Unknown, since RolloutInProgress. A gradual rollout of the latest revision(s) is in progress.\n"
|
||||
inputPath: testdata/progressing.yaml
|
||||
- healthStatus:
|
||||
status: Degraded
|
||||
message: "ConfigurationsReady is False, since RevisionFailed. Revision \"helloworld-00002\" failed with message: Container failed with: container exited with no error.\nReady is False, since RevisionFailed. Revision \"helloworld-00002\" failed with message: Container failed with: container exited with no error.\n"
|
||||
inputPath: testdata/degraded.yaml
|
||||
- healthStatus:
|
||||
status: Healthy
|
||||
message: Knative Service is healthy.
|
||||
inputPath: testdata/healthy.yaml
|
||||
21
resource_customizations/serving.knative.dev/Service/testdata/degraded.yaml
vendored
Normal file
21
resource_customizations/serving.knative.dev/Service/testdata/degraded.yaml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: serving.knative.dev/v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: helloworld
|
||||
namespace: default
|
||||
spec: {}
|
||||
status:
|
||||
conditions:
|
||||
- lastTransitionTime: "2022-06-14T03:45:38Z"
|
||||
message: 'Revision "helloworld-00002" failed with message: Container failed with: container exited with no error.'
|
||||
reason: RevisionFailed
|
||||
status: "False"
|
||||
type: ConfigurationsReady
|
||||
- lastTransitionTime: "2022-06-14T03:45:38Z"
|
||||
message: 'Revision "helloworld-00002" failed with message: Container failed with: container exited with no error.'
|
||||
reason: RevisionFailed
|
||||
status: "False"
|
||||
type: Ready
|
||||
- lastTransitionTime: "2022-06-16T09:35:11Z"
|
||||
status: "True"
|
||||
type: RoutesReady
|
||||
17
resource_customizations/serving.knative.dev/Service/testdata/healthy.yaml
vendored
Normal file
17
resource_customizations/serving.knative.dev/Service/testdata/healthy.yaml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: serving.knative.dev/v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: helloworld
|
||||
namespace: default
|
||||
spec: {}
|
||||
status:
|
||||
conditions:
|
||||
- lastTransitionTime: "2022-06-20T03:52:41Z"
|
||||
status: "True"
|
||||
type: ConfigurationsReady
|
||||
- lastTransitionTime: "2022-06-20T03:52:41Z"
|
||||
status: "True"
|
||||
type: Ready
|
||||
- lastTransitionTime: "2022-06-20T03:52:41Z"
|
||||
status: "True"
|
||||
type: RoutesReady
|
||||
21
resource_customizations/serving.knative.dev/Service/testdata/progressing.yaml
vendored
Normal file
21
resource_customizations/serving.knative.dev/Service/testdata/progressing.yaml
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: serving.knative.dev/v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: helloworld
|
||||
namespace: default
|
||||
spec: {}
|
||||
status:
|
||||
conditions:
|
||||
- lastTransitionTime: "2022-06-20T04:14:22Z"
|
||||
status: "True"
|
||||
type: ConfigurationsReady
|
||||
- lastTransitionTime: "2022-06-20T04:14:22Z"
|
||||
message: A gradual rollout of the latest revision(s) is in progress.
|
||||
reason: RolloutInProgress
|
||||
status: Unknown
|
||||
type: Ready
|
||||
- lastTransitionTime: "2022-06-20T04:14:22Z"
|
||||
message: A gradual rollout of the latest revision(s) is in progress.
|
||||
reason: RolloutInProgress
|
||||
status: Unknown
|
||||
type: RoutesReady
|
||||
Reference in New Issue
Block a user