FAQ
Best practices
Add main scripts to runscript
Avoid using prerun and postrun script to include the core of the scripts.
Do not use latest version containers
Any modification on the release can break your application container configuration.
Create a subdirectory for each application in /home/acc
Creating separate subdirectories will ensure clean executions. Also, do not mix different app execution files as it makes the app files persist in the home user directory.
Ensure you know the container before adding it to the application
You need to know how to deploy and execute the container. If there is no documentation available describing how to execute the container in Kubernetes, first execute it in your local environment and test it there. Once you have the container working correctly in your local environment, you can configure the scripts and variables to use in AAC.
Application will finish when the container runscript finishes
It executes and finishes once the task is completed.
Troubleshooting
SSH connection does not appear
To expose the SSH connection to a container, the application must:
- Execute SSH daemon on the container.
- Configure a port called SSH with value 22.
Note that the workload might need to pull the image, so the SSH port may appear with a delay.
Not found files
If you receive messages about not found files, it is probably because the application or the container is configured to use a file from your home user directory.
To avoid this problem, attach such files to the workload execution as input files. They will remain in the /home/aac directory of a specific cluster until you delete them.
ERROR -> [prerun]: tar (child): demo-fastdata.tar.gz: Cannot open: No such file or directory Containers depending on other containers If your application has container dependencies, you can use the order attribute.
Memory requirements
If you encounter memory issues, you can configure memory container requirements in the container configuration. Memory is configured in Megabytes.
Container needs the public IP of another container
In this case, you will need to deploy two different applications:
- Configure the backend application with its containers and expose the required endpoint.
- Configure the frontend application with the IP and endpoint provided by the backend application.
Interactive workloads or services finish immediately
To keep any execution alive, the container runscript must be a live process. If the run script executes a detached process, you can keep the container alive by adding && tail -f, otherwise, the execution manager will finish the application.
Kubernetes: Manager pods fail
The manager pods are those called stream-copy, create-scripts, read-analytics, retrieve-files, read-stdout, or read-stderr. If they fail, these are the most likely reasons:
- Fail without displaying a reason or displaying any HTTP error:
- This error is due to an issue with the target cluster.
- Show timeout error of 60 seconds.
- This can be because the cluster cannot create the pod:
- Cluster resources are insufficient.
- Cluster issues (network, permissions).