Jx: Can Jenkins-X actually be installed on premise?

Created on 7 Aug 2018  路  5Comments  路  Source: jenkins-x/jx

Summary

I have tried numerous times to install Jenkins-x on 4 Ubuntu 16.04 VMs, and it always fails trying to get to its own frontend. At the Please go to http://jenkins.jx./me/configure step, it fails to scrape its own IP and I cannot get to the page. The ingress the script creates doesn't create an ingress connect to a NodePort, which is required for nginx ingress on non-cloud k8s. I have tried editing the ingess multiple times. adding flags like --report-node-internal-ip-address, but it never is bound to any node ip

EDIT
I wrote that late at night, but to offer more clarity, I have tried everything I can think of, I have DNS record pointing to the IPs, setting the external IP flag at the install, switching the service from LB to NodePort. I fear that the script grabs the API IP, and sets up a nginx ingress that would not work on a baremetal cluster. I know the k8s project is more focused on a cloud install, but this seems like it should work.

Do I need a ingress set up before hand? Can I use a flag to skip ingress install(I looked didn't see one)? Anyone have any success install JX on premise and know of a guide or short statement on how they exposed the service?

Steps to reproduce the behavior

Install jx on premise kuberneted

Jx version

The output of jx version is:

jx                 1.3.90
jenkins x platform 0.0.2017
kubernetes cluster v1.11.0
kubectl            v1.11.0
helm client        v2.9.1+g20adb27
helm server        v2.9.1+g20adb27
git                git version 2.7.4E

Kubernetes cluster

What kind of Kubernetes cluster are you using & how did you create it?
created using kubeadm on one master three node cluster. Other deployments work fine.

Operating system / Environment

Ubuntu 16.04 VMs on Proxmox using Rook for ceph dynamic storage provider

Expected behavior

Jenkins ingress bound to node or cluster IP

Actual behavior

It isn't

Most helpful comment

I managed to get a workaround by setting up the ingress controller before running jx install. I installed the stable/nginx-ingress Helm chart, in the and specified the servicetype on that to be NodePort, and set an external IP. Once running, take note of the deployment name and service name.

You can then specify them when using jx install like so:

jx install --provider=kubernetes --external-ip 10.123.0.17 \
--ingress-service=$(yoursvcname) \
--ingress-deployment=$(yourdeployname) \
--ingress-namespace=kube-system

Hope this helps!

All 5 comments

I managed to get a workaround by setting up the ingress controller before running jx install. I installed the stable/nginx-ingress Helm chart, in the and specified the servicetype on that to be NodePort, and set an external IP. Once running, take note of the deployment name and service name.

You can then specify them when using jx install like so:

jx install --provider=kubernetes --external-ip 10.123.0.17 \
--ingress-service=$(yoursvcname) \
--ingress-deployment=$(yourdeployname) \
--ingress-namespace=kube-system

Hope this helps!

@johnaoss thanks for that - I added your example to the docs: https://jenkins-x.io/getting-started/install-on-cluster/#installing-jenkins-x-on-premise

The solution is documented. Closing this issue.

@jstrachan @ccojocar The linked documentation is marked as deprecated and on the non-deprecated install and setup page only lists GCP and AWS as options. So does that mean that Jenkins X can no longer be installed on premise or that the new documentation is lacking?

@jstrachan @ccojocar The linked documentation is marked as deprecated and on the non-deprecated install and setup page only lists GCP and AWS as options. So does that mean that Jenkins X can no longer be installed on premise or that the new documentation is lacking?

interested in this question.

did you find any information?

Was this page helpful?
0 / 5 - 0 ratings