apigee / apigee-deploy-maven-plugin

Apache License 2.0
80 stars 167 forks source link

Maven Plugin allways generates a new revision of every dependencies of shared flows of an apy proxy #148

Closed submarinu closed 3 years ago

submarinu commented 3 years ago

It generates several problems, because if you deploy several apy proxies with the plugin, you have a lot of revisions of the same shared flow in the same organization. So it is not a correct way to use a DC flow.

ssvaidyanathan commented 3 years ago

@submarinu - am not sure what you mean by - "you have a lot revisions of the same shared flow"

Why would you deploy the shared flow when you are just pushing change to the API ? Am I misunderstanding something here?

submarinu commented 3 years ago

What I mean is that the plugin doesn't work with update option. The plugin allways make an override

ssvaidyanathan commented 3 years ago

This is by design

In hybrid, the deployed revisions are immutable. Once you deploy a revision and when you make changes to it, you can only save it as a new revision. Same applies for Shared flow as well. You can make changes to an existing revision unless it was deployed. Even if you undeploy that revision and try to make changes, it will save as a new revision.

Since the plugin is meant for deployments, override is the only option available.

submarinu commented 3 years ago

Sorry, but I don't understand the concept of "In hybrid the deployed revisions are inmutable". For me is the same than in the APIGEE Edge, and DEVOPS team should be able to deploy a revisión in any environment and not for this reason it should incresase the revision number.

In this way, you should never know if a revision is deployed in an environment if all of them has diferent revision numbers and furthermore if you can't assing an alias or similar. Why do you permit to do it updating only with the maven plugin in APIGEE Edge and not in the APIGEE Hybrid. For me is the same case.

jcu006 commented 3 years ago

Same problem here, I'm not able to deploy same revision in several environments, nor deploy older revisions. The maven plugin always increases the revision even if the code has no changes. I'm using the plugin for deployment purposes only and it creates a new revision in each enviroment. The same with shared flows, it always increases revision of shared flows when you deploy any proxy that uses it, again, with zero code changes on shared flow nor api proxy.

ssvaidyanathan commented 3 years ago

@submarinu / @jcu006 - I get your point now. You are trying to deploy an existing revision to another environment? In the UI, lets say rev 5 is deployed to "dev", you can deploy the same to "test" as well. Is that what you are trying to do?

The main purpose of the plugin is to take your source code, package it and then deploy it. In this case, you do not want that. You just want to deploy the existing revision. For that you just need to run the curl command using the Management API. That feature you are looking for is not available as it always uses the source code as the source of truth, packages that and pushes to Apigee.

submarinu commented 3 years ago

I understand you but a DEVOPS Teams should automate all its process and not to deploy by UI console. This is because I think it should be mandatory.

ssvaidyanathan commented 3 years ago

Absolutely ! You can include a curl command or write a script as part of the pipeline that just calls the Mgmt API to deploy a given revision to the desired env

submarinu commented 3 years ago

Yes, I can, but I still can't understand why it works for APIGEE Edge and not for APIGEE Hybrid.

ssvaidyanathan commented 3 years ago

Not sure what you mean by "works for Apigee Edge and not for Apigee hybrid"?

ssvaidyanathan commented 3 years ago

Can we close this issue as it is working as intended?

ssvaidyanathan commented 3 years ago

Closing this issue. Please re-open if needed