-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
om configure-product should be enhanced to support collections #207
Comments
We have created an issue in Pivotal Tracker to manage this. Unfortunately, the Pivotal Tracker project is private so you may be unable to view the contents of the story. The labels on this github issue will be updated when the story is started. |
Thanks for reporting this here! Do you know how can I reproduce this issue currently? Simply by trying to run /cc @jtarchie @ljfranklin |
I believe it does always fail. You could either use the MySQL v2 tile or the OpsManager example product. In the MySQL case, you will have to deploy the entire once and then use configure-product and deploy again. This deploy should fail because the GUIDs associated with the deployed service plans will have changed. You can use the example tile by just using configure-product and noticing the strange behavior of records getting deleted, GUIDs changing, etc. |
Cool, I'll assume that's the case. We'll try to prioritize this ourselves at some point if no one else gets to it first, but I'm throwing a |
@sadvani and @mcwumbly, are you able to review the PR from @calebwashburn. I've been able to see that the code works, but I don't have a way (or knowledge) on how reproduce this issue. |
@mcwumbly @jtarchie @calebwashburn is this issue fixed? |
@sadvani Believe so |
yes, this pr #227 has been pulled in. We validated using @calebwashburn's gist. Do you still see a problem? |
Perfect, thanks so much @calebwashburn @fredwangwang. Is there a specific version of OM that I should tell the customer to upgrade to? |
master, there is no release cut since the fix introduced. |
@sadvani: I think we might have to revert this change. An issue #274 shows that we cannot rely on a collection having a We might have to be stronger on this an enforce the any element on a collection that has to be persisted and updated (not removed and recreated) should always have a |
@dsboulder I understand you're currently backing @sadvani up as Ops Man PM. Any thoughts on this? |
I validated that if collection records as passed with a "guid" field, then those existing records will be found and updated. Otherwise we'll consider them new records (and delete any unmatched-by-guid records at the end). |
Configure-product with collection typesCurrent approach in
|
a similar issue was reported here: #315 for the appdynamics tile |
Any updates here? I recently encountered what I think is this issue when upgrading the Redis Enterprise tile. I had issues with the Broker Registrar errand where it was trying to create new plans with different GUIDs but the same plan names. I had to rename existing plans, let it create the new plans alongside the existing plans, and then migrate each service to the renamed plans. Then the broker registrar errand was run manually again to delete the original plans that it had trouble with. |
We're still discussing a way to do this. the problem with enforcing the GUID as we described above is that you could not use the same config to re-configure a new env. This is not desired behavior. We discussed potentially doing something like this (a proposal from the story in our tracker): PROS:
|
OM is the thing that causes the GUID issue. Manually changing within OpsMan UI does not. Is that accurate? |
it is not You are correct in that the UI does not have this problem, but |
I find it quite unfair to claim that the cause of this issue tile authors not having a
This issue existed before the If, going forward, the expectation is that every
In the meantime, it sounds like the workaround for customers would be to manage the |
@mboldt, It is issue for the tile authors and the OpsManager API. For tile authors, because there's an experience of their tile that doesn't work for users who have request being able to duplicate across multiple foundations. The above was a proposal as we were trying to solve this from a Platform Automation standpoint. We have talk to Ops Manager about it. We have made an effort to communicate this issue to the right people. |
For those still watching/following this issue, does anyone have any other ideas around what @calebwashburn @jtarchie @anEXPer @sadvani @mcwumbly @dsboulder @gregbarkerdcsg |
If we can't think of any good viable solutions, I'm going to see about closing this issue for now. If anyone has any ideas for us to work off of, feel free to reopen the discussion |
Based on the following analysis - om configure-product should be enhanced to support collections - Analysis & Recommendations I believe we can address the majority of remaining issues with the following changes:
|
Once PRs #502 and #503 have been merged; using
An example product showing this in action is at pivotal-cf-experimental/ops-manager-example#3 Known Issues
|
We have created an issue in Pivotal Tracker to manage this. Unfortunately, the Pivotal Tracker project is private so you may be unable to view the contents of the story. The labels on this github issue will be updated when the story is started. |
This was fixed by the associated PRs. We're happy to see this long-running issue finally addressed! |
Another bug was discovered after the merging fix was done.
Digging into it,
#edited-healthwatch-config
.properties.scrape_configs:
value:
- ca: |
-----BEGIN CERTIFICATE-----
<REDACTED>
-----END CERTIFICATE-----
insecure_skip_verify: true
scrape_job: |
job_name: 'ec2'
scheme: https
ec2_sd_configs:
- region: us-west-2
port: 9100
relabel_configs:
# Only monitor instances with a MetricsKey tag matchine mine
- source_labels: [__meta_ec2_tag_MetricsKey]
regex: pws dark ci bwAvFbeC5X
action: keep
- source_labels: [__meta_ec2_tag_Name]
target_label: name_tag
- source_labels: [__meta_ec2_availability_zone]
target_label: availability_zone
- source_labels: [__meta_ec2_instance_id]
target_label: instance_id
server_name: null
- ca: |
-----BEGIN CERTIFICATE-----
<REDACTED>
-----END CERTIFICATE-----
insecure_skip_verify: false
scrape_job: |-
job_name: 'fluentd'
metrics_path: /aggregated_metrics
static_configs:
- targets:
- fluentd.<REDACTED>.com:9200
server_name: null When uploading/configure HW using 6.1.1, both expected jobs show up in the HW config |
I suspect the issue has to do with the nested collections (eg Let me know if I can help. |
Configuring or Editing collections in OpsManager via the API behaves in a non deterministic manner. Some service tiles (MySQL v2, maybe others) use collections to define Service Plans in the tile. Currently, if a collection has multiple records, and a change is being made to one collection record by passing on only the GUID of the record in question along with the change, OpsManager will delete all other collection records. This means that only the record that the Operator was trying to edit will be saved. Additionally, if an operator tries to change a collection record without specifying a GUID, OpsManager will proceed to delete all records and create a new one with a new GUID. This issue has been seen a few times with the MySQL Tile [1]. We flagged this issue with the Pcf-Pipelines and PAS teams and they suggested we open an issue in this repo [2]
A workaround for this issue is for om configure-product to send all GUIDS and plans on every PUT.
[1] vmware-archive/pcf-pipelines#332
[2] https://pivotal.slack.com/archives/C0554UNSS/p1531941382000046
The text was updated successfully, but these errors were encountered: