Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Liqo installation is failing in a kubeadm cluster bootstrapped through ClusterAPI with Docker as the infrastructure provider. #2135

Open
mouad-eh opened this issue Nov 9, 2023 · 5 comments
Labels
fix Fixes a bug in the codebase.

Comments

@mouad-eh
Copy link

mouad-eh commented Nov 9, 2023

What happened:

Liqo-route and Liqo-gateway pod creation failed on a kubeadm cluster bootstrapped through ClusterAPI with Docker as the infrastructure provider (nodes are Docker containers).
After inspecting the logs of the Liqo-route DaemonSet, I discovered that this issue was caused by a pod security configuration. Specifically, the default Liqo namespace has a baseline pod security level in enforce mode, preventing Liqo-route and Liqo-gateway pods from being scheduled correctly.
As a workaround, I added labels to the Liqo namespace to change the pod security level to 'privileged,' allowing the pods to be scheduled correctly.

What you expected to happen:

A successfull installation process using the liqoctl CLI tool.

How to reproduce it (as minimally and precisely as possible):

Create a workload cluster using ClusterAPI with Docker as an infrastructure provider and install liqo using the liqoctl CLI tool.

Anything else we need to know?:

Environment:

  • Liqo version: latest
  • Liqoctl version: v0.10.0
  • Kubernetes version (use kubectl version): v1.28
  • Cloud provider or hardware configuration: docker
  • Node image:
  • Network plugin and version:
  • Install tools:
  • Others:
@cheina97
Copy link
Member

Hi @mouad-eh, thanks for your support. Can you give us more details about your workaround?

@mouad-eh
Copy link
Author

Yes for sure.
I am installing liqo using helm so I run the following commands:

helm repo add liqo https://helm.liqo.io/
helm repo update
liqoctl install kubeadm --service-type NodePort --only-output-values --dump-values-path 1-values.yaml --kubeconfig workload-1.kubeconfig
helm install liqo liqo/liqo --namespace liqo --values 1-values.yaml --create-namespace --kubeconfig workload-1.kubeconfig

the installation process will start After this. so, I opened a new terminal window, checked if the liqo namespace was created and run the following command:

kubectl --kubeconfig workload-1.kubeconfig label ns liqo pod-security.kubernetes.io/enforce=privileged pod-security.kubernetes.io/enforce-version=v1.28

@cheina97
Copy link
Member

Thanks for the information. Just an off-topic tip, you can install liqo using liqoctl install without generating the values file with --only-output-values and --dump-values-path flags.

@mouad-eh
Copy link
Author

Yes, I am aware of that. the reason I did that is that I thought I can change liqo namespace properties through the values.yaml file but that was not the case.

@yoctozepto
Copy link

I hit the same issue on Talos Linux (https://www.talos.dev/) because of this security-by-default approach.

The bottom line is - we are missing a way to specify liqo's namespaces' labels via Helm. These should be configurable.

@cheina97 cheina97 removed the kind/bug label Dec 20, 2024
@aleoli aleoli added the fix Fixes a bug in the codebase. label Dec 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Fixes a bug in the codebase.
Projects
None yet
Development

No branches or pull requests

4 participants