Bug 1667363
| Summary: | config map can not be updated If ASB is deployed by operator | ||
|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Zihan Tang <zitang> |
| Component: | Service Broker | Assignee: | jkim |
| Status: | CLOSED ERRATA | QA Contact: | Zihan Tang <zitang> |
| Severity: | high | Docs Contact: | |
| Priority: | high | ||
| Version: | 4.1.0 | CC: | aos-bugs, chezhang, dyan, jfan, jiazha, jmatthew, sponnaga |
| Target Milestone: | --- | Keywords: | TestBlocker |
| Target Release: | 4.1.0 | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | No Doc Update | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-06-04 10:42:02 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | 1668534 | ||
| Bug Blocks: | |||
|
Description
Zihan Tang
2019-01-18 09:19:51 UTC
This bug blocks current test run, so add testbloker keyword. We noticed the configmap of automation broker is watching by operator. And no method to change broker config at present. We tried to stop (or remove) broker operator, but asb pod crash since didn't find relate resource.
So, we lLeave TestBlocker in here to block related TCs in current test run, and will remove it while get fix or a workaround. Thanks.
# oc rsh automation-broker-operator-66b644bfb5-xjn69
sh-4.2$ ps -ef | grep ansible-operator
ansible+ 1 0 1 07:30 ? 00:01:00 /usr/local/bin/ansible-operator run ansible --watches-file=/opt/ansible/watches.yaml
sh-4.2$ cat watches.yaml
---
- name: AutomationBroker
version: v1alpha1
group: automationbroker.io
kind: AutomationBroker
playbook: /opt/ansible/deploy.yml
watchDependentResources: false
finalizer:
name: finalizer.automationbroker.io
vars:
action: deprovision
broker_destroy_shared_resources: true
sh-4.2$ cat /opt/ansible/deploy.yml
---
- name: automation-broker-operator
hosts: localhost
become: false
gather_facts: false
connection: local
vars:
state: present
broker_name: "{{ meta.name }}"
broker_namespace: "{{ meta.namespace }}"
broker_image: "{{ lookup('env', 'IMAGE') }}"
tasks:
- name: Validation
assert:
that: broker_name and broker_namespace and broker_image
fail_msg: >
broker_name broker_namespace broker_image must be defined
The IMAGE environment variable must provide the broker's image name
and should be specified in the operator's deployment specification.
- name: Run automation-broker role
include_role:
name: automation-broker
sh-4.2$ cat roles/automation-broker/vars/configmap.yml
---
broker_config_map:
apiVersion: v1
kind: ConfigMap
metadata:
name: broker-config
namespace: '{{ broker_namespace }}'
labels:
app: '{{ broker_name }}'
data:
broker-config: '{{ broker_config | to_nice_yaml }}'
John, Could developer provide a workaround to change broker config at present? We can accept stop watching by broker operator until get formal solution since we are focus on regression test and ensuring old features/functions still work fine in OCP4.0, especially in operator of brokers is not shipped. It should be possible to do this with the current images, I'm confirming that this morning and will update this bz with the results and advice. I've tested and confirmed that the currently published ASB operator image supports broker configuration via the CR. You need to add a complete broker configuration to the CR under the "brokerConfig" variable. This will override the operator's defaults and the operator will simply take that configuration and create a ConfigMap for the broker. Additionally, it also supports changes. If you would like to change any configuration values for an operator managed broker, you should edit the broker config that is in corresponding CR. The operator will recognize that the configuration has changed, update the ConfigMap, and recreate the broker's pod with the new config mounted in. Here is an example CR that contains a broker_config override: https://github.com/eriknelson/catbrokers4/blob/add-config-example/files/asb/05-asb-cr.yaml#L8 We are in the process of merging this to the catbrokers4 repo so that the playbook will use it. Erik, Thanks for your quickly response. We will checking At present, we can not deploy any operator successfully due to bug https://bugzilla.redhat.com/show_bug.cgi?id=1666225 we'll try when #bug 1666225 fixed or find workaround. Yes. But we cannot verify it since it is blocking by another bug https://bugzilla.redhat.com/show_bug.cgi?id=1668534 So, we marked 'Depends On: 1668534'. The broker's operator has been updated with a limited set of supported configuration options that should be set in the broker's CR. All of the supported options are documented here: https://github.com/openshift/ansible-service-broker/blob/master/docs/operator.md Manually editing the broker's config directly, in addition to setting the broker's config directly, are both no longer supported. If you must edit the broker's configuration directly, you will need to scale down the broker's operator by deleting the CSV + subscription in the operator's namespace. Then you will be able to edit the configmap directly without the operator overwriting your changes. The updated operator image has been published upstream to docker.io/automationbroker/automation-broker-operator. Verified.
asb operator: docker.io/automationbroker/osb-operators
asb version: 1.4.4
Then cm can be updated in the following scenario:
1. recreate the automationbroker CR and add the registries etc. config in the CR.
2. edit automationbroker CR , add the config in 'spec' like:
brokerImage: docker.io/zitangbj/ose-ansible-service-broker:v4.0
registries:
- type: openshift
name: aws
url: https://registry.reg-aws.openshift.com:443
tag: v4.0
images:
- openshift/mediawiki-apb
- openshift/postgresql-apb
- openshift/mariadb-apb
....
when the automationbroker work well, it will trigger update asb pod automatically, but asb operator pod often produce some error after running for some time and can not monitor the update or deletion of CR. I'll open another bug to trace it.
3. delete csv and subscription, then can edit broker-config cm directly as before v3.11
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-2019:0758 |