diff options
Diffstat (limited to 'roles')
26 files changed, 145 insertions, 85 deletions
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/lib_zabbix/library/zbx_action.py b/roles/lib_zabbix/library/zbx_action.py index 2f9524556..e7edcde2f 100644 --- a/roles/lib_zabbix/library/zbx_action.py +++ b/roles/lib_zabbix/library/zbx_action.py @@ -120,8 +120,8 @@ def opmessage_usr_diff(zab_val, user_val):      ''' Report whether there are differences between opmessage_usr          on zabbix and opmessage_usr supplied by user ''' -    zab_usr_ids = set([usr['usrid'] for usr in zab_val]) -    usr_ids = set([usr['usrid'] for usr in user_val]) +    zab_usr_ids = set([usr['userid'] for usr in zab_val]) +    usr_ids = set([usr['userid'] for usr in user_val])      if usr_ids != zab_usr_ids:          return True @@ -228,12 +228,12 @@ def get_user_groups(zapi, groups):      '''get the mediatype id from the mediatype name'''      user_groups = [] -    content = zapi.get_content('usergroup', -                               'get', -                               {'search': {'name': groups}}) - -    for usr_grp in content['result']: -        user_groups.append({'usrgrpid': usr_grp['usrgrpid']}) +    for group in groups: +        content = zapi.get_content('usergroup', +                                   'get', +                                   {'search': {'name': group}}) +        for result in content['result']: +            user_groups.append({'usrgrpid': result['usrgrpid']})      return user_groups 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 d11af307b..5f5c5c788 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -711,8 +711,8 @@ def set_deployment_facts_if_unset(facts):      if 'node' in facts:          deployment_type = facts['common']['deployment_type']          if 'storage_plugin_deps' not in facts['node']: -            if deployment_type in ['openshift-enterprise', 'atomic-enterprise']: -                facts['node']['storage_plugin_deps'] = ['ceph', 'glusterfs'] +            if deployment_type in ['openshift-enterprise', 'atomic-enterprise', 'origin']: +                facts['node']['storage_plugin_deps'] = ['ceph', 'glusterfs', 'iscsi']              else:                  facts['node']['storage_plugin_deps'] = [] @@ -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..acf2f74e3 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) }}" @@ -33,6 +33,7 @@        set_node_ip: "{{ openshift_set_node_ip | default(None) }}"        node_image: "{{ osn_image | default(None) }}"        ovs_image: "{{ osn_ovs_image | default(None) }}" +      proxy_mode: "{{ openshift_node_proxy_mode | default('iptables') }}"  # We have to add tuned-profiles in the same transaction otherwise we run into depsolving  # problems because the rpms don't pin the version properly. This was fixed in 3.1 packaging. diff --git a/roles/openshift_node/tasks/storage_plugins/iscsi.yml b/roles/openshift_node/tasks/storage_plugins/iscsi.yml new file mode 100644 index 000000000..d6684b34a --- /dev/null +++ b/roles/openshift_node/tasks/storage_plugins/iscsi.yml @@ -0,0 +1,4 @@ +--- +- name: Install iSCSI storage plugin dependencies +  action: "{{ ansible_pkg_mgr }} name=iscsi-initiator-utils state=present" +  when: not openshift.common.is_atomic | bool diff --git a/roles/openshift_node/tasks/storage_plugins/main.yml b/roles/openshift_node/tasks/storage_plugins/main.yml index 39c7b9390..fe638718d 100644 --- a/roles/openshift_node/tasks/storage_plugins/main.yml +++ b/roles/openshift_node/tasks/storage_plugins/main.yml @@ -11,3 +11,7 @@  - name: Ceph storage plugin configuration    include: ceph.yml    when: "'ceph' in openshift.node.storage_plugin_deps" + +- name: iSCSI storage plugin configuration +  include: iscsi.yml +  when: "'iscsi' in openshift.node.storage_plugin_deps" diff --git a/roles/openshift_node/templates/node.yaml.v1.j2 b/roles/openshift_node/templates/node.yaml.v1.j2 index 44065f4bd..67975d372 100644 --- a/roles/openshift_node/templates/node.yaml.v1.j2 +++ b/roles/openshift_node/templates/node.yaml.v1.j2 @@ -35,3 +35,6 @@ servingInfo:    keyFile: server.key  volumeDirectory: {{ openshift.common.data_dir }}/openshift.local.volumes  {% include 'partials/kubeletArguments.j2' %} +proxyArguments: +  proxy-mode: +     - {{ openshift.node.proxy_mode }} 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_router/tasks/main.yml b/roles/openshift_router/tasks/main.yml index 355cbf84b..40365d04d 100644 --- a/roles/openshift_router/tasks/main.yml +++ b/roles/openshift_router/tasks/main.yml @@ -3,6 +3,7 @@    command: >      {{ openshift.common.admin_binary }} router      --create --replicas={{ openshift.master.infra_nodes | length }} +    --namespace=default      --service-account=router {{ ortr_selector }}      --credentials={{ openshift_master_config_dir }}/openshift-router.kubeconfig {{ ortr_images }}    register: ortr_results 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  | 
