forked from openshift/assisted-service
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
442 lines (396 loc) · 24.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Helper Assistant to deploy and manage your OCP Clusters">
<meta name="author" content="Openshift Assisted Service Team">
<link rel="shortcut icon" href="img/favicon.ico">
<title>Openshift Assisted Service</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700" />
<link rel="stylesheet" href="css/theme.css" />
<link rel="stylesheet" href="css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "OAS Home";
var mkdocs_page_input_path = "index.md";
var mkdocs_page_url = null;
</script>
<script src="js/jquery-2.1.1.min.js" defer></script>
<script src="js/modernizr-2.8.3.min.js" defer></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="." class="icon icon-home"> Openshift Assisted Service</a>
<div role="search">
<form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
<input type="text" name="q" placeholder="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href=".">OAS Home</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#about">About</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#demos-and-blog-posts">Demos and blog posts</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#user-documentation">User documentation</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#prerequisites">Prerequisites</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#first-setup">First Setup</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#build">Build</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#generate-code-after-swagger-changes">Generate code after swagger changes</a>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#testing">Testing</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#update-discovery-image-base-os">Update Discovery Image base OS</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#deployment">Deployment</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#deploy-to-minikube">Deploy to minikube</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#deploy-to-openshift">Deploy to OpenShift</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#deploy-ui">Deploy UI</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#deploy-monitoring">Deploy Monitoring</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#deploy-by-tag">Deploy by tag</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#deploy-without-a-kubernetes-cluster">Deploy without a Kubernetes cluster</a>
<ul>
<li class="toctree-l4"><a class="reference internal" href="#using-a-pod-on-your-local-host">Using a pod on your local host</a>
</li>
<li class="toctree-l4"><a class="reference internal" href="#using-assisted-service-live-iso">Using assisted-service Live-ISO</a>
</li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#storage">Storage</a>
<ul>
<li class="toctree-l4"><a class="reference internal" href="#cache-expiration">Cache Expiration</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#troubleshooting">Troubleshooting</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#documentation">Documentation</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#linked-repositories">Linked repositories</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#coreos_installation_iso">coreos_installation_iso</a>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#assisted-service-on-consoleredhatcom">Assisted Service on console.redhat.com</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#setting-a-custom-discovery-iso-password">Setting a custom discovery ISO password</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#contributing">Contributing</a>
</li>
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">OAS Deployment</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="user-guide/assisted-service-on-local/">OAS Running on Local</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/assisted-service-on-openshift/">OAS Running on Openshift</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Openshift Deployment</span></p>
<ul>
<li class="toctree-l1"><a class="" href="user-guide/user-guide.md">User Guide Index</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/deploy-on-local/">OCP Deployment on Local</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/deploy-on-bare-metal/">OCP Deployment on Bare Metal</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/deploy-on-vsphere/">OCP Deployment on vSphere</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/deploy-on-RHEV/">OCP Deployment on RHEV</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="user-guide/deploy-on-OSP/">OCP Deployment on Openstack</a>
</li>
</ul>
<p class="caption"><span class="caption-text">OAS Development</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="dev/migrations/">Migrations</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href=".">Openshift Assisted Service</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".">Docs</a> »</li>
<li>OAS Home</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main">
<div class="section">
<h1 id="assisted-service">assisted-service</h1>
<p><a href="https://generator.swagger.io/?url=https://raw.githubusercontent.com/openshift/assisted-service/master/swagger.yaml"><img alt="Swagger API" src="https://raw.githubusercontent.com/swagger-api/swagger-ui/master/src/img/logo_small.png" /></a></p>
<p><a href="https://goreportcard.com/report/github.com/openshift/assisted-service"><img alt="Go Report Card" src="https://goreportcard.com/badge/github.com/openshift/assisted-service" /></a>
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="License Apache" src="https://img.shields.io/github/license/openshift/assisted-service" /></a></p>
<h2 id="about">About</h2>
<p>This repository provides a service that installs OpenShift. Its main benefits include a minimum amount of prerequisites from the user's infrastructure, as well as comprehensive pre-flight validations to ensure a successful installation. The service exposes either a REST API, or it can be deployed as an Operator where it exposes a Kubernetes-native API via Custom Resources. A <a href="https://github.com/openshift-assisted/assisted-ui">UI</a> is available that uses the REST API.</p>
<p>The Assisted Service can currently install clusters with highly-available control planes (3 hosts and above) and can also install Single-Node OpenShift (SNO). Highly available clusters are configured to use OpenShift's <code>baremetal</code> platform (typically used in <a href="https://docs.openshift.com/container-platform/4.7/installing/installing_bare_metal_ipi/ipi-install-overview.html">bare metal IPI deployments</a>), while SNO uses <code>none</code> (typically used in <a href="https://docs.openshift.com/container-platform/4.7/installing/installing_platform_agnostic/installing-platform-agnostic.html">UPI deployments</a>).</p>
<p>The basic flow for creating a new OpenShift cluster using the Assisted Service via the UI or REST API is:
1. Create a new Cluster resource with the minimal required properties.
1. Generate and download a bootable image which is customized for that cluster. This image is based on RHCOS and is customized to automatically run an agent upon boot.
1. Boot the hosts that will form the cluster with the image from the previous step. The boot method is left to the user (e.g., USB drive, virtual media, PXE, etc.).
1. The agent running on each host contacts the Assisted Service via REST API and performs discovery (sends hardware inventory and connectivity information).
1. The UI guides the user through the installation, with the service performing validations along the way. Alternatively, this can be done via API.
1. Once all validations pass, the user may initiate the installation. Progress may be viewed via the UI or API, and logs are made available for download directly from the service.</p>
<h2 id="demos-and-blog-posts">Demos and blog posts</h2>
<p>Below are some recent demos and blog posts:
* Blog, Jan 2021: <a href="https://www.openshift.com/blog/using-the-openshift-assisted-installer-service-to-deploy-an-openshift-cluster-on-metal-and-vsphere">Using the OpenShift Assisted Installer Service to Deploy an OpenShift Cluster on Bare Metal and vSphere</a>
* Blog and demo, Dec 2020: <a href="https://www.openshift.com/blog/making-openshift-on-bare-metal-easy">Making OpenShift on Bare Metal easy</a>
* Blog and demo, Oct 2020: <a href="https://www.openshift.com/blog/its-inside-the-house-assisted-installer-demonstration">It's Inside your House! Assisted Installer on Bare Metal Demonstration</a></p>
<h2 id="user-documentation">User documentation</h2>
<p>By continuing to read this document you will learn how to build and deploy Assisted Service. If you are interested in using Assisted Service to deploy an OCP cluster, please refer to the <a href="docs/user-guide/README.md">User Documentation</a>.</p>
<h2 id="prerequisites">Prerequisites</h2>
<ol>
<li>Docker</li>
<li>skipper <a href="https://github.com/stratoscale/skipper">https://github.com/stratoscale/skipper</a></li>
<li>minikube (for tests)</li>
<li>kubectl</li>
<li>Python modules <code>pip install waiting</code></li>
</ol>
<h2 id="first-setup">First Setup</h2>
<p>To push your build target to a Docker registry you first need to change the default target.</p>
<ol>
<li>Create a quay.io or Docker Hub account if you don't already have one. These instructions refer to quay.io, Docker Hub is similar.</li>
<li>Create a repository called assisted-service.</li>
<li>Make sure you have your <code>~/.docker/config.json</code> file set up to point to your account. For quay.io, you can go to quay.io -> User Settings, and click "Generate Encrypted Password" under "Docker CLI Password".</li>
<li>Login to quay.io using <code>docker login quay.io</code>.</li>
<li>Export the <code>SERVICE</code> environment variable to your Docker registry, and pass a tag of your choice, e.g., "test":</li>
</ol>
<pre><code class="language-sh">export SERVICE=quay.io/<username>/assisted-service:<tag>
</code></pre>
<p>For the first build of the build container run:</p>
<pre><code class="language-shell">skipper build assisted-service-build
</code></pre>
<h2 id="build">Build</h2>
<pre><code class="language-shell">skipper make all
</code></pre>
<h3 id="generate-code-after-swagger-changes">Generate code after swagger changes</h3>
<p>After every change in the API (<code>swagger.yaml</code>) the code should be generated and the build must pass.</p>
<pre><code class="language-shell">skipper make generate-from-swagger
</code></pre>
<h2 id="testing">Testing</h2>
<p>More information is available here: <a href="docs/dev/testing.md">Assisted Installer Testing</a></p>
<h2 id="update-discovery-image-base-os">Update Discovery Image base OS</h2>
<p>If you want to update the underlying operating system image used by the discovery iso, follow these steps:</p>
<ol>
<li>
<p>Choose the base os image you want to use</p>
</li>
<li>
<p>RHCOS: <a href="https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/">https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/</a></p>
</li>
<li>
<p>Fedora CoreOS: <a href="https://getfedora.org/en/coreos/download?tab=metal_virtualized&stream=stable">https://getfedora.org/en/coreos/download?tab=metal_virtualized&stream=stable</a></p>
</li>
<li>
<p>Build the new iso generator image</p>
</li>
</ol>
<p><code>sh
# Example with RHCOS
BASE_OS_IMAGE=https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/pre-release/latest/rhcos-4.6.0-0.nightly-2020-08-26-093617-x86_64-live.x86_64.iso make build-assisted-iso-generator-image</code></p>
<h2 id="deployment">Deployment</h2>
<h3 id="deploy-to-minikube">Deploy to minikube</h3>
<p>The deployment is a system deployment, it contains all the components the service need for all the operations to work (if implemented).
S3 service (minio), DB and will use the image generator to create the images in the deployed S3 and create relevant bucket in S3.</p>
<pre><code class="language-shell">skipper make deploy-all
</code></pre>
<h3 id="deploy-to-openshift">Deploy to OpenShift</h3>
<p>Besides default minikube deployment, the service supports deployment to OpenShift cluster using ingress as the access point to the service.</p>
<pre><code class="language-shell">skipper make deploy-all TARGET=oc-ingress
</code></pre>
<p>This deployment option have multiple optional parameters that should be used in case you are not the Admin of the cluster:</p>
<ol>
<li><code>APPLY_NAMESPACE</code> - True by default. Will try to deploy "assisted-installer" namespace, if you are not the Admin of the cluster or maybe you don't have permissions for this operation you may skip namespace deployment.</li>
<li><code>INGRESS_DOMAIN</code> - By default deployment script will try to get the domain prefix from OpenShift ingress controller. If you don't have access to it then you may specify the domain yourself. For example: <code>apps.ocp.prod.psi.redhat.com</code></li>
</ol>
<p>To set the parameters simply add them in the end of the command, for example:</p>
<pre><code class="language-shell">skipper make deploy-all TARGET=oc-ingress APPLY_NAMESPACE=False INGRESS_DOMAIN=apps.ocp.prod.psi.redhat.com
</code></pre>
<p>Note: All deployment configurations are under the <code>deploy</code> directory in case more detailed configuration is required.</p>
<h3 id="deploy-ui">Deploy UI</h3>
<p>This service supports optional UI deployment.</p>
<pre><code class="language-shell">skipper make deploy-ui
</code></pre>
<p>* In case you are using <em>podman</em> run the above command without <code>skipper</code>.</p>
<p>For OpenShift users, look at the service deployment options on OpenShift platform.</p>
<h3 id="deploy-monitoring">Deploy Monitoring</h3>
<p>Note: This target is only for development purpose.</p>
<p>This will allow you to deploy Prometheus and Grafana already integrated with Assisted installer:</p>
<ul>
<li>On Minikube</li>
</ul>
<pre><code class="language-shell"># Step by step
make deploy-olm
make deploy-prometheus
make deploy-grafana
# Or just all-in
make deploy-monitoring
</code></pre>
<ul>
<li>On Openshift</li>
</ul>
<pre><code class="language-shell"># Step by step
make deploy-prometheus TARGET=oc-ingress APPLY_NAMESPACE=false
make deploy-grafana TARGET=oc-ingress APPLY_NAMESPACE=false
# Or just all-in
make deploy-monitoring TARGET=oc-ingress APPLY_NAMESPACE=false
</code></pre>
<p>NOTE: To expose the monitoring UI's on your local environment you could follow these steps</p>
<pre><code class="language-shell">kubectl config set-context $(kubectl config current-context) --namespace assisted-installer
# To expose Prometheus
kubectl port-forward svc/prometheus-k8s 9090:9090
# To expose Grafana
kubectl port-forward svc/grafana 3000:3000
</code></pre>
<p>Now you just need to access <a href="http://127.0.0.1:3000">http://127.0.0.1:3000</a> to access to your Grafana deployment or <a href="http://127.0.0.1:9090">http://127.0.0.1:9090</a> for Prometheus.</p>
<h3 id="deploy-by-tag">Deploy by tag</h3>
<p>This feature is for internal usage and not recommended to use by external users.
This option will select the required tag that will be used for each dependency.
If deploy-all use a new tag the update will be done automatically and there is no need to reboot/rollout any deployment.</p>
<p>Deploy images according to the manifest:</p>
<pre><code class="language-shell">skipper make deploy-all DEPLOY_MANIFEST_PATH=./assisted-installer.yaml
</code></pre>
<p>Deploy images according to the manifest in the assisted-installer-deployment repo (require git tag/branch/hash):</p>
<pre><code class="language-shell">skipper make deploy-all DEPLOY_MANIFEST_TAG=master
</code></pre>
<p>Deploy all the images with the same tag.
The tag is not validated, so you need to make sure it actually exists.</p>
<pre><code class="language-shell">skipper make deploy-all DEPLOY_TAG=<tag>
</code></pre>
<p>Default tag is latest</p>
<h3 id="deploy-without-a-kubernetes-cluster">Deploy without a Kubernetes cluster</h3>
<p>There are two ways the assisted service can be deployed without using a Kubernetes cluster:</p>
<h4 id="using-a-pod-on-your-local-host">Using a pod on your local host</h4>
<p>In this scenario the service and associated components are deployed onto your local host as a pod using Podman.</p>
<pre><code class="language-shell">export SERVICE=quay.io/<your-org>/assisted-service:latest
</code></pre>
<p>To deploy, update SERVICE_BASE_URL in the onprem-environment file to match the hostname or IP address of your host. For example if your IP address is 192.168.122.2, then the SERVICE_BASE_URL would be set to <a href="http://192.168.122.2:8090">http://192.168.122.2:8090</a>. Port 8090 is the assisted-service API.</p>
<p>Then deploy the containers:</p>
<pre><code class="language-shell">make deploy-onprem
</code></pre>
<p>Check all containers are up and running:</p>
<pre><code class="language-shell">podman ps -a
</code></pre>
<p>The UI will available at: <code>http://<host-ip-address>:8080</code></p>
<p>To remove the containers:</p>
<pre><code class="language-shell">make clean-onprem
</code></pre>
<p>To run the subsystem tests:</p>
<pre><code class="language-shell">make test-onprem
</code></pre>
<h4 id="using-assisted-service-live-iso">Using assisted-service Live-ISO</h4>
<p>The assisted-service live ISO is a RHCOS live ISO that is customized with an ignition config file.
The live ISO boots up and deploys the assisted-service using containers on host.</p>
<p><a href="docs/installer-live-iso.md">Using assisted-service Live-ISO</a></p>
<h3 id="storage">Storage</h3>
<p>assisted-service maintains a cache of openshift-baremetal-install binaries at
<code>$WORK_DIR/installercache/</code>. Persistent storage can optionally be mounted
there to persist the cache across container restarts. However, that storage
should not be shared across multiple assisted-service processes.</p>
<h4 id="cache-expiration">Cache Expiration</h4>
<p>Currently there is no mechanism to expire openshift-baremetal-install binaries
out of the cache. The recommendation for now is to allow the cache to use the
container's own local storage that will vanish when the Pod gets replaced, for
example during upgrade. That will prevent the cache from growing forever while
allowing it to be effective most of the time.</p>
<h2 id="troubleshooting">Troubleshooting</h2>
<p>A document that can assist troubleshooting: <a href="https://docs.google.com/document/d/1WDc5LQjNnqpznM9YFTGb9Bg1kqPVckgGepS4KBxGSqw">link</a></p>
<h2 id="documentation">Documentation</h2>
<p>To rebuild the site after adding some documentation to the Markdown files, you just need to execute this Make target before the push</p>
<pre><code class="language-shell">make docs
</code></pre>
<p>To validate the documentation generated, go to the root of the repo and execute</p>
<pre><code class="language-shell">make docs_serve
</code></pre>
<p>After that, you just need to access to <a href="http://127.0.0.1:8000/">127.0.0.1:8000</a> on your browser and check the new content.</p>
<p><em>NOTE: To use these features, you need to have mkdocs installed in your system, to do that you just need to execute this command <code>pip3 install --user mkdocs</code></em></p>
<h2 id="linked-repositories">Linked repositories</h2>
<h3 id="coreos_installation_iso">coreos_installation_iso</h3>
<p><a href="https://github.com/oshercc/coreos_installation_iso">https://github.com/oshercc/coreos_installation_iso</a></p>
<p>Image in charge of generating the Fedora-coreOs image used to install the host with the relevant ignition file.\
Image is uploaded to deployed S3 under the name template "installer-image-\<cluster-id>".</p>
<h2 id="assisted-service-on-consoleredhatcom">Assisted Service on console.redhat.com</h2>
<p>The Assisted Installer is also available for users as a SAAS hosted in console.redhat.com.</p>
<p>More information is available here: <a href="docs/cloud.md">Assisted Installer on console.redhat.com</a></p>
<h2 id="setting-a-custom-discovery-iso-password">Setting a custom discovery ISO password</h2>
<p>It's possible to modify the discovery ISO (via the API) to enable password login for troubleshooting purposes.</p>
<p>More information is available here: <a href="docs/set-discovery-password.md">Set discovery ISO user password example</a></p>
<h2 id="contributing">Contributing</h2>
<p>Please, read our <a href="https://github.com/openshift/assisted-service/blob/master/CONTRIBUTING.md">CONTRIBUTING</a> guidelines for more info about how to create, document, and review PRs.</p>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="user-guide/assisted-service-on-local/" class="btn btn-neutral float-right" title="OAS Running on Local">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span>
<a href="https://github.com/openshift/assisted-service" class="fa fa-github" style="color: #fcfcfc"> GitHub</a>
</span>
<span><a href="user-guide/assisted-service-on-local/" style="color: #fcfcfc">Next »</a></span>
</span>
</div>
<script>var base_url = '.';</script>
<script src="js/theme_extra.js" defer></script>
<script src="js/theme.js" defer></script>
<script src="search/main.js" defer></script>
<script defer>
window.onload = function () {
SphinxRtdTheme.Navigation.enable(true);
};
</script>
</body>
</html>
<!--
MkDocs version : 1.2.2
Build Date UTC : 2021-11-11 20:18:36.882062+00:00
-->