diff options
-rw-r--r-- | .tito/packages/openshift-ansible | 2 | ||||
-rwxr-xr-x | bin/ohi | 4 | ||||
-rw-r--r-- | bin/openshift_ansible/awsutil.py | 27 | ||||
-rw-r--r-- | openshift-ansible.spec | 69 | ||||
-rw-r--r-- | roles/etcd/defaults/main.yaml | 2 | ||||
-rw-r--r-- | roles/openshift_examples/files/examples/v1.1/infrastructure-templates/enterprise/logging-deployer.yaml | 2 | ||||
-rw-r--r-- | roles/os_zabbix/vars/template_openshift_node.yml | 33 | ||||
-rw-r--r-- | roles/os_zabbix/vars/template_ops_tools.yml | 31 |
8 files changed, 132 insertions, 38 deletions
diff --git a/.tito/packages/openshift-ansible b/.tito/packages/openshift-ansible index ab096b300..4df929277 100644 --- a/.tito/packages/openshift-ansible +++ b/.tito/packages/openshift-ansible @@ -1 +1 @@ -3.0.47-1 ./ +3.0.49-1 ./ @@ -34,6 +34,7 @@ class Ohi(object): 'openshift_ansible', \ 'openshift_ansible.conf') + self.args = None self.parse_cli_args() self.parse_config_file() @@ -57,6 +58,7 @@ class Ohi(object): hosts = self.aws.get_host_list(clusters=self.args.cluster, host_type=self.args.host_type, + sub_host_type=self.args.sub_host_type, envs=self.args.env, version=version, cached=self.args.cache_only) @@ -104,6 +106,8 @@ class Ohi(object): parser.add_argument('-t', '--host-type', action="store", help="Which host type to use") + parser.add_argument('-s', '--sub-host-type', action="store", help="Which sub host type to use") + parser.add_argument('-l', '--user', action='store', default=None, help='username') parser.add_argument('--cache-only', action='store_true', default=False, diff --git a/bin/openshift_ansible/awsutil.py b/bin/openshift_ansible/awsutil.py index 945e6a20c..eba11e851 100644 --- a/bin/openshift_ansible/awsutil.py +++ b/bin/openshift_ansible/awsutil.py @@ -31,6 +31,7 @@ class AwsUtil(object): host_type_aliases -- a list of aliases to common host-types (e.g. ex-node) """ + self.alias_lookup = {} host_type_aliases = host_type_aliases or {} self.host_type_aliases = host_type_aliases @@ -40,7 +41,6 @@ class AwsUtil(object): def setup_host_type_alias_lookup(self): """Sets up the alias to host-type lookup table.""" - self.alias_lookup = {} for key, values in self.host_type_aliases.iteritems(): for value in values: self.alias_lookup[value] = key @@ -101,6 +101,20 @@ class AwsUtil(object): host_types.sort() return host_types + def get_sub_host_types(self): + """Searches for sub-host-type tags in the inventory and returns all sub-host-types found.""" + pattern = re.compile(r'^oo_subhosttype_(.*)') + + sub_host_types = [] + inv = self.get_inventory() + for key in inv.keys(): + matched = pattern.match(key) + if matched: + sub_host_types.append(matched.group(1)) + + sub_host_types.sort() + return sub_host_types + def get_security_groups(self): """Searches for security_groups in the inventory and returns all SGs found.""" pattern = re.compile(r'^security_group_(.*)') @@ -192,9 +206,15 @@ class AwsUtil(object): host_type = self.resolve_host_type(host_type) return "oo_hosttype_%s" % host_type + @staticmethod + def gen_sub_host_type_tag(sub_host_type): + """Generate the host type tag + """ + return "oo_subhosttype_%s" % sub_host_type + # This function uses all of these params to perform a filters on our host inventory. # pylint: disable=too-many-arguments - def get_host_list(self, clusters=None, host_type=None, envs=None, version=None, cached=False): + def get_host_list(self, clusters=None, host_type=None, sub_host_type=None, envs=None, version=None, cached=False): """Get the list of hosts from the inventory using host-type and environment """ retval = set([]) @@ -229,6 +249,9 @@ class AwsUtil(object): if host_type: retval.intersection_update(inv.get(self.gen_host_type_tag(host_type, version), [])) + if sub_host_type: + retval.intersection_update(inv.get(self.gen_sub_host_type_tag(sub_host_type), [])) + if version != 'all': retval.intersection_update(inv.get(AwsUtil.gen_version_tag(version), [])) diff --git a/openshift-ansible.spec b/openshift-ansible.spec index c92ea2843..c660e6674 100644 --- a/openshift-ansible.spec +++ b/openshift-ansible.spec @@ -5,7 +5,7 @@ } Name: openshift-ansible -Version: 3.0.47 +Version: 3.0.49 Release: 1%{?dist} Summary: Openshift and Atomic Enterprise Ansible License: ASL 2.0 @@ -261,6 +261,73 @@ Atomic OpenShift Utilities includes %changelog +* Tue Mar 01 2016 Matt Woodson <mwoodson@redhat.com> 3.0.49-1 +- fixed error in awsutil.py (mwoodson@redhat.com) + +* Tue Mar 01 2016 Matt Woodson <mwoodson@redhat.com> 3.0.48-1 +- ohi: added subtype searching (mwoodson@redhat.com) +- make heal remote actions generic for all [HEAL] triggers (jdiaz@redhat.com) +- added extra steps to ensure docker starts up (mwoodson@redhat.com) +- role_removal: docker_storage; This is the old way, no longer used + (mwoodson@redhat.com) +- role: added docker_storage_setup (mwoodson@redhat.com) +- Use inventory_hostname for openshift master certs to sync. + (abutcher@redhat.com) +- Adding a symlink to making loading the examples more convenient + (bleanhar@redhat.com) +- docs: Explain a bit more how to expand Atomic Host rootfs + (walters@verbum.org) +- a-o-i: Rename osm_default_subdomain (smunilla@redhat.com) +- Updating tito config for OSE 3.2 (bleanhar@redhat.com) +- Synchronize master kube configs (abutcher@redhat.com) +- added os_utils, os_reboot_server role; removed containerization stuff from + the updated (mwoodson@redhat.com) +- Add warnings to bin/cluster and READMEs (abutcher@redhat.com) +- Add host subnet length example. (abutcher@redhat.com) +- Upgrade -1510 to CentOS-7-x86_64-GenericCloud-1602. (cben@redhat.com) +- Pin down CentOS-7-x86_64-GenericCloud-1510.qcow2.xz version, which the + checksum currently expects (#1384). (cben@redhat.com) +- Change is_atomic to is_containerized (florian.lambert@enovance.com) +- Rename variable to openshift_master_default_subdomain with backwards + compatibility. (jstuever@redhat.com) +- lib_dyn: more updates to the lib_dyn module. Made the TTL more flexible + (mwoodson@redhat.com) +- remote heal action for OVS down (jdiaz@redhat.com) +- Pass registry claim to openshift_registry. (abutcher@redhat.com) +- Refactor - increase retries instead of delay in "Wait for Node Registration" + (david.mat@archimiddle.com) +- Better diagnostic messages when an OpenStack heat stack creation fails + (lhuard@amadeus.com) +- made some changes to lib_dyn update (mwoodson@redhat.com) +- Increase timeout on Wait for Node Registration (david.mat@archimiddle.com) +- Fix typo in oscp (agrimm@redhat.com) +- Add correct parsing of ec2_security_groups env variable + (david.mat@archimiddle.com) +- changed oso_host_monitoring to use the oo_ vars (twiest@redhat.com) +- Add quotes around src argument to support paths with spaces + (david.mat@archimiddle.com) +- Add missing is_atomic condition on upgrade package + (florian.lambert@enovance.com) +- configure debug_level for master and node from cli (jawed.khelil@amadeus.com) +- remove version requirement from etcd, shouldn't be needed anymore + (maxamillion@fedoraproject.org) +- Add ansible.cfg to .gitignore (jdetiber@redhat.com) +- added node-secgroup to master_nodes (j.david.nieto@gmail.com) +- Document setting the VPC subnet (puiterwijk@redhat.com) +- Update the AMIs used in README_AWS (puiterwijk@redhat.com) +- Add byo examples for network cidr and api/console ports. + (abutcher@redhat.com) +- Add openshift_docker roles to master/node scaleup. (abutcher@redhat.com) +- Fail when master.master_count descreases or master.ha changes. + (abutcher@redhat.com) +- Protected facts. (abutcher@redhat.com) +- Add modify_yaml module. (abutcher@redhat.com) +- Re-arrange scaleup playbooks. (abutcher@redhat.com) +- Move additional master configuration into a separate master playbook. + (abutcher@redhat.com) +- Generate each master's certificates separately. (abutcher@redhat.com) +- Add new_masters to scaleup playbook. (abutcher@redhat.com) + * Wed Feb 24 2016 Brenton Leanhardt <bleanhar@redhat.com> 3.0.47-1 - a-o-i: Double safety check on master_lb (smunilla@redhat.com) - a-o-i: Better method for identifying master_lb (smunilla@redhat.com) diff --git a/roles/etcd/defaults/main.yaml b/roles/etcd/defaults/main.yaml index 9e7fa59cf..e6b10cab7 100644 --- a/roles/etcd/defaults/main.yaml +++ b/roles/etcd/defaults/main.yaml @@ -1,5 +1,5 @@ --- -etcd_service: "{{ 'etcd' if not openshift.common.is_containerized else 'etcd_container' }}" +etcd_service: "{{ 'etcd' if not openshift.common.is_containerized | bool else 'etcd_container' }}" etcd_interface: "{{ ansible_default_ipv4.interface }}" etcd_client_port: 2379 etcd_peer_port: 2380 diff --git a/roles/openshift_examples/files/examples/v1.1/infrastructure-templates/enterprise/logging-deployer.yaml b/roles/openshift_examples/files/examples/v1.1/infrastructure-templates/enterprise/logging-deployer.yaml index b3b60bf9b..9c8f1071a 100644 --- a/roles/openshift_examples/files/examples/v1.1/infrastructure-templates/enterprise/logging-deployer.yaml +++ b/roles/openshift_examples/files/examples/v1.1/infrastructure-templates/enterprise/logging-deployer.yaml @@ -86,7 +86,7 @@ parameters: - description: 'Specify version for logging components; e.g. for "openshift/origin-logging-deployer:v1.1", set version "v1.1"' name: IMAGE_VERSION - value: "3.1.0" + value: "3.1.1" - description: "If true, set up to use a second ES cluster for ops logs." name: ENABLE_OPS_CLUSTER diff --git a/roles/os_zabbix/vars/template_openshift_node.yml b/roles/os_zabbix/vars/template_openshift_node.yml index e6daee8e4..66bd3a147 100644 --- a/roles/os_zabbix/vars/template_openshift_node.yml +++ b/roles/os_zabbix/vars/template_openshift_node.yml @@ -59,7 +59,7 @@ g_template_openshift_node: url: 'https://github.com/openshift/ops-sop/blob/node/V3/Alerts/openshift_node.asciidoc' priority: high - - name: '[HEAL] OVS may not be running on {HOST.NAME}' + - 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 @@ -68,34 +68,3 @@ g_template_openshift_node: expression: '{Template Openshift Node:openshift.node.ovs.ports.count.last()}=0' url: 'https://github.com/openshift/ops-sop/blob/node/V3/Alerts/openshift_node.asciidoc' priority: high - - zactions: - - name: '[HEAL] OVS may not be running on {HOST.NAME}' - status: disabled - escalation_time: 60 - conditions_filter: - calculation_type: "and/or" - conditions: - - conditiontype: maintenance status - operator: not in - - conditiontype: trigger name - operator: like - value: "[HEAL] OVS may not be running on" - - conditiontype: trigger value - operator: "=" - value: PROBLEM - operations: - - esc_step_from: 1 - esc_step_to: 1 - esc_period: 0 - operationtype: remote command - opcommand: - command: 'ssh -i /etc/openshift_tools/scriptrunner_id_rsa {{ ozb_scriptrunner_user }}@{{ ozb_scriptrunner_bastion_host }} remote-healer --host \"{HOST.NAME}\" --trigger \"{TRIGGER.NAME}\" --trigger-val \"{TRIGGER.VALUE}\"' - execute_on: "zabbix server" - type: 'custom script' - target_hosts: - - target_type: 'zabbix server' - opconditions: - - conditiontype: 'event acknowledged' - operator: '=' - value: 'not acknowledged' diff --git a/roles/os_zabbix/vars/template_ops_tools.yml b/roles/os_zabbix/vars/template_ops_tools.yml index d1b8a2514..a0a5a4d03 100644 --- a/roles/os_zabbix/vars/template_ops_tools.yml +++ b/roles/os_zabbix/vars/template_ops_tools.yml @@ -21,3 +21,34 @@ g_template_ops_tools: expression: '{Template Operations Tools:disc.ops.runner.command.exitcode[{#OSO_COMMAND}].last()}<>0' url: 'https://github.com/openshift/ops-sop/blob/master/V3/Alerts/check_ops_runner_command.asciidoc' priority: average + + zactions: + - name: 'Remote command for [Heal] triggers' + status: enabled + escalation_time: 60 + conditions_filter: + calculation_type: "and/or" + conditions: + - conditiontype: maintenance status + operator: not in + - conditiontype: trigger name + operator: like + value: "[Heal]" + - conditiontype: trigger value + operator: "=" + value: PROBLEM + operations: + - esc_step_from: 1 + esc_step_to: 1 + esc_period: 0 + operationtype: remote command + opcommand: + command: 'ssh -i /etc/openshift_tools/scriptrunner_id_rsa {{ ozb_scriptrunner_user }}@{{ ozb_scriptrunner_bastion_host }} remote-healer --host \"{HOST.NAME}\" --trigger \"{TRIGGER.NAME}\" --trigger-val \"{TRIGGER.VALUE}\"' + execute_on: "zabbix server" + type: 'custom script' + target_hosts: + - target_type: 'zabbix server' + opconditions: + - conditiontype: 'event acknowledged' + operator: '=' + value: 'not acknowledged' |