Deploy magento2 on a kubernet cluster - kubernetes

I run magento 2 on my local with docker.
It works like a charm.
But now I would like to pass the next step, and deploying a registry image of my magento2 (gitlab registry with gitlab-ci in my case) in a k3d cluster in my personal server.
I don't have any problems to generate the image in the registry of gitlab and to deploy the service, the node, the pod with kube in my server. To train myself and to be sure that what I did was correct, I have tried to deploy an other image in my cluster from the gitlab registry from a little simple HTML and a Dockerfile and it works like a charm.
But the magento 2 image no. The problem is that we must play the setup / compile / etc. When I try to play composer install in my entrypoint it says in the logs pod that there is no composer.json in the folder where composer is supposed to be. So I guess I must configure ingress.yaml, services and deployment with a specific way. I don't know where to start and how.
My question is just, if someone know a good tuto or some documentations links I would be pleased to see that.
I have heard about helm, the hooks etc...but I don't handle it at all. I even don't know what it is...
Thank you
Thanks

Related

Install geoip2 python library for Odoo 15 on Kubernetes

Hi I have installed Odoo 15 on Kubernetes (using Bitnami chart) and I would like to use the geoip database functionality. To do so, I need to install the geoip2 python library in my Odoo containners before the Odoo server starts.
Installing the geoip2 library is as simple as running pip install geoip2 (or pip3). The problem is that this needs to be done before the Odoo server starts and without ssh-ing into the container (we would like deployments to be entirely automated - no manual interaction).
I've tried InitContainers but they're not a solution because they run in their own container and any library installed in the InitContainer will not be installed in the Odoo container (I am guessing that sidecars would be the same).
Using Lifecyle -> poststart in the deployment yaml does not work either and I suspect that this is because the poststart is executed after the Odoo server is started.
I've tried to use the command: element of the deployment yaml file to first run the install of geoip2 and then the entrypoint of the Odoo image but for some reason this does not seem to work. Maybe this could be a solution if someone can get this to work?
Would anyone have a simple solution, ideally that does not require creating our own image for installing Odoo.
Thanks
Like what David Maze suggested, the simplest and easiest way to get this done is creating a new container image or editing your current container image because all solutions like kubectl or kube jobs or CICD will execute commands inside the container only once the container is brought up. One more option is that you can install geoip2 package and then restart the dependent odoo service but you are saying that this is not working. So, you can edit the existing container image and install geoip2, input your config and commit the image to the registry for creating your deployment.

How to modify Kubeflow source code before deploying it with Kubernetes?

I encountered the same issue as in https://github.com/kubeflow/kubeflow/issues/6014 with my Kubeflow app. The fix is very simple (just a type casting), then I would like to fix it myself and redeploy Kubeflow.
The problem is that I am running a k3s cluster on my local machine where I have installed Kubeflow bundle via Juju. Then, I cannot change the source code.
How to modify Kubeflow source code before deploying it with Kubernetes?
Should I use the manifest installation https://github.com/kubeflow/manifests#installation ? or a totally different method?
Thank you.
The bug was fixed in the last version of the manifests, then I have finally installed kubeflow directly from the manifests.
But still I am in touch with one Kubeflow developer, I will post here the right way to do modify/deploy if interested.
You got to check out their Github repo. Make changes and use kustomize to install like explained in their wiki. If you check the example folder you can see that it points to all other component folders.
https://github.com/kubeflow/manifests#install-with-a-single-command
One another hack could be, just look for the controllers in Kubernetes eg., deployments created for kubeflow, then modify them; works only if your changes are only related to Kubernetes resource definitions. I suggest going with the first option above for a clean development experience, and hey, that way can you contribute back to the kubeflow project as well, if you changes will benefit others.

creating a proper kubeconfig file for a 2 node gentoo linux kubernetes cluster

I have two servers at my home with Gentoo Linux ~amd64.I would like to install Kubernetes on them to play with it a bit.
Gentoo now packages all the Kubernetes related dependencies under one package called sys-cluster/kubernetes and the latest version available at the moment is 1.18.3.
the last time I played with Kubernetes was several years ago and I think I completely forgot everything.
so I installed kubernetes on both servers. since I use systemd and the package contains only kubelet systemd service I created systemd init scripts for also kube-apiserver, kube-controller-manager, kube-proxy and kube-scheduler.
now this package also comes with kubeadm but I would like to know how to install and configure kubernetes manually.
now I want to create a kubeconfig file for my cluster configuration.
I googled and found the following url: http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/
the first step is Make sure you can access the cluster but I thought I wanted to create kubeconfig in order for the services to properly know how to access my cluster!
this web site already talks about secrets that where already configured which aren't.. i'm starting from scratch and this is not probably the way to go.
In general I want to know how to properly create a kubeconfig file for my setup, then i'll configure the services to use this kubeconfig file and go on from there.
so any information regarding this issue would be greatly appreciated.
so I asked this also in Kubernetes slack channel and they provided me this project: https://github.com/kelseyhightower/kubernetes-the-hard-way
it's a documentation project on how to configure kubernetes the hard way, in the documentation they set it up in google cloud, but it's easy to understand what they did on cloud and how to configure the same on your network.

We are deploying Open Loyalty on to Google Cloud and we are receiving a Yarn error?

We are installing Open Loyalty Program on to the Google Cloud. Please Google Open Loyalty by Divante Ltd.
We have been trying to deploy this application on google cloud using Kubernetes.
The instance used to deploy this application contains Debian v4.9 as its OS. And we installed Docker, GCloud, Kubernetes and Kompose as the tools for deployment. We built two docker images for the frontend and backend and linked them to the docker-compose file. Now in frontend image, we used (node:5) image from docker hub in Dockerfile of the frontend.
We also changed the docker-compose file as seen below:
enter image description here
After changing the docker-compose file, we ran “kompose up” within the same directory.
which created the deployment and service ‘yaml’ file and then proceeded to run it.
We have pods as given below, but the frontend pod shows some error and some logs.enter image description here
It says yarn not found. When we execute the same process on a local machine, it works as expected.
We are also trying to seek help from Google Support but your help and suggestions will also be highly appreciated.
Yarn is available from node:6. Your front-end image is too old.

swift Perfect server deployment in Amazon AWS Buildpack

Am trying to deploy my web service written in swift, I don't see the web-root folder and not sure where to create the folder. Anybody have tried, please help me to copy the source code and start the server.
so, can you tell me what you have done so far, in relation to getting the AWS instance up and running ? Did you use the AWS instructions from here?
Once you have the instance up and running, there are several ways to deploy your code, such as a git pull. By default, the webroot folder for the PerfectServer is created in the current working directory when you run the app. There are several command line options to define the location of libraries, server port and location of webroot.
With more information, I'd be happy to help get you running.