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

Re: oc export



On 03/18/2016 08:35 PM, Aaron Weitekamp wrote:
> On Tue, Mar 15, 2016 at 9:50 AM, Tomas Kral <tkral redhat com
> <mailto:tkral redhat com>> wrote:
>
>
>     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>
>     > <mailto: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>>
>     >     > <mailto: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.
>
>
> It's a good convention to add a label to every object created together,
> something like app=<thing>
> Then all of those things deployed together can be referenced, such as:
>
> oc export all -l app=<name> -n <my_namespace> --as-template=<name>

And we are back to one of my original issues :-)
If I do this as  you suggest, with 'all', then when deploying from this
template I get some SE Linux error that sadly I know nothing about :(
My current solution for this is to export everything except pods.


>
> ​If you control the deployment you can pass this label in (web ui, oc
> new-app, API).
> ​
>  
>
>
>     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.
>
>
> I
> ​ would recommend unique labels so you can reference things separately.
> ​
>
>
>     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>
>     >     >     <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>
>     >     >     <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>>
>     >     >     <mailto: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>>
>     >     >     <mailto: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>>
>     >     <mailto: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]