Cannot deploy apps in Openshift Online: `Error syncing pod: FailedSync` - docker

So I'm new to Openshift Online, and I'm looking to deploy a test image that when run simply runs a C++ native executable that says Hello world!.
After pushing the built docker image to the docker hub and creating an app that uses that image, I've waited for it to deploy. At some point in the process, a warning event arises stating
Error syncing pod, Reason: FailedSync
Then, the deployment stalls at pending until the deadline runs out, and it reports the deployment failed.
As far as I know, I can't have done anything wrong. I simply created an app with the default settings that uses an image.
The only thing that could be happening is that the image runs as root, which, upon creating the app, caused a warning.
WARNING: Image "me/blahblah:test" runs as the 'root' user which may not be permitted by your cluster administrator.
However, this doesn't seem to be causing the problem, since it hasn't even deployed the app by the time the process stalls until it reaches the deadline.
I'll add any extra information that could lead to the problem being solved.

Related

GCP Cloud Run : Application exec likely failed

I am running a service on GCP Cloud Run.
I found on the logs this error, how can I troubleshoot it?
What does it mean?
Application exec likely failed
terminated: Application failed to start: not available
This error can be caused when containers fail to deploy/start.
To troubleshoot the issue, You may try to follow the steps mentioned in document.
As described in the document, if you build your container image on an ARM based machine, then it might not work as expected when used with Cloud Run. If so you can solve this issue, by following doc build your image using Cloud Build.
To get the detailed logs, I would suggest setting up Cloud Logging with your Cloud Run.You can easily do so by following this documentation and Setting up cloud logging.
This will allow you to have more control over the logs that appear for your Cloud Run application.
I was using Cloud Run Second Generation.
According to the official documentation:
During Preview, although the second generation execution environment
generally performs faster under sustained load,
it has longer cold start times than the first generation.
Therefore, I switched back to First Generation.

Docker Image tries to fetch image multiple times and fails with size validation (for Azure Functions Core Tools)

I used to have a working Dockerfile which I have built multiple times (with docker compose) and it worked perfectly. Recently (for last 2 days), it stopped building (and will not rebuild). The Dockerfile and docker compose is used by Devcontainer to set up a container to run the development environment by VS Code. Find the contents of the Dockerfile below:
FROM mcr.microsoft.com/azure-functions/python:4-python3.8-core-tools # only a single line in the file to setup image which runs azure functions
The error I am getting:
failed commit on ref "layer-sha256:627f1702b7f112be5cefb32841e7d97268d106a402689b1bbc2e419641737372": "layer-sha256:627f1702b7f112be5cefb32841e7d97268d106a402689b1bbc2e419641737372" failed size validation: 503316480 != 622344404: failed precondition
My observation so far (manually building with docker build .):
The layer-sha256:627f1702b7f112be5cefb32841e7d97268d106a402689b1bbc2e419641737372 starts downloading very early on, and takes about nearly 2000 s to reach 503.32 MB, at which point it hangs. After a while, it resets to 0 and restarts the download process. This repeats around 5 times and then finally fails with the error above.
Is there someone who can guide me what the issue is, and how to fix it?

gitlab on kubernetes/docker: pipeline failing: Error cleaning up configmap: resource name may not be empty

We run gitlab-ee-12.10.12.0 under docker and use kubernetes to manage the gitlab-runner
All of a sudden a couple of days ago, all my pipelines, in all my projects, stopped working. NOTHING CHANGED except I pushed some code. Yet ALL projects (even those with no repo changes) are failing. I've looked at every certificate I can find anywhere in the system and they're all good so it wasn't a cert expiry. Disk space is at 45% so it's not that. Nobody logged into the server. Nobody touched any admin screens. One code push triggered the pipeline successfully, next one didn't. I've looked at everything. I've updated the docker images for gitlab and gitlab-runner. I've deleted every kubernetes pod I can find in the namespace and let them get relaunched (my go-to for solving k8s problems :-) ).
Every pipeline run in every project now says this:
Running with gitlab-runner 14.3.2 (e0218c92)
on Kubernetes Runner vXpkH225
Preparing the "kubernetes" executor
00:00
Using Kubernetes namespace: gitlab
Using Kubernetes executor with image lxnsok01.wg.dir.telstra.com:9000/broadworks-build:latest ...
Using attach strategy to execute scripts...
Preparing environment
00:00
ERROR: Error cleaning up configmap: resource name may not be empty
ERROR: Job failed (system failure): prepare environment: setting up build pod: error setting ownerReferences: configmaps "runner-vxpkh225-project-47-concurrent-0-scripts9ds4c" is forbidden: User "system:serviceaccount:gitlab:gitlab" cannot update resource "configmaps" in API group "" in the namespace "gitlab". Check https://docs.gitlab.com/runner/shells/index.html#shell-profile-loading for more information
That URL talks about bash logout scripts containing bad things. But nothing changed. At least we didn't change anything.
I believe the second error implying that the user doesn't have permissions is not correct. It seems to just be saying that the user couldn't do it. The primary error being the previous one about the configmaps clean up. Again, no serviceaccounts, roles, rolebindings, etc have changed in any way.
So I'm trying to work out what may CAUSE that error. What does it MEAN? What resource name is empty? Where can I find out?
I've checked the output from "docker container logs " and it says exactly what's in the error above. No more, no less.
The only thing I can think of is perhaps 14.3.2 of gitlab-runner doesn't like my k8s or the config. Going back and checking, it seems this has changed. Previous working pipelines ran in 14.1.
So two questions then: 1) Any ideas how to fix the problem (eg update some config, clear some crud, whatever) and 2) How to I get gitlab to use a runner other than :latest?
Turns out something DID change. gitlab-runner changed and kubernetes pulled gitlab/gitlab-runner:latest between runs. Seems gitlab-runner 14.3 has a problem with my kubernetes. I went back through my pipelines and the last successful one was using 14.1
So, after a day of working through it, I edited the relevant k8s deployment to redefine the image tag used for gitlab-runner to :v14.1.0 which is the last one that worked for me.
Maybe I'll wait a few weeks and try a later one (now that I know how to easily change that tag) and see if the issue gets fixed. And perhaps go raise an issue on gitlab-runner

Docker install of AZCore results in authserver+worldserver doesn't exist error

I'm trying to spin up a fresh server using the azerothcore docker installation guide. I have completed all of the early installation steps, up until running the containers. Upon running the containers (for worldserver and authserver) i see the following output from the containers. It appears the destination of the world and auth servers in dist/bin is missing, how may i resolve this issue?
Check your docker settings. Make sure you have enough memory. If containers have low memory they will not finish the compile. Check if you have build issues.

Capturing logs when Docker container crashes

My app uses a 3rd party jar which is liable to cause a system crash at random times. We dont want the issue to kill our service so the docker container uses the "always" restart policy.
What I am trying to do now is find a way to capture the logs to see what caused the crash but because the actual docker container is restarted I can't just log onto the crashed docker when the crash happens because the old container that crashed is removed and a new container starts up. Is there any way to push log files onto say amazon S3 after the app crashes but before the docker container is destroyed?

Resources