diff --git a/README.md b/README.md index 4afb42f10a8c85368469521a4556cf8e99a2b98f..07e79d2ab83de5aa453c9e9e613ee5db4a8c6921 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # TANGO Docker containers -This project defines a set of Docker images and Docker compose files +This project defines a set of Docker images and Charts files that are useful for TANGO control system development. See the documentation in the 'docs' folder for build and usage instructions. @@ -77,7 +77,7 @@ Containers like mariadb, databaseds, hdbpp-es and hdbpp-cm should be up and runn # Important links - * [Link for Mariadb container](https://gitlab.com/ska-telescope/ska-docker/tree/story_AT1-422/docker/tango/mariadb_hdbpp) - * [Link for Tango-archiver container](https://gitlab.com/ska-telescope/ska-docker/tree/story_AT1-422/docker/tango/tango-archiver) - * [Link for Hdbpp-viewer container](https://gitlab.com/ska-telescope/ska-docker/tree/story_AT1-422/docker/tango/hdbpp_viewer) - * [Docker-compose yaml](https://gitlab.com/ska-telescope/ska-docker/blob/story_AT1-422/docker/tango/tango-archiver/docker-compose.yml) + * [Link for Mariadb container](https://gitlab.com/ska-telescope/ska-docker/-/tree/master/docker/tango/mariadb_hdbpp) + * [Link for Tango-archiver container](https://gitlab.com/ska-telescope/ska-docker/-/tree/master/docker/tango/tango-archiver) + * [Link for Hdbpp-viewer container](https://gitlab.com/ska-telescope/ska-docker/-/tree/master/docker/tango/hdbpp_viewer) + * [Archiver Charts](https://gitlab.com/ska-telescope/ska-docker/-/tree/master/charts/archiver) diff --git a/charts/README.md b/charts/README.md index b7d6ecb8559d92224df5832578ef0a2765183182..5ebc5dd03005941a1ba23055662b3602f13dd1a6 100644 --- a/charts/README.md +++ b/charts/README.md @@ -6,61 +6,16 @@ SKA TANGO-controls docker images on Kubernetes ============================================== -The following are a set of instructions of running the SKA TANGO-controls docker images made by SKAon Kubernetes, and has been tested on minikube v0.34.1 with k8s v1.13.3 on Ubuntu 18.04. +The following are a set of instructions of running the SKA TANGO-controls docker images made by SKA on Kubernetes, and has been tested on minikube v1.12.3 with k8s v1.18.3 Docker 19.03.8 on Ubuntu 18.04. Minikube ======== Using [Minikube](https://kubernetes.io/docs/getting-started-guides/minikube/) enables us to create a single node stand alone Kubernetes cluster for testing purposes. If you already have a cluster at your disposal, then you can skip forward to 'Running the SKA TANGO-controls docker images on Kubernetes'. -The generic installation instructions are available at https://kubernetes.io/docs/tasks/tools/install-minikube/. +The generic installation instructions are available at https://kubernetes.io/docs/tasks/tools/install-minikube/. A deployment of Minikube that will support the standard features required for the SKA is available at https://gitlab.com/ska-telescope/sdi/deploy-minikube -Minikube requires the Kubernetes runtime, and a host virtualisation layer such as kvm, virtualbox etc. Please refer to the drivers list at https://github.com/kubernetes/minikube/blob/master/docs/drivers.md . - -On Ubuntu 18.04 for desktop based development, the most straight forward installation pattern is to go with the `none` driver as the host virtualisation layer. CAUTION: this will install Kubernetes directly on your host and will destroy any existing Kubernetes related configuration you already have (eg: /etc/kubernetes, /var/lib/kubelet, /etc/cni, ...). This is technically called 'running with scissors', but the trade off in the authors opinion is lower virtualisation overheads and simpler management of storage integration including Xauthority details etc. - -The latest version of minikube is found here https://github.com/kubernetes/minikube/releases . Scroll down to the section for Linux, which will have instructions like: -``` -curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.34.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ -``` - -Now we need to bootstrap minikube so that we have a running cluster based on kvm: -``` -sudo -E minikube start --vm-driver=none --extra-config=kubelet.resolv-conf=/var/run/systemd/resolve/resolv.conf -``` -This will take some time setting up the vm, and bootstrapping Kubernetes. You will see output like the following when done. -``` -$ sudo -E minikube start --vm-driver=none --extra-config=kubelet.resolv-conf=/var/run/systemd/resolve/resolv.conf -๐ minikube v0.34.1 on linux (amd64) -๐คน Configuring local host environment ... - -โ ๏ธ The 'none' driver provides limited isolation and may reduce system security and reliability. -โ ๏ธ For more information, see: -๐ https://github.com/kubernetes/minikube/blob/master/docs/vmdriver-none.md - -โ ๏ธ kubectl and minikube configuration will be stored in /home/ubuntu -โ ๏ธ To use kubectl or minikube commands as your own user, you may -โ ๏ธ need to relocate them. For example, to overwrite your own settings: - - โช sudo mv /home/ubuntu/.kube /home/ubuntu/.minikube $HOME - โช sudo chown -R $USER /home/ubuntu/.kube /home/ubuntu/.minikube - -๐ก This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true -๐ฅ Creating none VM (CPUs=2, Memory=2048MB, Disk=20000MB) ... -๐ถ "minikube" IP address is 192.168.86.29 -๐ณ Configuring Docker as the container runtime ... -โจ Preparing Kubernetes environment ... - โช kubelet.resolv-conf=/var/run/systemd/resolve/resolv.conf -๐ Pulling images required by Kubernetes v1.13.3 ... -๐ Launching Kubernetes v1.13.3 using kubeadm ... -๐ Configuring cluster permissions ... -๐ค Verifying component health ..... -๐ kubectl is now configured to use "minikube" -๐ Done! Thank you for using minikube! -``` -The `--extra-config=kubelet.resolv-conf=/var/run/systemd/resolve/resolv.conf` flag is to deal with the coredns and loopback problems - you may not need this depending on your local setup. - -Now fixup your permissions: +Once you have finished the deployment you may need to fixup your permissions: ``` sudo chown -R ${USER} /home/${USER}/.minikube sudo chgrp -R ${USER} /home/${USER}/.minikube @@ -79,9 +34,9 @@ coredns-86c58d9df4-5ztg8 1/1 Running 0 3m24s Helm Chart ---------- -The Helm Chart based install of the SKA TANGO-controls docker images relies on [Helm](https://docs.helm.sh/using_helm/#installing-helm) (surprise!). The easiest way to install is using the install script: +The Helm Chart based install of the SKA TANGO-controls docker images relies on [Helm](https://docs.helm.sh/using_helm/#installing-helm) (surprise!). If your system does not have a running version of Helm the easiest way to install one is using the install script: ``` -curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash +curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash ``` Cleaning Up diff --git a/docker/tango/ska-python-buildenv/docker-compose.yml b/docker/tango/ska-python-buildenv/docker-compose.yml deleted file mode 100644 index 815f0352200ec77036d8b425de23d367a6c8dcd8..0000000000000000000000000000000000000000 --- a/docker/tango/ska-python-buildenv/docker-compose.yml +++ /dev/null @@ -1,56 +0,0 @@ -# -# Docker compose file for TANGO database and database device server -# -# Defines: -# - tangodb: MariaDB database with TANGO schema -# - databaseds: TANGO database device server -# -# Requires: -# - None -# -version: '2' - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-cpp:latest - depends_on: - - tangodb - environment: - - MYSQL_HOST=tangodb:3306 - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - tangodb:3306 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/DataBaseds - - "2" - - -ORBendPoint - - giop:tcp::10000 - - tangotest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-java:latest - depends_on: - - databaseds - environment: - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - databaseds:10000 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/TangoTest - - test diff --git a/docker/tango/tango-archiver/docker-compose.yml b/docker/tango/tango-archiver/docker-compose.yml deleted file mode 100644 index 3ab6f69dff0dd7d940f1e82b8f462b0bc994a58f..0000000000000000000000000000000000000000 --- a/docker/tango/tango-archiver/docker-compose.yml +++ /dev/null @@ -1,120 +0,0 @@ - -version: '2' - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - container_name: ${CONTAINER_NAME_PREFIX}tangodb - network_mode: ${NETWORK_MODE} - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - - databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-cpp:latest - container_name: ${CONTAINER_NAME_PREFIX}databaseds - network_mode: ${NETWORK_MODE} - depends_on: - - tangodb - environment: - - MYSQL_HOST=${MYSQL_HOST} - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - TANGO_HOST=${TANGO_HOST} - entrypoint: - - /usr/local/bin/wait-for-it.sh - - ${MYSQL_HOST}:3306 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/DataBaseds - - "2" - - -ORBendPoint - - giop:tcp::10000 - restart: on-failure - - maria-db: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/mariadb_hdbpp:latest - container_name: archiver-maria-db - network_mode: ${NETWORK_MODE} - depends_on: - - databaseds - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=hdbpp - - MYSQL_HOST=archiver-maria-db:3306 - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - - hdbpp-es: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-archiver:latest - network_mode: ${NETWORK_MODE} - container_name: ${CONTAINER_NAME_PREFIX}hdbpp-es - depends_on: - - databaseds - - dsconfig - - maria-db - environment: - - TANGO_HOST=${TANGO_HOST} - - HdbManager=archiving/hdbpp/confmanager01 - command: > - /bin/bash -c " - wait-for-it.sh archiver-maria-db:3306 --timeout=30 --strict -- - wait-for-it.sh ${TANGO_HOST} --timeout=30 --strict -- - hdbppes-srv 01" - restart: on-failure - - hdbpp-cm: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-archiver:latest - network_mode: ${NETWORK_MODE} - container_name: ${CONTAINER_NAME_PREFIX}hdbpp-cm - depends_on: - - databaseds - - dsconfig - - maria-db - environment: - - TANGO_HOST=${TANGO_HOST} - - HdbManager=archiving/hdbpp/confmanager01 - command: > - /bin/bash -c " - wait-for-it.sh archiver-maria-db:3306 --timeout=30 --strict -- - wait-for-it.sh ${TANGO_HOST} --timeout=30 --strict -- - hdbppcm-srv 01" - restart: on-failure - - dsconfig: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-dsconfig:latest - container_name: ${CONTAINER_NAME_PREFIX}dsconfig - network_mode: ${NETWORK_MODE} - depends_on: - - databaseds - environment: - - TANGO_HOST=${TANGO_HOST} - command: > - sh -c "wait-for-it.sh ${TANGO_HOST} --timeout=30 --strict -- - json2tango -w -a -u /tango-archiver/data/archiver-devices.json && - sleep infinity" - volumes: - - .:/tango-archiver - restart: on-failure - - tangotest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-java:latest - container_name: ${CONTAINER_NAME_PREFIX}tangotest - network_mode: ${NETWORK_MODE} - environment: - - TANGO_HOST=${TANGO_HOST} - entrypoint: - - /usr/local/bin/wait-for-it.sh - - ${TANGO_HOST} - - --timeout=30 - - --strict - - -- - - /usr/local/bin/TangoTest - - test - restart: on-failure diff --git a/docker/tango/tango-cpp/docker-compose.yml b/docker/tango/tango-cpp/docker-compose.yml deleted file mode 100644 index ecd08ed6df836a35da0bcadd0ce46e689ce8fd6a..0000000000000000000000000000000000000000 --- a/docker/tango/tango-cpp/docker-compose.yml +++ /dev/null @@ -1,43 +0,0 @@ -# -# Docker compose file for TANGO database and database device server -# -# Defines: -# - tangodb: MariaDB database with TANGO schema -# -# Requires: -# - None -# -version: '2' - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - - databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-cpp:latest - depends_on: - - tangodb - environment: - - MYSQL_HOST=tangodb:3306 - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - tangodb:3306 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/DataBaseds - - "2" - - -ORBendPoint - - giop:tcp::10000 - restart: on-failure - diff --git a/docker/tango/tango-db/docker-compose.yml b/docker/tango/tango-db/docker-compose.yml deleted file mode 100644 index 08c73ac2413f764b6355b597b9cefa2e6d4ef2ca..0000000000000000000000000000000000000000 --- a/docker/tango/tango-db/docker-compose.yml +++ /dev/null @@ -1,21 +0,0 @@ -# -# Docker compose file for TANGO database and database device server -# -# Defines: -# - tangodb: MariaDB database with TANGO schema -# -# Requires: -# - None -# -version: '2' - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - diff --git a/docker/tango/tango-itango/docker-compose.yml b/docker/tango/tango-itango/docker-compose.yml deleted file mode 100644 index aa32522c11b53a3c34b329cf8b8f214fa9881d71..0000000000000000000000000000000000000000 --- a/docker/tango/tango-itango/docker-compose.yml +++ /dev/null @@ -1,61 +0,0 @@ -# -# Docker compose file for TANGO database and database device server -# -# Defines: -# - tangodb: MariaDB database with TANGO schema -# - databaseds: TANGO database device server -# -# Requires: -# - None -# -version: '2' -volumes: - tangodb-tango-rest-test: {} - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - - databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-cpp:latest - depends_on: - - tangodb - environment: - - MYSQL_HOST=tangodb:3306 - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - tangodb:3306 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/DataBaseds - - "2" - - -ORBendPoint - - giop:tcp::10000 - restart: on-failure - - tangotest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-java:latest - depends_on: - - databaseds - environment: - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - databaseds:10000 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/TangoTest - - test - restart: on-failure diff --git a/docker/tango/tango-rest/docker-compose.yml b/docker/tango/tango-rest/docker-compose.yml deleted file mode 100644 index 9c65825a906a7124b1b421a75bc87347424e146b..0000000000000000000000000000000000000000 --- a/docker/tango/tango-rest/docker-compose.yml +++ /dev/null @@ -1,79 +0,0 @@ -# -# Docker compose file for TANGO database and database device server -# -# Defines: -# - tangodb: MariaDB database with TANGO schema -# - databaseds: TANGO database device server -# -# Requires: -# - None -# -version: '2' - -services: - tangodb: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-db:latest - environment: - - MYSQL_ROOT_PASSWORD=secret - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - restart: on-failure - - - databaseds: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-cpp:latest - depends_on: - - tangodb - environment: - - MYSQL_HOST=tangodb:3306 - - MYSQL_DATABASE=tango - - MYSQL_USER=tango - - MYSQL_PASSWORD=tango - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - tangodb:3306 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/DataBaseds - - "2" - - -ORBendPoint - - giop:tcp::10000 - restart: on-failure - - tangotest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-java:latest - depends_on: - - databaseds - environment: - - TANGO_HOST=databaseds:10000 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - databaseds:10000 - - --timeout=30 - - --strict - - -- - - /usr/local/bin/TangoTest - - test - restart: on-failure - - rest: - image: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}/tango-rest:latest - depends_on: - - tangotest - environment: - - TANGO_HOST=databaseds:10000 - ports: - - 8080:8080 - entrypoint: - - /usr/local/bin/wait-for-it.sh - - databaseds:10000 - - --timeout=30 - - --strict - - -- - - /usr/bin/supervisord - - --configuration - - /etc/supervisor/supervisord.conf - restart: on-failure diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..74c4fafa0a6d8e7ee7bbd02cff48a94a843510cd --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,27 @@ +alabaster==0.7.12 +Babel==2.8.0 +certifi==2020.6.20 +chardet==3.0.4 +commonmark==0.9.1 +docutils==0.16 +idna==2.10 +imagesize==1.2.0 +Jinja2==2.11.2 +MarkupSafe==1.1.1 +packaging==20.4 +Pygments==2.6.1 +pyparsing==2.4.7 +pytz==2020.1 +recommonmark==0.6.0 +requests==2.24.0 +six==1.15.0 +snowballstemmer==2.0.0 +Sphinx==3.2.1 +sphinx-rtd-theme==0.5.0 +sphinxcontrib-applehelp==1.0.2 +sphinxcontrib-devhelp==1.0.2 +sphinxcontrib-htmlhelp==1.0.3 +sphinxcontrib-jsmath==1.0.1 +sphinxcontrib-qthelp==1.0.3 +sphinxcontrib-serializinghtml==1.1.4 +urllib3==1.25.10 diff --git a/docs/src/README.md b/docs/src/README.md new file mode 120000 index 0000000000000000000000000000000000000000..a364b03aafdcd3bcc649a33fc2c9523fdbc11519 --- /dev/null +++ b/docs/src/README.md @@ -0,0 +1 @@ +../../charts/README.md \ No newline at end of file diff --git a/docs/src/conf.py b/docs/src/conf.py index da3e4b26fb34bf0bd77eb95c6e3a23e65680ad04..d9bc09418b874e9acf105d1881a258f85177faca 100644 --- a/docs/src/conf.py +++ b/docs/src/conf.py @@ -35,11 +35,16 @@ def setup(app): # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.autodoc', + 'sphinx.ext.napoleon', + 'sphinx.ext.doctest', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', + 'sphinx.ext.coverage', 'sphinx.ext.mathjax', + 'sphinx.ext.ifconfig', 'sphinx.ext.viewcode', - 'recommonmark', + 'sphinx.ext.githubpages', + 'recommonmark' ] # Add any paths that contain templates here, relative to this directory. @@ -49,7 +54,7 @@ templates_path = ['_templates'] # You can specify multiple suffix as a list of string: # # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ['.rst', '.md'] # The master toctree document. master_doc = 'index' @@ -107,7 +112,7 @@ html_context = { 'github_user': 'ska-telescope', # Username 'github_repo': 'ska-docker', # Repo name 'github_version': 'master', # Version - 'conf_py_path': '/docs/src/', # Path in the checkout to the docs root + 'conf_py_path': '/src/', # Path in the checkout to the docs root } # Add any paths that contain custom static files (such as style sheets) here, diff --git a/docs/src/index.rst b/docs/src/index.rst index 381e53b346aca40d6ca83d6a6520c178eca0424d..9c9e03db3c2c6b12edc7a824e923dd9671091535 100644 --- a/docs/src/index.rst +++ b/docs/src/index.rst @@ -14,13 +14,5 @@ that are useful for TANGO control system development. :caption: Contents: docker_images - docker_compose - k8s - interactions + README -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/src/k8s-readme.md b/docs/src/k8s-readme.md deleted file mode 120000 index 012d6f4590f98c07b64f33e76677c206355676d6..0000000000000000000000000000000000000000 --- a/docs/src/k8s-readme.md +++ /dev/null @@ -1 +0,0 @@ -../../k8s/README.md \ No newline at end of file diff --git a/docs/src/k8s.rst b/docs/src/k8s.rst index 91b648ac2560f3e6a012aed00e7167ae99bd02c5..4f0c01bcbe01000470af08c9a396d9d4add95b2b 100644 --- a/docs/src/k8s.rst +++ b/docs/src/k8s.rst @@ -5,5 +5,5 @@ K8s Integration TANGO-controls :maxdepth: 1 :caption: Readme File: - k8s-readme + README