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

feat: Implement GKE ManagedCertificate CRD health checks #3600

Merged
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,23 @@
hs = {}

if obj.status ~= nil then
if obj.status.domainStatus ~= nil then
for i, domainStatus in ipairs(obj.status.domainStatus) do
if domainStatus.status == "FailedNotVisible" then
hs.status = "Degraded"
hs.message = "At least one certificate has failed to be provisioned"
return hs
end
end
end
end

if obj.status ~= nil and obj.status.certificateStatus == "Active" then
hs.status = "Healthy"
hs.message = "All ceritificates are active"
return hs
end

hs.status = "Progressing"
hs.message = "At least one certificate is still being provisioned"
return hs
@@ -0,0 +1,13 @@
tests:
- healthStatus:
status: Progressing
message: "At least one certificate is still being provisioned"
inputPath: testdata/provisioning.yaml
- healthStatus:
status: Degraded
message: "At least one certificate has failed to be provisioned"
inputPath: testdata/failed.yaml
- healthStatus:
status: Healthy
message: "All ceritificates are active"
inputPath: testdata/active.yaml
@@ -0,0 +1,29 @@
apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.gke.io/v1beta2","kind":"ManagedCertificate","metadata":{"annotations":{},"name":"web","namespace":"default"},"spec":{"domains":["argocdtest.micke.me", "argocdtest2.micke.me", "argocdtest3.micke.me"]}}
creationTimestamp: "2020-05-16T19:35:14Z"
generation: 2
name: web
namespace: default
resourceVersion: "2387"
selfLink: /apis/networking.gke.io/v1beta2/namespaces/default/managedcertificates/web
uid: 8011785f-233f-4e29-a68d-81945a342f08
spec:
domains:
- argocdtest.micke.me
- argocdtest2.micke.me
- argocdtest3.micke.me
status:
certificateName: mcrt-0a994e84-76b2-4ba3-9819-2a4ec5c0637e
certificateStatus: Active
domainStatus:
- domain: argocdtest.micke.me
status: Active
- domain: argocdtest2.micke.me
status: Active
- domain: argocdtest3.micke.me
status: Active
expireTime: "2020-06-21T00:33:40.000-07:00"
@@ -0,0 +1,28 @@
apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.gke.io/v1beta2","kind":"ManagedCertificate","metadata":{"annotations":{},"name":"web","namespace":"default"},"spec":{"domains":["argocdtest.micke.me", "argocdtest2.micke.me", "argocdtest3.micke.me"]}}
creationTimestamp: "2020-05-16T19:35:14Z"
generation: 2
name: web
namespace: default
resourceVersion: "2387"
selfLink: /apis/networking.gke.io/v1beta2/namespaces/default/managedcertificates/web
uid: 8011785f-233f-4e29-a68d-81945a342f08
spec:
domains:
- argocdtest.micke.me
- argocdtest2.micke.me
- argocdtest3.micke.me
status:
certificateName: mcrt-0a994e84-76b2-4ba3-9819-2a4ec5c0637e
certificateStatus: Provisioning
domainStatus:
- domain: argocdtest.micke.me
status: Active
- domain: argocdtest2.micke.me
status: Provisioning
- domain: argocdtest3.micke.me
status: FailedNotVisible
@@ -0,0 +1,28 @@
apiVersion: networking.gke.io/v1beta2
kind: ManagedCertificate
metadata:
annotations:
kubectl.kubernetes.io/last-applied-configuration: |
{"apiVersion":"networking.gke.io/v1beta2","kind":"ManagedCertificate","metadata":{"annotations":{},"name":"web","namespace":"default"},"spec":{"domains":["argocdtest.micke.me", "argocdtest2.micke.me", "argocdtest3.micke.me"]}}
creationTimestamp: "2020-05-16T19:35:14Z"
generation: 2
name: web
namespace: default
resourceVersion: "2387"
selfLink: /apis/networking.gke.io/v1beta2/namespaces/default/managedcertificates/web
uid: 8011785f-233f-4e29-a68d-81945a342f08
spec:
domains:
- argocdtest.micke.me
- argocdtest2.micke.me
- argocdtest3.micke.me
status:
certificateName: mcrt-0a994e84-76b2-4ba3-9819-2a4ec5c0637e
certificateStatus: Provisioning
domainStatus:
- domain: argocdtest.micke.me
status: Active
- domain: argocdtest2.micke.me
status: Active
- domain: argocdtest3.micke.me
status: Provisioning