-
Notifications
You must be signed in to change notification settings - Fork 200
Support deployment on plain Kubernetes #6200
Comments
Some things come to mind that need to be looked at to make this happen:
|
We cannot use routes, imagestreams and deploymentconfigs ... they are all openshift objects |
Camel-K removes the need for Syndesis to perform the S2I build, it has strategies in place to perform the build itself either via S2I or via Kaniko. |
This issue has been automatically marked as stale because it has not had any activity since 90 days. It will be closed if no further activity occurs within 7 days. Thank you for your contributions! |
Trying out https://microk8s.io/#get-started |
Need to define "plain Kubernetes".
Therefore what is the objective?
|
OpenShift specific objects like
I'd focus on one, minikube is probably the one used most as a developer platform (similar to minishift/crc), running on minikube should be a representative common ground for any Kubernetes. I don't mind giving microk8s a try, but I think we should not spread ourselfs too thinly.
The approach Camel K took is to have support for both OpenShift and Kubernetes, I think that makes sense. Though I don't think we need to depend on OpenShift specifics too much even when running on OpenShift. What we have, for example, with |
Gist for guidelines on converting DeploymentConfig to Deployment: |
Interesting issue/discussion of possibility of |
Creating an ingress resource -> |
Progress with research links
|
Once syndesis migrates to camel-k this won't be needed any more as camel-k takes care of generating the right "deployment" depending on the environment (i.e. it takes also into account knative services) |
Thanks @lburgazzoli. Yes you're right but we do need it at the moment though in converting the other Syndesis DeploymentConfig's, eg operator, syndesis-db. Converted the operator end-of-last-week. |
Kubebox -> https://github.com/astefanutti/kubebox
Kubespy -> https://github.com/pulumi/kubespy
|
A blog on the interesting problems encountered in kubernetes development. |
First experiment with an ingress (the kubernetes alternative to OS routes) Enabling the dashboard and exposing it through an https ingress.
Supplemental
Not required but FYI
|
Openshift auto-generates a self-signed key/certificate combo when the service is given the following annotation:
This is responsible for the |
microk8s basic auth csv format:
|
Since kubernetes distributions don't tend to come with an authentication/authorization identity-provider, it is necessary to install one then using OpenID Connect tie into it with oauth2_proxy. The latter to be used instead of the openshift oauth-proxy since it is designed to work with openshift. Useful references for setting up keycloak as provider:
Alternative to keycloak is dex which can act as shim to google or github
Using keycloak in oauth2_proxy |
Summary of major issues to be addressed:
Conclusion
|
I'm super excited about this development stream to port it to plain kubernetes |
@phantomjinx good job |
I'd love to support this but we are committed to vanilla Kubernetes on-prem and AWS as a cloud provider. |
* syndesis_types.go * Adds oauth secret properties to be specified in the CR. Used by k8 for the auth provider credentials & tls comms certificate * 04-syndesis-oauth-proxy... * Splits proxy template into OS & k8 versions * k8 version has image hard-coded since oauth2_proxy is required * k8 version has far broader config as it allows different providers * OS version generates the syndesis-oauthproxy-tls whereas the k8 version cannot & requires this to be manually specified * role.yml.tmpl * Adds ingress permissions * ingress.yml.tmpl * Use ingress for k8 but retain route for OS since latter has ability to generate the route hostname * action/install.go * conduit.go * Uses new interface Conduit to wrap around ingress & route so install can interrogate them interchangeably. * configuration.go * Moves Openshift flag to an ApiServer struct & track the version of k8 * Adds non-OS checks on the RouteHostname & auth credentials/certificate * Adds routeHostname to SetRoute rather than asking to fetch it again since all instances of its use, the value is already known * Only call checks on route host name & credentials when actual install * Refactors syndesis tooling scripts for detecting platform and running the most appropriate functions * Extra commands to supplement kubectl to make changing context easier * README file for install instructions
PR for review -> #8697 |
* syndesis_types.go * Adds oauth secret properties to be specified in the CR. Used by k8 for the auth provider credentials & tls comms certificate * 04-syndesis-oauth-proxy... * Splits proxy template into OS & k8 versions * k8 version has image hard-coded since oauth2_proxy is required * k8 version has far broader config as it allows different providers * OS version generates the syndesis-oauthproxy-tls whereas the k8 version cannot & requires this to be manually specified * role.yml.tmpl * Adds ingress permissions * ingress.yml.tmpl * Use ingress for k8 but retain route for OS since latter has ability to generate the route hostname * action/install.go * conduit.go * Uses new interface Conduit to wrap around ingress & route so install can interrogate them interchangeably. * configuration.go * Moves Openshift flag to an ApiServer struct & track the version of k8 * Adds non-OS checks on the RouteHostname & auth credentials/certificate * Adds routeHostname to SetRoute rather than asking to fetch it again since all instances of its use, the value is already known * Only call checks on route host name & credentials when actual install * Refactors syndesis tooling scripts for detecting platform and running the most appropriate functions * Extra commands to supplement kubectl to make changing context easier * README file for install instructions
* syndesis_types.go * Adds oauth secret properties to be specified in the CR. Used by k8 for the auth provider credentials & tls comms certificate * 04-syndesis-oauth-proxy... * Splits proxy template into OS & k8 versions * k8 version has image hard-coded since oauth2_proxy is required * k8 version has far broader config as it allows different providers * OS version generates the syndesis-oauthproxy-tls whereas the k8 version cannot & requires this to be manually specified * role.yml.tmpl * Adds ingress permissions * ingress.yml.tmpl * Use ingress for k8 but retain route for OS since latter has ability to generate the route hostname * action/install.go * conduit.go * Uses new interface Conduit to wrap around ingress & route so install can interrogate them interchangeably. * configuration.go * Moves Openshift flag to an ApiServer struct & track the version of k8 * Adds non-OS checks on the RouteHostname & auth credentials/certificate * Adds routeHostname to SetRoute rather than asking to fetch it again since all instances of its use, the value is already known * Only call checks on route host name & credentials when actual install * Refactors syndesis tooling scripts for detecting platform and running the most appropriate functions * Extra commands to supplement kubectl to make changing context easier * README file for install instructions
If installation on Kubernetes will be possible. Will there also be a helm chart? |
@SvenC56 |
Please provide plain old docker images and Kubernetes yaml files. |
Coming from a retro on decreasing the complexity of bringing up the dev environment, and also mentioned in Planning syndesis 2.0
We identified that working towards installing on plain Kubernetes, we would discover the assumptions we made and attract community deployment.
ToDo & Considerations:
The text was updated successfully, but these errors were encountered: