XCP-ng

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    Kubernetes autoscaler xen api/XO api

    Development
    4
    18
    705
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ringods
      ringods @olivierlambert last edited by

      @olivierlambert I have no problem being it a Kubernetes component talking to Xen Orchestra. But that limits my contribution ability to the free features of XO. I only use XCP-ng for a personal homelab on a single machine setup.

      1 Reply Last reply Reply Quote 0
      • olivierlambert
        olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by olivierlambert

        Xen Orchestra is fully open source 🙂 You can build it with all XO features, it's even explaining in our doc: https://xen-orchestra.com/docs/installation.html#from-the-sources

        edit: do you know where could we have an overview on the kind of "calls" that would be needed to be done from Kubernetes?

        ringods 1 Reply Last reply Reply Quote 0
        • Y
          yctn last edited by

          @ringods maby you can join IRC or Discord if thats possible for you. cause i think there are still a few things that need to be discussed on how it should be implemented. for example. what about DHCP? since XO/xcp-ng to me knowledge has no DHCP component.
          what about type loadBalancer call? since xcp-ng does not offer that.

          in my DIY k8s setup i just made 2 vm's with keepalived and haproxy that are able to send proxy protocol traffic to my haproxy ingress controller in k8s using nodePort.

          but DHCP i have not found a sollution. but it would be great if xcp-ng can offer like a managed/ha DHCP sollution for the future.

          ringods 1 Reply Last reply Reply Quote 0
          • olivierlambert
            olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by

            That's why XO is relevant. All you ask can be managed at XO level, adding a simple abstraction layer 🙂

            That's also why we got a load balanced in XO already BTW. We should probably study how it's done on VMware (as the link given) before taking any decision.

            1 Reply Last reply Reply Quote 0
            • ringods
              ringods @yctn last edited by

              @yctn or @olivierlambert, which Discord is this? I don't see it mentioned in the Community section of the website.

              Y 1 Reply Last reply Reply Quote 0
              • Y
                yctn @ringods last edited by

                @ringods https://discord.gg/aNCR3yPaPn

                1 Reply Last reply Reply Quote 0
                • ringods
                  ringods @olivierlambert last edited by

                  @olivierlambert, coming back to this question:

                  edit: do you know where could we have an overview on the kind of "calls" that would be needed to be done from Kubernetes?

                  Every cloud provider is a Kubernetes controller. The basic initialisation creates a structure of type cloudprovider.Interface. Here you can see the initialisation of the vSphere cloud provider:

                  https://github.com/kubernetes/cloud-provider-vsphere/blob/de156a4200204bb23c3ad86683ea8530302b9850/cmd/vsphere-cloud-controller-manager/main.go#L195-L215

                  The Golang interface to implement has the following functions which needs to be implemented:

                  https://github.com/kubernetes/cloud-provider/blob/e0df2eeb11dbb85b96df07b5f3ee374cc9a6875b/cloud.go#L42-L69

                  I hope this helps.

                  I understand that more investigation is needed, but can we do this work together? I can, and want to, help out to bootstrap the basic project layout, build setup, etc in a new Git repository. A repository can always be renamed if the name is not 100% correct.

                  Ringo

                  1 Reply Last reply Reply Quote 0
                  • olivierlambert
                    olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by

                    Sure.

                    1. Do you know if it's our responsibility to create the repo or if it's within "upstream" in k8s?
                    2. That will be probably named "cloud-provider-xo" or "cloud-provider-xenorchestra". What do you think?
                    D 1 Reply Last reply Reply Quote 0
                    • D
                      ddelnano @olivierlambert last edited by

                      @olivierlambert

                      1. it would be our responsibility to create the repo and users would likely install it with Helm (from my reading of the cloud-provider-vsphere docs
                      2. I think either is fine. My personal vote would be for the latter (cloud-provider-xenorchestra).
                      1 Reply Last reply Reply Quote 0
                      • olivierlambert
                        olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by

                        Great, let's do this then! On creating the repo, and will invite you Dom. @ringods what's your Github handle?

                        1 Reply Last reply Reply Quote 0
                        • olivierlambert
                          olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by

                          Done. Both of you added!

                          https://github.com/vatesfr/cloud-provider-xenorchestra

                          ringods 1 Reply Last reply Reply Quote 1
                          • ringods
                            ringods @olivierlambert last edited by

                            @olivierlambert thanks for that. Are you ok if I configure Github Actions as the CI for this repo?

                            1 Reply Last reply Reply Quote 0
                            • olivierlambert
                              olivierlambert Vates 🪐 Admin 🧑‍💻 last edited by olivierlambert

                              Sure go ahead you should be able to do it in terms of permissions. If not, let me know 🙂

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post