Closed hitankar-freshworks closed 3 years ago
On Windows you should be leveraging chocolatey to install your packages at least. It would make it easy to install Git complete with GitBash, and make. That's if you are not using WSL completely. I have some scripts over here (https://github.com/WadeBarnes/dev-tools/tree/master/chocolatey) to help install chocolaty.
As @patricksimonian mentioned, a PR of this size makes it difficult to catch any missed points. Anyways, here are my thoughts:
make
is not a tool Windows users have by default. Even if it was, I'm hesitant to say this should be "the" way to get applications locally stood up and deployed. It may be better to instead have concise readme documentation on how to do certain common tasks, and then allow the developer teams decide if they want to leverage make
in their workflows or not.oc cluster up
instead. This makes it so that there's one less thing to have to install and manage, and would have a closer alignment to eventual day-to-day operations.client
and server
"packages" should have a README.md file or equivalent to help developers know how to get started with local development, and have a general orientation of code structure.server/.pylintrc
- is this intentional?client/package.json
is still under ISC licence - this should be Apache 2.0.deployment
folder should probably be named openshift
instead as all content in there is OpenShift templates (they won't work on Kubernetes or other alternative cluster orchestration platforms).deployment/nsp.json
should be cautiously considered, as the rules in place are effectively allowing any traffic between pods in the same namespace and outbound traffic to internet. While this is a good starting point, this is not something that should just be set and then forgotten about.deployment
folder to document some of these deployment
templates and their caveats on usage. I believe there should be some considerations made to assist developers who may not be as familiar with OpenShift paradigm to help ease their learning curve.Overall, it looks like a great start. However, there needs to be a lot of testing to ensure sufficient confidence that a fresh new developer trying to use this can get things going without getting stuck on caveats and potential environment differences.
One of the other things I'd like to press here is that if there is a way to codify best practices to continuously improve your infrastructure then that should be here. As @jujaga mentioned, this is a great starting point. I think what we need is the community to weigh in an make active contributions to projects such as these. This will build confidence and dependability. One thing i've noticed with Gatsby Documentation is that they invite community members to contribute. The maintainers of this project couldn't possibly be expected to be experts in the entire stack of a project.
In reply to the comment from @ashtonmeuser about obfuscation of the underlying OpenShift CLI commands. I would argue a health dose of abstraction on top of the oc cli is extremely beneficial to new and existing teams. The last thing you want to have is teams fumbling around with the raw oc cli and not using the best practice commands and switches (and tools) other teams have already figured out how and when to use the hard way. I see new teams that have taken the BCDevExchange OpenShift 10x courses struggling with this every day, and I've been pulled in to help many struggling teams get their applications deployed into OpenShift.
Provide tools that are easier to understand that perform the heavy lifting for the teams to get new teams started quickly. That provides them with the piece of mind their project is up and running quickly, and provides a reference as to how all that was accomplished if they so choose to look under the covers. Once their project is running they can learn the ins and outs of the raw cli if they need to do something more complicated or are just interested.
I manage about 80 namespaces in OpenShift. For the majority of those I use the openshift-developer-tools scripts to manage the creation and management of the build and deployment configurations. The scripts also allow a developer to extent the scripts and create application specific management scripts. Without these automation scripts I would not be able to effectively or efficiently manage the number of namespaces I do. A very simple and well documented example of how to use these scripts is here; Cullen Commission Website. A more complex example including custom ./manage
scripts can be found here; orgbook-configurations
As mentioned by others the bcdk provides similar tools for creating more effective and intelligent pipelines.
@hitankar-freshworks this is now pretty stale and has a fair amount of community feedback. Do you have any specific additional asks?
bump? @hitankar-freshworks
This PR is stale, so closing for now. Feel free to re-open if important to you.
What is this PR? This is the first public pull request to enable reviewers to inspect openshift-launchpad which is a simple three-tiered application (database, server, client) designed to be run locally or deployable to the BC Government OpenShift cluster with ease. More information about Launchpad may be found in the README.md.
How to review This PR is intended to capture all of the work done so far to build the “MVP” version of OpenShift Launchpad. Since the PR (which will merge the release branch to master) has multiple commits, we recommend reviewing the application as a whole. Feel free to focus only on areas of special interest if desired - spend your time as you feel appropriate. Note: The application is intended to be light. It’s polished enough to be ready for review, but is intentionally lacking some bells and whistles to ensure clarity and ease of navigation.
Test the application locally
Area of interest