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

please add installation of metacontoller to README #28

Open
uvwild opened this issue Jan 16, 2021 · 4 comments
Open

please add installation of metacontoller to README #28

uvwild opened this issue Jan 16, 2021 · 4 comments

Comments

@uvwild
Copy link

uvwild commented Jan 16, 2021

I suggest to include a more specific cluster specification to better define under what conditions this repo might be working.
E.G. the metacontroller needs to be installed explicitly. This is not mentioned anywhere

https://metacontroller.github.io/metacontroller/guide/install.html

Installing it like this helped me to finish the kubectl apply -f build step

kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/metacontroller/master/manifests/metacontroller.yaml

@kachar
Copy link

kachar commented Jan 19, 2021

@uvwild metacontroller actually is being included here https://github.com/hpi-schul-cloud/jitsi-deployment/tree/master/base/ops/metacontroller

The ops/ folder is included only in the development-monitoring and production-monitoring overlays.

Keep in mind that the GoogleCloudPlatform/metacontroller repo has been deprecated in favor of the dedicated https://github.com/metacontroller/metacontroller repo where you can find the latest version.

@tibby-stanescu
Copy link

Hello - I am running into the same issue. Do we need to deploy the monitoring components first and then jitsi?

@r3k2
Copy link

r3k2 commented Sep 21, 2021

same here. how do we install this add-on? do we need to run this before we run your kustomize yaml files?

kubectl apply -k https://github.com/metacontroller/metacontroller/manifests/production

@cgustav
Copy link

cgustav commented Jun 16, 2023

The answer comes a little late, but I hope it still helps someone.

The documentation is a bit confusing about this issue as the metacontroller maintainers have migrated their official repositories from google dependencies to their own repos.

The problem comes from the fact that for some reason the repository does not have all the base resources (like role bindings, statefulsets, etc) for metacontroller to create properly the Kubernete's CustomResourceDefinition components (in this case they are used to define the service-per-pod-controller mechanisms to scale JVB instances.

To fix this you should run the following commands before deploy any Jitsi resources on your cluster:

# Install Metacontroller custom resources
# https://docs.primehub.io/docs/getting_started/install_metacontroller
# These custom resources supports the creation of custom controllers
# for JVB services (service-per-pod-controller).

kubectl apply -f https://raw.githubusercontent.com/metacontroller/metacontroller/master/manifests/production/metacontroller-namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metacontroller/metacontroller/master/manifests/production/metacontroller-rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/metacontroller/metacontroller/master/manifests/production/metacontroller-crds-v1.yaml
kubectl apply -f https://raw.githubusercontent.com/metacontroller/metacontroller/master/manifests/production/metacontroller.yaml

Finally you can check if all metacontroller dependencies were successfully inside your cluster executing:

kubectl get crd | grep metacontroller

Then you should get something like this if everything is ok:

compositecontrollers.metacontroller.k8s.io   2023-06-16T18:33:35Z
controllerrevisions.metacontroller.k8s.io    2023-06-16T18:33:36Z
decoratorcontrollers.metacontroller.k8s.io   2023-06-16T18:33:37Z

You should also get rid of any metacontroller namespace definitions within the repo to avoid breaking the metacontroller resources you have previously installed and manage this whole process in a specific script to prepare your cluster to deploy Jitsi's resources.

Expected output after deploying Jitsi:

namespace/jitsi created
configmap/jvb-entrypoint created
configmap/jvb-shutdown created
configmap/prosody created
configmap/web created
secret/jitsi-config created
service/shard-0-prosody created
service/shard-1-prosody created
service/web created
deployment.apps/shard-0-jicofo created
deployment.apps/shard-0-prosody created
deployment.apps/shard-0-web created
deployment.apps/shard-1-jicofo created
deployment.apps/shard-1-prosody created
deployment.apps/shard-1-web created
horizontalpodautoscaler.autoscaling/shard-0-jvb-hpa created
horizontalpodautoscaler.autoscaling/shard-1-jvb-hpa created
decoratorcontroller.metacontroller.k8s.io/shard-0-pod-name-label created
decoratorcontroller.metacontroller.k8s.io/shard-0-service-per-pod created
decoratorcontroller.metacontroller.k8s.io/shard-1-pod-name-label created
decoratorcontroller.metacontroller.k8s.io/shard-1-service-per-pod created
(...)

NOTE: As @kachar said you should use this installation guide (do not consider GoogleCloudPlatform/metacontroller documentation in this regard) : https://metacontroller.github.io/metacontroller/guide/install.html

NOTE2: Command shared by @r3k2 work in a more efficient way:

kubectl apply -k https://github.com/metacontroller/metacontroller/manifests/production

Cheers!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants