Bug 1540866 - [APB] Deprovision the Mediawiki APB fail by docker run
Summary: [APB] Deprovision the Mediawiki APB fail by docker run
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Service Broker
Version: 3.9.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 3.9.0
Assignee: David Zager
QA Contact: Jian Zhang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-02-01 08:36 UTC by Jian Zhang
Modified: 2018-03-28 14:25 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
undefined
Clone Of:
Environment:
Last Closed: 2018-03-28 14:24:57 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:0489 0 None None None 2018-03-28 14:25:20 UTC

Description Jian Zhang 2018-02-01 08:36:21 UTC
Description of problem:
Got fail when deprovision the Mediawiki by docker run

Version-Release number of selected component (if applicable):
Docker version: 1.12.6
The Mediawiki APB version: registry.access.stage.redhat.com/openshift3/mediawiki-apb:v3.9

How reproducible:
Always

Steps to Reproduce:
1, New a project called "test".
2, Provision the Mediawiki by the below script, provision it succeessfully.
[root@host-172-16-120-12 ~]# cat run.sh 
docker run \
--rm \
--net=host \
-v $HOME/.kube:/opt/apb/.kube:z \
-u $UID \
registry.access.stage.redhat.com/openshift3/mediawiki-apb:v3.9 \
provision \
--extra-vars 'namespace=test' \
--extra-vars 'mediawiki_db_schema=mediawiki' \
--extra-vars 'mediawiki_admin_pass=test' \
--extra-vars 'mediawiki_admin_user=admin' \
--extra-vars 'mediawiki_site_name=Mediawiki'  \
--extra-vars 'mediawiki_site_lang=en'

3, Deprovision it by the below script,
[root@host-172-16-120-12 ~]# cat run.sh 
docker run \
--rm \
--net=host \
-v $HOME/.kube:/opt/apb/.kube:z \
-u $UID \
registry.access.stage.redhat.com/openshift3/mediawiki-apb:v3.9 \
deprovision \
--extra-vars 'namespace=test' \
--extra-vars 'mediawiki_db_schema=mediawiki' \
--extra-vars 'mediawiki_admin_pass=test' \
--extra-vars 'mediawiki_admin_user=admin' \
--extra-vars 'mediawiki_site_name=Mediawiki'  \
--extra-vars 'mediawiki_site_lang=en'


Actual results:
[root@host-172-16-120-12 ~]# ./run.sh 
+ [[ deprovision --extra-vars namespace=test --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en == *\s\2\i\/\a\s\s\e\m\b\l\e* ]]
+ ACTION=deprovision
+ shift
+ playbooks=/opt/apb/actions
+ CREDS=/var/tmp/bind-creds
+ TEST_RESULT=/var/tmp/test-result
+ whoami
+ set +x
+ [[ -e /opt/apb/actions/deprovision.yaml ]]
+ [[ -e /opt/apb/actions/deprovision.yml ]]
+ ANSIBLE_ROLES_PATH=/etc/ansible/roles:/opt/ansible/roles
+ ansible-playbook /opt/apb/actions/deprovision.yml --extra-vars namespace=test --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en
[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 
'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions.
 This feature will be removed in a future release. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: include is kept for backwards compatibility but usage is
 discouraged. The module documentation details page may explain more about this
 rationale.. This feature will be removed in a future release. Deprecation 
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
 [WARNING]: Found variable using reserved name: action

PLAY [Deprovision mediawiki123-apb from openshift] *****************************

TASK [ansible.kubernetes-modules : Install latest openshift client] ************
skipping: [localhost]

TASK [mediawiki : include] *****************************************************
included: /opt/ansible/roles/mediawiki/tasks/deprovision.yml for localhost

TASK [mediawiki : Removing endpoint] *******************************************
skipping: [localhost]

TASK [mediawiki : Removing route] **********************************************
ok: [localhost]

TASK [mediawiki : Removing pvc] ************************************************
changed: [localhost]

TASK [mediawiki : Scaling down deployment] *************************************
skipping: [localhost]

TASK [mediawiki : Scaling down deployment config] ******************************
fatal: [localhost]: FAILED! => {"changed": false, "error": 422, "failed": true, "msg": "Failed to create object: DeploymentConfig \"mediawiki123\" is invalid: [spec.template: Required value, spec.selector: Invalid value: map[string]string(nil): selector cannot be empty]"}
        to retry, use: --limit @/opt/apb/actions/deprovision.retry

PLAY RECAP *********************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=1   



Expected results:
Deprovision it successfully by docker run.

Additional info:

Comment 4 Jian Zhang 2018-02-23 09:19:21 UTC
David,

I test this issue by using the latest image stored in our internal registry but still got the same errors. 
But, the image stored in docker.io works.
[root@host-172-16-120-9 ~]# docker images | grep mediawiki-apb
registry.access.stage.redhat.com/openshift3/mediawiki-apb                                    v3.9                4f94b287568f        2 days ago          943 MB
docker.io/ansibleplaybookbundle/mediawiki-apb                                                latest              b393ceb632f7        3 days ago          690 MB

So, how to check our internal images' exactly version? I didn't find any command on this.

Comment 5 David Zager 2018-02-23 14:59:13 UTC
I would use the below command to get the identifying information from an image:

$ docker inspect registry.access.stage.redhat.com/openshift3/mediawiki-apb:v3.9 --format "{{ index .Config.Labels.release }}"
0.47.0.0

This number corresponds to the suffixes in this commit history http://pkgs.devel.redhat.com/cgit/apbs/openshift-enterprise-mediawiki/log/?h=rhaos-3.9-rhel-7

You can see that 0.50.0.0 is the latest, and I confirmed that image has the appropriate fixes. Unfortunately, I don't know when these images are synced. At least now you have a way of getting the identifying information (you can use a similar method for other APB images).

Comment 6 Jian Zhang 2018-02-24 01:39:33 UTC
Thanks, @David, changed status to ON_QA since the internal image has been updated.
[root@host-172-16-120-71 ~]# docker inspect registry.access.stage.redhat.com/openshift3/mediawiki-apb:v3.9 --format "{{ index .Config.Labels.release }}"
0.47.0.0

Comment 7 Jian Zhang 2018-02-24 01:43:42 UTC
Test steps as below:

1) Provision the mediawiki apb.
[root@host-172-16-120-71 ~]# ./provision.sh 
+ [[ provision --extra-vars namespace=test2 --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en == *\s\2\i\/\a\s\s\e\m\b\l\e* ]]
+ ACTION=provision
+ shift
+ playbooks=/opt/apb/actions
+ CREDS=/var/tmp/bind-creds
+ TEST_RESULT=/var/tmp/test-result
+ whoami
+ set +x
+ [[ -e /opt/apb/actions/provision.yaml ]]
+ [[ -e /opt/apb/actions/provision.yml ]]
+ ANSIBLE_ROLES_PATH=/etc/ansible/roles:/opt/ansible/roles
+ ansible-playbook /opt/apb/actions/provision.yml --extra-vars namespace=test2 --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en
[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 
'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions.
 This feature will be removed in a future release. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: include is kept for backwards compatibility but usage is
 discouraged. The module documentation details page may explain more about this
 rationale.. This feature will be removed in a future release. Deprecation 
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
 [WARNING]: Found variable using reserved name: action

PLAY [mediawiki123-apb provision] **********************************************

TASK [ansible.kubernetes-modules : Install latest openshift client] ************
skipping: [localhost]

TASK [mediawiki : include] *****************************************************
included: /opt/ansible/roles/mediawiki/tasks/provision.yml for localhost

TASK [mediawiki : Validate Admin User and Password] ****************************
skipping: [localhost]

TASK [mediawiki : create mediawiki123 endpoint] ********************************
changed: [localhost]

TASK [mediawiki : create mediawiki123 route] ***********************************
skipping: [localhost]

TASK [mediawiki : create persistent volume claim] ******************************
changed: [localhost]

TASK [mediawiki : create deployment] *******************************************
changed: [localhost]

TASK [mediawiki : create deployment config] ************************************
skipping: [localhost]

TASK [mediawiki : create mediawiki123 service] *********************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=5    changed=4    unreachable=0    failed=0   

+ EXIT_CODE=0
+ set +ex
+ '[' -f /var/tmp/test-result ']'
+ exit 0
[root@host-172-16-120-71 ~]# oc get pods -n test2
NAME                            READY     STATUS    RESTARTS   AGE
mediawiki123-599f9868c4-zjkw6   1/1       Running   0          26s

2, Deprovision it.
[root@host-172-16-120-71 ~]# ./deprovision.sh 
+ [[ deprovision --extra-vars namespace=test2 --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en == *\s\2\i\/\a\s\s\e\m\b\l\e* ]]
+ ACTION=deprovision
+ shift
+ playbooks=/opt/apb/actions
+ CREDS=/var/tmp/bind-creds
+ TEST_RESULT=/var/tmp/test-result
+ whoami
+ set +x
+ [[ -e /opt/apb/actions/deprovision.yaml ]]
+ [[ -e /opt/apb/actions/deprovision.yml ]]
+ ANSIBLE_ROLES_PATH=/etc/ansible/roles:/opt/ansible/roles
+ ansible-playbook /opt/apb/actions/deprovision.yml --extra-vars namespace=test2 --extra-vars mediawiki_db_schema=mediawiki --extra-vars mediawiki_admin_pass=test --extra-vars mediawiki_admin_user=admin --extra-vars mediawiki_site_name=Mediawiki --extra-vars mediawiki_site_lang=en
[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 
'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions.
 This feature will be removed in a future release. Deprecation warnings can be 
disabled by setting deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: include is kept for backwards compatibility but usage is
 discouraged. The module documentation details page may explain more about this
 rationale.. This feature will be removed in a future release. Deprecation 
warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
 [WARNING]: Found variable using reserved name: action

PLAY [Deprovision mediawiki123-apb from kubernetes] ****************************

TASK [ansible.kubernetes-modules : Install latest openshift client] ************
skipping: [localhost]

TASK [mediawiki : include] *****************************************************
included: /opt/ansible/roles/mediawiki/tasks/deprovision.yml for localhost

TASK [mediawiki : Removing endpoint] *******************************************
changed: [localhost]

TASK [mediawiki : Removing route] **********************************************
skipping: [localhost]

TASK [mediawiki : Removing pvc] ************************************************
changed: [localhost]

TASK [mediawiki : Scaling down deployment] *************************************
changed: [localhost]

TASK [mediawiki : Scaling down deployment config] ******************************
skipping: [localhost]

TASK [mediawiki : pause] *******************************************************
Pausing for 10 seconds
(ctrl+C then 'C' = continue early, ctrl+C then 'A' = abort)
ok: [localhost]

TASK [mediawiki : Removing replication controller] *****************************
ok: [localhost]

TASK [mediawiki : Removing deployment] *****************************************
changed: [localhost]

TASK [mediawiki : Removing deployment config] **********************************
skipping: [localhost]

TASK [mediawiki : Removing service] ********************************************
changed: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=8    changed=5    unreachable=0    failed=0   

+ EXIT_CODE=0
+ set +ex
+ '[' -f /var/tmp/test-result ']'
+ exit 0
[root@host-172-16-120-71 ~]# oc get pods -n test2
NAME                            READY     STATUS        RESTARTS   AGE
mediawiki123-599f9868c4-zjkw6   0/1       Terminating   0          1m
[root@host-172-16-120-71 ~]# oc get pods -n test2
No resources found.

LGTM.

Comment 10 errata-xmlrpc 2018-03-28 14:24:57 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/RHBA-2018:0489


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