diff --git a/docs/microshift-containerized/README.md b/docs/microshift-containerized/README.md new file mode 100644 index 0000000000..0f0d6a9169 --- /dev/null +++ b/docs/microshift-containerized/README.md @@ -0,0 +1,81 @@ +# Containerized Microshift + +## Pre-requisite + +Before runnng microshift-containerized as a systemd service, ensure to update the host `crio-bridge.conf` as + +```bash +{ + "cniVersion": "0.4.0", + "name": "crio", + "type": "bridge", + "bridge": "cni0", + "isGateway": true, + "ipMasq": true, + "hairpinMode": true, + "ipam": { + "type": "host-local", + "routes": [ + { "dst": "0.0.0.0/0" } + ], + "ranges": [ + [{ "subnet": "10.42.0.0/24" }] + ] + } +} +``` +## Run microshift-containerized as a systemd service + +Copy microshift-containerized unit file to `/etc/systemd` and the microshift-containerized run script to `/usr/bin` + +```bash +sudo cp packaging/systemd/microshift-containerized.service /etc/systemd/system/microshift-containerized.service +sudo cp packaging/systemd/microshift-containerized /usr/bin/ +``` +Now enable and start the service. The KUBECONFIG location will be written to `/etc/microshift-containerized/microshift-containerized.conf`. + + +```bash +sudo systemctl enable microshift-containerized --now +source /etc/microshift-containerized/microshift-containerized.conf +``` + +Verify that microshift is running. +``` +kubectl get pods -A +``` + +Stop microshift-containerized service + +```bash +systemctl stop microshift-containerized +``` + +You can check microshift-containerized via + +```bash +sudo podman ps +sudo critcl ps +``` + +To access the cluster on the host or inside the container + +### Access the cluster inside the container +Execute the following command to get into the container: + +```bash +sudo podman exec -ti microshift-containerized bash +``` +Inside the container, run the following to see the pods: + +```bash +export KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig +kubectl get pods -A +``` + +### Access the cluster on the host +#### Linux +```bash +export KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig +kubectl get pods -A -w +``` \ No newline at end of file diff --git a/packaging/systemd/microshift-containerized b/packaging/systemd/microshift-containerized new file mode 100755 index 0000000000..3b4b1065b3 --- /dev/null +++ b/packaging/systemd/microshift-containerized @@ -0,0 +1,8 @@ +#!/bin/bash + +set -euxo pipefail + +[[ -d /etc/microshift-containerized ]] || mkdir -p /etc/microshift-containerized +cat < /etc/microshift-containerized/microshift-containerized.conf +export KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig +EOF \ No newline at end of file diff --git a/packaging/systemd/microshift-containerized.service b/packaging/systemd/microshift-containerized.service new file mode 100644 index 0000000000..59323f3f4e --- /dev/null +++ b/packaging/systemd/microshift-containerized.service @@ -0,0 +1,24 @@ +# container-microshift-containerized.service +# autogenerated by Podman 3.1.2 +# Wed Sep 29 13:15:18 EDT 2021 + +[Unit] +Description=Podman container-microshift-containerized.service +Documentation=man:podman-generate-systemd(1) +Wants=network.target +After=network-online.target +RequiresMountsFor=/var/lib/containers/storage /run/containers/storage + +[Service] +Environment=PODMAN_SYSTEMD_UNIT=%n +Restart=on-failure +TimeoutStopSec=70 +ExecStartPre=/bin/rm -f %t/container-microshift-containerized.pid %t/container-microshift-containerized.ctr-id +ExecStart=/usr/bin/podman run --conmon-pidfile %t/container-microshift-containerized.pid --cidfile %t/container-microshift-containerized.ctr-id --cgroups=no-conmon --replace --privileged -d --rm --name microshift-containerized -v /var/run:/var/run -v /sys:/sys:ro -v /var/lib:/var/lib:rw,rshared -v /lib/modules:/lib/modules -v /etc:/etc -v /run/containers:/run/containers -v /var/log:/var/log -e KUBECONFIG=/var/lib/microshift/resources/kubeadmin/kubeconfig quay.io/microshift/microshift:4.7.0-0.microshift-2021-08-31-224727-linux-amd64 +ExecStop=/usr/bin/podman stop --ignore --cidfile %t/container-microshift-containerized.ctr-id -t 10 +ExecStopPost=/usr/bin/podman rm --ignore -f --cidfile %t/container-microshift-containerized.ctr-id +PIDFile=%t/container-microshift-containerized.pid +Type=forking + +[Install] +WantedBy=multi-user.target default.target