@@ -7,8 +7,10 @@ Library Process
77Library String
88Library ../../resources/journalctl.py
99Resource ../../resources/common.resource
10+ Resource ../../resources/hosts.resource
1011Resource ../../resources/kubeconfig.resource
1112Resource ../../resources/oc.resource
13+ Resource ../../resources/microshift-config.resource
1214Resource ../../resources/microshift-network.resource
1315Resource ../../resources/microshift-process.resource
1416
@@ -38,6 +40,11 @@ ${HTTP01_ISSUER_NAME} letsencrypt-http01
3840${HTTP01_CERT_NAME } cert-from-${HTTP01_ISSUER_NAME }
3941${HTTP01_SECRET_NAME } ${HTTP01_CERT_NAME }
4042${PEBBLE_DEPLOYMENT_FILE } ./assets/cert-manager/pebble-server.yaml
43+ ${HOSTSFILE_ENABLED } SEPARATOR=\n
44+ ... ---
45+ ... dns:
46+ ... \ \ hosts:
47+ ... \ \ \ \ status: Enabled
4148
4249
4350*** Test Cases ***
@@ -66,7 +73,7 @@ Test Cert manager with local acme server
6673 [Setup] Setup Pebble Server ${NAMESPACE }
6774
6875 ${dns_name } = Generate Random HostName
69- Configure DNS For Domain ${USHIFT_HOST } ${dns_name }
76+ Setup DNS For Test ${USHIFT_HOST } ${dns_name }
7077 Oc Get JsonPath ingressclass ${EMPTY } openshift-ingress .metadata.name
7178 ${http01_issuer_yaml } = Create HTTP01 Issuer YAML
7279 Apply YAML Manifest ${http01_issuer_yaml }
@@ -80,7 +87,7 @@ Test Cert manager with local acme server
8087
8188 [Teardown] Run Keywords
8289 ... Cleanup HTTP01 Resources
83- ... AND Remove DNS Configuration
90+ ... AND Cleanup DNS For Test ${ dns_name }
8491
8592
8693*** Keywords ***
@@ -378,3 +385,41 @@ Verify Cert Manager Kustomization Success
378385 ... unit=microshift
379386 ... retries=6
380387 ... wait=5
388+
389+ Resolve Host From Pod
390+ [Documentation] Resolve host from pod
391+ [Arguments] ${hostname }
392+ Wait Until Keyword Succeeds 40x 2s
393+ ... Router Should Resolve Hostname ${hostname }
394+
395+ Router Should Resolve Hostname
396+ [Documentation] Check if the router pod resolves the given hostname
397+ [Arguments] ${hostname }
398+ ${fuse_device } = Oc Exec router-default nslookup ${hostname } openshift-ingress deployment
399+ Should Contain ${fuse_device } Name: ${hostname }
400+
401+ Setup DNS For Test
402+ [Documentation] Setup DNS using CoreDNS hosts feature if available, otherwise use legacy method
403+ [Arguments] ${ip_address } ${dns_name }
404+ ${config } = Show Config default
405+ TRY
406+ VAR ${hosts } = ${config } [dns][hosts]
407+ Add Entry To Hosts ${ip_address } ${dns_name } /etc/hosts
408+ Drop In MicroShift Config ${HOSTSFILE_ENABLED } 20 -dns
409+ Restart MicroShift
410+ EXCEPT
411+ Configure DNS For Domain ${ip_address } ${dns_name }
412+ END
413+
414+ Cleanup DNS For Test
415+ [Documentation] Cleanup DNS configuration based on method used
416+ [Arguments] ${dns_name }
417+ ${config } = Show Config default
418+ TRY
419+ VAR ${hosts } = ${config } [dns][hosts]
420+ Remove Entry From Hosts ${dns_name }
421+ Remove Drop In MicroShift Config 20-dns
422+ Restart MicroShift
423+ EXCEPT
424+ Remove DNS Configuration
425+ END
0 commit comments