Skip to content
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

Add odo deploy command for initial transition from inner to outer loop #2756

Closed
2 tasks done
bbrowning opened this issue Mar 25, 2020 · 12 comments
Closed
2 tasks done
Labels
kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks kind/feature Categorizes issue as a feature request. For PRs, that means that the PR is the implementation lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@bbrowning
Copy link

bbrowning commented Mar 25, 2020

/kind feature

Which functionality do you think we should add?

Today odo helps a developer with their inner loop workflow. Once the developer is ready to deploy that application, they need to go outside of odo to make that happen. I propose odo have an odo deploy command to allow an initial transition from inner loop to outer loop.

The result of an odo deploy command should be the component gets deployed to the cluster in a configuration suitable to receive production traffic.

Why is this needed?

This is meant primarily for new user experience, demos, and such as a developer learns how to deploy applications to the cluster. Best practice for real production usage would still be integration with pipelines (#1238) or integration with gitops workflows (#2617). There's a gap between odo push for in-cluster inner loop and pipelines or gitops workflows that this intends to fill.

How should it be added?

As a strawman proposal, I'd suggest bringing this in following the recent devfile support by having a convention for metadata in the devfile that odo can understand to deploy an application. This would allow devfile-aware pipelines to reuse that same devfile metadata to do the actual deployment at the output of those pipelines.

What the exact metadata in the devfile should look like needs to be decided. I believe the existing devfile 2.0 spec covers the need here, but we'll need to verify that.

User stories

@openshift-ci-robot openshift-ci-robot added the kind/feature Categorizes issue as a feature request. For PRs, that means that the PR is the implementation label Mar 25, 2020
@sspeiche
Copy link
Contributor

This is the "same" related to this discussion #1229

@sspeiche sspeiche added the kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks label Mar 26, 2020
@sspeiche sspeiche added this to the backlog milestone Mar 26, 2020
@girishramnani
Copy link
Contributor

We are planning a proposal issue which would break this epic down #2703

@lance
Copy link

lance commented Apr 28, 2020

In addition to pipelines, I would like to see another devfile command supported by odo. Currently, if I understand correctly, odo supports two commands in the devfile: devBuild and devRun. Could there be a supported command that will deploy your image without the supervisor and possibly using a different image component?

@kadel
Copy link
Member

kadel commented Apr 29, 2020

Could there be a supported command that will deploy your image without the supervisor and possibly using a different image component?

Yes, this is what the deploy command should do.
"deployed to the cluster in a configuration suitable to receive production traffic." means that the supervisor won't be present and different image can be optionally used (for example this image should be completely stripped form any development tools, and should be as small as possible).

Not sure how we exactly we will achieve this but defining another command like prodRun or prodBuild could be one way of doing this.

@lance
Copy link

lance commented Apr 30, 2020

@kadel that sounds good - but it does raise another question...

If I want to deploy a stripped down image for production, there needs to be a command to build that image - e.g. prodBuild. I wonder if there's a better way, so that commands aren't quite as explicit, but rather are codified as a "build" command or a "run" command more generically with some metadata that specifies the environment. Kind of spitballing here, but it seems like just adding another special command name could lead down a path that's perhaps not ideal. What happens when a customer has 3 environments they want to build for/deploy to - dev, stage, prod? Do we then add stageBuild and stageRun as well?

@arthurdm
Copy link
Member

+1 for having a build command that takes in a flag or metadata that maps to a different Dockerfile (or artifact to build the image).

@openshift-bot
Copy link

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci-robot openshift-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 16, 2020
@openshift-bot
Copy link

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci-robot openshift-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Nov 15, 2020
@kadel
Copy link
Member

kadel commented Nov 16, 2020 via email

@openshift-ci-robot openshift-ci-robot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. labels Nov 16, 2020
@serenamarie125
Copy link

Moved out to 2.2 milestone due to dependencies on devfile 2.2

@kadel kadel added estimated-size/S (5-10) Rough sizing for Epics. Less then one sprint of work for one person points/4 and removed estimated-size/S (5-10) Rough sizing for Epics. Less then one sprint of work for one person labels Apr 6, 2021
@dharmit
Copy link
Member

dharmit commented Jul 22, 2021

The devfile library doesn't have outer loop support yet. Ideally, this should be sorted at devfile library end first and then implemented in odo.

@kadel
Copy link
Member

kadel commented Oct 4, 2021

The devfile library doesn't have outer loop support yet. Ideally, this should be sorted at devfile library end first and then implemented in odo.

It does now (https://github.com/devfile/library/releases/tag/v1.2.0). We can start working on this

Created user story to cover initial odo deploy work #5109

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks kind/feature Categorizes issue as a feature request. For PRs, that means that the PR is the implementation lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
Development

No branches or pull requests

10 participants