Skip to content

Commit

Permalink
test: kubernetes certificate status
Browse files Browse the repository at this point in the history
  • Loading branch information
adityathebe committed Apr 4, 2024
1 parent fdefe42 commit 0073b2b
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 9 deletions.
12 changes: 11 additions & 1 deletion kubernetes/health_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

// test IsHealthy with a kubernetes pod spec in running mode
func TestIsHealthySvc(t *testing.T) {
r := GetHealth(TestHealthy)
r := GetHealth(TestHealthySvc)
assert.Equal(t, true, r.OK)
assert.Equal(t, "Healthy", r.Status)
}
Expand All @@ -19,6 +19,16 @@ func TestIsHealthyPod(t *testing.T) {
assert.Equal(t, "Degraded", r.Status)
}

func TestIsHealthyCertificate(t *testing.T) {
r := GetHealth(TestHealthyCertificate)
assert.Equal(t, true, r.OK)
assert.Equal(t, "Healthy", r.Status)

r = GetHealth(TestDegradedCertificate)
assert.Equal(t, false, r.OK)
assert.Equal(t, "Degraded", r.Status)
}

func TestIsHealthyAppset(t *testing.T) {
r := GetHealth(TestLuaStatus)
assert.Equal(t, false, r.OK)
Expand Down
88 changes: 86 additions & 2 deletions kubernetes/testdata.go
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,91 @@ var TestServiceNeat = `{
}
`

var TestHealthy = `
var TestHealthyCertificate = `
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
creationTimestamp: "2019-02-15T18:17:06Z"
generation: 1
name: test-cert
namespace: argocd
resourceVersion: "68337322"
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:
acme:
order:
url: https://acme-v02.api.letsencrypt.org/acme/order/45250083/316944902
conditions:
- lastTransitionTime: "2019-02-15T18:21:10Z"
message: Order validated
reason: OrderValidated
status: "False"
type: ValidateFailed
- lastTransitionTime: null
message: Certificate issued successfully
reason: CertIssued
status: "True"
type: Ready
`

var TestDegradedCertificate = `
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
creationTimestamp: "2019-02-15T18:17:06Z"
generation: 1
name: test-cert
namespace: argocd
resourceVersion: "68337322"
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:
acme:
order:
url: https://acme-v02.api.letsencrypt.org/acme/order/45250083/316944902
conditions:
- lastTransitionTime: "2019-02-15T18:21:10Z"
message: Order validated
reason: OrderValidated
status: "False"
type: ValidateFailed
- lastTransitionTime: null
message: Certificate issuance failed
reason: Failed
status: "False"
type: Ready
`

var TestHealthySvc = `
apiVersion: v1
kind: Service
metadata:
Expand Down Expand Up @@ -314,7 +398,7 @@ status:
- hostname: abc123.us-west-2.elb.amazonaws.com
`

var TesthealthyUnstructured = GetUnstructured(TestHealthy)
var TesthealthyUnstructured = GetUnstructured(TestHealthySvc)
var TestProgressing = `
apiVersion: v1
kind: Service
Expand Down
8 changes: 4 additions & 4 deletions tests/cel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -435,9 +435,9 @@ func TestCelSliceReturn(t *testing.T) {

func TestCelK8sResources(t *testing.T) {
runTests(t, []Test{
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructuredMap(kubernetes.TestHealthy)}, "k8s.isHealthy(healthySvc)", "true"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructuredMap(kubernetes.TestHealthySvc)}, "k8s.isHealthy(healthySvc)", "true"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructuredMap(kubernetes.TestLuaStatus)}, "k8s.getStatus(healthySvc)", "Degraded: found less than two generators, Merge requires two or more"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructuredMap(kubernetes.TestHealthy)}, "k8s.getHealth(healthySvc).status", "Healthy"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructuredMap(kubernetes.TestHealthySvc)}, "k8s.getHealth(healthySvc).status", "Healthy"},
})
}

Expand Down Expand Up @@ -469,9 +469,9 @@ func TestCelK8s(t *testing.T) {
}

environment := map[string]any{
"healthy_obj": kubernetes.TestHealthy,
"healthy_obj": kubernetes.TestHealthySvc,
"unhealthy_obj": kubernetes.TestUnhealthy,
"obj_list": []string{kubernetes.TestHealthy, kubernetes.TestUnhealthy},
"obj_list": []string{kubernetes.TestHealthySvc, kubernetes.TestUnhealthy},
"unstructured_list": kubernetes.TestUnstructuredList,
"service_raw": kubernetes.TestServiceRaw,
"pod_raw": kubernetes.TestPodRaw,
Expand Down
6 changes: 4 additions & 2 deletions tests/gomplate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,11 @@ func TestGomplate(t *testing.T) {
{map[string]interface{}{"hello": "hello world ?"}, "{{ .hello | urlencode }}", `hello+world+%3F`},
{map[string]interface{}{"hello": "hello+world+%3F"}, "{{ .hello | urldecode }}", `hello world ?`},
{map[string]interface{}{"age": 75 * time.Second}, "{{ .age | humanDuration }}", "1m15s"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestHealthy)}, "{{ (.healthySvc | isHealthy) }}", "true"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestHealthyCertificate)}, "{{(.healthySvc | isHealthy)}}", "true"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestDegradedCertificate)}, "{{(.healthySvc | isHealthy)}}", "false"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestHealthySvc)}, "{{ (.healthySvc | isHealthy) }}", "true"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestLuaStatus)}, "{{ (.healthySvc | getStatus) }}", "Degraded: found less than two generators, Merge requires two or more"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestHealthy)}, "{{ (.healthySvc | getHealth).Status }}", "Healthy"},
{map[string]interface{}{"healthySvc": kubernetes.GetUnstructured(kubernetes.TestHealthySvc)}, "{{ (.healthySvc | getHealth).Status }}", "Healthy"},
{map[string]interface{}{"size": 123456}, "{{ .size | humanSize }}", "120.6K"},
{map[string]interface{}{"v": "1.2.3-beta.1+c0ff33"}, "{{ (.v | semver).Prerelease }}", "beta.1"},
{map[string]interface{}{"old": "1.2.3", "new": "1.2.3"}, "{{ .old | semverCompare .new }}", "true"},
Expand Down

0 comments on commit 0073b2b

Please sign in to comment.