diff options
24 files changed, 146 insertions, 107 deletions
diff --git a/playbooks/common/openshift-cluster/upgrades/v3_0_to_v3_1/upgrade.yml b/playbooks/common/openshift-cluster/upgrades/v3_0_to_v3_1/upgrade.yml index 55c36810f..342a12810 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_0_to_v3_1/upgrade.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_0_to_v3_1/upgrade.yml @@ -258,7 +258,7 @@        openshift_master_certs_no_etcd:        - admin.crt        - master.kubelet-client.crt -      - "{{ 'master.proxy-client.crt' if openshift.common.version_greater_than_3_1_or_1_1 else omit }}" +      - "{{ 'master.proxy-client.crt' if openshift.common.version_gte_3_1_or_1_1 else omit }}"        - master.server.crt        - openshift-master.crt        - openshift-registry.crt diff --git a/playbooks/common/openshift-master/config.yml b/playbooks/common/openshift-master/config.yml index 540c6a148..bba53151a 100644 --- a/playbooks/common/openshift-master/config.yml +++ b/playbooks/common/openshift-master/config.yml @@ -150,7 +150,7 @@        openshift_master_certs_no_etcd:        - admin.crt        - master.kubelet-client.crt -      - "{{ 'master.proxy-client.crt' if openshift.common.version_greater_than_3_1_or_1_1 else omit }}" +      - "{{ 'master.proxy-client.crt' if openshift.common.version_gte_3_1_or_1_1 else omit }}"        - master.server.crt        - openshift-master.crt        - openshift-registry.crt @@ -174,10 +174,10 @@        master_cert_subdir: master-{{ openshift.common.hostname }}        master_cert_config_dir: "{{ openshift.common.config_base }}/master"    - set_fact: -      openshift_infra_nodes: "{{ hostvars | oo_select_keys(groups['nodes']) +      openshift_infra_nodes: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config'])                                   | oo_nodes_with_label('region', 'infra')                                   | oo_collect('inventory_hostname') }}" -    when: openshift_infra_nodes is not defined +    when: openshift_infra_nodes is not defined and groups.oo_nodes_to_config | default([]) | length > 0  - name: Configure master certificates    hosts: oo_first_master @@ -364,6 +364,8 @@  - name: Additional master configuration    hosts: oo_first_master    vars: +    cockpit_plugins: "{{ osm_cockpit_plugins | default(['cockpit-kubernetes']) }}" +    etcd_urls: "{{ openshift.master.etcd_urls }}"      openshift_master_ha: "{{ groups.oo_masters_to_config | length > 1 }}"      omc_cluster_hosts: "{{ groups.oo_masters_to_config | join(' ')}}"    roles: @@ -375,30 +377,16 @@      when: openshift.common.use_cluster_metrics | bool    - role: openshift_manageiq      when: openshift.common.use_manageiq | bool - -- name: Enable cockpit -  hosts: oo_first_master -  vars: -    cockpit_plugins: "{{ osm_cockpit_plugins | default(['cockpit-kubernetes']) }}" -  roles:    - role: cockpit      when: not openshift.common.is_atomic and ( deployment_type in ['atomic-enterprise','openshift-enterprise'] ) and        (osm_use_cockpit | bool or osm_use_cockpit is undefined ) - -- name: Configure flannel -  hosts: oo_first_master -  vars: -    etcd_urls: "{{ openshift.master.etcd_urls }}" -  roles:    - role: flannel_register      when: openshift.common.use_flannel | bool +  - role: pods +    when: openshift.common.deployment_type == 'online' +  - role: os_env_extras +    when: openshift.common.deployment_type == 'online' -# Additional instance config for online deployments -- name: Additional instance config -  hosts: oo_masters_deployment_type_online -  roles: -  - pods -  - os_env_extras  - name: Delete temporary directory on localhost    hosts: localhost @@ -409,22 +397,25 @@    - file: name={{ g_master_mktemp.stdout }} state=absent      changed_when: False -- name: Configure service accounts -  hosts: oo_first_master -  vars: -    accounts: ["router", "registry"] -  roles: -  - openshift_serviceaccounts - -- name: Create persistent volumes and services +- name: Create persistent volumes and create hosted services    hosts: oo_first_master    vars: +    attach_registry_volume: "{{ openshift.hosted.registry.storage.kind != None }}" +    deploy_infra: "{{ openshift.master.infra_nodes | default([]) | length > 0 }}"      persistent_volumes: "{{ hostvars[groups.oo_first_master.0] | oo_persistent_volumes(groups) }}"      persistent_volume_claims: "{{ hostvars[groups.oo_first_master.0] | oo_persistent_volume_claims }}"    roles:    - role: openshift_persistent_volumes      when: persistent_volumes | length > 0 or persistent_volume_claims | length > 0 +  - role: openshift_serviceaccounts +    openshift_serviceaccounts_names: +    - router +    - registry +    openshift_serviceaccounts_namespace: default +    openshift_serviceaccounts_sccs: +    - privileged    - role: openshift_router -    when: openshift.master.infra_nodes is defined +    when: deploy_infra | bool    - role: openshift_registry -    when: openshift.master.infra_nodes is defined and openshift.hosted.registry.storage.kind != None +    when: deploy_infra | bool and attach_registry_volume | bool + diff --git a/playbooks/common/openshift-node/config.yml b/playbooks/common/openshift-node/config.yml index e07de0e99..01e637f7a 100644 --- a/playbooks/common/openshift-node/config.yml +++ b/playbooks/common/openshift-node/config.yml @@ -176,6 +176,7 @@  - name: Evaluate node groups    hosts: localhost    become: no +  connection: local    tasks:    - name: Evaluate oo_containerized_master_nodes      add_host: diff --git a/roles/fluentd_master/meta/main.yml b/roles/fluentd_master/meta/main.yml new file mode 100644 index 000000000..148bc377e --- /dev/null +++ b/roles/fluentd_master/meta/main.yml @@ -0,0 +1,15 @@ +--- +galaxy_info: +  author: OpenShift Red Hat +  description: Fluentd Master +  company: Red Hat, Inc. +  license: Apache License, Version 2.0 +  min_ansible_version: 1.9 +  platforms: +  - name: EL +    versions: +    - 7 +  categories: +  - monitoring +  dependencies: +  - openshift_facts diff --git a/roles/lib_dyn/library/dyn_record.py b/roles/lib_dyn/library/dyn_record.py index 5e088a674..f2796ccf2 100644 --- a/roles/lib_dyn/library/dyn_record.py +++ b/roles/lib_dyn/library/dyn_record.py @@ -224,11 +224,13 @@ def main():          # First get a list of existing records for the node          values = get_record_values(dyn_node_records)          value_key = get_record_key(module.params['record_type']) +        param_value = module.params['record_value']          # Check to see if the record is already in place before doing anything.          if (dyn_node_records and                  dyn_node_records[value_key][0].ttl == module.params['record_ttl'] and -                module.params['record_value'] in values[value_key]): +                (param_value in values[value_key] or +                 param_value + '.' in values[value_key])):              module.exit_json(changed=False) diff --git a/roles/lib_dyn/tasks/main.yml b/roles/lib_dyn/tasks/main.yml index 9b3b1b0b9..965962928 100644 --- a/roles/lib_dyn/tasks/main.yml +++ b/roles/lib_dyn/tasks/main.yml @@ -3,3 +3,5 @@  - name: Make sure python-dyn is installed    yum: name=python-dyn state=present +  tags: +    - lib_dyn diff --git a/roles/openshift_common/tasks/main.yml b/roles/openshift_common/tasks/main.yml index 98b0b11ea..06e2c0878 100644 --- a/roles/openshift_common/tasks/main.yml +++ b/roles/openshift_common/tasks/main.yml @@ -8,7 +8,7 @@    when: openshift_use_openshift_sdn | default(false) | bool and openshift_use_nuage | default(false) | bool  - fail: -   msg: Nuage sdn can not be used with flannel  +   msg: Nuage sdn can not be used with flannel    when: openshift_use_flannel | default(false) | bool and openshift_use_nuage | default(false) | bool  - fail: @@ -49,7 +49,7 @@  # For enterprise versions < 3.1 and origin versions < 1.1 we want to set the  # hostname by default.  - set_fact: -    set_hostname_default: "{{ not openshift.common.version_greater_than_3_1_or_1_1 }}" +    set_hostname_default: "{{ not openshift.common.version_gte_3_1_or_1_1 }}"  - name: Set hostname    command: > diff --git a/roles/openshift_examples/defaults/main.yml b/roles/openshift_examples/defaults/main.yml index 6b9964aec..5e955590e 100644 --- a/roles/openshift_examples/defaults/main.yml +++ b/roles/openshift_examples/defaults/main.yml @@ -6,7 +6,7 @@ openshift_examples_load_db_templates: true  openshift_examples_load_xpaas: "{{ openshift_deployment_type != 'origin' }}"  openshift_examples_load_quickstarts: true -content_version: "{{ 'v1.1' if openshift.common.version_greater_than_3_1_or_1_1 else 'v1.0' }}" +content_version: "{{ 'v1.1' if openshift.common.version_gte_3_1_or_1_1 else 'v1.0' }}"  examples_base: "{{ openshift.common.config_base if openshift.common.is_containerized else '/usr/share/openshift' }}/examples"  image_streams_base: "{{ examples_base }}/image-streams" diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 01329d008..5f5c5c788 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -720,7 +720,7 @@ def set_deployment_facts_if_unset(facts):  def set_version_facts_if_unset(facts):      """ Set version facts. This currently includes common.version and -        common.version_greater_than_3_1_or_1_1. +        common.version_gte_3_1_or_1_1.          Args:              facts (dict): existing facts @@ -732,16 +732,20 @@ def set_version_facts_if_unset(facts):          facts['common']['version'] = version = get_openshift_version()          if version is not None:              if deployment_type == 'origin': -                version_gt_3_1_or_1_1 = LooseVersion(version) > LooseVersion('1.0.6') -                version_gt_3_1_1_or_1_1_1 = LooseVersion(version) > LooseVersion('1.1.1') +                version_gte_3_1_or_1_1 = LooseVersion(version) >= LooseVersion('1.1.0') +                version_gte_3_1_1_or_1_1_1 = LooseVersion(version) >= LooseVersion('1.1.1') +                version_gte_3_2_or_1_2 = LooseVersion(version) >= LooseVersion('1.1.2')              else: -                version_gt_3_1_or_1_1 = LooseVersion(version) > LooseVersion('3.0.2.900') -                version_gt_3_1_1_or_1_1_1 = LooseVersion(version) > LooseVersion('3.1.1') +                version_gte_3_1_or_1_1 = LooseVersion(version) >= LooseVersion('3.1.0') +                version_gte_3_1_1_or_1_1_1 = LooseVersion(version) >= LooseVersion('3.1.1') +                version_gte_3_2_or_1_2 = LooseVersion(version) >= LooseVersion('3.2.0')          else: -            version_gt_3_1_or_1_1 = True -            version_gt_3_1_1_or_1_1_1 = True -        facts['common']['version_greater_than_3_1_or_1_1'] = version_gt_3_1_or_1_1 -        facts['common']['version_greater_than_3_1_1_or_1_1_1'] = version_gt_3_1_1_or_1_1_1 +            version_gte_3_1_or_1_1 = True +            version_gte_3_1_1_or_1_1_1 = True +            version_gte_3_2_or_1_2 = True +        facts['common']['version_gte_3_1_or_1_1'] = version_gte_3_1_or_1_1 +        facts['common']['version_gte_3_1_1_or_1_1_1'] = version_gte_3_1_1_or_1_1_1 +        facts['common']['version_gte_3_2_or_1_2'] = version_gte_3_2_or_1_2      return facts @@ -756,12 +760,12 @@ def set_manageiq_facts_if_unset(facts):              OpenShiftFactsInternalError:      """      if 'common' not in facts: -        if 'version_greater_than_3_1_or_1_1' not in facts['common']: +        if 'version_gte_3_1_or_1_1' not in facts['common']:              raise OpenShiftFactsInternalError(                  "Invalid invocation: The required facts are not set"              )      if 'use_manageiq' not in facts['common']: -        facts['common']['use_manageiq'] = facts['common']['version_greater_than_3_1_or_1_1'] +        facts['common']['use_manageiq'] = facts['common']['version_gte_3_1_or_1_1']      return facts diff --git a/roles/openshift_manageiq/tasks/main.yaml b/roles/openshift_manageiq/tasks/main.yaml index 0357fc85a..d2ff1b4b7 100644 --- a/roles/openshift_manageiq/tasks/main.yaml +++ b/roles/openshift_manageiq/tasks/main.yaml @@ -1,7 +1,7 @@  ---  - fail:      msg: "The openshift_manageiq role requires OpenShift Enterprise 3.1 or Origin 1.1." -  when: not openshift.common.version_greater_than_3_1_or_1_1 | bool +  when: not openshift.common.version_gte_3_1_or_1_1 | bool  - name: Copy Configuration to temporary conf    command: > @@ -9,7 +9,7 @@    changed_when: false  - name: Add Managment Infrastructure project -  command: >  +  command: >      {{ openshift.common.admin_binary }} new-project      management-infra      --description="Management Infrastructure" @@ -20,9 +20,9 @@  - name: Create Service Account    shell: > -    echo {{ manageiq_service_account | to_json | quote }} |  -    {{ openshift.common.client_binary }} create  -    -n management-infra  +    echo {{ manageiq_service_account | to_json | quote }} | +    {{ openshift.common.client_binary }} create +    -n management-infra      --config={{manage_iq_tmp_conf}}      -f -    register: osmiq_create_service_account @@ -32,7 +32,7 @@  - name: Create Cluster Role    shell: >      echo {{ manageiq_cluster_role | to_json | quote }} | -    {{ openshift.common.client_binary }} create  +    {{ openshift.common.client_binary }} create      --config={{manage_iq_tmp_conf}}      -f -    register: osmiq_create_cluster_role diff --git a/roles/openshift_master/tasks/main.yml b/roles/openshift_master/tasks/main.yml index 83f6f7542..3613808b6 100644 --- a/roles/openshift_master/tasks/main.yml +++ b/roles/openshift_master/tasks/main.yml @@ -15,7 +15,7 @@    when: openshift_master_ha | bool and ((openshift_master_cluster_method is not defined) or (openshift_master_cluster_method is defined and openshift_master_cluster_method not in ["native", "pacemaker"]))  - fail:      msg: "'native' high availability is not supported for the requested OpenShift version" -  when: openshift_master_ha | bool and openshift_master_cluster_method == "native" and not openshift.common.version_greater_than_3_1_or_1_1 | bool +  when: openshift_master_ha | bool and openshift_master_cluster_method == "native" and not openshift.common.version_gte_3_1_or_1_1 | bool  - fail:      msg: "openshift_master_cluster_password must be set for multi-master installations"    when: openshift_master_ha | bool and openshift_master_cluster_method == "pacemaker" and (openshift_master_cluster_password is not defined or not openshift_master_cluster_password) @@ -287,7 +287,7 @@  - name: Mask master service    command: systemctl mask {{ openshift.common.service_type }}-master -  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' +  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and not openshift.common.is_atomic | bool  - name: Start and enable master api    service: name={{ openshift.common.service_type }}-master-api enabled=yes state=started diff --git a/roles/openshift_master/templates/master.yaml.v1.j2 b/roles/openshift_master/templates/master.yaml.v1.j2 index 1eeab46fe..813a58d60 100644 --- a/roles/openshift_master/templates/master.yaml.v1.j2 +++ b/roles/openshift_master/templates/master.yaml.v1.j2 @@ -1,5 +1,5 @@  apiLevels: -{% if not openshift.common.version_greater_than_3_1_or_1_1 | bool %} +{% if not openshift.common.version_gte_3_1_or_1_1 | bool %}  - v1beta3  {% endif %}  - v1 @@ -91,7 +91,7 @@ kubeletClientInfo:    port: 10250  {% if openshift.master.embedded_kube | bool %}  kubernetesMasterConfig: -{% if not openshift.common.version_greater_than_3_1_or_1_1 | bool %} +{% if not openshift.common.version_gte_3_1_or_1_1 | bool %}    apiLevels:    - v1beta3    - v1 diff --git a/roles/openshift_master/templates/native-cluster/atomic-openshift-master-controllers.service.j2 b/roles/openshift_master/templates/native-cluster/atomic-openshift-master-controllers.service.j2 index e6e97b24f..b393bb9ff 100644 --- a/roles/openshift_master/templates/native-cluster/atomic-openshift-master-controllers.service.j2 +++ b/roles/openshift_master/templates/native-cluster/atomic-openshift-master-controllers.service.j2 @@ -7,7 +7,7 @@ Before={{ openshift.common.service_type }}-node.service  Requires=network.target  [Service] -{% if openshift.common.version_greater_than_3_1_1_or_1_1_1 | bool %} +{% if openshift.common.version_gte_3_1_1_or_1_1_1 | bool %}  Type=notify  {% else %}  Type=simple diff --git a/roles/openshift_master_certificates/tasks/main.yml b/roles/openshift_master_certificates/tasks/main.yml index 36d953111..7c58e943a 100644 --- a/roles/openshift_master_certificates/tasks/main.yml +++ b/roles/openshift_master_certificates/tasks/main.yml @@ -39,7 +39,7 @@      state: hard    with_nested:    - masters_needing_certs -  - "{{ master_certificates | union(master_31_certificates) if openshift.common.version_greater_than_3_1_or_1_1 | bool else master_certificates }}" +  - "{{ master_certificates | union(master_31_certificates) if openshift.common.version_gte_3_1_or_1_1 | bool else master_certificates }}"  - name: Create the master certificates if they do not already exist    command: > diff --git a/roles/openshift_node/tasks/main.yml b/roles/openshift_node/tasks/main.yml index 9035248f9..1df81ca00 100644 --- a/roles/openshift_node/tasks/main.yml +++ b/roles/openshift_node/tasks/main.yml @@ -17,7 +17,7 @@        # TODO: Replace this with a lookup or filter plugin.        dns_ip: "{{ openshift_dns_ip                    | default(openshift_master_cluster_vip -                  | default(None if openshift.common.version_greater_than_3_1_or_1_1 | bool else openshift_node_first_master_ip | default(None, true), true), true) }}" +                  | default(None if openshift.common.version_gte_3_1_or_1_1 | bool else openshift_node_first_master_ip | default(None, true), true), true) }}"    - role: node      local_facts:        annotations: "{{ openshift_node_annotations | default(none) }}" diff --git a/roles/openshift_registry/README.md b/roles/openshift_registry/README.md index 8e66c483b..247272668 100644 --- a/roles/openshift_registry/README.md +++ b/roles/openshift_registry/README.md @@ -17,12 +17,6 @@ From this role:  |--------------------|-------------------------------------------------------|---------------------|  |                    |                                                       |                     | -From openshift_common: - -| Name                  | Default value |                                      | -|-----------------------|---------------|--------------------------------------| -| openshift_debug_level | 2             | Global openshift debug log verbosity | -  Dependencies  ------------ diff --git a/roles/openshift_registry/meta/main.yml b/roles/openshift_registry/meta/main.yml index 93b6797d1..b220a020e 100644 --- a/roles/openshift_registry/meta/main.yml +++ b/roles/openshift_registry/meta/main.yml @@ -4,10 +4,12 @@ galaxy_info:    description: OpenShift Embedded Docker Registry    company: Red Hat, Inc.    license: Apache License, Version 2.0 -  min_ansible_version: 1.7 +  min_ansible_version: 1.9    platforms:    - name: EL      versions:      - 7    categories:    - cloud +  dependencies: +  - openshift_facts diff --git a/roles/openshift_router/README.md b/roles/openshift_router/README.md index 836efc443..d490e1038 100644 --- a/roles/openshift_router/README.md +++ b/roles/openshift_router/README.md @@ -16,11 +16,6 @@ From this role:  |--------------------|-------------------------------------------------------|---------------------|  |                    |                                                       |                     | -From openshift_common: -| Name                  | Default value |                                      | -|-----------------------|---------------|--------------------------------------| -| openshift_debug_level | 2             | Global openshift debug log verbosity | -  Dependencies  ------------ diff --git a/roles/openshift_router/meta/main.yml b/roles/openshift_router/meta/main.yml index 0471e5e14..c2b0777b5 100644 --- a/roles/openshift_router/meta/main.yml +++ b/roles/openshift_router/meta/main.yml @@ -4,10 +4,12 @@ galaxy_info:    description: OpenShift Embedded Router    company: Red Hat, Inc.    license: Apache License, Version 2.0 -  min_ansible_version: 1.7 +  min_ansible_version: 1.9    platforms:    - name: EL      versions:      - 7    categories:    - cloud +  dependencies: +  - openshift_facts diff --git a/roles/openshift_serviceaccounts/meta/main.yml b/roles/openshift_serviceaccounts/meta/main.yml new file mode 100644 index 000000000..a2c9fee70 --- /dev/null +++ b/roles/openshift_serviceaccounts/meta/main.yml @@ -0,0 +1,15 @@ +--- +galaxy_info: +  author: OpenShift Operations +  description: OpenShift Service Accounts +  company: Red Hat, Inc. +  license: Apache License, Version 2.0 +  min_ansible_version: 1.9 +  platforms: +  - name: EL +    versions: +    - 7 +  categories: +  - cloud +dependencies: +- { role: openshift_facts } diff --git a/roles/openshift_serviceaccounts/tasks/main.yml b/roles/openshift_serviceaccounts/tasks/main.yml index 4c7faa6fe..5fe7d28f3 100644 --- a/roles/openshift_serviceaccounts/tasks/main.yml +++ b/roles/openshift_serviceaccounts/tasks/main.yml @@ -1,36 +1,33 @@ -- name: tmp dir for openshift -  file: -    path: /tmp/openshift -    state: directory -    owner: root -    mode: 700 - -- name: Create service account configs -  template: -    src: serviceaccount.j2 -    dest: "/tmp/openshift/{{ item }}-serviceaccount.yaml" -  with_items: accounts - -- name: Create {{ item }} service account +- name: test if service accounts exists    command: > -    {{ openshift.common.client_binary }} create -f "/tmp/openshift/{{ item }}-serviceaccount.yaml" -  with_items: accounts -  register: _sa_result -  failed_when: "'serviceaccounts \"{{ item }}\" already exists' not in _sa_result.stderr and _sa_result.rc != 0" -  changed_when: "'serviceaccounts \"{{ item }}\" already exists' not in _sa_result.stderr and _sa_result.rc == 0" +      {{ openshift.common.client_binary }} get sa {{ item }} -n {{ openshift_serviceaccounts_namespace }} +  with_items: openshift_serviceaccounts_names +  failed_when: false +  changed_when: false +  register: account_test -- name: Get current security context constraints +- name: create the service account    shell: > -    {{ openshift.common.client_binary }} get scc privileged -o yaml -    --output-version=v1 > /tmp/openshift/scc.yaml -  changed_when: false +       echo {{ lookup('template', '../templates/serviceaccount.j2') +               | from_yaml | to_json | quote }} | {{ openshift.common.client_binary }}  create -f - +  when: item.1.rc != 0 +  with_together: +  - openshift_serviceaccounts_names +  - account_test.results -- name: Add security context constraint for {{ item }} -  lineinfile: -    dest: /tmp/openshift/scc.yaml -    line: "- system:serviceaccount:default:{{ item }}" -    insertafter: "^users:$" -  with_items: accounts +- name: test if scc needs to be updated +  command: > +      {{ openshift.common.client_binary }} get scc {{ item }} -o yaml +  changed_when: false +  failed_when: false +  register: scc_test +  with_items: openshift_serviceaccounts_sccs -- name: Apply new scc rules for service accounts -  command: "{{ openshift.common.client_binary }} update -f /tmp/openshift/scc.yaml --api-version=v1" +- name: Grant the user access to the privileged scc +  command: > +      {{ openshift.common.admin_binary }} policy add-scc-to-user +      privileged system:serviceaccount:{{ openshift_serviceaccounts_namespace }}:{{ item.0 }} +  when: "item.1.rc == 0 and 'system:serviceaccount:{{ openshift_serviceaccounts_namespace }}:{{ item.0 }}' not in {{ (item.1.stdout | from_yaml).users }}" +  with_nested: +  - openshift_serviceaccounts_names +  - scc_test.results diff --git a/roles/openshift_serviceaccounts/templates/serviceaccount.j2 b/roles/openshift_serviceaccounts/templates/serviceaccount.j2 index 931e249f9..c5f12421f 100644 --- a/roles/openshift_serviceaccounts/templates/serviceaccount.j2 +++ b/roles/openshift_serviceaccounts/templates/serviceaccount.j2 @@ -1,4 +1,4 @@  apiVersion: v1  kind: ServiceAccount  metadata: -  name: {{ item }} +  name: {{ item.0 }} diff --git a/roles/os_zabbix/vars/template_openshift_master.yml b/roles/os_zabbix/vars/template_openshift_master.yml index 5aae2496a..1824d7881 100644 --- a/roles/os_zabbix/vars/template_openshift_master.yml +++ b/roles/os_zabbix/vars/template_openshift_master.yml @@ -201,6 +201,18 @@ g_template_openshift_master:      applications:      - Openshift Master Metrics +  - key: openshift.master.nodesnotready.count +    description: "This check shows how many nodes in a cluster are in NotReady state." +    type: int +    applications:  +    - Openshift Master + +  - key: openshift.master.nodesnotschedulable.count +    description: "This check shows how many nodes in a cluster are not schedulable." +    type: int +    applications: +    - Openshift Master +    - key: openshift.master.apiserver.latency.summary.pods.quantile.list.5      description: "Value from https://master/metrics.  This is the time, in miliseconds, that 50% of the pod operations have taken to completed."      type: int @@ -361,6 +373,13 @@ g_template_openshift_master:      - 'Openshift Master API health check is failing on {HOST.NAME}'      priority: high +  - name: 'Hosts not ready according to {HOST.NAME}' +    expression: '{Template Openshift Master:openshift.master.nodesnotready.count.last(#2)}>0' +    url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/openshift_node.asciidoc' +    dependencies:  +    - 'Openshift Master process not running on {HOST.NAME}' +    priority: high +    zgraphs:    - name: Openshift Master API Server Latency Pods LIST Quantiles      width: 900 diff --git a/roles/os_zabbix/vars/template_openshift_node.yml b/roles/os_zabbix/vars/template_openshift_node.yml index ff65ef158..b0488656d 100644 --- a/roles/os_zabbix/vars/template_openshift_node.yml +++ b/roles/os_zabbix/vars/template_openshift_node.yml @@ -37,8 +37,8 @@ g_template_openshift_node:      url: 'https://github.com/openshift/ops-sop/blob/node/V3/Alerts/openshift_node.asciidoc'      priority: high -  - name: 'OVS may not be running on {HOST.NAME}' -    expression: '{Template Openshift Node:openshift.node.ovs.pids.count.last()}<>4' +  - name: '[HEAL] OVS may not be running on {HOST.NAME}' +    expression: '{Template Openshift Node:openshift.node.ovs.pids.count.last(#1)}<>4 and {Template Openshift Node:openshift.node.ovs.pids.count.last(#2)}<>4'      url: 'https://github.com/openshift/ops-sop/blob/node/V3/Alerts/openshift_node.asciidoc'      priority: high  | 
