Note-to-self: How to run a Akeeba restore job on the vanilla bitnami Joomla helm chart installation. 

The plan is to create a directory on the bitnami container with k3s ctr. Copy the Akeeba files to this directory and simply run the Akeeba installer (kickstart). A huge work-a-round for not being able to fix bitnami no-root helm chart. Using k3s CLI tools for copying the Akeeba image and setting the correct access right for the two files. Not an elegant way to go. 

What is needed:

  • (sudo) Access to the relevant host for running the k3s CLI tool
  • Akeeba backup and Akeeba kickstart file 
  • A running vanilla bitnami joomla (helm chart) installation

For a docker setup, a possible fix is to add 'user: root' in the compose file and you will have the necessary access right on the container. Possible even 'docker exec' will access the container with root access (kubectl exec will not). The security settings for the bitnami joomla chat is (chart version: 14.1.3):

podSecurityContext:
  enabled: true
  fsGroup: 1001
##
containerSecurityContext:
  enabled: true
  runAsUser: 1001
  runAsNonRoot: true


Source files (Akeeba backup and kickstart.php)

akeeba
├── kickstart.php
└── site-www.XXX.xxx-20230622-15cest-PBGHGTRhJHkLDsB.jpa

Destination (Vanilla bitnami Joomla installation)

kubectl get pods -n bitnami -o wide
NAME                              READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
bitnami-mariadb-0                 1/1     Running   0          139m   10.42.0.193   test0              
bitnami-joomla-86dfc87b77-cpkv5   1/1     Running   0          139m   10.42.2.132   test2              

The Joomla (bitnami-joomla-86dfc87b77-cpkv5) pod is running on host 'test02'.

Get container ID for 'bitnami-joomla-86dfc87b77-cpkv5' (showing only part of the output) with kubectl describe.

kubectl describe pods bitnami-joomla-86dfc87b77-cpkv5 -n bitnami  
Name:             bitnami-joomla-86dfc87b77-cpkv5
...
Containers:
  joomla:
    Container ID:   containerd://0c8f2f66dc40b72ee6132b59518cfa107e28826771f0e90a65e5069a49cd4b90
    Image:          docker.io/bitnami/joomla:4.3.2-debian-11-r0

Container ID in this case is: 0c8f2f66dc40b72ee6132b59518cfa107e28826771f0e90a65e5069a49cd4b90

Access the relevant host directly. Below I am logged in to the 'test2' host.

sudo ctr containers list | grep -i 0c8f2f66dc40b72ee6132b59518cfa107e28826771f0e90a65e5069a49cd4b90
0c8f2f66dc40b72ee6132b59518cfa107e28826771f0e90a65e5069a49cd4b90    docker.io/bitnami/joomla:4.3.2-debian-11-r0              io.containerd.runc.v2  

Above simply confirm that pod 'bitnami-joomla-86dfc87b77-cpkv5' is running on this computer.

Log in to the container and create a directory needed as destination for the copy job. 

sudo ctr -n k8s.io task exec -t -exec-id 0 --user 0 0c8f2f66dc40b72ee6132b59518cfa107e28826771f0e90a65e5069a49cd4b90 sh

As the server is not exposed externally (and will have a very shot lifespan) the directory 'tmp/backup' is getting some excessive access rights. The directory should be delete right after the files have been removed.

cd /tmp
mkdir backup
chmod 777 backup

Now the directory is created on the bitnami container, copy both the Akeeba backup file and the kickstart file into this directory (below is run from you normal terminal (i.e. outside the container) and where you have access to your backup files).

kubectl cp akeeba/kickstart.php bitnami-joomla-86dfc87b77-cpkv5:/tmp/backup -n bitnami

Inside the container: Both file must end up in the ''/bitnami/joomla' directory. Copy both files:

cp kickstart.php /bitnami/joomla
cp site-www.60877727.dk-20230622-143435cest-PBGPENXIhJHkLDsB.jpa /bitnami/joomla

Delete the /tmp/backup directory now.

Still inside the container. Give kickstart and the backup files the necessary access (both files will be delete as part of the install process)

pwd
/bitnami/joomla

chmod 777 kickstart.php
chmod 777 site-www.XXX.xxx-20622-145cest-PBGGFDREkLDsB.jpa

'kickstart.php' is now accessible from the webserver.

In darkness I dwell,
A shattered soul, lost and worn,
Hope's whispers arise.

Embrace gentle mends,
Fragments unite, piece by piece,
Budding strength within.

Fragile steps I take,
A mosaic of rebirth,
Finding light once more