router.yml 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. ---
  2. - name: Update router certificates
  3. hosts: oo_first_master
  4. vars:
  5. tasks:
  6. - name: Create temp directory for kubeconfig
  7. command: mktemp -d /tmp/openshift-ansible-XXXXXX
  8. register: mktemp
  9. changed_when: false
  10. - name: Copy admin client config(s)
  11. command: >
  12. cp {{ openshift.common.config_base }}/master//admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig
  13. changed_when: false
  14. - name: Determine if router exists
  15. command: >
  16. {{ openshift.common.client_binary }} get dc/router -o json
  17. --config={{ mktemp.stdout }}/admin.kubeconfig
  18. -n default
  19. register: l_router_dc
  20. failed_when: false
  21. changed_when: false
  22. - set_fact:
  23. router_env_vars: "{{ ((l_router_dc.stdout | from_json)['spec']['template']['spec']['containers'][0]['env']
  24. | oo_collect('name'))
  25. | default([]) }}"
  26. router_secrets: "{{ ((l_router_dc.stdout | from_json)['spec']['template']['spec']['volumes']
  27. | oo_collect('secret')
  28. | oo_collect('secretName'))
  29. | default([]) }}"
  30. changed_when: false
  31. when: l_router_dc.rc == 0
  32. - name: Update router environment variables
  33. shell: >
  34. {{ openshift.common.client_binary }} env dc/router
  35. OPENSHIFT_CA_DATA="$(cat /etc/origin/master/ca.crt)"
  36. OPENSHIFT_CERT_DATA="$(cat /etc/origin/master/openshift-router.crt)"
  37. OPENSHIFT_KEY_DATA="$(cat /etc/origin/master/openshift-router.key)"
  38. --config={{ mktemp.stdout }}/admin.kubeconfig
  39. -n default
  40. when: l_router_dc.rc == 0 and 'OPENSHIFT_CA_DATA' in router_env_vars and 'OPENSHIFT_CERT_DATA' in router_env_vars and 'OPENSHIFT_KEY_DATA' in router_env_vars
  41. - block:
  42. - name: Delete existing router certificate secret
  43. command: >
  44. {{ openshift.common.client_binary }} delete secret/router-certs
  45. --config={{ mktemp.stdout }}/admin.kubeconfig
  46. -n default
  47. - name: Remove router service annotations
  48. command: >
  49. {{ openshift.common.client_binary }} annotate service/router
  50. service.alpha.openshift.io/serving-cert-secret-name-
  51. service.alpha.openshift.io/serving-cert-signed-by-
  52. --config={{ mktemp.stdout }}/admin.kubeconfig
  53. -n default
  54. - name: Add serving-cert-secret annotation to router service
  55. command: >
  56. {{ openshift.common.client_binary }} annotate service/router
  57. service.alpha.openshift.io/serving-cert-secret-name=router-certs
  58. --config={{ mktemp.stdout }}/admin.kubeconfig
  59. -n default
  60. when: l_router_dc.rc == 0 and 'router-certs' in router_secrets
  61. - name: Redeploy router
  62. command: >
  63. {{ openshift.common.client_binary }} deploy dc/router
  64. --latest
  65. --config={{ mktemp.stdout }}/admin.kubeconfig
  66. -n default
  67. - name: Delete temp directory
  68. file:
  69. name: "{{ mktemp.stdout }}"
  70. state: absent
  71. changed_when: False