.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. ===============LICENSE_START=======================================================
-.. Copyright (C) 2019 AT&T Intellectual Property
+.. Copyright (C) 2019-2020 AT&T Intellectual Property
.. ===================================================================================
-.. This documentation file is distributed under the Creative Commons Attribution
-.. 4.0 International License (the "License"); you may not use this file except in
+.. This documentation file is distributed under the Creative Commons Attribution
+.. 4.0 International License (the "License"); you may not use this file except in
.. compliance with the License. You may obtain a copy of the License at
..
.. http://creativecommons.org/licenses/by/4.0
.. ===============LICENSE_END=========================================================
+Script for Setting Up 1-node Kubernetes Cluster
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-Resource Requirements
----------------------
-
-To run Near Realtime RAN Controller in a dev testing setting , the minimum requirement for resources is a VM with 4 vCPUs, 16G RAM, and at least 40G of vDisk space.
-
-
+The it/dep repo can be used for generating a simple script that can help setting up a
+one-node Kubernetes cluster for dev and testing purposes. Related files are under the
+**tools/k8s/bin** directory. Clone the repository on the target VM:
-Script for Setting Up 1-node Kubernetes Cluster
------------------------------------------------
+::
+ % git clone https://gerrit.o-ran-sc.org/r/it/dep
-The it/dep repo can be used for generating a simple script that can help setting up a one-node Kubernetes cluster for dev and testing purposes. Related files are under the **ric-infra/00-Kubernetes** directory.
Configurations
---------------
+^^^^^^^^^^^^^^
The generation of the script reads in the parameters from the following files:
-- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs has special requirements, such as running private Docker registry with self-signed certificates, or hostnames that can be only resolved via private /etc/hosts entries, such parameters are entered into this file.
-- etc/infra.rc: This file specifies the versions docker host, Kubernetes, and Kubernetes CNI versions. If a version is left empty, the installation will use the default version that the OS package management software would install.
-- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber release yet.
+- etc/env.rc: Normally no change needed for this file. If where the Kubernetes cluster runs
+ has special requirements, such as running private Docker registry with self-signed certificates,
+ or hostnames that can be only resolved via private /etc/hosts entries, such parameters are
+ entered into this file.
+- etc/infra.rc: This file specifies the docker host, Kubernetes, and Kubernetes CNI versions.
+ If a version is left empty, the installation will use the default version that the OS package
+ management software would install.
+- etc/openstack.rc: If the Kubernetes cluster is deployed on Open Stack VMs, this file specifies
+ parameters for accessing the APIs of the Open Stack installation. This is not supported in Amber
+ release yet.
Generating Set-up Script
-------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^
-After the configurations are updated, the following steps will create a script file that can be used for setting up a one-node Kubernetes cluster.
+After the configurations are updated, the following steps will create a script file that can be
+used for setting up a one-node Kubernetes cluster. You must run this command on a Linux machine
+with the 'envsubst' command installed.
::
- cd bin
- ./gen-cloud-init.sh
+ % cd tools/k8s/bin
+ % ./gen-cloud-init.sh
-A file named **k8s-1node-cloud-init.sh** would now appear under the bin directory.
+A file named **k8s-1node-cloud-init.sh** would now appear under the bin directory.
Setting up Kubernetes Cluster
------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The new **k8s-1node-cloud-init.sh** file is now ready for setting up the Kubernetes cluster.
-The new **k8s-1node-cloud-init.sh** file is now ready for setting up the Kubernetes cluster.
+It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script
+will replace any existing installation of Docker host, Kubernetes, and Helm on the VM. The
+script will reboot the machine upon successful completion. Run the script like this:
-It can be run from a root shell of an existing Ubuntu 16.04 or 18.04 VM. Running this script will replace any existing installation of Docker host, Kubernetes, and Helm on the VM.
+::
-It can also be used as the user-data (a.k.a. cloud-init script) supplicated to Open Stack when launching a new Ubuntu 16.04 or 18.04 VM.
+ % sudo -i
+ # ./k8s-1node-cloud-init.sh
-Upon successful execution of the script, when integrated by the kubectl command, the VM should display information similar to below:
+This script can also be used as the user-data (a.k.a. cloud-init script) supplied to Open Stack
+when launching a new Ubuntu 16.04 or 18.04 VM.
+
+Upon successful execution of the script and reboot of the machine, when queried in a root shell
+with the kubectl command the VM should display information similar to below:
::
kube-system kube-proxy-867v5 1/1 Running 0 103m
kube-system kube-scheduler-ljitest 1/1 Running 0 102m
kube-system tiller-deploy-68bf6dff8f-6pwvc 1/1 Running 0 102m
-