.. note:: **Audience:** Sys Admin .. _k8s: Using kubectl =============================================================================== Setup kubectl ------------------------------------------------------------------------------- Use `kubeconfig `_ to setup your config, and then create a context for this project (assuming you short login is `jdoe`): .. code-block:: bash kubectl config set-context strass-prod --cluster=k8sprod-02 --user=jdoe@k8sprod-02 --namespace strass-prod kubectl config set-context strass-dev --cluster=k8sdev-01 --user=jdoe@k8sdev-01 --namespace strass-dev Log from a pod, kill it ------------------------------------------------------------------------------- Use the appropriate context .. code-block:: bash kubectl config use-context strass-dev Get the running pods .. code-block:: bash kubectl get po You get .. code-block:: text NAME READY STATUS RESTARTS AGE doc-pod-master 1/1 Running 3 6d16h k8sdev-01-strass-n62wqs-webhost-deployment-7465f45464-92rqh 2/2 Running 2 5d23h The pod ``doc-pod*`` run the documentation adapted to the strass instance. The pod ``*webhost-deployment*`` run the web application. To put the pod identifier, use this command. .. code-block:: bash CI_COMMIT_REF_SLUG=master BACKEND_POD=$(kubectl get po -l branch=branch-${CI_COMMIT_REF_SLUG},role=front --output jsonpath='{.items[0].metadata.name}') Get its log ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To get the log, run the following command, do not forget to specify which container you want to log. .. code-block:: bash kubectl logs k8sdev-01-strass-n62wqs-webhost-deployment-7465f45464-92rqh --container django-container # you can also use the name we stored in an env variable kubectl logs ${BACKEND_POD} --container django-container You get: .. code-block:: text Copy static files to shared directory cp -rf /code/.static/* /code/.static.shared Applying database migrations No changes detected Operations to perform: Apply all migrations: admin, auth, contenttypes, live_settings, sessions, strass_app Running migrations: No migrations to apply. [2023-09-14 07:35:23 +0000] [1] [INFO] Starting gunicorn 21.2.0 [2023-09-14 07:35:23 +0000] [1] [INFO] Listening at: http://0.0.0.0:8086 (1) [2023-09-14 07:35:23 +0000] [1] [INFO] Using worker: sync [2023-09-14 07:35:23 +0000] [16] [INFO] Booting worker with pid: 16 Restart the app, i.e: kill the pod ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ By deleting the web pod, the deployment will create a new one, which in the end is restarting the application. .. code-block:: bash kubectl delete po ${BACKEND_POD}