-
Notifications
You must be signed in to change notification settings - Fork 39.9k
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
Application deployment orchestration/workflow tool #1704
Comments
Does this issue fall under the auspices of the continuous integration/delivery domain? e.g.:
At littleBits we are currently using https://circleci.com to glue a workflow that currently looks like:
What's missing from above, and what we are currently working on, is how to get the basic information about:
wired to the deploy destination:
Surely much of this is outside the realm of kubernetes (?) yet most/all of the above outlined seems foundational and basic to the needs of many (most?) micro-architecture systems? |
CI/CD is more ambitious than what I was considering with this issue, which is more focused on building blocks for deploying updated configurations and/or images. Indeed, CI/CD would be outside the realm of Kubernetes. Another example of adding such functionality to Kubernetes would be OpenShift. |
@bgrant0607 Yeah 100% agree. Especially after reading https://github.com/openshift/openshift-pep/blob/master/openshift-pep-013-openshift-3.md I see better now what should/could be built on top of Kubernetes. |
Typical scenario: Rollout across several clusters. |
I'm trying to figure out how to change this subject line to properly reflect that it's covering deployment of Kube objects specifically. When I saw the subject I got excited because I thought there may have been discussion on a more robust tool to do cluster deployment and upgrade and replace |
Disambiguated |
I've written a tool for CI / CD using kubectl to facilitate most of this - be happy to get feedback or maybe this could serve as a POC for kubectl features https://github.com/UKHomeOffice/kb8or |
Just a note that application deployment is usually the easy part. Client can usually retry until a service is available. A more difficult problem is application shutdown. These must usually be carefully orchestrated so as not to lose data. Data processors must be signaled to flush their data to the storage layer before they are terminate and the storage layer can't be terminated before all it's clients have finished their work. |
https://github.com/atlassian/smith |
Closing as per discussion in #25067 (comment) |
Update to new openshift/* dependencies
Forked from #1007 and follow-on to #1702.
We ultimately want to automate most of the orchestration/workflow involved in deployment, so that most users don't need to write custom workflows or scripts. However, it's fairly complex, and we can't necessarily automate all of it in a domain-independent, use-case-independent manner.
In general, a full deployment would likely be comprised of multiple files, each containing multiple objects (see #1694). These objects may have inter-dependencies (e.g., right now services must be created before their clients are created), rolling updates require special treatment (#1353), and application-specific rollout logic may be required. Therefore, I recommend we keep this more general deployment workflow separate from the basic primitive mechanism that reconciles a single object (#1702), and ensure that the two are composable.
We should design the deployment orchestration/workflow tool/library to be:
Other requirements:
I haven't looked whether an off-the-shelf solution would largely work -- there certainly many workflow-y tools/systems out there.
The text was updated successfully, but these errors were encountered: