Skip to content
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

chore(deps-dev): Adding s390x support to chectl #699

Merged
merged 1 commit into from
May 25, 2020

Conversation

prabhav-thali
Copy link
Contributor

Signed-off-by: Prabhav Thali Prabhav.Thali1@ibm.com

What does this PR do?

Upgrade cert-manager from v0.12.0 to v0.15.0 as v0.15.0 cert-manager images have multi-arch support.

What issues does this PR fix or reference?

This PR is part of this initiative.

@che-bot
Copy link
Collaborator

che-bot commented May 13, 2020

Can one of the admins verify this patch?

@prabhav-thali prabhav-thali changed the title Adding s390x support to chectl chore(deps-dev): Adding s390x support to chectl May 13, 2020
@tolusha
Copy link
Collaborator

tolusha commented May 14, 2020

/cc @mmorhun

@mmorhun
Copy link
Contributor

mmorhun commented May 14, 2020

First we need to create a CQ for Cert Manager.
Second this is major update of Cert manager and should be well tested before merge.
I will be able to take a look at this a bit later. @prabhav-thali please let me know if it blocks you now.

@prabhav-thali
Copy link
Contributor Author

@mmorhun this blocks #16655

@prabhav-thali
Copy link
Contributor Author

/cc
@nickboldt @benoitf

@mmorhun
Copy link
Contributor

mmorhun commented May 18, 2020

Hello @prabhav-thali. Sorry for delay.
I managed to test this PR and unfortunately it doesn't work on my side. Steps to reproduce:

  1. Create a minikube cluster
  2. Try to deploy Eclipse Che with following command: ./bin/run server:start --platform=minikube --installer=helm --multiuser
  3. chctl fails with following logs:
chectl log
› Current Kubernetes context: 'minikube'
  ✔ Verify Kubernetes API...OK
  ✔ 👀  Looking for an already existing Eclipse Che instance
    ✔ Verify if Eclipse Che is deployed into namespace "che"...it is not
  ✔ ✈️  Minikube preflight checklist
    ✔ Verify if kubectl is installed
    ✔ Verify if minikube is installed
    ✔ Verify if minikube is running
    ↓ Start minikube [skipped]
      → Minikube is already running.
    ✔ Check Kubernetes version: Found v1.17.3.
    ✔ Verify if minikube ingress addon is enabled
    ✔ Enable minikube ingress addon
    ✔ Retrieving minikube IP and domain for ingress URLs...192.168.99.213.nip.io.
    ↓ Check if cluster accessible [skipped]
Eclipse Che logs will be available in '/tmp/chectl-logs/1589796700265'
  ✔ Start following logs
    ↓ Start following Operator logs [skipped]
    ✔ Start following Eclipse Che logs...done
    ✔ Start following Postgres logs...done
    ✔ Start following Keycloak logs...done
    ✔ Start following Plugin registry logs...done
    ✔ Start following Devfile registry logs...done
  ✔ Start following events
    ✔ Start following namespace events...done
 ›   Warning: You can also use features rich 'OLM' installer to deploy Eclipse Che.
  ❯ 🏃‍  Running Helm to install Eclipse Che
    ✔ Verify if helm is installed
    ✔ Check Helm Version: Found v3.1.1+gafe7058
    ✔ Create Namespace (che)...done.
    ❯ Check Eclipse Che TLS certificate...going to generate self-signed one
      ✔ Check Cert Manager deployment...not deployed
      ✔ Deploy cert-manager...done
      ✖ Wait for cert-manager
        → Get pods by selector "app.kubernetes.io/name=cert-manager" returned a pod without a status.condition of type "Ready"
        Check Cert Manager CA certificate
        Set up Eclipse Che certificates issuer
        Request self-signed certificate
        Wait for self-signed certificate
        Retrieving Che self-signed CA certificate
      Check Cluster Role Binding
      Preparing Eclipse Che Helm Chart
      Updating Helm Chart dependencies
      Deploying Eclipse Che Helm Chart
 ›   Error: Error: Get pods by selector "app.kubernetes.io/name=cert-manager" returned a pod without a status.condition of type "Ready"
 ›   Installation failed, check logs in '/tmp/chectl-logs/1589796700265'

Also Kubernetes reports that none of Cert Manager pods is ready. They all in pending state forever.

@mmorhun
Copy link
Contributor

mmorhun commented May 18, 2020

Signed-off-by: Prabhav Thali <Prabhav.Thali1@ibm.com>
@prabhav-thali
Copy link
Contributor Author

@mmorhun that's strange! I have tested it on amd64 and s390x. And 0.15.0 images worked for me out of the box.

Steps I followed:

  1. Create minikube cluster.
  2. Clone PR repo and checkout s390x-support branch.
  3. Build chectl using the command : yarn
  4. Command used to deploy Eclipse Che in single user mode : ./bin/run server:start --platform=minikube --installer=helm
  5. Command used to deploy Eclipse Che in multi user mode : ./bin/run server:start --platform=minikube --installer=helm --multiuser

Attaching logs (amd64) :

chectl with single user

› Current Kubernetes context: 'minikube'
  ✔ Verify Kubernetes API...OK
  ✔ 👀  Looking for an already existing Eclipse Che instance
    ✔ Verify if Eclipse Che is deployed into namespace "che"...it is not
  ✔ ✈️  Minikube preflight checklist
    ✔ Verify if kubectl is installed
    ✔ Verify if minikube is installed
    ✔ Verify if minikube is running
    ↓ Start minikube [skipped]
      → Minikube is already running.
    ✔ Check Kubernetes version: Found v1.17.3.
    ✔ Verify if minikube ingress addon is enabled
    ✔ Enable minikube ingress addon
    ✔ Retrieving minikube IP and domain for ingress URLs...<ip>.nip.io.
    ↓ Check if cluster accessible [skipped]
Eclipse Che logs will be available in '/tmp/chectl-logs/1589862408110'
  ✔ Start following logs
    ↓ Start following Operator logs [skipped]
    ✔ Start following Eclipse Che logs...done
    ✔ Start following Postgres logs...done
    ✔ Start following Keycloak logs...done
    ✔ Start following Plugin registry logs...done
    ✔ Start following Devfile registry logs...done
  ✔ Start following events
    ✔ Start following namespace events...done
 ›   Warning: You can also use features rich 'OLM' installer to deploy Eclipse Che.
  ✔ 🏃‍  Running Helm to install Eclipse Che
    ✔ Verify if helm is installed
    ✔ Check Helm Version: Found v3.1.1+gafe7058
    ✔ Create Namespace (che)...done.
    ✔ Check Eclipse Che TLS certificate...going to generate self-signed one
      ✔ Check Cert Manager deployment...not deployed
      ✔ Deploy cert-manager...done
      ✔ Wait for cert-manager...ready
      ✔ Check Cert Manager CA certificate...generating new one
      ✔ Set up Eclipse Che certificates issuer...done
      ✔ Request self-signed certificate...done
      ✔ Wait for self-signed certificate...ready
      ✔ Retrieving Che self-signed CA certificate... is exported to /root/cheCA.crt
    ✔ Check Cluster Role Binding...does not exists.
    ✔ Preparing Eclipse Che Helm Chart...done.
    ✔ Updating Helm Chart dependencies...done.
    ✔ Deploying Eclipse Che Helm Chart...done.
  ✔ ✅  Post installation checklist
    ✔ Devfile registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Plugin registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Eclipse Che pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Retrieving Eclipse Che server URL... https://che-che.<ip>.nip.io
    ✔ Eclipse Che status check
  ✔ Show important messages
    ✔ ❗[MANUAL ACTION REQUIRED] Please add Che self-signed CA certificate into your browser: /root/cheCA.crt.
   Documentation how to add a CA certificate into a browser:
https://www.eclipse.org/che/docs/che-7/installing-che-in-tls-mode-with-self-signed-certificates/#using-che-with-tls_installing-che-in-tls-m
ode-with-self-signed-certificates
Command server:start has completed successfully.

chectl with multi user

› Current Kubernetes context: 'minikube'
  ✔ Verify Kubernetes API...OK
  ✔ 👀  Looking for an already existing Eclipse Che instance
    ✔ Verify if Eclipse Che is deployed into namespace "che"...it is not
  ✔ ✈️  Minikube preflight checklist
    ✔ Verify if kubectl is installed
    ✔ Verify if minikube is installed
    ✔ Verify if minikube is running
    ↓ Start minikube [skipped]
      → Minikube is already running.
    ✔ Check Kubernetes version: Found v1.17.3.
    ✔ Verify if minikube ingress addon is enabled
    ✔ Enable minikube ingress addon
    ✔ Retrieving minikube IP and domain for ingress URLs...<ip>.nip.io.
    ↓ Check if cluster accessible [skipped]
Eclipse Che logs will be available in '/tmp/chectl-logs/1589861878056'
  ✔ Start following logs
    ↓ Start following Operator logs [skipped]
    ✔ Start following Eclipse Che logs...done
    ✔ Start following Postgres logs...done
    ✔ Start following Keycloak logs...done
    ✔ Start following Plugin registry logs...done
    ✔ Start following Devfile registry logs...done
  ✔ Start following events
    ✔ Start following namespace events...done
 ›   Warning: You can also use features rich 'OLM' installer to deploy Eclipse Che.
  ✔ 🏃‍  Running Helm to install Eclipse Che
    ✔ Verify if helm is installed
    ✔ Check Helm Version: Found v3.1.1+gafe7058
    ✔ Create Namespace (che)...done.
    ✔ Check Eclipse Che TLS certificate...going to generate self-signed one
      ✔ Check Cert Manager deployment...not deployed
      ✔ Deploy cert-manager...done
      ✔ Wait for cert-manager...ready
      ✔ Check Cert Manager CA certificate...generating new one
      ✔ Set up Eclipse Che certificates issuer...done
      ✔ Request self-signed certificate...done
      ✔ Wait for self-signed certificate...ready
      ✔ Retrieving Che self-signed CA certificate... is exported to /root/cheCA.crt
    ✔ Check Cluster Role Binding...does not exists.
    ✔ Preparing Eclipse Che Helm Chart...done.
    ✔ Updating Helm Chart dependencies...done.
    ✔ Deploying Eclipse Che Helm Chart...done.
  ✔ ✅  Post installation checklist
    ✔ PostgreSQL pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Devfile registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Plugin registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Eclipse Che pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Retrieving Eclipse Che server URL... https://che-che.<ip>.nip.io
    ✔ Eclipse Che status check
  ✔ Show important messages
    ✔ ❗[MANUAL ACTION REQUIRED] Please add Che self-signed CA certificate into your browser: /root/cheCA.crt.
   Documentation how to add a CA certificate into a browser:
https://www.eclipse.org/che/docs/che-7/installing-che-in-tls-mode-with-self-signed-certificates/#using-che-with-tls_installing-che-in-tls-m
ode-with-self-signed-certificates
    ✔ Autogenerated Keycloak credentials are: "admin:hVNY3a3wp1KD"
Command server:start has completed successfully.

Attaching logs (s390x) :

chectl with single user

› Current Kubernetes context: 'minikube'
  ✔ Verify Kubernetes API...OK
  ✔ 👀  Looking for an already existing Eclipse Che instance
    ✔ Verify if Eclipse Che is deployed into namespace "che"...it is not
  ✔ ✈️  Minikube preflight checklist
    ✔ Verify if kubectl is installed
    ✔ Verify if minikube is installed
    ✔ Verify if minikube is running
    ↓ Start minikube [skipped]
      → Minikube is already running.
    ✔ Check Kubernetes version: Found v1.15.0.
    ✔ Verify if minikube ingress addon is enabled
    ✔ Enable minikube ingress addon
    ✔ Retrieving minikube IP and domain for ingress URLs...<ip>.nip.io.
    ↓ Check if cluster accessible [skipped]
Eclipse Che logs will be available in '/tmp/chectl-logs/1589800232456'
  ✔ Start following logs
    ↓ Start following Operator logs [skipped]
    ✔ Start following Eclipse Che logs...done
    ✔ Start following Postgres logs...done
    ✔ Start following Keycloak logs...done
    ✔ Start following Plugin registry logs...done
    ✔ Start following Devfile registry logs...done
  ✔ Start following events
    ✔ Start following namespace events...done
 ›   Warning: You can also use features rich 'OLM' installer to deploy Eclipse Che.
  ✔ 🏃‍  Running Helm to install Eclipse Che
    ✔ Verify if helm is installed
    ✔ Check Helm Version: Found v3.1.1+gafe7058
    ✔ Create Namespace (che)...done.
    ✔ Check Eclipse Che TLS certificate...going to generate self-signed one
      ✔ Check Cert Manager deployment...not deployed
      ✔ Deploy cert-manager...done
      ✔ Wait for cert-manager...ready
      ✔ Check Cert Manager CA certificate...generating new one
      ✔ Set up Eclipse Che certificates issuer...done
      ✔ Request self-signed certificate...done
      ✔ Wait for self-signed certificate...ready
      ✔ Retrieving Che self-signed CA certificate... is exported to /root/cheCA.crt
    ✔ Check Cluster Role Binding...does not exists.
    ✔ Preparing Eclipse Che Helm Chart...done.
    ✔ Updating Helm Chart dependencies...done.
    ✔ Deploying Eclipse Che Helm Chart...done.
  ❯ ✅  Post installation checklist
    ✔ Devfile registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Plugin registry pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Eclipse Che pod bootstrap
      ✔ scheduling...done.
      ✔ downloading images...done.
      ✔ starting...done.
    ✔ Retrieving Eclipse Che server URL... https://che-che.<ip>.nip.io
    ✔ Eclipse Che status check
  ✔ Show important messages
    ✔ ❗[MANUAL ACTION REQUIRED] Please add Che self-signed CA certificate into your browser: /root/cheCA.crt.
   Documentation how to add a CA certificate into a browser:
https://www.eclipse.org/che/docs/che-7/installing-che-in-tls-mode-with-self-signed-certificates/#using-che-with-tls_installing-che-in-tls-m
ode-with-self-signed-certificates
Command server:start has completed successfully.

@mmorhun
Copy link
Contributor

mmorhun commented May 19, 2020

@prabhav-thali when I tested I started everything from scratch, i.e. minikube delete, then minikube start <args> and then deploy.

@prabhav-thali
Copy link
Contributor Author

@mmorhun let us know if you need any help/assistance from our side.

Copy link
Contributor

@mmorhun mmorhun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've retested PR and it worked for me this time.

@tolusha
Copy link
Collaborator

tolusha commented May 25, 2020

Tested as well.

@tolusha tolusha merged commit 87978dc into che-incubator:master May 25, 2020
@benoitf benoitf added the new&noteworthy For new and/or noteworthy issues that deserve a blog post, new docs, or emphasis in release notes label Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new&noteworthy For new and/or noteworthy issues that deserve a blog post, new docs, or emphasis in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants