Skip to content

Commit

Permalink
Merge pull request #4120 from abutcher/backport-1.5-wildcard-cert
Browse files Browse the repository at this point in the history
Backport 1.5: Allowing a wildcard cert to be generated.
  • Loading branch information
sdodson authored May 9, 2017
2 parents 5b874ad + 5f2c8b1 commit 2c15987
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 0 deletions.
3 changes: 3 additions & 0 deletions roles/lib_openshift/library/oc_adm_ca_server_cert.py
Original file line number Diff line number Diff line change
Expand Up @@ -1462,6 +1462,9 @@ def exists(self):
if proc.returncode == 0:
regex = re.compile(r"^\s*X509v3 Subject Alternative Name:\s*?\n\s*(.*)\s*\n", re.MULTILINE)
match = regex.search(x509output) # E501
if not match:
return False

for entry in re.split(r", *", match.group(1)):
if entry.startswith('DNS') or entry.startswith('IP Address'):
cert_names.append(entry.split(':')[1])
Expand Down
3 changes: 3 additions & 0 deletions roles/lib_openshift/src/class/oc_adm_ca_server_cert.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ def exists(self):
if proc.returncode == 0:
regex = re.compile(r"^\s*X509v3 Subject Alternative Name:\s*?\n\s*(.*)\s*\n", re.MULTILINE)
match = regex.search(x509output) # E501
if not match:
return False

for entry in re.split(r", *", match.group(1)):
if entry.startswith('DNS') or entry.startswith('IP Address'):
cert_names.append(entry.split(':')[1])
Expand Down
1 change: 1 addition & 0 deletions roles/openshift_hosted/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,4 @@ openshift_hosted_routers:


openshift_hosted_router_certificate: {}
openshift_hosted_router_create_certificate: False
26 changes: 26 additions & 0 deletions roles/openshift_hosted/tasks/router/router.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,39 @@
openshift_hosted_router_selector: "{{ openshift.hosted.router.selector | default(None) }}"
openshift_hosted_router_image: "{{ openshift.hosted.router.registryurl }}"

# This is for when we desire a cluster signed cert
# The certificate is generated and placed in master_config_dir/
- block:
- name: generate a default wildcard router certificate
oc_adm_ca_server_cert:
signer_cert: "{{ openshift_master_config_dir }}/ca.crt"
signer_key: "{{ openshift_master_config_dir }}/ca.key"
signer_serial: "{{ openshift_master_config_dir }}/ca.serial.txt"
hostnames:
- "{{ openshift_master_default_subdomain }}"
- "*.{{ openshift_master_default_subdomain }}"
cert: "{{ ('/etc/origin/master/' ~ (item.certificate.certfile | basename)) if 'certfile' in item.certificate else ((openshift_master_config_dir) ~ '/openshift-router.crt') }}"
key: "{{ ('/etc/origin/master/' ~ (item.certificate.keyfile | basename)) if 'keyfile' in item.certificate else ((openshift_master_config_dir) ~ '/openshift-router.key') }}"
with_items: "{{ openshift_hosted_routers }}"

- name: set the openshift_hosted_router_certificate
set_fact:
openshift_hosted_router_certificate:
certfile: "{{ openshift_master_config_dir ~ '/openshift-router.crt' }}"
keyfile: "{{ openshift_master_config_dir ~ '/openshift-router.key' }}"
cafile: "{{ openshift_master_config_dir ~ '/ca.crt' }}"

# End Block
when: openshift_hosted_router_create_certificate

- name: Get the certificate contents for router
copy:
backup: True
dest: "/etc/origin/master/{{ item | basename }}"
src: "{{ item }}"
with_items: "{{ openshift_hosted_routers | oo_collect(attribute='certificate') |
oo_select_keys_from_list(['keyfile', 'certfile', 'cafile']) }}"
when: not openshift_hosted_router_create_certificate

- name: Create the router service account(s)
oc_serviceaccount:
Expand Down

0 comments on commit 2c15987

Please sign in to comment.