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
Removing the OpenShift dependency #100
Comments
I guess we need to differentiate here:
I assume your Issue refers to the first one, aka running Lagoon itself somewhere else than OpenShift? The fun comes now: Lagoon deploys itself inside Lagoon, so if we are fixing Nr 2 we automatically will also fix Nr 1. Inception FTW :) So I'm keen to work on Nr 2 (allow Lagoon to also deploy into Kubernetes) and with that we will pretty much automatically be able to run Lagoon in Kubernetes. But I would not call that "remove OpenShift" but rather "allow Lagoon to also run in Kubernetes" as OpenShift is (at least for us at amazee.io) an integral part of Lagoon. If you want to work on Nr 1 before on Nr 2 that's also perfectly fine, I just honestly wouldn't know how :) |
Thanks for the comments Michael :-) You are correct that I am keen to work on no 1, allow the home of Lagoon to be Kubernetes. However, I am still working on understanding all of the elements of Lagoon. So I would definitely seek your guidance about the best approach to remove the OpenShift dependancies from Lagoon. I agree that "remove OpenShift" might sound a bit harsh, but if we do that then Lagoon can still run on OpenShift and then also any of the KaaS (Kubernetes as a Service) cloud offerings or the multitude of Kubernetes distributions. Which would dramatically increase the size of the market for Lagoon and lower the barriers to entry. |
So the easiest to remove the hard dependency of Lagoon to OpenShift and just make it a possible choice for Lagoon to run on OpenShift or Kubernetes would be to find a replacement for the parts that you mentioned. The biggest question for me is the |
There's actually many choices for the build parts. It really boils down to what is your favourite job management solution, i.e. Jenkins, etc. Usually what I do is deploy Jenkins from this Helm Chart. https://github.com/kubernetes/charts/tree/master/stable/jenkins It is highly configurable and the community has created a comprehensive solution. Out of the box it is configured to spin up Jenkins Agents as needed. However, the default Jenkins Agent cannot do Docker in Docker (dind) to build Docker images. So I create my own version of the Jenkins Agent with this Dockerfile.
I then modify the Kubernetes cloud configuration for the agent to mount in the I see that Jenkins is already part of Lagoon? So if that is the case then it would be a really simple process to create some |
Actually we just remove Jenkins from Lagoon (see the develop branch) because in the end we just need it to do 1 single thing: Run one Docker Container with Running Jenkins for that is way too crazy and overengineered. So we decided to ditch Jenkins and just use the OpenShift Builders instead. Is there any best practice to run |
Regarding replacing the https://github.com/kubernetes/charts/tree/master/stable/nginx-ingress I also use this Helm Chart to automate the provisioning and rotation of TLS Certs from Lets Encrypt. https://github.com/kubernetes/charts/tree/master/stable/kube-lego And if you want to automate the setup of Route53 DNS entries based on https://github.com/kubernetes/charts/tree/master/stable/external-dns |
For |
You could also use |
You may also find this interesting. Released by Microsoft last week and by the same people that wrote Helm and Draft. |
Wonder if we could leverage OpenFaaS as the build component, which includes a simple API to trigger builds. Recently converted a bunch of Jenkins tasks to serverless functions and no longer need to maintain jenkins or a server. |
http://kompose.io/ is another option which currently supports both Kubernetes & Openshift. This can also be extended to support other formats -- https://github.com/kubernetes/kompose/blob/master/docs/architecture.md#transformer |
I'd love to help with this as the blocker for me using Lagoon is the OpenShift dependency. Would be neat to get this working with ACS Engine. |
we got another client asking specifically for this, the idea is to use AWS EKS (managed Kubernetes by AWS) with RDS and ElasticCache, so we don't need to worry about these for now.
|
With the release of Lagoon2 imminent, closing this |
Hi,
I've been looking through Lagoon to try and identify the proprietary OpenShift parts. Those parts that stop it from running on a standard Kubernetes cluster. So far I have identified the use of the following OpenShift specific resources:
None of these resources offer anything that cannot be replaced by a more open implementation. But I wanted to confirm that this is the full set of OpenShift specific resources?
I'll be adding much more commentary to this issue over the coming days, as I work through some ideas. Hopefully this can be a great discussion about possible solutions to giving Lagoon access to the widest possible audience of users :-)
The text was updated successfully, but these errors were encountered: