Bug 1495203 - openshift_logging_storage_volume_size is required even without installation of logging stack
Summary: openshift_logging_storage_volume_size is required even without installation o...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Installer
Version: 3.7.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 3.7.0
Assignee: ewolinet
QA Contact: Johnny Liu
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-09-25 13:29 UTC by Hongkai Liu
Modified: 2017-11-28 22:13 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: As part of deprecating the use of openshift_hosted_{logging,metrics}_* variables we weren't setting a default for the storage volume if it wasn't provided but the storage kind was "nfs" Consequence: The playbook would fail that the variable wasn't defined. Fix: Set a default if not provided Result: Playbook runs as expected
Clone Of:
Environment:
Last Closed: 2017-11-28 22:13:02 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2017:3188 0 normal SHIPPED_LIVE Moderate: Red Hat OpenShift Container Platform 3.7 security, bug, and enhancement update 2017-11-29 02:34:54 UTC

Description Hongkai Liu 2017-09-25 13:29:52 UTC
Description of problem:
openshift_logging_storage_volume_size is required even without installation of logging stack.

Version-Release number of the following components:
rpm -q openshift-ansible
openshift-ansible-3.7.0-0.126.4.git.0.3fc2b9b.el7.noarc
rpm -q ansible
ansible-2.3.2.0-2.el7.noarch
ansible --version
ansible 2.3.2.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides
  python version = 2.7.5 (default, May  3 2017, 07:55:04) [GCC 4.8.5 20150623 (Red Hat 4.8.5-14)]

How reproducible:
ansible-playbook -i inv.file openshift-ansible/playbooks/byo/config.yml

Steps to Reproduce:
1.
2.
3.

Actual results:
Failure summary:


  1. Hosts:    ec2-34-212-33-220.us-west-2.compute.amazonaws.com, ec2-54-187-182-183.us-west-2.compute.amazonaws.com, ec2-54-187-241-115.us-west-2.compute.amazonaws.com, ec2-54-202-122-120.us-west-2.compute.amazonaws.com
     Play:     Initialize host facts
     Task:     openshift_sanitize_inventory : set_fact
     Message:  The task includes an option with an undefined variable. The error was: 'openshift_logging_storage_volume_size' is undefined
               
               The error appears to have been in '/home/slave3/workspace/Launch Environment Flexy/private-openshift-ansible/roles/openshift_sanitize_inventory/tasks/__deprecations_logging.yml': line 36, column 3, but may
               be elsewhere in the file depending on the exact syntax problem.
               
               The offending line appears to be:
               
               
               - set_fact:
                 ^ here
               
               exception type: <class 'ansible.errors.AnsibleUndefinedVariable'>
               exception: 'openshift_logging_storage_volume_size' is undefined

Expected results:
Installation is successful.


Additional info:
We could avoid this issue by giving openshift_logging_storage_volume_size=20Gi in the inventory file. However, this var should not be required if no logging stack is to be installed.

Comment 2 Hongkai Liu 2017-09-25 14:32:00 UTC
I see. The inv file contains 
openshift_hosted_logging_deploy=false   # line 1
openshift_hosted_logging_storage_kind=dynamic # line 2

So even with line 1, line 2 still implies checking on openshift_logging_storage_volume_size, doesn't it?

Let me try out to remove all logging variables.
I will update the result here.

Another questions related to this issue:
1. Can we run the playbook in openshift-ansible github checkout on a host where openshift-ansible rpm is already installed? I guess we should not.
2. What is the difference bewteen openshift_logging_storage_volume_size and openshift_logging_es_pvc_size?

Comment 3 Hongkai Liu 2017-09-25 14:57:03 UTC
It works now.
What I did:
# yum remove -y openshift-ansible\*
# Rerun the playbook
# cd ~/openshift-ansible
# git log --oneline -1
c390d38 Merge pull request #5492 from jsafrane/local-storage-predicate

It would be great if I could get answers to questions in comment 2.

Comment 4 ewolinet 2017-09-25 15:19:11 UTC
openshift_logging_es_pvc_size will be set to openshift_logging_elasticsearch_pvc_size if it is provided, otherwise it will be ''.

The idea is that if we are creating a storage volume (nfs or dynamic) then we would want to create a PVC that matches that same size.

Between "openshift_logging_storage_volume_size" and "openshift_logging_es_pvc_size" you should be setting "openshift_logging_storage_volume_size"

Comment 5 Hongkai Liu 2017-09-25 22:31:31 UTC
Further test on openshift_logging_storage_volume_size and openshift_logging_es_pvc_size:


openshift_logging_install_logging=true
openshift_logging_image_prefix=registry.ops.openshift.com/openshift3/
openshift_logging_storage_volume_size=25Gi
openshift_logging_storage_kind=dynamic
openshift_logging_es_pvc_size=50Gi
openshift_logging_es_pvc_dynamic=true

All works if using the above vars in inv. file.
Actually the created PVC for logging is 50Gi. So openshift_logging_storage_volume_size=25Gi did not take effect.

Then remove openshift_logging_es_pvc_size=50Gi. It gave me the error below:

Should I create another bug for this?


TASK [openshift_logging_elasticsearch : Creating ES storage template - dynamic] ***********************************************
fatal: [ec2-34-223-226-228.us-west-2.compute.amazonaws.com]: FAILED! => {"failed": true, "msg": "{{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: {{ openshift_logging_es_pvc_size }}: {{ openshift_logging_elasticsearch_pvc_size | default('') }}: recursive loop detected in template string: {{ openshift_logging_elasticsearch_pvc_size | default('') }}"}

Comment 6 ewolinet 2017-09-26 15:39:56 UTC
If you are specifying "openshift_logging_es_pvc_size" it should honor that value, so that is working as expected.

However, removing "openshift_logging_es_pvc_size" and rerunning should not cause an issue like that. It looks like the default for it is incorrectly defined.

Yes, please create another bz for that.

Comment 7 Hongkai Liu 2017-09-26 16:13:04 UTC
Done:
https://bugzilla.redhat.com/show_bug.cgi?id=1496202

Comment 8 ewolinet 2017-09-26 22:13:58 UTC
https://github.com/openshift/openshift-ansible/pull/5546 Should address a default volume size if not set

Comment 9 Hongkai Liu 2017-10-04 15:22:55 UTC
[fedora@ip-172-31-33-174 openshift-ansible]$ git branch --contains 22683f6
* master
[fedora@ip-172-31-33-174 openshift-ansible]$ git log --oneline -1
a0ba7b469 (HEAD -> master, origin/stage, origin/master, origin/HEAD) Merge pull request #5648 from jcantrill/1497401_default_image_versions

openshift_logging_storage_volume_size param is removed from inv file.
All worked fine.

Thanks for the fix.

Comment 13 errata-xmlrpc 2017-11-28 22:13:02 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2017:3188


Note You need to log in before you can comment on or make changes to this bug.