blob: ee9e8a5673af4b0568c45c8a3cd4e8c942a0b609 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-112407000-2"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-112407000-2');
</script>
<!-- Google Tag Manager -->
<script>
(function (w, d, s, l, i) {
w[l] = w[l] || [];
w[l].push({
'gtm.start': new Date().getTime(),
event: 'gtm.js'
});
var f = d.getElementsByTagName(s)[0],
j = d.createElement(s),
dl = l != 'dataLayer' ? '&l=' + l : '';
j.async = true;
j.src =
'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
f.parentNode.insertBefore(j, f);
})(window, document, 'script', 'dataLayer', 'GTM-KS8HHSF');
</script>
<!-- End Google Tag Manager -->
<head>
<title>Deploying Codewind remotely | Codewind</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Deploying Codewind remotely">
<meta name="keywords" content="users, projects, Kubernetes, LDAP, user management, access management, login, deployment, pod, security, securing cloud connection, remote deployment of Code..."/>
<link rel="icon" type="image/png" sizes="16x16" href="images/favicon/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="images/favicon/favicon-32x32.png">
<link href="https://fonts.googleapis.com/css?family=IBM+Plex+Sans:300,400,600&display=swap" rel="stylesheet">
<!-- Bootstrap CSS CDN -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />
<link rel="stylesheet" href="css/styles.css">
<link rel="stylesheet" href="css/docs.css">
<link rel="stylesheet" href="css/learn.css">
<link rel="stylesheet" href="css/blog.css">
<link rel="stylesheet" href="css/guides.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/themes/prism.min.css">
</head>
<body data-spy="scroll" data-target="#toc">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-KS8HHSF"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div class="main">
<!-- Bootstrap NavBar -->
<nav class="navbar navbar-expand-lg navbar-light cw-banner fixed-top" aria-label="topnav">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="navbar-brand" href="/codewind/">
<img alt="Codewind logo image" title="Codewind logo image" src="images/header/header-logo.svg" class="cw-header-logo" alt="">
</a>
<div class="collapse navbar-collapse justify-content-end cw-navbar-padding" id="navbarNavDropdown">
<ul class="navbar-nav cw-navbar-nav">
<li class="nav-item cw-navbar-item cw-header-link-docs">
<a class="nav-link cw-nav-link cw-header-link-text" href="learn.html">Learn</a>
</li>
<li class="nav-item cw-navbar-item cw-header-link-news">
<a class="nav-link cw-nav-link cw-header-link-text" href="news.html">News</a>
</li>
<li class="nav-item cw-navbar-item cw-header-link-blog">
<a class="nav-link cw-nav-link cw-header-link-text" href="blog.html">Blog</a>
</li>
<li class="nav-item cw-navbar-item cw-header-link-guides">
<a class="nav-link cw-nav-link cw-header-link-text" href="guides.html">Guides</a>
</li>
<li class="nav-item cw-navbar-item cw-header-link">
<a class="nav-link cw-nav-link" href="https://github.com/eclipse/codewind"><img alt="Codewind Github" class="banner-image" title="Codewind Github" data-toggle="tooltip" data-placement="top" id="cw_github_stars" title="..." src="images/header/github.svg"/></a>
</li>
<li class="nav-item cw-navbar-item cw-header-link">
<a class="nav-link cw-nav-link" href="https://twitter.com/EclipseCodewind"><img alt="Codewind Twitter" class="banner-image" title="Codewind Twitter" src="images/header/twitter.png"/></a>
</li>
<li class="nav-item cw-navbar-item cw-header-link">
<a class="nav-link cw-nav-link" href="https://mattermost.eclipse.org/eclipse/channels/eclipse-codewind"><img alt="Codewind Mattermost" class="banner-image" title="Codewind Mattermost" src="images/header/mattermost.png"/></a>
</li>
<li class="nav-item cw-navbar-item cw-header-link">
<a class="nav-link cw-nav-link" href="https://www.youtube.com/channel/UCnKCVK6RFDyHFqUmXlAhCHQ"><img alt="Codewind YouTube" class="banner-image" title="Codewind YouTube" src="images/header/youtube.png"/></a>
</li>
<!-- li class="nav-item cw-navbar-item" id="download-li">
<button onClick="window.location.href='https://microclimate.dev/download/codewind';" type="button" class="btn cw-download-button">Download</button>
<a href="https://microclimate.dev/download/codewind" class="nav-link cw-nav-link cw-download-link" href="#">Download</a>
</li> -->
<!-- Smaller devices menu END -->
</ul>
</div>
</nav>
<!-- End Bootstrap NavBar -->
<!-- Bootstrap row -->
<div class="row" id="body-row">
<div id="sidebar-container" class="bg-light" role="navigation" aria-label="sidebar">
<!-- Bootstrap List Group -->
<ul class="list-group sticky-top bg-light cw-sticky-offset">
<a href="overview.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="overview.html">
What is Codewind?
</a>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_getting_started" id="#_getting_started"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">Getting started<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_getting_started">
<a href="gettingstarted-overview.html" class="bg-light list-group-item" data-parent="#_getting_started"
data-url="gettingstarted-overview.html">Overview: Getting started</a>
<a href="#_vs_code" id="#_vs_code"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-toggle="collapse" data-parent="#_getting_started" aria-expanded="false">VS Code<span
class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu-submenu collapse" id="_vs_code">
<a href="vsc-getting-started.html" class="bg-light list-group-item" data-parent="#_vs_code"
data-url="vsc-getting-started.html">1. Installing Codewind for VS Code</a>
<a href="vsc-firstproject.html" class="bg-light list-group-item" data-parent="#_vs_code"
data-url="vsc-firstproject.html">2. Creating your first Codewind project with Codewind for VS Code</a>
<a href="vsc-codechange.html" class="bg-light list-group-item" data-parent="#_vs_code"
data-url="vsc-codechange.html">3. Making a code change with VS Code</a>
</div>
<a href="#_eclipse" id="#_eclipse"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-toggle="collapse" data-parent="#_getting_started" aria-expanded="false">Eclipse<span
class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu-submenu collapse" id="_eclipse">
<a href="eclipse-getting-started.html" class="bg-light list-group-item" data-parent="#_eclipse"
data-url="eclipse-getting-started.html">1. Installing Codewind for Eclipse</a>
<a href="eclipse-firstproject.html" class="bg-light list-group-item" data-parent="#_eclipse"
data-url="eclipse-firstproject.html">2. Creating your first Codewind project with Codewind for Eclipse</a>
<a href="eclipse-codechange.html" class="bg-light list-group-item" data-parent="#_eclipse"
data-url="eclipse-codechange.html">3. Making a code change with Eclipse</a>
</div>
<a href="#_intellij" id="#_intellij"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-toggle="collapse" data-parent="#_getting_started" aria-expanded="false">IntelliJ<span
class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu-submenu collapse" id="_intellij">
<a href="intellij-getting-started.html" class="bg-light list-group-item" data-parent="#_intellij"
data-url="intellij-getting-started.html">1. Installing Codewind for IntelliJ</a>
<a href="intellij-firstproject.html" class="bg-light list-group-item" data-parent="#_intellij"
data-url="intellij-firstproject.html">2. Creating your first Codewind project with Codewind for IntelliJ</a>
<a href="intellij-codechange.html" class="bg-light list-group-item" data-parent="#_intellij"
data-url="intellij-codechange.html">3. Making a code change with IntelliJ</a>
</div>
</div>
<a href="remote-deploying-codewind.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="remote-deploying-codewind.html">
Deploying Codewind remotely
</a>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_using_codewind_remotely" id="#_using_codewind_remotely"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">Using Codewind remotely<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_using_codewind_remotely">
<a href="remote-codewind-overview.html" class="bg-light list-group-item" data-parent="#_using_codewind_remotely"
data-url="remote-codewind-overview.html">1. Overview: Using Codewind remotely</a>
<a href="#_2_connecting_your_ide_to_remote_codewind" id="#_2_connecting_your_ide_to_remote_codewind"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-toggle="collapse" data-parent="#_using_codewind_remotely" aria-expanded="false">2. Connecting your IDE to remote Codewind<span
class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu-submenu collapse" id="_2_connecting_your_ide_to_remote_codewind">
<a href="remotedeploy-vscode.html" class="bg-light list-group-item" data-parent="#_2_connecting_your_ide_to_remote_codewind"
data-url="remotedeploy-vscode.html">Connecting VS Code to remote Codewind</a>
<a href="remotedeploy-eclipse.html" class="bg-light list-group-item" data-parent="#_2_connecting_your_ide_to_remote_codewind"
data-url="remotedeploy-eclipse.html">Connecting Eclipse to remote Codewind</a>
</div>
<a href="remote-setupregistries.html" class="bg-light list-group-item" data-parent="#_using_codewind_remotely"
data-url="remote-setupregistries.html">3. Adding an image registry in remote Codewind</a>
<a href="#_4_creating_and_importing_projects" id="#_4_creating_and_importing_projects"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-toggle="collapse" data-parent="#_using_codewind_remotely" aria-expanded="false">4. Creating and importing projects<span
class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu-submenu collapse" id="_4_creating_and_importing_projects">
<a href="remotedeploy-projects-vscode.html" class="bg-light list-group-item" data-parent="#_4_creating_and_importing_projects"
data-url="remotedeploy-projects-vscode.html">VS Code</a>
<a href="remotedeploy-projects-eclipse.html" class="bg-light list-group-item" data-parent="#_4_creating_and_importing_projects"
data-url="remotedeploy-projects-eclipse.html">Eclipse</a>
</div>
</div>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_using_codewind_on_eclipse_che" id="#_using_codewind_on_eclipse_che"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">Using Codewind on Eclipse Che<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_using_codewind_on_eclipse_che">
<a href="che-installinfo.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-installinfo.html">1. Installing Eclipse Che for Codewind</a>
<a href="che-setupregistries.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-setupregistries.html">2. Adding an image registry in Codewind on Eclipse Che</a>
<a href="openshiftregistry.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="openshiftregistry.html">2a. Adding the OpenShift internal registry with Codewind</a>
<a href="che-createcodewindworkspace.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-createcodewindworkspace.html">3. Creating a Codewind workspace in Eclipse Che</a>
<a href="che-createfirstproject.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-createfirstproject.html">4. Creating your first Codewind project with Codewind for Eclipse Che</a>
<a href="che-codechange.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-codechange.html">5. Making a code change with Codewind for Eclipse Che</a>
<a href="che-uninstall.html" class="bg-light list-group-item" data-parent="#_using_codewind_on_eclipse_che"
data-url="che-uninstall.html">6. Uninstalling Codewind for Eclipse Che</a>
</div>
<a href="che-odo-support.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="che-odo-support.html">
OpenShift Do (odo) support in Codewind
</a>
<a href="workingwithtemplates.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="workingwithtemplates.html">
Working with templates
</a>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_developing_projects" id="#_developing_projects"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">Developing projects<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_developing_projects">
<a href="checkingstatuses.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="checkingstatuses.html">Understanding application and build statuses</a>
<a href="importing-existing-projects.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="importing-existing-projects.html">Importing existing projects</a>
<a href="project-actions.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="project-actions.html">Project actions</a>
<a href="project-settings.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="project-settings.html">Project settings</a>
<a href="referencing-files.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="referencing-files.html">Referencing files external to a project</a>
<a href="private-registries.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="private-registries.html">Developing with packages from private registries and repositories</a>
<a href="offline-codewind.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="offline-codewind.html">Using Codewind offline</a>
<a href="debugging.html" class="bg-light list-group-item" data-parent="#_developing_projects"
data-url="debugging.html">Debugging in Codewind</a>
</div>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_performance_monitoring" id="#_performance_monitoring"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">Performance monitoring<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_performance_monitoring">
<a href="metrics-dashboard.html" class="bg-light list-group-item" data-parent="#_performance_monitoring"
data-url="metrics-dashboard.html">Understanding the Metrics Dashboard</a>
<a href="performance.html" class="bg-light list-group-item" data-parent="#_performance_monitoring"
data-url="performance.html">Monitoring applications with the Performance Dashboard</a>
</div>
<!-- must be a valid css selector, or will break collapse function -->
<a href="#_openapi_tools" id="#_openapi_tools"
class="bg-light list-group-item list-group-item-action flex-column align-items-start" data-toggle="collapse"
aria-expanded="false">OpenAPI Tools<span class="submenu-icon"></span></a>
<div class="cw-sidebar-div cw-sidebar-submenu collapse" id="_openapi_tools">
<a href="open-api-tools-for-vscode.html" class="bg-light list-group-item" data-parent="#_openapi_tools"
data-url="open-api-tools-for-vscode.html">Codewind OpenAPI Tools for VS Code</a>
<a href="open-api-tools-for-eclipse.html" class="bg-light list-group-item" data-parent="#_openapi_tools"
data-url="open-api-tools-for-eclipse.html">Codewind OpenAPI Tools for Eclipse</a>
</div>
<a href="che-tektonpipelines.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="che-tektonpipelines.html">
Configuring Codewind for Tekton pipelines
</a>
<a href="troubleshooting.html"
class="bg-light list-group-item list-group-item-action flex-column align-items-start"
data-url="troubleshooting.html">
Troubleshooting
</a>
</ul>
<!-- List Group END-->
</div>
<!-- MAIN -->
<div id="content-container">
<div class="py-5 px-5">
<div class="cw-docs-spacer"></div>
<div role="main"><h1 id="deploying-codewind-remotely">Deploying Codewind remotely</h1>
<p>Codewind can be used in one of three ways: <a href="./gettingstarted.html">locally</a>, <a href="./che-installinfo.html">hosted</a> as an application on the cloud, or remotely.</p>
<p>By deploying and using Codewind remotely, you can develop your code locally by using your local Codewind installation and then build and run your application in the cloud. Remote use of Codewind frees up desktop resources by using the cloud’s resources to build and run applications.</p>
<p>Follow the instructions to deploy Codewind remotely. After you install your local IDE and configure Codewind for local use, you will:</p>
<ol>
<li>Install the Codewind operator in your cloud.</li>
<li>Deploy your Codewind instances.</li>
</ol>
<p><strong>To connect your local IDE to your remote deployment of Codewind after it is deployed remotely:</strong> See <a href="remote-codewind-overview.html">Using Codewind remotely</a>.</p>
<p><strong>To remove a remote deployment of Codewind:</strong> See <a href="https://github.com/eclipse/codewind-operator/blob/master/README.md#removing-a-codewind-instance">Removing a Codewind instance</a>.</p>
<h2 id="prerequisites">Prerequisites</h2>
<p>Complete these steps before you deploy Codewind to the cloud:</p>
<ol>
<li><strong>Install Codewind into your preferred IDE on your local computer.</strong>
For more information, select from the following IDEs:
<ul>
<li><a href="./eclipse-getting-started.html">Getting started with Codewind for Eclipse</a></li>
<li><a href="./vsc-getting-started.html">Getting started with Codewind for VS Code</a></li>
<li><a href="./intellij-getting-started.html">Getting started with Codewind for IntelliJ</a></li>
</ul>
</li>
<li><strong>Have an active Kubernetes context and log in to the cluster.</strong>
<ul>
<li>Codewind is validated on the following Kubernetes distributions:
<ul>
<li>IBM Cloud Kubernetes Service</li>
<li>OpenShift 3.11</li>
<li>OpenShift 4.3</li>
<li>OpenShift in IBM Public Cloud</li>
<li>Stand-alone Kubernetes</li>
<li>Kubernetes in Docker</li>
</ul>
</li>
<li>However, Codewind can run on any Kubernetes distribution that meets the following requirements:
<ul>
<li>Kubernetes 1.11 or later is included.</li>
<li>ReadWriteMany (RWX) persistent volumes are supported.</li>
<li>The Nginx Ingress Controller is installed.</li>
</ul>
</li>
<li>If you want to test and document support for other clouds, you can <a href="https://github.com/eclipse/codewind">contribute in GitHub</a>.</li>
</ul>
</li>
<li>
<p><strong>For Linux desktop, ensure that your workstation is set up to use a Keyring.</strong> An example of a Keyring on Linux is Secret Service.</p>
</li>
<li><strong>Optional:</strong> Install a Git command line client. To download the Git command line client, see <a href="https://git-scm.com/download">https://git-scm.com/download</a>.</li>
</ol>
<h2 id="1-clone-or-download-the-codewind-operator-repository">1. Clone or download the Codewind operator repository</h2>
<p>The Codewind operator helps with the deployment of Codewind instances in an OpenShift or Kubernetes cluster. Your system administrator usually installs the Codewind operator.</p>
<p>Download the Codewind operator from the <a href="https://github.com/eclipse/codewind-operator">codewind-operator repository</a>, or if you installed Git, clone the <code class="highlighter-rouge">codewind-operator</code> repository, for example:</p>
<p><code class="highlighter-rouge">$ git clone https://github.com/eclipse/codewind-operator -b 0.12.0</code></p>
<p>For more information about the Codewind operator and the installation process, see the <a href="https://github.com/eclipse/codewind-operator/blob/master/README.md">Codewind operator readme file</a>.</p>
<h2 id="2-install-the-operator-into-your-cluster-and-deploy-keycloak">2. Install the operator into your cluster and deploy Keycloak</h2>
<ol>
<li><a href="#2a-install-the-operator">Install the operator</a>.</li>
<li><a href="#2b-change-the-admin-password-for-the-admin-user">Change the admin password for the admin user</a>.</li>
<li><a href="#2c-update-the-keycloak-password-in-the-operator-secret-with-the-new-password">Update the Keycloak password in the operator secret with the new password</a>.</li>
</ol>
<h3 id="2a-install-the-operator">2a. Install the operator</h3>
<p>Use the <code class="highlighter-rouge">install.sh</code> script that is located in your cloned Codewind operator repository <code class="highlighter-rouge">deploy</code> folder to install the operator into your cluster and deploy Keycloak. If you use Windows, use a Unix-like shell such as Windows Subsystem for Linux, Git Bash, or MinGW to run the operator installer shell script. For example:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">cd </span>deploy
<span class="nv">$ </span>./install.sh operator <span class="nt">-i</span> &lt;ingress_domain&gt;
</code></pre></div></div>
<p>Add the option <code class="highlighter-rouge">-o</code> flag if you are installing into an OpenShift 3.11 cluster, for example:</p>
<p><code class="highlighter-rouge">$ ./install.sh operator -i &lt;ingress_domain&gt; -o</code></p>
<p>The script installs the operator into your cluster, deploys Keycloak, and returns the Keycloak <strong>Access URL</strong>. The command returns the following example output:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>NAME NAMESPACE AGE ACCESS
devex001 codewind 122m https://codewind-keycloak-devex001.&lt;ingress-domain&gt;
</code></pre></div></div>
<h3 id="2b-change-the-admin-password-for-the-admin-user">2b. Change the admin password for the admin user</h3>
<p>You must prepare Keycloak for Codewind by changing the admin password that is given to the <code class="highlighter-rouge">admin</code> user in the previous step.</p>
<ol>
<li>
<p>Access the Administration Console by clicking the <strong>Access URL</strong> link provided by Step 2a. To locate the <strong>Access URL</strong> link, enter the <code class="highlighter-rouge">$ kubectl get keycloaks -n codewind</code> command.</p>
</li>
<li>
<p>Log in to Keycloak by using the Keycloak admin credentials.
username: <code class="highlighter-rouge">admin</code>
password: <code class="highlighter-rouge">admin</code></p>
</li>
<li>
<p><strong>Important:</strong> After you log in, change the admin password by clicking the <strong>Admin</strong> link on the page. Then, click <strong>Manage Account</strong>&gt;<strong>Password</strong> and set a new replacement administrator password:</p>
<p><img src="./images/remote/admin_link_manage_account.png" alt="Admin link" /></p>
</li>
<li>
<p>Switch back to the admin console using the link or log out and log back in to Keycloak as the admin user with your new admin password.</p>
</li>
</ol>
<p>You updated the Keycloak password. The next step updates the Keycloak password in the operator secret to match it.</p>
<h3 id="2c-update-the-keycloak-password-in-the-operator-secret-with-the-new-password">2c. Update the Keycloak password in the operator secret with the new password</h3>
<p>When the Codewind operator needs to update Keycloak, it uses login credentials that are saved in a Kubernetes secret. By default during initial deployment, that secret has a username and password of <strong>admin</strong>. If you changed your admin password in a previous step, you need to update the Keycloak secret to match.</p>
<p>The secret is installed in the same namespace as the Codewind operator and is named <code class="highlighter-rouge">secret-keycloak-user-&lt;keycloakname&gt;</code>.</p>
<p>If you have an administration UI for your cluster, you can use it to locate the secret and edit the <code class="highlighter-rouge">keycloak-admin-password</code> field, or you can use the command line tools:</p>
<p><code class="highlighter-rouge">$ kubectl edit secret secret-keycloak-user-&lt;keycloakname&gt; -n codewind</code></p>
<p>or</p>
<p><code class="highlighter-rouge">$ oc edit secret secret-keycloak-user-&lt;keycloakname&gt; -n codewind</code></p>
<p><strong>Note:</strong> Using the command line tools requires an extra step to base64 encode your password string before you save it into the secret. You can base64 encode your new password by using this command:</p>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">$ </span><span class="nb">echo</span> <span class="nt">-n</span> <span class="s1">'&lt;myNewPassword&gt;'</span> | <span class="nb">base64
</span><span class="nv">bXlOZXdQYXNzd29yZA</span><span class="o">==</span>
</code></pre></div></div>
<p>Then, save <code class="highlighter-rouge">bXlOZXdQYXNzd29yZA==</code> as the value for <code class="highlighter-rouge">keycloak-admin-password</code> rather than the clear text <code class="highlighter-rouge">&lt;myNewPassword&gt;</code>.</p>
<h2 id="3-add-a-user-to-keycloak">3. Add a user to Keycloak</h2>
<ol>
<li>
<p>Access the Administration Console by clicking the <strong>Access URL</strong> link provided by Step 2a. To locate the <strong>Access URL</strong> link, enter the <code class="highlighter-rouge">$ kubectl get keycloaks -n codewind</code> command.</p>
</li>
<li>
<p>Click <strong>Administration Console</strong> and log in to Keycloak with <code class="highlighter-rouge">admin</code> as the default login username and <code class="highlighter-rouge">password</code>, which is the new password that you set in Step 2b.</p>
</li>
<li>
<p>Ensure that the <code class="highlighter-rouge">Realm</code> is set to <strong>Codewind</strong> by clicking the Codewind arrow on the <strong>Administration Console</strong> page:</p>
<p><img src="./images/remote/codewind_dropdown.png" alt="Codewind arrow" /></p>
<p>Select <strong>Codewind</strong> if necessary and complete these steps:</p>
<ul>
<li>Click <strong>Users</strong>.</li>
<li>Click <strong>Add user</strong>.</li>
<li>Complete the <strong>username</strong> field.</li>
<li>Complete the <strong>email</strong>, <strong>Firstname</strong>, and <strong>Lastname</strong> fields as required.</li>
<li>Ensure <strong>user enabled</strong> is <strong>On</strong>.</li>
<li>Click <strong>Save</strong>.</li>
</ul>
</li>
<li>
<p>Assign an initial password to the user account by clicking <strong>Credentials</strong>. Then, add the initial password.</p>
</li>
<li>
<p>The <strong>Temporary = On</strong> field requires you to change your password during first connection. Set <strong>Temporary = Off</strong> to make this password valid for continuous use and to prevent the need to change it on first connection.</p>
</li>
<li>
<p>Click <strong>Set Password</strong> to save the changes. Log out of the Keycloak admin page.</p>
</li>
</ol>
<h2 id="4-deploy-a-codewind-instance">4. Deploy a Codewind instance</h2>
<p>Use the <code class="highlighter-rouge">install.sh</code> script in the Codewind operator repository to deploy a Codewind instance:</p>
<p><code class="highlighter-rouge">$ ./install.sh codewind -n &lt;instanceName&gt; -u &lt;registeredUsername&gt;</code></p>
<ul>
<li><code class="highlighter-rouge">instanceName</code> is the unique name that you specify for this Codewind instance.</li>
<li><code class="highlighter-rouge">registeredUsername</code> is the name of the user that you added in <a href="#3-add-a-new-user-to-keycloak">Step 3</a>.</li>
</ul>
<p>Your Codewind instance is deployed. Access it by way of the <strong>Access URL</strong> returned by the script in a browser or by copying the URL into a new connection in your IDE.</p>
<p><strong>Note:</strong> When you are installing on Windows, the script runs and then closes the Git Bash window. To retrieve the Access URLs for Codewind, enter the following command:</p>
<p><code class="highlighter-rouge">$ kubectl get codewind -n codewind</code></p>
<p>This command returns output in the format of the following example:</p>
<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>NAME USERNAME NAMESPACE AGE KEYCLOAK REGISTRATION ACCESSURL
devex001 jane codewind 119m devex001 Complete https://codewind-gatekeeper-devex001.&lt;ingress-domain&gt;
</code></pre></div></div>
<h2 id="next-steps">Next steps</h2>
<p>You finished installing the Codewind operator and deployed a Codewind instance.</p>
<p>In the next topic, you learn how to <a href="./remote-codewind-overview.html">use Codewind remotely</a>.</p>
<p>You can configure your IDE to connect to Codewind in the cloud. For more information, see <a href="remotedeploy-vscode.html">Connecting your VS Code to remote Codewind</a> or <a href="./remotedeploy-eclipse.html">Connecting your Eclipse to remote Codewind</a>.</p>
<p>If you want to remove a Codewind instance, see <a href="https://github.com/eclipse/codewind-operator/blob/master/README.md#removing-a-codewind-instance">Removing a Codewind instance</a>.</p>
</div>
</div>
<div class="py-5 px-5 text-right">
Last update: Jun 02, 2020
</div>
</div>
</div>
<!-- footer row -->
<footer>
<div id="footer-div-mobile">
<div class="row">
<div class="col-sm-12 text-center">
<span>Useful Links:</span>
<br/><br/>
<a class="cw-footer-links" href="http://www.eclipse.org">Eclipse Foundation</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/termsofuse.php">Website Terms of Use</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal">Legal</a><br/>
</div>
</div>
<div class="cw_footer_display_flex cw-footer-same-height cw-footer-center">
<div class="cw_footer_display_icons row">
<div class="cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="mailto:codewind-dev@eclipse.org"><img alt="Send us an email" title="Send us an email" src="images/footer/email-icon.svg" class="cw-logo" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="https://twitter.com/EclipseCodewind"><img alt="Codewind Twitter" title="Codewind Twitter" src="images/footer/twitter-logo.svg" class="cw-logo" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="https://github.com/eclipse/codewind"><img alt="Codewind Github" title="Codewind Github" src="images/footer/github-logo.svg"
class="cw-logo" /></a>
</div>
</div>
</div>
<div class=" cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="https://mattermost.eclipse.org/eclipse/channels/eclipse-codewind"><img alt="Codewind Mattermost" title="Codewind Mattermost" src="images/footer/mattermost-logo.png" class="cw-logo-mm" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="https://www.youtube.com/channel/UCnKCVK6RFDyHFqUmXlAhCHQ"><img alt="Codewind YouTube" title="Codewind YouTube" src="images/footer/youtube-logo-dark.svg"
class="cw-logo" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center col-md-3 col-sm-6 col-xs-12">
<div>
<div>
<a href="http://www.eclipse.org"><img class="cw-logo-eclipse-mobile" alt="Eclipse" title="Eclipse" src="images/footer/eclipse.svg"/></a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row cw-footer-desktop" id="footer-div">
<div class="cw-footer-left">
<div class="px-5 cw-font-12>
<span class="cw-font-14">Useful Links:</span>
<br/><br/>
<a class="cw-footer-links" href="http://www.eclipse.org">Eclipse Foundation</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/termsofuse.php">Website Terms of Use</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a><br/>
<a class="cw-footer-links" href="http://www.eclipse.org/legal">Legal</a><br/>
</div>
</div>
<div class="cw-footer-border-right"></div>
<div class="cw_footer_display_flex cw-footer-same-height cw-footer-center">
<div class="cw_footer_display_icons">
<div class="cw-footer-col text-center">
<div>
<div>
<a href="mailto:codewind-dev@eclipse.org"><img alt="Send us an email" title="Send us an email" src="images/footer/email-icon.svg" class="cw-logo" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center">
<div>
<div>
<a href="https://twitter.com/EclipseCodewind"><img alt="Codewind Twitter" title="Codewind Twitter" src="images/footer/twitter-logo.svg" class="cw-logo" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center">
<div>
<div>
<a href="https://github.com/eclipse/codewind"><img alt="Codewind Github" title="Codewind Github" src="images/footer/github-logo.svg"
class="cw-logo" /></a>
</div>
</div>
</div>
<div class=" cw-footer-col text-center">
<div class="cw-logo-mm" >
<div class="cw-logo-mm" >
<a href="https://mattermost.eclipse.org/eclipse/channels/eclipse-codewind"><img alt="Codewind Mattermost" title="Codewind Mattermost" src="images/footer/mattermost-logo.png" class="cw-logo-mm" /></a>
</div>
</div>
</div>
<div class="cw-footer-col text-center">
<div>
<div>
<a href="https://www.youtube.com/channel/UCnKCVK6RFDyHFqUmXlAhCHQ"><img alt="Codewind YouTube" title="Codewind YouTube" src="images/footer/youtube-logo-dark.svg"
class="cw-logo" /></a>
</div>
</div>
</div>
</div>
</div>
<div class="cw-footer-border-right"></div>
<div class="cw-footer-right cw-footer-same-height cw-footer-vcenter">
<div class="cw-footer-eclipse-img cw-footer-same-height px-5 ">
<a href="http://www.eclipse.org">
<img alt="Eclipse" title="Eclipse" src="images/footer/eclipse.svg"/>
</a>
</div>
</div>
</div>
</footer>
<!-- footer row END -->
<!-- Main Col END -->
<!-- Jquery -->
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
</script>
<!-- Font Awesome JS -->
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/solid.js"
integrity="sha384-tzzSw1/Vo+0N5UhStP3bvwWPq+uvzCMfrN1fEFe+xBmv1C/AtVX5K0uZtmcHitFZ" crossorigin="anonymous">
</script>
<script defer src="https://use.fontawesome.com/releases/v5.0.13/js/fontawesome.js"
integrity="sha384-6OIrr52G08NpOFSZdxxz1xdNSndlD4vdcf/q2myIUVO0VsqaGHJsB0RaBE01VTOY" crossorigin="anonymous">
</script>
<script src="js/jquery.matchHeight-min.js"></script>
<script src="js/index.js"></script>
<script src="js/docs.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/prism.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/components/prism-docker.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.17.1/components/prism-json.min.js"></script>
</div>
</body>
</html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.2.0/anchor.min.js"></script>
<script>
$(document).ready(function () {
anchors.options.placement = 'left';
anchors.add('h1');
anchors.add('h2');
anchors.add('h3');
anchors.add('h4');
});
</script>