[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: oc export



On 03/15/2016 02:04 PM, Aaron Weitekamp wrote:
> On Tue, Mar 15, 2016 at 6:20 AM, Tomas Kral <tkral redhat com
> <mailto:tkral redhat com>> wrote:
> 
> 
> 
>     On 03/14/2016 07:11 PM, Aaron Weitekamp wrote:
>     > On Mon, Mar 14, 2016 at 1:10 PM, Tomas Kral <tkral redhat com <mailto:tkral redhat com>
>     > <mailto:tkral redhat com <mailto:tkral redhat com>>> wrote:
>     >
>     >     Thank you, that makes sense, but this is also what was afraid of :(
>     >
>     >     We want to be able to export any arbitrary application that we know
>     >     nothing about :(
>     >     Now we need to figure out which object were generated by OpenShift
>     >     internally and which one were created by developer.
>     >
>     >
>     > ​You're introducing an additional requirement. :) Can you confirm the
>     > initial problem is resolved?
>     >
> 
>     Not really, because I don't know how application was deployed.
>     My initial assumption that `oc export all` will somehow magically solve
>     this for every application was wrong :(
>     If I'm the one who deployed application than yes, I know what objects to
>     export. But if someone else created application it is hard for me to
>     figure out what to export.
> 
> 
> ​I think we need to understand the full use case. Maybe there's
> something that can be done to help you achieve what you're looking for.
> Right now it's hard to understand why the person who did the original
> deployment​
> ​ isn't involved in the export or migration. Can you spell out what
> you're trying to do?
> ​

Sure.

(BTW: I'm CC'ing container-tools because we are starting to touch
subjects that might be interesting for people there)

We are trying to build tool that will allow users to export application
from OpenShift as Nulecule application.
Result should be Nulecule application with Kubernetes and OpenShift
artifacts.

We have following users stories in mind:

1.
I create an application in OpenShift.
Now I want to export it so it can be placed in any registry and then
redeployed into Kubernetes or OpenShift.


2.
I created a new application from a bunch of 'container mirco-sevices'
and components (i.e. a set of nested Nulecules, or templates)
         - for example, added management, added a DB etc etc.

Now I want to export the new composite definition and ->Retain<- the
granularity  and nesting of my service definitions.

Result would be set of Nulecule apps (some probably nested) and
corresponding images that can be again placed in registry.


3.
I want to create a new mirco service using OpenShift
I want to export it for OTHER to use.



Right now I'm focusing mainly on number one.

>  
> 
> 
> 
>     > If you're comfortable with exporting everything in a project then
>     > replace "all" with the set of resources Clayton listed.
> 
>     You and Clayton suggested doing `oc export dc,svc,route,is` but what if
>     application also includes ReplicationControllers that were created
>     directly without DeploymentConfig?
>     For example I have RC that was created "directly by user" and other RC
>     that was created by DC. Now I need to export only first RC and instead
>     of second one I should export DC.
> 
>     It looks like, that for our use case, we need to export 'all' and than
>     do some filtering.
>     This is was what my followup question was about.
> 
>     Is there a way how to figure out what objects were created by user and
>     what objects were generated by OpenShift?
>     Can annotations that I have mentioned be used for this?
> 
>     > It is
>     > dangerously presumptive that there's only one "application" in a
>     > project. You may export unexpected objects depending on what the user
>     > has deployed in the project.​
> 
>     This is deliberate simplification to make things little easier for us.
>     We are exporting whole project, because right now I don't have any idea
>     how we are going to decide what is "one application" or how user of this
>     exporter should specify this.
> 
>     >
>     >
>     >     I can see that ReplicationController that is generated by
>     >     DeploymentConfig has annotation 'openshift.io/deployment-config.name
>     <http://openshift.io/deployment-config.name>
>     >     <http://openshift.io/deployment-config.name>:
>     >     ...' and same apply for its Pods.
>     >
>     >     For Pod that was created by ReplicationController (that is not from
>     >     DeploymentConfig) I see annotation 'kubernetes.io/created-by <http://kubernetes.io/created-by>
>     >     <http://kubernetes.io/created-by>: ...'
>     >
>     >     Can we rely on those annotations to decide what to export and what to
>     >     leave behind? Is this documented somewhere?
>     >
>     >
>     >
>     >
>     >     On 03/14/2016 04:48 PM, Clayton Coleman wrote:
>     >     > Export is a lower level tool that does not *exactly* export an entire
>     >     > application, but rather tries to give you the tools to build it.
>     >     >
>     >     > I would suggest instead of running "oc export all", you try "oc export
>     >     > dc,svc,route,is".   "all" includes pods, replication controllers,
>     >     > build configs, and builds, some of which you do not need.  We expect
>     >     > at some point in the future to have a higher level "export-app"
>     >     > command, but when you export you need to determine what you want to
>     >     > copy over and what you want to leave behind.
>     >     >
>     >     > On Mon, Mar 14, 2016 at 11:13 AM, Tomas Kral <tkral redhat com <mailto:tkral redhat com>
>     >     <mailto:tkral redhat com <mailto:tkral redhat com>>> wrote:
>     >     >> Hi all,
>     >     >> I'm working on project where we are basically using `oc
>     export` for
>     >     >> exporting project and importing it to another OpenShift
>     instance.
>     >     >>
>     >     >> But it is not working as I would expect.
>     >     >>
>     >     >> My understanding of export feature is that it can be used
>     to move
>     >     >> objects between clusters or projects and I can use `oc
>     export all` to
>     >     >> move/copy whole project.
>     >     >>
>     >     >> I've deployed MLB Parks sample application
>     >     >> (https://github.com/gshipley/openshift3mlbparks)
>     >     >>
>     >     >> Then I'm trying to move it to another project on same cluster
>     >     using command:
>     >     >>
>     >     >> oc -n mlbparks export all | oc -n import create -f -
>     >     >>
>     >     >>
>     >     >> But I get following errors:
>     >     >>
>     >     >> Error from server: replicationControllers "mongodb-1"
>     already exists
>     >     >> Error from server: Pod "mlbparks-1-build" is forbidden:
>     unable to
>     >     >> validate against any security context constraint: ......
>     >     >>
>     >     >> Rest of the error and all steps that I'm doing are here:
>     >     >> http://paste.fedoraproject.org/339618/96469114/
>     >     >>
>     >     >>
>     >     >> I'm running Origin v1.1.1
>     >     >>
>     >     >>
>     >     >> Is there something that is fundamentally wrong with my
>     >     understanding of
>     >     >> `oc export`?
>     >     >>
>     >     >>
>     >     >> --
>     >     >> Tomas
>     >     >>
>     >     >> _______________________________________________
>     >     >> dev mailing list
>     >     >> dev lists openshift redhat com
>     <mailto:dev lists openshift redhat com>
>     >     <mailto:dev lists openshift redhat com
>     <mailto:dev lists openshift redhat com>>
>     >     >> http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>     >
>     >     _______________________________________________
>     >     dev mailing list
>     >     dev lists openshift redhat com
>     <mailto:dev lists openshift redhat com>
>     <mailto:dev lists openshift redhat com
>     <mailto:dev lists openshift redhat com>>
>     >     http://lists.openshift.redhat.com/openshiftmm/listinfo/dev
>     >
>     >
> 
> 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]