Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: cert-manager.io/certificate health.lua for consistent issuing (Issue #16523) #16520

Merged
merged 3 commits into from
Dec 4, 2023
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
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
local hs = {}
if obj.status ~= nil then
if obj.status.conditions ~= nil then

-- Always Handle Issuing First to ensure consistent behaviour
for i, condition in ipairs(obj.status.conditions) do
if condition.type == "Issuing" and condition.status == "True" then
hs.status = "Progressing"
hs.message = condition.message
return hs
end
end

for i, condition in ipairs(obj.status.conditions) do
if condition.type == "Ready" and condition.status == "False" then
hs.status = "Degraded"
hs.message = condition.message
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ tests:
status: Progressing
message: Issuing certificate as Secret does not exist
inputPath: testdata/progressing_issuing.yaml
- healthStatus:
status: Progressing
message: Issuing certificate as Secret does not exist
inputPath: testdata/progressing_issuing_last.yaml
- healthStatus:
status: Degraded
message: 'Resource validation failed: spec.acme.config: Required value: no ACME
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
creationTimestamp: '2018-11-07T00:06:12Z'
generation: 1
name: test-cert
namespace: argocd
resourceVersion: '64763033'
selfLink: /apis/cert-manager.io/v1alpha2/namespaces/argocd/certificates/test-cert
uid: e6cfba50-314d-11e9-be3f-42010a800011
spec:
acme:
config:
- domains:
- cd.apps.argoproj.io
http01:
ingress: http01
commonName: cd.apps.argoproj.io
dnsNames:
- cd.apps.argoproj.io
issuerRef:
kind: Issuer
name: argo-cd-issuer
secretName: test-secret
status:
conditions:
- lastTransitionTime: '2021-09-15T02:10:00Z'
message: Issuing certificate as Secret does not exist
reason: DoesNotExist
status: 'False'
type: Ready
- lastTransitionTime: '2021-09-15T02:10:00Z'
message: Issuing certificate as Secret does not exist
reason: DoesNotExist
status: 'True'
type: Issuing
Loading