blob: f37f9415cafab97b63450dba82972d855976755b [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Installing Che on Microsoft Azure :: Eclipse Che Documentation</title>
<link rel="canonical" href="https://www.eclipse.org/che/docs/che-7/installation-guide/installing-che-on-microsoft-azure/">
<meta name="keywords" content="overview, installing-che-on-microsoft-azure">
<meta name="generator" content="Antora 2.3.3">
<link rel="stylesheet" href="../../../_/css/site.css">
<link rel="stylesheet" href="../../../_/css/extra.css">
<link rel="stylesheet" href="../../../_/font-awesome-4.7.0/css/font-awesome.min.css">
<link rel="icon" href="../../../favicon.ico" type="image/x-icon">
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-37306001-2"></script>
<script>function gtag(){dataLayer.push(arguments)};window.dataLayer=window.dataLayer||[];gtag('js',new Date());gtag('config','UA-37306001-2')</script>
</head>
<body class="article">
<header class="header" role="banner">
<nav class="navbar">
<div class="navbar-brand">
<div class="navbar-item">
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
<img src="../../../_/img/icon-eclipse-che.svg" class="navbar-logo" alt="Eclipse Che logo">
<a href="https://www.eclipse.org/che/docs">Eclipse Che Documentation</a>
</div>
</div>
<div id="topbar-nav" class="navbar-menu">
<div class="navbar-end">
<div class="navbar-item hide-for-print">
<script async src="https://cse.google.com/cse.js?cx=002898025167115630151:gnr5edrg2eo"></script>
<div class="gcse-searchbox" enableAutoComplete="true"></div>
</div>
<a class="navbar-item" href="#">Home</a>
<a class="navbar-item" href="https://che.eclipse.org/">Blog</a>
<a class="navbar-item" href="https://github.com/eclipse/che">Source Code</a>
</div>
</div>
</nav>
<div class="gcse-searchresults"></div>
</header>
<div class="body">
<div class="nav-container" data-component="che-7" data-version="master">
<aside class="nav">
<div class="panels">
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<h3 class="title"><a href="../../overview/introduction-to-eclipse-che/">Eclipse Che 7 Documentation</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../overview/introduction-to-eclipse-che/">Introduction to Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../overview/che-architecture/">Che architecture</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../hosted-che/hosted-che/">Hosted Che</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">End-user Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/navigating-che/">Navigating Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/navigating-che-using-the-dashboard/">Navigating Che: dashboard</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/importing-certificates-to-browsers/">Importing certificates to browsers</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/accessing-che-from-openshift-developer-perspective/">Navigating Che from OpenShift Developer Perspective</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/che-theia-ide-basics/">Che-Theia IDE basics</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/defining-custom-commands-for-che-theia/">Defining custom commands for Che-Theia</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/version-control/">Version Control</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/che-theia-troubleshooting/">Che-Theia Troubleshooting</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/workspaces-overview/">Using developer workspaces</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-a-workspace-using-a-devfile/">Configuring a workspace using a devfile</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/making-a-workspace-portable-using-a-devfile/">Making a workspace portable using a devfile</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-and-configuring-a-new-workspace/">Creating and configuring a new workspace</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/importing-a-kubernetes-application-into-a-workspace/">Importing a Kubernetes application into a workspace</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/remotely-accessing-workspaces/">Remotely accessing workspaces</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-a-workspace-from-code-sample/">Creating a workspace from code sample</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/creating-a-workspace-by-importing-source-code-of-a-project/">Creating a workspace by importing source code of a project</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/mounting-a-secret-as-a-file-or-an-environment-variable-into-a-workspace-container/">Mounting a secret as a file or an environment variable into a workspace container</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/customizing-developer-environments/">Customizing developer environments</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/what-is-a-che-theia-plug-in/">What is a Che-Theia plug-in</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-alternative-ides-in-che/">Using alternative IDEs in Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/adding-tools-to-che-after-creating-a-workspace/">Adding tools to Che after creating a workspace</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/configuring-oauth-authorization/">Configuring OAuth authorization</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-github-oauth/">Configuring GitHub OAuth</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/configuring-openshift-oauth/">Configuring OpenShift OAuth</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/using-artifact-repositories-in-a-restricted-environment/">Using artifact repositories in a restricted environment</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-maven-artifact-repositories/">Using Maven artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-gradle-artifact-repositories/">Using Gradle artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-python-artifact-repositories/">Using Python artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-go-artifact-repositories/">Using Go artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-nuget-artifact-repositories/">Using NuGet artifact repositories</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/using-npm-artifact-repositories/">Using npm artifact repositories</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../end-user-guide/troubleshooting-che/">Troubleshooting Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/troubleshooting-slow-workspaces/">Troubleshooting slow workspaces</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/troubleshooting-network-problems/">Troubleshooting network problems</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/starting-a-che-workspace-in-debug-mode/">Starting a workspace in debug mode</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../end-user-guide/restarting-a-che-workspace-in-debug-mode-after-start-failure/">Restarting a workspace in debug mode after start failure</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Installation Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../supported-platforms/">Supported platforms</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../configuring-the-che-installation/">Configuring the Che installation</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../installing-che/">Installing Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../installing-che-in-cloud/">Installing Che in cloud</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-openshift-4-using-operatorhub/">Installing Che on OpenShift 4</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-openshift-3-using-the-operator/">Installing Che on OpenShift 3</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-kubespray/">Installing Che on Kubespray</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-aws/">Installing Che on AWS</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-google-cloud-platform/">Installing Che on Google Cloud</a>
</li>
<li class="nav-item is-current-page" data-depth="3">
<a class="nav-link" href="./">Installing Che on Microsoft Azure</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../installing-che-locally/">Installing Che locally</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-codeready-containers/">Installing Che on CodeReady Containers</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-docker-desktop/">Installing Che on Docker Desktop</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-minikube/">Installing Che on Minikube</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-minishift/">Installing Che on Minishift</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../installing-che-on-kind/">Installing Che on Kind</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../using-the-chectl-management-tool/">Using the chectl management tool</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../installing-che-in-a-restricted-environment/">Installing Che in restricted environment</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../advanced-configuration/">Advanced configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../advanced-configuration-options-for-the-che-server-component/">Advanced configuration options for Che server</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-namespace-strategies/">Configuring namespace strategies</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-workspace-exposure-strategies/">Configuring workspace exposure strategies</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-workspaces-nodeselector/">Configuring workspaces nodeSelector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-che-hostname/">Configuring Che hostname</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../deploying-che-with-support-for-git-repositories-with-self-signed-certificates/">Deploying Che with support for Git repositories with self-signed certificates</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../installing-che-using-storage-classes/">Installing Che using storage classes</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../configuring-storage-types/">Configuring storage types</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../importing-tls-certificates-to-che-server-java-truststore/">Importing TLS certificates to Che server Java truststore</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../upgrading-che/">Upgrading Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../upgrading-che-using-operatorhub/">Upgrading Che using OperatorHub</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../upgrading-che-using-the-cli-management-tool/">Upgrading Che using the CLI management tool</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../uninstalling-che/">Uninstalling Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../uninstalling-che-after-operatorhub-installation-using-openshift-web-console/">Using the OpenShift web console</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../uninstalling-che-after-operatorhub-installation-using-openshift-cli/">Using OpenShift CLI</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../uninstalling-che-after-chectl-installation/">Using chectl</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Administration Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/che-architecture-overview/">Che architecture</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/che-workspace-controller/">Che workspace controller</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/che-workspaces-architecture/">Che workspaces architecture</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../administration-guide/calculating-che-resource-requirements/">Calculating Che resource requirements</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/customizing-the-devfile-and-plug-in-registries/">Customizing devfile and plug-in registries</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/building-and-running-a-custom-registry-image/">Building and running a custom registry image</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/including-the-plug-in-binaries-in-the-registry-image/">Including the plug-in binaries in the registry image</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/editing-a-devfile-and-plug-in-at-runtime/">Editing a devfile and plug-in at runtime</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/using-a-visual-studio-code-extension-in-che/">Using a VS Code extension in Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/testing-a-visual-studio-code-extension-in-che/">Testing a VS Code extension in Che</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/retrieving-che-logs/">Retrieving Che logs</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-kubernetes-events/">Accessing Kubernetes events on OpenShift</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-operator-events/">Viewing the Operator events on OpenShift</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-che-server-logs/">Viewing Che server logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-external-service-logs/">Viewing external service logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-che-workspaces-logs/">Viewing Che workspaces logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/viewing-plug-in-broker-logs/">Viewing Plug-in broker logs</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/collecting-logs-using-chectl/">Collecting logs using chectl</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../administration-guide/monitoring-che/">Monitoring Che</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../administration-guide/tracing-che/">Tracing Che</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/managing-users/">Managing users</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/configuring-authorization/">Configuring authorization</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/removing-user-data/">Removing user data</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/securing-che/">Securing Che</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/authenticating-users/">Authenticating users</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/authorizing-users/">Authorizing users</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../administration-guide/backup-and-disaster-recovery/">Backup and disaster recovery</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/external-database-setup/">External database setup</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../administration-guide/persistent-volumes-backups/">Persistent Volumes backups</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../administration-guide/caching-images-for-faster-workspace-start/">Caching images for faster workspace start</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Contributor Guide</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/branding-che-theia/">Branding Che-Theia</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/developing-che-theia-plug-ins/">Developing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/testing-che-theia-plug-ins/">Testing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/publishing-che-theia-plug-ins/">Publishing Che-Theia plug-ins</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/adding-support-for-a-new-language/">Adding support for a new language</a>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../contributor-guide/adding-support-for-a-new-debugger/">Adding support for a new debugger</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../contributor-guide/che-extensibility-reference/">Che extensibility reference</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/che-extension-points/">Che extension points</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/che-theia-plug-in-api/">Che-Theia plug-in API</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/debug-adapter-protocol/">Debug Adapter Protocol</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../contributor-guide/language-server-protocol/">Language Server Protocol</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<button class="nav-item-toggle"></button>
<span class="nav-text">Extensions</span>
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../extensions/eclipse-che4z/">Eclipse Che4z</a>
</li>
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../extensions/openshift-connector-overview/">OpenShift Connector</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/features-of-openshift-connector/">Features of OpenShift Connector</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/installing-openshift-connector-in-che/">Installing OpenShift Connector in Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/authenticating-with-openshift-connector-from-che/">Authenticating with OpenShift Connector from Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/creating-components-with-openshift-connector-in-che/">Creating Components with OpenShift Connector in Eclipse Che</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extensions/connecting-source-code-from-github-to-a-openshift-component-using-openshift-connector/">Connecting source code from GitHub to a OpenShift Component</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../extensions/telemetry/">Telemetry</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../glossary/che-glossary/">Che glossary</a>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Eclipse Che 7 Documentation</span>
<span class="version">Stable</span>
</div>
<ul class="components">
<li class="component">
<span class="title">devfile</span>
<ul class="versions">
<li class="version is-latest">
<a href="../../../devfile/">master</a>
</li>
</ul>
</li>
<li class="component is-current">
<span class="title">Eclipse Che 7 Documentation</span>
<ul class="versions">
<li class="version is-current is-latest">
<a href="../../overview/introduction-to-eclipse-che/">Stable</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../overview/introduction-to-eclipse-che/" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../../overview/introduction-to-eclipse-che/">Eclipse Che 7 Documentation</a></li>
<li>Installation Guide</li>
<li><a href="../installing-che/">Installing Che</a></li>
<li><a href="../installing-che-in-cloud/">Installing Che in cloud</a></li>
<li><a href="./">Installing Che on Microsoft Azure</a></li>
</ul>
</nav>
<div class="edit-this-page"><a href="https://github.com/eclipse/che-docs/edit/master/modules/installation-guide/pages/installing-che-on-microsoft-azure.adoc">Edit this Page</a></div>
</div>
<div class="content">
<article class="doc">
<h1 class="page">Installing Che on Microsoft Azure</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>Microsoft Azure is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers.</p>
</div>
<div class="paragraph">
<p>This section provides information about installing, enabling, and basic use of Che on Microsoft Azure.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="preparing-azure-for-installing-che_installing-che-on-microsoft-azure"><a class="anchor" href="#preparing-azure-for-installing-che_installing-che-on-microsoft-azure"></a>Preparing Azure for installing Che</h2>
<div class="sectionbody">
<div class="paragraph">
<div class="title">Procedure</div>
<p>To set up the Azure environment for Che:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Install the Azure command-line tool. For details, see <a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest">Install the Azure CLI</a>.</p>
<div class="paragraph">
<p>For example, on macOS:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ brew update &amp;&amp; brew install azure-cli</pre>
</div>
</div>
</li>
<li>
<p>Log in to Azure:</p>
<div class="listingblock">
<div class="content">
<pre>$ az login</pre>
</div>
</div>
</li>
<li>
<p>Create an Azure group (to list the locations, use the <code>az account list-locations</code> command):</p>
<div class="listingblock">
<div class="content">
<pre>$ az group create --name eclipseCheResourceGroup --location francecentral
{
"id": "/subscriptions/ab0f7986-a280-481c-a47d-98fa45ff94ca/resourceGroups/eclipseCheResourceGroup",
"location": "francecentral",
"managedBy": null,
"name": "eclipseCheResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": null
}</pre>
</div>
</div>
</li>
<li>
<p>Create the cluster:</p>
<div class="listingblock">
<div class="content">
<pre>$ az aks create --resource-group eclipseCheResourceGroup \
--name eclipse-che --node-count 1 --enable-addons monitoring --generate-ssh-keys</pre>
</div>
</div>
</li>
<li>
<p>Configure <code>kubectl</code>:</p>
<div class="listingblock">
<div class="content">
<pre>$ az aks get-credentials --name eclipse-che --resource-group eclipseCheResourceGroup
Merged "eclipse-che" as current context in /Users/benoitf/.kube/config</pre>
</div>
</div>
</li>
<li>
<p>Check the Kubernetes context:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl config current-context
eclipse-che
$ kubectl get pods --all-namespaces</pre>
</div>
</div>
<div class="paragraph">
<p>All the Pods in the running state are displayed.</p>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installing-ingress-on-kubernetes_installing-che-on-microsoft-azure"><a class="anchor" href="#installing-ingress-on-kubernetes_installing-che-on-microsoft-azure"></a>Installing Ingress on Kubernetes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Eclipse&#160;Che uses Ingress.</p>
</div>
<div class="paragraph">
<div class="title">Procedure</div>
<p>To install Ingress-nginx:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Install the cloud configuration:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/cloud/deploy.yaml</pre>
</div>
</div>
<div class="paragraph">
<p>The following output confirms that the Ingress controller is running:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ kubectl get pods --namespace ingress-nginx
NAME READY STATUS RESTARTS AGE
nginx-ingress-controller-76c86d76c4-gswmg 1/1 Running 0 9m3s</pre>
</div>
</div>
<div class="paragraph">
<p>Wait for the container to run.</p>
</div>
</li>
<li>
<p>Wait for the external IP. Note that a <code>&lt;pending&gt;</code> status for the external IP is shown before the exact external IP address is displayed.</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl get services --namespace ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx LoadBalancer 10.0.97.244 40.89.129.194 80:31107/TCP,443:30629/TCP 8m59s</pre>
</div>
</div>
</li>
<li>
<p>Get the external IP of Ingress-nginx.</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl get services --namespace ingress-nginx \
-o jsonpath='{.items[].status.loadBalancer.ingress[0].ip}'
40.89.129.194</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="configuring-DNS-on-azure_installing-che-on-microsoft-azure"><a class="anchor" href="#configuring-DNS-on-azure_installing-che-on-microsoft-azure"></a>Configuring DNS on Azure</h2>
<div class="sectionbody">
<div class="paragraph">
<div class="title">Procedure</div>
<p>To configure DNS on Azure:</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>In the Azure web console, navigate to <strong>Home</strong> &#8594; <strong>DNS zones</strong>.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/dns-zone-in-microsoft-azure.png"><img src="../_images/installation/dns-zone-in-microsoft-azure.png" alt="dns zone in microsoft azure"></a>
</div>
</div>
</li>
<li>
<p>Create a new zone.</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>In the <strong>Resource group</strong> drop-down list, click <strong>eclipseCheResourceGroup</strong>.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/selecting-the-resource-group.png"><img src="../_images/installation/selecting-the-resource-group.png" alt="selecting the resource group"></a>
</div>
</div>
</li>
<li>
<p>In the <strong>Instance details</strong> section, in the <strong>Name</strong> field, type the name of the domain (<strong>azr.my-ide.cloud</strong>, in this case).</p>
</li>
<li>
<p>Click the <b class="button">Review + create</b> button.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/entering-the-name-fo-the-domain.png"><img src="../_images/installation/entering-the-name-fo-the-domain.png" alt="entering the name fo the domain"></a>
</div>
</div>
</li>
</ol>
</div>
</li>
<li>
<p>Click the <b class="button">Create</b> button.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/completing-the-creation-of-the-zone.png"><img src="../_images/installation/completing-the-creation-of-the-zone.png" alt="completing the creation of the zone"></a>
</div>
</div>
<div class="paragraph">
<p>The created zone and the list of name servers (NS) are displayed in the <strong>DNS Zones</strong> section.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/list-of-created-zones-and-NS.png"><img src="../_images/installation/list-of-created-zones-and-NS.png" alt="list of created zones and NS"></a>
</div>
</div>
<div class="paragraph">
<p>These servers must be configured with the registrar of the domain.</p>
</div>
</li>
<li>
<p>Navigate to the Azure DNS zone, and click the <b class="button">+ Record set</b> button (<span class="image"><img src="../_images/installation/record-set-button.png" alt="record set button" width="25px"></span>).</p>
</li>
<li>
<p>To add a record set:</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p>In the <strong>Name</strong> field, type <em>*</em>.</p>
</li>
<li>
<p>In the <strong>IP Address</strong> field, select the external IP of Ingress-nginx controller that the user had obtained in the <a href="#installing-ingress-on-kubernetes_installing-che-on-microsoft-azure">Installing Ingress on Kubernetes</a> section (<strong>40.89.129.194</strong>, in this case).</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/adding-a-record-set.png"><img src="../_images/installation/adding-a-record-set.png" alt="adding a record set"></a>
</div>
</div>
<div class="paragraph">
<p>The following is an example of an added DNS zone:</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/example-of-an-added-dns-zone.png"><img src="../_images/installation/example-of-an-added-dns-zone.png" alt="example of an added dns zone"></a>
</div>
</div>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="sect2">
<h3 id="enabling-the-TLS-DNS-challenge-on-azure_installing-che-on-microsoft-azure"><a class="anchor" href="#enabling-the-TLS-DNS-challenge-on-azure_installing-che-on-microsoft-azure"></a>Enabling the TLS and DNS challenge on Azure</h3>
<div class="paragraph">
<p>To use Azure DNS and TLS, permissions must be granted to have cert-manager managing the DNS challenge for the <em>Let’s Encrypt</em> service.</p>
</div>
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>Set the variable for the domain:</p>
<div class="listingblock">
<div class="content">
<pre>AZURE_CERT_MANAGER_DNS_NAME=azr.my-ide.cloud</pre>
</div>
</div>
</li>
<li>
<p>Generate the secrets:</p>
<div class="listingblock">
<div class="content">
<pre>AZURE_CERT_MANAGER_SP_APP_ID=$(az ad sp create-for-rbac --name cert-manager-eclipse-che --query "appId" --output tsv)
AZURE_CERT_MANAGER_SP_PASSWORD=$(az ad sp create-for-rbac --name cert-manager-eclipse-che --query "password" --output tsv)</pre>
</div>
</div>
</li>
<li>
<p>Lower the permissions of the service principal (SP):</p>
<div class="listingblock">
<div class="content">
<pre>$ az role assignment delete --assignee $AZURE_CERT_MANAGER_SP_APP_ID --role Contributor</pre>
</div>
</div>
</li>
<li>
<p>Give access to the DNS zone:</p>
<div class="listingblock">
<div class="content">
<pre>DNS_ID=$(az network dns zone show --name $AZURE_CERT_MANAGER_DNS_NAME --resource-group eclipseCheResourceGroup --query "id" --output tsv)
$ az role assignment create --assignee $AZURE_CERT_MANAGER_SP_APP_ID \
--role "DNS Zone Contributor" --scope $DNS_ID</pre>
</div>
</div>
</li>
<li>
<p>Check the permissions:</p>
<div class="listingblock">
<div class="content">
<pre>$ az role assignment list --assignee $AZURE_CERT_MANAGER_SP_APP_ID</pre>
</div>
</div>
</li>
<li>
<p>Get the Service Principal App ID and password for the configuration:</p>
<div class="listingblock">
<div class="content">
<pre>$ echo ID=$AZURE_CERT_MANAGER_SP_APP_ID
$ echo PASSWORD=$AZURE_CERT_MANAGER_SP_PASSWORD</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
<div class="sect2">
<h3 id="creating-a-service-account-secret-on-azure_installing-che-on-microsoft-azure"><a class="anchor" href="#creating-a-service-account-secret-on-azure_installing-che-on-microsoft-azure"></a>Creating a Service Account Secret on Azure</h3>
<div class="paragraph">
<p>The secret must be in the <strong>cert-manager</strong> namespace. Otherwise the secret cannot be found, and cert-manager reports errors.</p>
</div>
<div class="paragraph">
<div class="title">Procedure</div>
<p>To create the secret, run the following command:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ kubectl create secret generic azuredns-config \
--from-literal=CLIENT_SECRET=$AZURE_CERT_MANAGER_SP_PASSWORD -n cert-manager</pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installing-cert-manager-on-azure_installing-che-on-microsoft-azure"><a class="anchor" href="#installing-cert-manager-on-azure_installing-che-on-microsoft-azure"></a>Installing cert-manager on Azure</h2>
<div class="sectionbody">
<div class="olist arabic">
<div class="title">Procedure</div>
<ol class="arabic">
<li>
<p>To install the cert-manager on Azure, create the <strong>cert-manager</strong> namespace:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl create namespace cert-manager
namespace/cert-manager created
$ kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true</pre>
</div>
</div>
<div class="listingblock">
<div class="content">
<pre>$ kubectl apply \
-f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.yaml</pre>
</div>
</div>
</li>
</ol>
</div>
<div class="listingblock">
<div class="content">
<pre>$ kubectl apply \
--validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml</pre>
</div>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Create the <strong>che</strong> namespace if it does not already exist:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl create namespace che
namespace/che created</pre>
</div>
</div>
</li>
<li>
<p>Create the certificate issuer. Enter your email address in the <strong>email</strong> field and set <strong>clientID</strong>, <strong>CLIENT_SECRET</strong> <strong>subscriptionID</strong>, <strong>tenantID</strong>, <strong>hostedZoneName</strong> fields:</p>
<div class="listingblock">
<div class="content">
<pre>cat &lt;&lt;EOF | kubectl apply -f -
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: che-certificate-issuer
spec:
acme:
solvers:
- dns01:
azuredns:
# Service principal clientId (It's the value printed in the previous lines: echo ID=$AZURE_CERT_MANAGER_SP_APP_ID )
clientID: &lt;AZURE_CERT_MANAGER_SP_APP_ID&gt;
# A secretKeyRef to a service principal ClientSecret (password)
# ref: https://docs.microsoft.com/en-us/azure/container-service/kubernetes/container-service-kubernetes-service-principal
clientSecretSecretRef:
name: azuredns-config
# CLIENT_SECRET is the value of AZURE_CERT_MANAGER_SP_PASSWORD
key: &lt;CLIENT_SECRET&gt;
# Azure subscription Id that can be obtained with command:
# $ az account show | jq -r '.id'
subscriptionID: &lt;SUBSCRIPTION_ID&gt;
# Azure AD tenant Id that can be obtained with command:
# $ az account show | jq -r '.tenantId'
tenantID: &lt;TENANT_ID&gt;
resourceGroupName: eclipseCheResourceGroup
# The DNS Zone to use
hostedZoneName: azr.my-ide.cloud
email: florent@example.com
privateKeySecretRef:
name: letsencrypt
server: https://acme-v02.api.letsencrypt.org/directory
EOF</pre>
</div>
</div>
</li>
<li>
<p>Create the certificate. Edit the domain name:</p>
<div class="listingblock">
<div class="content">
<pre>cat &lt;&lt;EOF | kubectl apply -f -
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: che-tls
namespace: {prod-namespace}
spec:
secretName: che-tls
issuerRef:
name: che-certificate-issuer
kind: ClusterIssuer
dnsNames:
- '*.azr.my-ide.cloud'
EOF</pre>
</div>
</div>
</li>
<li>
<p>Check that the <code>issuerRef</code> name is the same as the <code>ClusterIssuer</code>. A new DNS challenge is added to the DNS zone for <em>Let’s Encrypt</em>.</p>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/new-dns-challenge-added.png"><img src="../_images/installation/new-dns-challenge-added.png" alt="new dns challenge added"></a>
</div>
</div>
<div class="paragraph">
<p>The cert-manager logs contain information about the DNS challenge.</p>
</div>
</li>
<li>
<p>Obtain the logs using the following command (here, <code>cert-manager-8d478bb45-2924h</code> is the name of the cert-manager Pod):</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl logs -f -n cert-manager cert-manager-8d478bb45-2924h</pre>
</div>
</div>
</li>
<li>
<p>Ensure that the certificate is ready:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl describe certificate/che-tls -n che
Status:
Conditions:
Last Transition Time: 2019-07-29T13:50:35Z
Message: Certificate issuance in progress. Temporary certificate issued.
Reason: TemporaryCertificate
Status: False
Type: Ready
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Generated 47s cert-manager Generated new private key
Normal GenerateSelfSigned 47s cert-manager Generated temporary self signed certificate
Normal OrderCreated 47s cert-manager Created Order resource "che-tls-3529929423”</pre>
</div>
</div>
</li>
<li>
<p>Wait for the status to show <strong>OK</strong> and ensure that the log contains the following:</p>
<div class="listingblock">
<div class="content">
<pre>$ kubectl describe certificate/che-tls -n {prod-namespace}
Name: che-tls
Namespace: che
Labels: &lt;none&gt;
Annotations: API Version: cert-manager.io/v1alpha3
Kind: Certificate
Metadata:
Creation Timestamp: 2020-07-29T10:32:49Z
Generation: 1
Resource Version: 7961
Self Link: /apis/cert-manager.io/v1alpha3/namespaces/che/certificates/che-tls
UID: 2034c6d5-bce3-4ce8-8489-df31d02b84e9
Spec:
Dns Names:
*.azr.my-ide.cloud
Issuer Ref:
Kind: ClusterIssuer
Name: che-certificate-issuer
Secret Name: che-tls
Status:
Conditions:
Last Transition Time: 2020-07-29T10:35:05Z
Message: Certificate is up to date and has not expired
Reason: Ready
Status: True
Type: Ready
Not After: 2020-10-27T09:35:02Z
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal GeneratedKey 5m49s cert-manager Generated a new private key
Normal Requested 5m49s cert-manager Created new CertificateRequest resource "che-tls-2082883576"
Normal Issued 3m34s cert-manager Certificate issued successfully</pre>
</div>
</div>
</li>
</ol>
</div>
</div>
</div>
<div class="sect1">
<h2 id="installing-che-on-azure-using-the-chectl-command_installing-che-on-microsoft-azure"><a class="anchor" href="#installing-che-on-azure-using-the-chectl-command_installing-che-on-microsoft-azure"></a>Installing Che on Azure using the chectl command</h2>
<div class="sectionbody">
<div class="ulist">
<div class="title">Prerequisites</div>
<ul>
<li>
<p>The <code>chectl</code> management tool is available. See <a href="../using-the-chectl-management-tool/" class="page">Using the chectl management tool</a>.</p>
</li>
<li>
<p>The <code>helm</code> tool is available, with version 2.15 or higher. See <a href="https://helm.sh/">Helm</a>.</p>
</li>
</ul>
</div>
<div class="ulist">
<div class="title">Procedure</div>
<ul>
<li>
<p>To install Che, run the following <code>chectl</code> command:</p>
<div class="listingblock">
<div class="content">
<pre>$ chectl server:start --installer=helm --platform=k8s \ --domain=azr.my-ide.cloud --multiuser
› Current Kubernetes context: 'Eclipse&#160;Che'
✔ Verify Kubernetes API...OK
✔ 👀 Looking for an already existing Eclipse&#160;Che instance
✔ Verify if Eclipse&#160;Che is deployed into namespace "che"...it is not
✔ ✈️ Kubernetes preflight checklist
✔ Verify if kubectl is installed
✔ Verify remote kubernetes status...done.
✔ Check Kubernetes version: Found v1.16.10.
✔ Verify domain is set...set to azr.my-ide.cloud.
↓ Check if cluster accessible [skipped]
Eclipse&#160;Che logs will be available in '/var/folders/tg/_5rxbhmj4xncz4szvpgswrmc0000gn/T/chectl-logs/1596019249675'
✔ Start following logs
↓ Start following Operator logs [skipped]
✔ Start following Eclipse&#160;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: Consider using the more reliable 'OLM' installer when deploying a stable release of Eclipse&#160;Che (--installer=olm).
✔ 🏃‍ Running Helm to install Eclipse&#160;Che
✔ Verify if helm is installed
✔ Check Helm Version: Found v3.1.2+gd878d4d
✔ Create Namespace (che)...does already exist.
✔ Check Eclipse&#160;Che TLS certificate...TLS certificate secret found
✔ Check Cluster Role Binding...does not exists.
✔ Preparing Eclipse&#160;Che Helm Chart...done.
✔ Updating Helm Chart dependencies...done.
✔ Deploying Eclipse&#160;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&#160;Che pod bootstrap
✔ scheduling...done.
✔ downloading images...done.
✔ starting...done.
✔ Retrieving Eclipse&#160;Che server URL... https://che-che.azr.my-ide.cloud
✔ Eclipse&#160;Che status check
✔ Show important messages
✔ Autogenerated Keycloak credentials are: "xxx:xxx"
Command server:start has completed successfully.</pre>
</div>
</div>
</li>
</ul>
</div>
<div class="paragraph">
<p>Track installation events with:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>$ kubectl get events --namespace che --sort-by=.metadata.creationTimestamp</pre>
</div>
</div>
<div class="paragraph">
<p>Keycloak and Che now have valid wildcard certificates.</p>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/wildcard-certificates-for-keycloak-che.png"><img src="../_images/installation/wildcard-certificates-for-keycloak-che.png" alt="wildcard certificates for keycloak che"></a>
</div>
</div>
<div class="imageblock">
<div class="content">
<a class="image" href="../_images/installation/che-user-dashboard.png"><img src="../_images/installation/che-user-dashboard.png" alt="che user dashboard"></a>
</div>
<div class="title">Figure 1. Che user dashboard</div>
</div>
</div>
</div>
</article>
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
</div>
</main>
</div>
<footer class="footer">
<div><a href="https://www.eclipse.org" target="_blank">Eclipse Foundation</a> |
<a href="https://www.eclipse.org/legal/privacy.php" target="_blank">Privacy Policy</a> |
<a href="https://www.eclipse.org/legal/termsofuse.php" target="_blank">Terms of Use</a> |
<a href="https://www.eclipse.org/legal/epl-2.0/" target="_blank">Eclipse Public License</a> |
<a href="https://www.eclipse.org/legal" target="_blank">Legal Resources</a></div>
</footer>
<script src="../../../_/js/site.js"></script>
<script async src="../../../_/js/vendor/highlight.js"></script>
</body>
</html>