Closed jpvajda closed 3 years ago
@aswanson-nr / @zstix I pulled this feedback out and will schedule a chat with @jbeveland27. This will go in Sprint 2.
added some more insights & observations from @jbeveland27
Results of our conversation with Justin.
We propose the following workflow:
App Catalog Update
checks on that app's GH repo on build and deployment to main
. experimental
or archived
it's currently set to community.@jbeveland27 / @aswanson-nr / @zstix what do you think of the above proposal?
Other considerations:
Request from nr1- platform-services
Staging
and EU
environments as that's manual today.GLOBAL
as that is currently manual.
Relates to: https://github.com/newrelic/nr1-catalog-manager/issues/6
General Observation of the Catalog Manager flow
The current process requires a lot of toil. Pulling down the nerdpack, manually testing it, using the nr1-catalog-manager, merging into the nr1-catalog, and then notifying platform services. Breakages at any point require creating a new release of the nerdpack and starting at the beginning.
Quick improvements could be made to test and validate the nerdpack before creating a release, removing the need to do this before adding it to the nr1-catalog. This should also verify that the catalog requirements are met, such as screenshot aspect ratio and size.
After the improvements above, the nr1-catalog-manager could be phased out in favor of the nerdpack itself controlling releases to the nr1-catalog repository.
Another option is to remove the nr1-catalog and the nr1-catalog-manager, allowing each nerdpack to handle its own release process.
Publishing Pain
If the nr1-catalog must stick around to manage the current prod versions of the nerdpacks, then moving it away from git submodules and over to a semantic version based system (think package.json dependencies) will reduce a lot of headaches. Notably avoiding issues around merging a new PR before an older one.
nr1 nerdpack:publish
pushes to artifactory, which is 1 global instance for all envs. Enabling it in US is the default behavior. Staging/EU require manual effort to do the same.Given there's no API built to push apps to EU and Staging so Platform Services has to manually update entries in some system/DB they have access to to push app updates on these environments.
Marking as global ain't easy
The other thing holding up self-service publishing, is marking an app as GLOBAL is done via an API that's only exposed behind CHI VPN So we can't automate that from public GitHub action. This is done when an app is first added to the catalog and it needs to change from an individual owner state to a global state.
Acceptance Criteria