fabric8io / fabric8

fabric8 is an open source microservices platform based on Docker, Kubernetes and Jenkins
http://fabric8.io/
1.76k stars 504 forks source link

Can't install Fabric8 on Windows #7002

Open skin27 opened 6 years ago

skin27 commented 6 years ago

OS Version: Windows 10 (latest stable) Fabric8 Version: 0.4.176

When I use minikube on my laptop it start normally:

C:\Users\r.meester.fabric8\bin>minikube.exe start Starting local Kubernetes v1.8.0 cluster... Starting VM... Getting VM IP address... Moving files into cluster... Downloading localkube binary 148.25 MB / 148.25 MB [============================================] 100.00% 0s 0 B / 65 B [----------------------------------------------------------] 0.00% 65 B / 65 B [======================================================] 100.00% 0sSetting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file.

However when using the gofabrice.exe I get only errors... I used to run Fabric8 with Vagrant without problems, now I downloaded latstest version with Minikube and don't get it to work. Hereunder are the steps I took and the console output.

Step 1)

First I enabled Hyper-V and reboot my machine.

After reboot a VBOX images (which starts automatically) gives me the following error:

VT-x is not available (VERR_VMX_NO_VMX).

Not good, but for testing purposes I decided to leave is this way.

Step 2)

Secondly I open a command prompt (cmd.exe) and do "gofabric8 start"

The it says:

"No user home environment variable found for OS windows"

See also Issue 167: https://github.com/fabric8io/gofabric8/issues/167

After set this manually: set HOME=%USERPROFILE%

(BTW This works in CMD, not in Powershell)

Step 3)

gofabric8 start

Then the error is:

Kubectl to your system path

C:\Users\r.meester\Downloads>gofabric8-windows-amd64.exe start Downloading https://storage.googleapis.com/minikube/releases/v0.24.1/minikube-windows-amd64.exe... Downloaded C:\Users\r.meester.fabric8\bin\minikube.exe Downloading https://storage.googleapis.com/kubernetes-release/release/v1.8.4/bin/windows/amd64/kubectl.exe... Downloaded C:\Users\r.meester.fabric8\bin\kubectl.exe Unable to get C:\Users\r.meester.fabric8\bin\minikube.exe status, ======================================== kubectl could not be found on your path. kubectl is a requirement for using minikube To install kubectl, please do the following:

download kubectl from: https://storage.googleapis.com/kubernetes-release/release/v1.8.0/bin/windows/amd64/kubectl.exe Add kubectl to your system PATH

To disable this message, run the following:

minikube config set WantKubectlDownloadMsg false

: minikube: cluster: kubectl:

Step 4:

The suggesting is to download kubectl manually, but this was downloaded successfully. So I added kubectrl to my path manually

cmd --> regedit --> KLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\myexe.exe

After adding this to my path (and reboot) still got the same message. Also after a retry it still says it will download files (Instead of checking if the correct version is locally avaiblale).

Step 5:

So then I followed the suggestion:

minikube config set WantKubectlDownloadMsg false

Then it says:

Unable to get C:\Users\r.meester.fabric8\bin\minikube.exe status, : minikube: cluster: kubectl:

Strange as minikube.exe is available there (Command is run as Administrator everytime).

Step 6: use minishift:

C:\Users\r.meester\Downloads>gofabric8-windows-amd64.exe start start --minishift Downloading https://github.com/minishift/minishift/releases/download/v1.9.0/minishift-1.9.0-windows-amd64.zip.exe... Unable to unzip C:\Users\r.meester.fabric8\bin\minishift.zip zip: not a valid zip fileUnable to download minishift zip: not a valid zip file Downloading https://github.com/openshift/origin/releases/download/v3.6.0/openshift-origin-client-tools-v3.6.0-c4dd4cf-windows.zip... Downloaded oc Could not find executable at C:\Users\r.meester\Downloads\minishift.exe Unable to get minishift.exe status, :

Stap 7: Deleting minikube (as suggested):

C:\Users\r.meester.fabric8\bin>minikube.exe delete Deleting local Kubernetes cluster... Errors occurred deleting machine: Error deleting host: minikube: Error loading host from store: Host does not exist: "minikube"

Step 8: Start Minikube directly:

minikube.exe start Starting local Kubernetes v1.8.0 cluster... Starting VM... Downloading Minikube ISO 140.01 MB / 140.01 MB [============================================] 100.00% 0s E1203 17:52:00.654899 4020 start.go:150] Error starting host: Error creating host: Error executing step: Running precreate checks. : This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check).

Retrying. E1203 17:52:00.657889 4020 start.go:156] Error starting host: Error creating host: Error executing step: Running precreate checks. : This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)

An error has occurred. Would you like to opt in to sending anonymized crash information to minikube to help prevent future errors? To opt out of these messages, run the command: minikube config set WantReportErrorPrompt false

Strange as it says I need to turn on Hyper-V

Step 9: use virtualbox driver

C:\Users\r.meester\Downloads>gofabric8.exe start --vm-driver=virtualbox minikube.exe is already available on your PATH at C:\Users\r.meester.fabric8\bin\minikube.exe kubectl.exe is already available on your PATH at C:\Users\r.meester.fabric8\bin\kubectl.exe Unable to get C:\Users\r.meester.fabric8\bin\minikube.exe status, : minikube: cluster: kubectl:

Step 10: Use minibox directly

C:\Users\r.meester.fabric8\bin>minikube.exe start Starting local Kubernetes v1.8.0 cluster... Starting VM... Getting VM IP address... Moving files into cluster... Downloading localkube binary 148.25 MB / 148.25 MB [============================================] 100.00% 0s 0 B / 65 B [----------------------------------------------------------] 0.00% 65 B / 65 B [======================================================] 100.00% 0sSetting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file.

C:\Users\r.meester\Downloads>gofabric8.exe start minikube.exe already running minishift is already running, you can switch to the context Deploying fabric8 to your Kubernetes installation at https://192.168.99.100:8443 for domain in namespace default

Loading fabric8 releases from maven repository:https://repo1.maven.org/maven2/ Deploying package: platform version: 2.4.24

Template DOMAIN = 192.168.99.100.nip.io Template NAMESPACE = default Template EXPOSER = Ingress Template APISERVER_HOSTPORT = 192.168.99.100:8443 Template APISERVER = 192.168.99.100 Template NODE_IP = 192.168.99.100 Template OAUTH_AUTHORIZE_PORT = 8443 Processing resource kind: Namespace in namespace default name user-secrets-source-admin Found namespace on kind Secret of user-secrets-source-adminProcessing resource kind: Secret in namespace user-secrets-source-admin name default-gogs-git Processing resource kind: Secret in namespace default name jenkins-docker-cfg Processing resource kind: Secret in namespace default name jenkins-git-ssh Processing resource kind: Secret in namespace default name jenkins-hub-api-token Processing resource kind: Secret in namespace default name jenkins-master-ssh Processing resource kind: Secret in namespace default name jenkins-maven-settings Processing resource kind: Secret in namespace default name jenkins-release-gpg Processing resource kind: Secret in namespace default name jenkins-ssh-config Processing resource kind: ServiceAccount in namespace default name configmapcontroller Processing resource kind: ServiceAccount in namespace default name exposecontroller Processing resource kind: ServiceAccount in namespace default name fabric8 Processing resource kind: ServiceAccount in namespace default name gogs Processing resource kind: ServiceAccount in namespace default name jenkins Processing resource kind: Service in namespace default name fabric8 Processing resource kind: Service in namespace default name fabric8-docker-registry Processing resource kind: Service in namespace default name fabric8-forge Processing resource kind: Service in namespace default name gogs Processing resource kind: Service in namespace default name gogs-ssh Processing resource kind: Service in namespace default name jenkins Processing resource kind: Service in namespace default name jenkins-jnlp Processing resource kind: Service in namespace default name jenkinshift Processing resource kind: Service in namespace default name nexus Processing resource kind: PersistentVolumeClaim in namespace default name fabric8-docker-registry-storage Processing resource kind: PersistentVolumeClaim in namespace default name gogs-data Processing resource kind: PersistentVolumeClaim in namespace default name jenkins-jobs Processing resource kind: PersistentVolumeClaim in namespace default name jenkins-mvn-local-repo Processing resource kind: PersistentVolumeClaim in namespace default name jenkins-workspace Processing resource kind: PersistentVolumeClaim in namespace default name nexus-storage Processing resource kind: ConfigMap in namespace default name catalog-apiman Processing resource kind: ConfigMap in namespace default name catalog-apiman-gateway Processing resource kind: ConfigMap in namespace default name catalog-artifactory Processing resource kind: ConfigMap in namespace default name catalog-cd-pipeline Processing resource kind: ConfigMap in namespace default name catalog-chaos-monkey Processing resource kind: ConfigMap in namespace default name catalog-chat-irc Processing resource kind: ConfigMap in namespace default name catalog-chat-letschat Processing resource kind: ConfigMap in namespace default name catalog-chat-slack Processing resource kind: ConfigMap in namespace default name catalog-configmapcontroller Processing resource kind: ConfigMap in namespace default name catalog-content-repository Processing resource kind: ConfigMap in namespace default name catalog-elasticsearch Processing resource kind: ConfigMap in namespace default name catalog-elasticsearch-v1 Processing resource kind: ConfigMap in namespace default name catalog-exposecontroller Processing resource kind: ConfigMap in namespace default name catalog-fabric8-docker-registry Processing resource kind: ConfigMap in namespace default name catalog-fabric8-forge Processing resource kind: ConfigMap in namespace default name catalog-fluentd Processing resource kind: ConfigMap in namespace default name catalog-funktion Processing resource kind: ConfigMap in namespace default name catalog-funktion-operator Processing resource kind: ConfigMap in namespace default name catalog-funktion-runtimes Processing resource kind: ConfigMap in namespace default name catalog-gerrit Processing resource kind: ConfigMap in namespace default name catalog-git-collector Processing resource kind: ConfigMap in namespace default name catalog-gitlab Processing resource kind: ConfigMap in namespace default name catalog-gogs Processing resource kind: ConfigMap in namespace default name catalog-grafana Processing resource kind: ConfigMap in namespace default name catalog-ingress-nginx Processing resource kind: ConfigMap in namespace default name catalog-jenkins Processing resource kind: ConfigMap in namespace default name catalog-keycloak Processing resource kind: ConfigMap in namespace default name catalog-kibana Processing resource kind: ConfigMap in namespace default name catalog-kiwiirc Processing resource kind: ConfigMap in namespace default name catalog-kubeflix Processing resource kind: ConfigMap in namespace default name catalog-letschat Processing resource kind: ConfigMap in namespace default name catalog-logging Processing resource kind: ConfigMap in namespace default name catalog-manageiq Processing resource kind: ConfigMap in namespace default name catalog-management Processing resource kind: ConfigMap in namespace default name catalog-maven-shell Processing resource kind: ConfigMap in namespace default name catalog-message-broker Processing resource kind: ConfigMap in namespace default name catalog-message-gateway Processing resource kind: ConfigMap in namespace default name catalog-messaging Processing resource kind: ConfigMap in namespace default name catalog-metrics Processing resource kind: ConfigMap in namespace default name catalog-nexus Processing resource kind: ConfigMap in namespace default name catalog-prometheus Processing resource kind: ConfigMap in namespace default name catalog-prometheus-blackbox-exporter Processing resource kind: ConfigMap in namespace default name catalog-prometheus-node-exporter Processing resource kind: ConfigMap in namespace default name catalog-social Processing resource kind: ConfigMap in namespace default name catalog-taiga Processing resource kind: ConfigMap in namespace default name catalog-turbine-server Processing resource kind: ConfigMap in namespace default name catalog-zipkin Processing resource kind: ConfigMap in namespace default name catalog-zookeeper Processing resource kind: ConfigMap in namespace default name exposecontroller Processing resource kind: ConfigMap in namespace default name fabric8 Processing resource kind: ConfigMap in namespace default name fabric8-environments Processing resource kind: ConfigMap in namespace default name fabric8-forge Found namespace on kind ConfigMap of user-secrets-source-adminProcessing resource kind: ConfigMap in namespace user-secrets-source-admin name fabric8-git-app-secrets Processing resource kind: ConfigMap in namespace default name fabric8-platform Processing resource kind: ConfigMap in namespace default name gogs Processing resource kind: ConfigMap in namespace default name jenkins Processing resource kind: Deployment in namespace default name configmapcontroller Processing resource kind: Deployment in namespace default name exposecontroller Processing resource kind: Deployment in namespace default name fabric8 Processing resource kind: Deployment in namespace default name fabric8-docker-registry Processing resource kind: Deployment in namespace default name fabric8-forge Processing resource kind: Deployment in namespace default name gogs Processing resource kind: Deployment in namespace default name jenkins Processing resource kind: Deployment in namespace default name nexus platform......................................................................✔

Recreating configmap exposecontroller


Default GOGS admin username/password = gogsadmin/RedHat$1

Checking if PersistentVolumeClaims bind to a PersistentVolume Downloading images and waiting to open the fabric8 console...


If this your first deployment then it may take a while to download the docker images, please be patient. To track progress run the following command in a new terminal session:

watch kubectl get pods -n default

Does this even work on Windows? (http://www.linfo.org/watch.html)


"If this your first deployment then it may take a while to download the docker images, please be patient."

It's not possible to start a minimal website and give some progress in the browser?

Doesn't really happening something when using gofabric8 console and empty page opens.

Step 11:

Try it again

C:\Users\r.meester\Downloads>gofabric8.exe start minikube.exe already running minishift is already running, you can switch to the context

C:\Users\r.meester\Downloads>gofabric8.exe deploy Deploying fabric8 to your Kubernetes installation at https://192.168.99.100:8443 for domain in namespace default

Loading fabric8 releases from maven repository:https://repo1.maven.org/maven2/ Continue? [Y/n] Y Kubernetes server version is: 1.8

Waiting for the default storageclass No --github-client-id flag was specified or $GITHUB_OAUTH_CLIENT_ID environment variable supplied!

Uses a invalid securtiy certificate https://192.168.99.100:8443/

kind "Status" apiVersion "v1" metadata {} status "Failure" message "Unauthorized" reason "Unauthorized" code 401

http://192.168.99.100:32147/

Unavailable

debei commented 6 years ago

Fabric8 Instalation currently fails on kubernetes 1.8 because deployment descriptors still use the old kubernetes 1.5 syntax to specify init containers which was deprecated but still supported in kubernetes 1.6 and 1.7 but does not work anymore in kubernetes 1.8.

See also: https://github.com/fabric8io/gofabric8/issues/633 https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

This is of course not limited to Windows or minikube but happens on any kubernetes 1.8 Installation.

There might be 3 possible solutions for this:

1.) every XML deployment descriptor in every component used is fixed to use the new kubernetes 1.6 and above syntax for init-containers.

2.) gofabric8 patches the deployment descriptors on the fly during installation

3.) the fabric8 maven plugin gets a new goal to patch deployment descriptors and this is called somewhere in the build process of fabric8-platform
qedrix commented 6 years ago

No one seems to be working on these issues? Too busy with RedHat?

janwendt commented 6 years ago

+1 anybody is fixing this? It is not possible to install and use fabric8 with "gofabric8 start" @debei @chmouel @rupalibehera @piyush1594 @oscerd

chmouel commented 6 years ago

Unfortunately gofabric8 hasn't been maintained for a while and it's not working, I am probably going to archive gofabric8.

dvoiss commented 6 years ago

@chmouel I just came across Fabric8 while researching deployment options for a Spring Boot app and decided to follow the guide.

I stopped at the first step right after installation and had to google the error to find this thread (I'm on a mac though).

If you are going to archive it you should update the guide to remove this tool since it's kind of a turn off when trying a new thing to have it break right out of the gate.

Relevant doc in the guide here: https://github.com/fabric8io/fabric8/blob/master/docs/getStarted/gofabric8-3.x.md.

But the rest of the guide also uses gofabric8 in other places.

Also as someone new to this project what would be used instead? Just the mvn plugin or is there an earlier version of gofabric that would work?