CodeReady Containersをインストール

## はじめに

* Windows 10 HomeでもOpenShift 4を触りたい
* [Red Hat CodeReady Containerのドキュメント](https://access.redhat.com/documentation/en-us/red_hat_codeready_containers/1.9/html/getting_started_guide/introducing-codeready-containers_gsg) 通りに進める

## 私の環境
* Lenovo V530
* プロセッサ AMD Ryzen 3 2200G
* メモリ 32GB
* Windows 10 Home Edition
* VMware Workstation 15 Player

## CodeReady Containers

CodeReady Containers 以下、CRC。

### CRCの目的
* 最小限のOpenShift環境をローカルで実行するためのもの
* 開発とテストの目的である

### 本番向けとの違い
* CRCで作成されるOpenShiftは一時的なものであり、本番環境での使用を想定していない
* Master NodeとWorker Nodeの両方として動作する単一のノードが立ち上がる
* `machine-config`と`monitoring`のOperatorはOFFになっている
* CRCで作成されたOpenShiftはVM上で実行される（本番もそうかもしれないけど）

## インストール

`私の環境`上にインストールしていく

### インストールパターン

以下のインストールパターンが提供されている。今回は`Linux`を使う

* Windows
  - Windows 10 Pro Fall Creaters Update(v1709)が必要
  - Hyper-Vを使う
* MacOS
  - macOS 10.12 Sierra以降が必要
  - HyperKitを使う
* Linux
  - RHELかCentOSのv7.5以降か、最新のFedoraが必要
  - libvirtを使う

### ハード要件

* 4つのvCPU
* 8GBのメモリ
* 35GBのストレージ容量

### VMの設定

* CPU -> 4vCPU
  - ハードウェア仮想化(AMD-V)を有効化
* Memory -> 16GB
* Disc -> 120GB
* Network -> Bridge
* OS -> CentOS 7

### 作業開始

一般ユーザ（ここでは`openshift`）にsudoを許可

```shell-session
# usermod -aG wheel openshift
# visudo
# # l110付近のコメントアウトを外す
# # %wheel  ALL=(ALL)NOPASSWD: ALL
```

`NetworkManager`パッケージをインストールする

```shell-session
$ sudo yum install NetworkManager
```

CRCを[cloud.redhat.com](https://cloud.redhat.com/openshift/install/crc/installer-provisioned?intcmp=7013a000002CtetAAC)からダウンロードする

```shell-session
$ ls ~/crc-linux-amd64.tar.gz
/home/openshift/crc-linux-amd64.tar.gz
```

解凍する

```shell-session
$ xz -d /home/openshift/crc-linux-amd64.tar.gz
$ tar xfv /home/openshift/crc-linux-amd64.tar
```

パスが通っていて、それっぽい所に配置する

```shell-session
$ mv /home/openshift/crc-linux-amd64/crc /usr/local/bin/
$ ls -ltr /usr/local/bin/
合計 2131616
-rwxrwxr-x. 1 openshift openshift 2182771160  3月 30 13:00 crc
```

セットアップする。

```shell-session
$ crc setup
```

OpenShiftをスタートする。途中で`Image pull secret`を聞かれる。
[cloud.redhat.com](https://cloud.redhat.com/openshift/install/crc/installer-provisioned?intcmp=7013a000002CtetAAC)からDLしたSecret(JSON)をそのまま打ち込めばOK。

```shell-session
$ crc start
```

起動時のログに以下が出力されるので、メモっておく

```shell-session
INFO To access the cluster, first set up your environment by following 'crc oc-env' instructions 
INFO Then you can access it by running 'oc login -u developer -p developer https://api.crc.testing:6443' 
INFO To login as an admin, run 'oc login -u kubeadmin -p xxxxxxxx https://api.crc.testing:6443' 
INFO                                              
INFO You can now run 'crc console' and use these credentials to access the OpenShift web console 
Started the OpenShift cluster
```

## OpenShiftにアクセスする

### Web Consoleの場合

GNOMEをインストールして、GUI起動をデフォルトにする。

```shell-session
# yum groupinstall "GNOME Desktop"
# startx
# systemctl set-default graphical.target
# reboot
```

Web Consoleを起動する。
Firefoxが起動され、ログイン画面が表示される。

```shell-session
crc console
```

### `oc`コマンドで接続する

パス設定をする。

```shell-session
$ crc oc-env
$ eval $(crc oc-env)
```

先ほどメモった`oc`コマンドで接続する。

```
$ oc login -u kubeadmin -p xxxxxxxx https://api.crc.testing:6443

Login successful.

You have access to 53 projects, the list has been suppressed. You can list all projects with 'oc projects'

Using project "default".
```

## その他の操作

### 停止する時

```shell-session
$ crc stop
```

### 消す時

```shell-session
$ crc delete
```

## 終わりに

project作ったりとかは[OpenShift Documentation](https://docs.openshift.com/container-platform/4.3/applications/projects/working-with-projects.html)に誘導されているので、この後やってみる。