diff options
| author | Devan Goodwin <dgoodwin@redhat.com> | 2016-06-09 11:50:51 -0300 | 
|---|---|---|
| committer | Devan Goodwin <dgoodwin@redhat.com> | 2016-06-09 11:50:51 -0300 | 
| commit | 00eb0c79ed65543b3d358ae71b1a40fcbc88d78b (patch) | |
| tree | b791494908cd7341c420cc9c59dc6a2dd82db4a8 /roles | |
| parent | 096cf64128ebcb1249044a1cb28b1b06154766ae (diff) | |
| parent | 078e5dca2d945fc789bce1f90432a19b6a8db75f (diff) | |
Merge remote-tracking branch 'upstream/master' into upgrade33
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/docker/tasks/main.yml | 1 | ||||
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 10 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer/meta/main.yml | 4 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer/tasks/main.yml | 30 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer_facts/README.md | 34 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer_facts/meta/main.yml | 13 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer_facts/tasks/main.yml | 30 | ||||
| -rw-r--r-- | roles/openshift_master/tasks/main.yml | 10 | ||||
| -rw-r--r-- | roles/openshift_master/tasks/systemd_units.yml | 46 | ||||
| -rw-r--r-- | roles/openshift_master_facts/tasks/main.yml | 1 | 
11 files changed, 145 insertions, 36 deletions
| diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index b9b2666fb..5f94500a0 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -85,6 +85,7 @@        reg_fact_val: "{{ docker_no_proxy | default('') | join(',') }}"    notify:      - restart docker +  when: "{{ 'http_proxy' in openshift.common or 'https_proxy' in openshift.common and docker_check.stat.isreg }}"  - name: Set various docker options    lineinfile: diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 1bf912a1d..8824a663c 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1573,7 +1573,15 @@ class OpenShiftFacts(object):                  "Role %s is not supported by this module" % role              )          self.role = role -        self.system_facts = ansible_facts(module) + +        try: +            # ansible-2.1 +            # pylint: disable=too-many-function-args +            self.system_facts = ansible_facts(module, ['hardware', 'network', 'virtual', 'facter']) +        except TypeError: +            # ansible-1.9.x,ansible-2.0.x +            self.system_facts = ansible_facts(module) +          self.facts = self.generate_facts(local_facts,                                           additive_facts_to_overwrite,                                           openshift_env, diff --git a/roles/openshift_loadbalancer/defaults/main.yml b/roles/openshift_loadbalancer/defaults/main.yml index 5c480f7c2..d096019af 100644 --- a/roles/openshift_loadbalancer/defaults/main.yml +++ b/roles/openshift_loadbalancer/defaults/main.yml @@ -1,6 +1,4 @@  --- -haproxy_frontend_port: 8443 -  haproxy_frontends:  - name: main    binds: diff --git a/roles/openshift_loadbalancer/meta/main.yml b/roles/openshift_loadbalancer/meta/main.yml index 96a737d2f..ed846a1ba 100644 --- a/roles/openshift_loadbalancer/meta/main.yml +++ b/roles/openshift_loadbalancer/meta/main.yml @@ -10,11 +10,11 @@ galaxy_info:      versions:      - 7  dependencies: -- role: openshift_facts +- role: openshift_loadbalancer_facts  - role: os_firewall    os_firewall_allow:    - service: haproxy stats      port: "9000/tcp"    - service: haproxy balance -    port: "{{ haproxy_frontend_port }}/tcp" +    port: "{{ openshift.loadbalancer.frontend_port }}/tcp"  - role: openshift_repos diff --git a/roles/openshift_loadbalancer/tasks/main.yml b/roles/openshift_loadbalancer/tasks/main.yml index 5514aa70b..03a7c0e4a 100644 --- a/roles/openshift_loadbalancer/tasks/main.yml +++ b/roles/openshift_loadbalancer/tasks/main.yml @@ -1,34 +1,4 @@  --- -- name: Set haproxy frontend port -  openshift_facts: -    role: loadbalancer -    local_facts: -      frontend_port: "{{ openshift_master_api_port | default(None) }}" - -- name: Set loadbalancer facts -  openshift_facts: -    role: loadbalancer -    local_facts: -      limit_nofile: "{{ openshift_loadbalancer_limit_nofile | default(None) }}" -      default_maxconn: "{{ openshift_loadbalancer_default_maxconn | default(None) }}" -      global_maxconn: "{{ openshift_loadbalancer_global_maxconn | default(None) }}" -      frontends: -      - name: atomic-openshift-api -        mode: tcp -        options: -        - tcplog -        binds: -        - "*:{{ openshift.loadbalancer.frontend_port }}" -        default_backend: atomic-openshift-api -      backends: -      - name: atomic-openshift-api -        mode: tcp -        option: tcplog -        balance: source -        servers: "{{ hostvars -                     | oo_select_keys(groups['oo_masters']) -                     | oo_haproxy_backend_masters(openshift.loadbalancer.frontend_port) }}" -  - name: Install haproxy    action: "{{ ansible_pkg_mgr }} name=haproxy state=present"    when: not openshift.common.is_containerized | bool diff --git a/roles/openshift_loadbalancer_facts/README.md b/roles/openshift_loadbalancer_facts/README.md new file mode 100644 index 000000000..57537cc03 --- /dev/null +++ b/roles/openshift_loadbalancer_facts/README.md @@ -0,0 +1,34 @@ +OpenShift HAProxy Loadbalancer Facts +==================================== + +TODO + +Requirements +------------ + +TODO + +Role Variables +-------------- + +TODO + +Dependencies +------------ + +TODO + +Example Playbook +---------------- + +TODO + +License +------- + +Apache License, Version 2.0 + +Author Information +------------------ + +Andrew Butcher (abutcher@redhat.com) diff --git a/roles/openshift_loadbalancer_facts/meta/main.yml b/roles/openshift_loadbalancer_facts/meta/main.yml new file mode 100644 index 000000000..4c5b6552b --- /dev/null +++ b/roles/openshift_loadbalancer_facts/meta/main.yml @@ -0,0 +1,13 @@ +--- +galaxy_info: +  author: Andrew Butcher +  description: OpenShift loadbalancer facts +  company: Red Hat, Inc. +  license: Apache License, Version 2.0 +  min_ansible_version: 1.9 +  platforms: +  - name: EL +    versions: +    - 7 +dependencies: +- role: openshift_facts diff --git a/roles/openshift_loadbalancer_facts/tasks/main.yml b/roles/openshift_loadbalancer_facts/tasks/main.yml new file mode 100644 index 000000000..dc244c0be --- /dev/null +++ b/roles/openshift_loadbalancer_facts/tasks/main.yml @@ -0,0 +1,30 @@ +--- +- name: Set haproxy frontend port +  openshift_facts: +    role: loadbalancer +    local_facts: +      frontend_port: "{{ openshift_master_api_port | default(None) }}" + +- name: Set loadbalancer facts +  openshift_facts: +    role: loadbalancer +    local_facts: +      limit_nofile: "{{ openshift_loadbalancer_limit_nofile | default(None) }}" +      default_maxconn: "{{ openshift_loadbalancer_default_maxconn | default(None) }}" +      global_maxconn: "{{ openshift_loadbalancer_global_maxconn | default(None) }}" +      frontends: +      - name: atomic-openshift-api +        mode: tcp +        options: +        - tcplog +        binds: +        - "*:{{ openshift.loadbalancer.frontend_port }}" +        default_backend: atomic-openshift-api +      backends: +      - name: atomic-openshift-api +        mode: tcp +        option: tcplog +        balance: source +        servers: "{{ hostvars +                     | oo_select_keys(groups['oo_masters']) +                     | oo_haproxy_backend_masters(openshift.loadbalancer.frontend_port) }}" diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml index d50d552c8..0d2fee67e 100644 --- a/roles/openshift_master/tasks/main.yml +++ b/roles/openshift_master/tasks/main.yml @@ -92,8 +92,16 @@    template:      dest: "{{ item.filename }}"      src: htpasswd.j2 -    mode: 0600      backup: yes +  when: item.kind == 'HTPasswdPasswordIdentityProvider' and openshift.master.manage_htpasswd | bool +  with_items: "{{ openshift.master.identity_providers }}" + +- name: Ensure htpasswd file exists +  copy: +    dest: "{{ item.filename }}" +    force: no +    content: "" +    mode: 0600    when: item.kind == 'HTPasswdPasswordIdentityProvider'    with_items: "{{ openshift.master.identity_providers }}" diff --git a/roles/openshift_master/tasks/systemd_units.yml b/roles/openshift_master/tasks/systemd_units.yml index a81270bab..458b56fd1 100644 --- a/roles/openshift_master/tasks/systemd_units.yml +++ b/roles/openshift_master/tasks/systemd_units.yml @@ -38,22 +38,54 @@    when: create_ha_unit_files | changed  # end workaround for missing systemd unit files +- name: Preserve Master API Proxy Config options +  command: grep PROXY /etc/sysconfig/{{ openshift.common.service_type }}-master-api +  register: master_api_proxy +  when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native" +  failed_when: false +  changed_when: false +  - name: Create the master api service env file    template:      src: "{{ ha_svc_template_path }}/atomic-openshift-master-api.j2"      dest: /etc/sysconfig/{{ openshift.common.service_type }}-master-api +    backup: true    when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native"    notify:    - restart master api +- name: Restore Master API Proxy Config Options +  when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native" +      and master_api_proxy.rc == 0 and 'http_proxy' not in openshift.common and 'https_proxy' not in openshift.common +  lineinfile: +    dest: /etc/sysconfig/{{ openshift.common.service_type }}-master-api +    line: "{{ item }}" +  with_items: "{{ master_api_proxy.stdout_lines | default([]) }}" + +- name: Preserve Master Controllers Proxy Config options +  command: grep PROXY /etc/sysconfig/{{ openshift.common.service_type }}-master-api +  register: master_controllers_proxy +  when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native" +  failed_when: false +  changed_when: false +  - name: Create the master controllers service env file    template:      src: "{{ ha_svc_template_path }}/atomic-openshift-master-controllers.j2"      dest: /etc/sysconfig/{{ openshift.common.service_type }}-master-controllers +    backup: true    when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native"    notify:    - restart master controllers +- name: Restore Master Controllers Proxy Config Options +  lineinfile: +    dest: /etc/sysconfig/{{ openshift.common.service_type }}-master-controllers +    line: "{{ item }}" +  with_items: "{{ master_controllers_proxy.stdout_lines | default([]) }}" +  when: openshift.master.ha is defined and openshift.master.ha | bool and openshift_master_cluster_method == "native" +        and master_controllers_proxy.rc == 0 and 'http_proxy' not in openshift.common and 'https_proxy' not in openshift.common  +  - name: Install Master docker service file    template:      dest: "/etc/systemd/system/{{ openshift.common.service_type }}-master.service" @@ -61,9 +93,23 @@    register: install_result    when: openshift.common.is_containerized | bool and openshift.master.ha is defined and not openshift.master.ha | bool +- name: Preserve Master Proxy Config options +  command: grep PROXY /etc/sysconfig/{{ openshift.common.service_type }}-master +  register: master_proxy +  failed_when: false +  changed_when: false +  - name: Create the master service env file    template:      src: "atomic-openshift-master.j2"      dest: /etc/sysconfig/{{ openshift.common.service_type }}-master +    backup: true    notify:    - restart master + +- name: Restore Master Proxy Config Options +  lineinfile: +    dest: /etc/sysconfig/{{ openshift.common.service_type }}-master +    line: "{{ item }}" +  with_items: "{{ master_proxy.stdout_lines | default([]) }}" +  when: master_proxy.rc == 0 and 'http_proxy' not in openshift.common and 'https_proxy' not in openshift.common
\ No newline at end of file diff --git a/roles/openshift_master_facts/tasks/main.yml b/roles/openshift_master_facts/tasks/main.yml index 896dd5e35..d51c5a0a3 100644 --- a/roles/openshift_master_facts/tasks/main.yml +++ b/roles/openshift_master_facts/tasks/main.yml @@ -42,6 +42,7 @@        auth_token_max_seconds: "{{ openshift_master_auth_token_max_seconds | default(None) }}"        identity_providers: "{{ openshift_master_identity_providers | default(None) }}"        htpasswd_users: "{{ openshift_master_htpasswd_users | default(lookup('file', openshift_master_htpasswd_file) | oo_htpasswd_users_from_file if openshift_master_htpasswd_file is defined else None) }}" +      manage_htpasswd: "{{ openshift_master_manage_htpasswd | default(true) }}"        ldap_ca: "{{ openshift_master_ldap_ca | default(lookup('file', openshift_master_ldap_ca_file) if openshift_master_ldap_ca_file is defined else None) }}"        openid_ca: "{{ openshift_master_openid_ca | default(lookup('file', openshift_master_openid_ca_file) if openshift_master_openid_ca_file is defined else None) }}"        request_header_ca: "{{ openshift_master_request_header_ca | default(lookup('file', openshift_master_request_header_ca_file) if openshift_master_request_header_ca_file is defined else None) }}" | 
