IaC automation - custom deployment

18 views
Skip to first unread message

jer...@saasindustries.com

unread,
Nov 17, 2016, 3:53:08 PM11/17/16
to fabric8
What is the best way to get a customized deployment with fabric8? I have tried manually deploying some of the yaml from the maven repo, but I think I am not doing it right.

When I IaC fabric8, I want to deploy with runtimes and pipelines already established.

So, as an example, my default deploy would be:

  • Namespace : app.domain.tld
    • fabric8 console
    • configmapcontroller
    • exposecontroller
    • fabric8-docket-registry
    • fabric8-forge
    • gitlab
    • Nginx
    • jenkins & jnlp
    • nexus
    • Namespace : app-testing.app.domain.tld
      • messaging
      • metrics
      • etc
    • Namespace : app-staging.app.domain.tld
      • messaging
      • metrics
      • etc
    • Namespace : app-production.app.domain.tld
      • messaging
      • metrics
      • etc
For context, I have fabric8 deploying into two namespaces through automation. I have the "dev" namespace and I have the "app" namespace. It works really quite well. And I can manually add the first app which creates the build pipeline namespaces, but I would like to automate this so it is already godd and ready to go, plus have the dev, test, staging, production populated with the runtimes I want through automation instead of clicking through the UI.

Also, for the purposes of automation, if I have 30 existing micro-services, could I automate getting them deployed as a part of IaC provisioning as well? Or is the only hook UI based by manually adding the applications? The apps would already have the pom, fabric8.yml and the Jenkinsfile in them.

Thanks!

Christian Posta

unread,
Nov 17, 2016, 4:03:51 PM11/17/16
to jer...@saasindustries.com, fabric8
On Thu, Nov 17, 2016 at 1:53 PM, <jer...@saasindustries.com> wrote:
What is the best way to get a customized deployment with fabric8? I have tried manually deploying some of the yaml from the maven repo, but I think I am not doing it right.

So what parts have you tried, and whats not working right?
 

When I IaC fabric8, I want to deploy with runtimes and pipelines already established.

So, as an example, my default deploy would be:

  • Namespace : app.domain.tld
    • fabric8 console
    • configmapcontroller
    • exposecontroller
    • fabric8-docket-registry
    • fabric8-forge
    • gitlab
    • Nginx
    • jenkins & jnlp
    • nexus
    • Namespace : app-testing.app.domain.tld
      • messaging
      • metrics
      • etc
    • Namespace : app-staging.app.domain.tld
      • messaging
      • metrics
      • etc
    • Namespace : app-production.app.domain.tld
      • messaging
      • metrics
      • etc

So basically looking to deploy a setup like that for each app?
 
For context, I have fabric8 deploying into two namespaces through automation. I have the "dev" namespace and I have the "app" namespace. It works really quite well. And I can manually add the first app which creates the build pipeline namespaces, but I would like to automate this so it is already godd and ready to go, plus have the dev, test, staging, production populated with the runtimes I want through automation instead of clicking through the UI.

 

Also, for the purposes of automation, if I have 30 existing micro-services, could I automate getting them deployed as a part of IaC provisioning as well? Or is the only hook UI based by manually adding the applications? The apps would already have the pom, fabric8.yml and the Jenkinsfile in them.

If the apps already have pom.xml, fabric8.yml, and Jenkinsfile, then it'd be awesome to automatically get them imported as a project into f8... i've got an issue open right now for that https://github.com/fabric8io/fabric8/issues/6556 .. i'm poking at how best to do that right now... if we add that to the project import flow through fabric8-forge, then we should be able to automatically import 30 existing microservices, etc. 

Thanks!

--
You received this message because you are subscribed to the Google Groups "fabric8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fabric8+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Christian Posta
twitter: @christianposta

jer...@saasindustries.com

unread,
Nov 17, 2016, 4:53:05 PM11/17/16
to fabric8, jer...@saasindustries.com
So what parts have you tried, and whats not working right?

When I have tried to load the yaml files versioned in the maven repo, I get parse errors when using gofabric8 deploy --package some-package.yml

So basically looking to deploy a setup like that for each app?

For each namespace fabric8 is deployed into. I run 2 namespaces and would like to have fabric8 pre-configured with the root namespace deployment I want as well as the environments established and each environment having the runtimes installed in them I want. Right now, I am having to set this all up manually through the UI.

If the apps already have pom.xml, fabric8.yml, and Jenkinsfile, then it'd be awesome to automatically get them imported as a project into f8... i've got an issue open right now for that https://github.com/fabric8io/fabric8/issues/6556 .. i'm poking at how best to do that right now... if we add that to the project import flow through fabric8-forge, then we should be able to automatically import 30 existing microservices, etc. 

Yeah, I literally want to automate all of this. I am taking advantage of IaC and provisioning scripts that IaC leverages after the cluster and IaaS resources are established by the IaC. In my use case, I will be setting up fabric8 and kubernetes systems often, so I want to automate my setup. I will have my own micro service chassis and etc as well and OEM micro services that ship with the base platform, so I would like to automate this whole setup. Additionally, the automation will be invaluable as part of automated disaster recovery. Where IaC can stich everything back together as it was.

Thanks!
To unsubscribe from this group and stop receiving emails from it, send an email to fabric8+u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Roland Huss

unread,
Nov 17, 2016, 5:08:30 PM11/17/16
to fab...@googlegroups.com
> So what parts have you tried, and whats not working right?
>
>
> When I have tried to load the yaml files versioned in the maven repo, I
> get parse errors when using gofabric8 deploy --package some-package.yml

Do you get the error for every yaml or only for some specific one ?
'would be awesome if you could point us to an example so that I could
examine that.

thanks ...
... roland

James Strachan

unread,
Nov 18, 2016, 3:23:36 AM11/18/16
to Jeremy Wilson, fabric8
one approach to doing what you need is to create a distribution package YAML like we do for the fabric8 platform. e.g. this project:

it generates a canonical kubernetes.yaml (and helm chart too though thats not quite working...) for the fabric8 platform using maven dependencies to pick which microservices to include in the package:

so you can define whatever packages you want as dependencies like the cd-pipeline package and use transitive dependencies etc

e.g. fork this project and switch gogs <-> gitlab, add the nginx controller etc.

Incidentally we're hoping to move to gitlab once we've OAuth / SSO sorted out between the console, jenkins + gitlab so the package you want to install is looking like it will soon be just fabric8-platform plus the nginx; then some custom namespaces etc.


--
You received this message because you are subscribed to the Google Groups "fabric8" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fabric8+unsubscribe@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.



--
James
-------
Red Hat

Twitter: @jstrachan
Email: james.s...@gmail.com
Blog: https://medium.com/@jstrachan/

open source microservices platform

jer...@saasindustries.com

unread,
Nov 22, 2016, 3:51:32 PM11/22/16
to fabric8, jer...@saasindustries.com
Thanks James, I am going to work on it this week. Thanks for the direction.
To unsubscribe from this group and stop receiving emails from it, send an email to fabric8+u...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages