XCP-ng
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Pulumi Xen Orchestra - News

    Scheduled Pinned Locked Moved Infrastructure as Code
    9 Posts 4 Posters 559 Views 4 Watching
    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.
    • CyrilleC Offline
      Cyrille Vates πŸͺ DevOps Team
      last edited by Cyrille

      Hello there, we released a new Pulumi Xen Orchestra provider !

      It's worth noting that the work on this was started by some contributors from DESY, and that now we (Vates) commit to support and maintain it. This demonstrate the strength of joined work from both community and Vates on free and open source softwares 🀝

      So what is offered is to declare your infrastructure as code, in

      • C# / .NET
      • Go
      • Javascript or Typescript
      • Python
      • Yaml

      (pick the one you prefer 🎲 )

      And to deploy, maintain, and update it.

      https://github.com/vatesfr/pulumi-xenorchestra/

      https://www.pulumi.com/registry/packages/xenorchestra/


      Release v2.1.0

      This new version builds on the improvements to the Terraform Provider regarding the disk lifecycle of a VM (TF provider release).

      Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v2.1.0

      Release v2.0.0

      This release aims to ensure that the provider is up to date with the latest version of the pulumi-terraform-bridge. This will make it easier to follow new Pulumi versions.

      The underlying Terraform provider XenOrchestra is updated to version 0.31.1, which fixes:

      • Issues with blocked operations when creating VMs. #344
      • A problem where the destroy_cloud_config_vdi_after_boot setting was ignored when the VM wasn't running. #345

      As the major version number suggests, this release introduces changes that break compatibility with previous versions (mostly deprecated functions and resources that have been removed).

      Find the release in the Pulumi registry: https://www.pulumi.com/registry/packages/xenorchestra/

      Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v2.0.0


      Release v1.5.2

      The provider is now available on the Pulumi official Registry 😎

      https://www.pulumi.com/registry/packages/xenorchestra/

      We added example for Yaml in the documentation.

      Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v1.5.2


      Release v1.5.0

      The Pulumi Xen Orchestra provider is now available with Dotnet SDK!

      • JavaScript/TypeScript: @vates/pulumi-xenorchestra
      • Python: pulumi-xenorchestra
      • Go: github.com/vatesfr/pulumi-xenorchestra/sdk
      • .NET: Pulumi.Xenorchestra

      What's Changed

      • Feat: Add dotnet support
      • Add docs for Dotnet SDK and unify examples

      The Pulumi schema doesn't support u64 (or i64), so we convert to a float64, which should get us at least 2^52 bits of precision while minimizing the breaking change (int -> float) for our users.

      List of properties to be updated from "integer" to "number"/float64:

      Resources

      • "xenorchestra:index/vm:Vm":
        • 🟑 inputs: "memoryMax" type changed from "integer" to "number"
        • 🟑 properties: "memoryMax" type changed from "integer" to "number"

      Types

      • 🟑 "xenorchestra:index/VmDisk:VmDisk": properties: "size" type changed from "integer" to "number"

      How to migrate Golang stack code

      Replace pulumi.Int(...) with pulumi.Float64(...)

      Other SDKs do not seem to be affected by the changes.

      Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v1.5.0


      What's next?

      Upgrade the Pulumi SDK and others libraries to the latest version and provider Java sdk.

      If you are using Pulumi Xen Orchestra, please share your experiences and needs with us πŸ™‚

      CyrilleC 1 Reply Last reply Reply Quote 1
      • CyrilleC Cyrille referenced this topic on
      • A Offline
        afk
        last edited by

        Awesome ! Thanks Vates and DESY for all the work that went into this.

        I'm really looking forward to use the pulumi provider when I get to the automation part of my tests (probably in a few months though).

        1 Reply Last reply Reply Quote 1
        • CyrilleC Offline
          Cyrille Vates πŸͺ DevOps Team @Cyrille
          last edited by

          Release v1.5.2

          The provider is now available on the Pulumi official Registry 😎

          https://www.pulumi.com/registry/packages/xenorchestra/

          We added example for Yaml in the documentation.

          Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v1.5.2

          CyrilleC 1 Reply Last reply Reply Quote 1
          • CyrilleC Offline
            Cyrille Vates πŸͺ DevOps Team @Cyrille
            last edited by

            Release v2.0.0

            This release aims to ensure that the provider is up to date with the latest version of the pulumi-terraform-bridge. This will make it easier to follow new Pulumi versions.

            The underlying Terraform provider XenOrchestra is updated to version 0.31.1, which fixes:

            • Issues with blocked operations when creating VMs. #344
            • A problem where the destroy_cloud_config_vdi_after_boot setting was ignored when the VM wasn't running. #345

            As the major version number suggests, this release introduces changes that break compatibility with previous versions (mostly deprecated functions and resources that have been removed).

            Find the release in the Pulumi registry: https://www.pulumi.com/registry/packages/xenorchestra/

            Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v2.0.0

            andrewperryA 1 Reply Last reply Reply Quote 1
            • andrewperryA Offline
              andrewperry @Cyrille
              last edited by andrewperry

              @Cyrille Thanks! Looking forward to using this, or something like this.

              It would be awesome if there was a Youtube demo getting started video for yaml or typescript!

              J 1 Reply Last reply Reply Quote 2
              • J Offline
                john.c @andrewperry
                last edited by

                @andrewperry said in Pulumi Xen Orchestra - News:

                @Cyrille Thanks! Looking forward to using this, or something like this.

                It would be awesome if there was a Youtube demo getting started video for yaml or typescript!

                Yes that would truly be awesome. Though it would be very good if this Pulumi Xen Orchestra provider had YAML support added please.

                CyrilleC 1 Reply Last reply Reply Quote 0
                • CyrilleC Offline
                  Cyrille Vates πŸͺ DevOps Team @john.c
                  last edited by

                  @john.c You can already use Yaml with the Xen Orchestra Pulumi provider πŸ™‚

                  name: test-yaml
                  description: A minimal Pulumi YAML program
                  runtime: yaml
                  config: { 'pulumi:tags': { value: { 'pulumi:template': yaml } } }
                  variables:
                    poolId:
                      fn::invoke:
                        function: xenorchestra:getXoaPool
                        arguments:
                          nameLabel: "Lab"
                        return: id
                    netId:
                      fn::invoke:
                        function: xenorchestra:getXoaNetwork
                        arguments:
                          nameLabel: "Lab"
                          poolId: ${poolId}
                        return: id
                    localStorageId:
                      fn::invoke:
                        function: xenorchestra:getXoaStorageRepository
                        arguments:
                          nameLabel: "Local Storage"
                        return: id
                    templateId:
                      fn::invoke:
                        function: xenorchestra:getXoaTemplate
                        arguments:
                          nameLabel: "Debian 12 Cloud-init (Hub)"
                          poolId: ${poolId}
                        return: id
                  resources:
                    vm:
                      type: xenorchestra:Vm
                      properties:
                        nameLabel: "Pulumi yaml test"
                        nameDescription: "test with pulumi yaml provider"
                        cpus: 1
                        memoryMax: 1073733632
                        template: ${templateId}
                        tags:
                          - pulumi
                        cloudConfig: |
                          #cloud-config
                          ssh_authorized_keys:
                            - ***
                        disks:
                          - nameLabel: "OS"
                            size: 8294967296
                            srId: ${localStorageId}
                        networks:
                          - networkId: ${netId}
                        powerState: "Running"
                  
                  outputs:
                    poolId: ${poolId}
                    vmIp: ${vm.ipv4Addresses}
                  

                  Tell us if it ins't working

                  J 1 Reply Last reply Reply Quote 0
                  • J Offline
                    john.c @Cyrille
                    last edited by

                    @Cyrille said in Pulumi Xen Orchestra - News:

                    @john.c You can already use Yaml with the Xen Orchestra Pulumi provider πŸ™‚

                    name: test-yaml
                    description: A minimal Pulumi YAML program
                    runtime: yaml
                    config: { 'pulumi:tags': { value: { 'pulumi:template': yaml } } }
                    variables:
                      poolId:
                        fn::invoke:
                          function: xenorchestra:getXoaPool
                          arguments:
                            nameLabel: "Lab"
                          return: id
                      netId:
                        fn::invoke:
                          function: xenorchestra:getXoaNetwork
                          arguments:
                            nameLabel: "Lab"
                            poolId: ${poolId}
                          return: id
                      localStorageId:
                        fn::invoke:
                          function: xenorchestra:getXoaStorageRepository
                          arguments:
                            nameLabel: "Local Storage"
                          return: id
                      templateId:
                        fn::invoke:
                          function: xenorchestra:getXoaTemplate
                          arguments:
                            nameLabel: "Debian 12 Cloud-init (Hub)"
                            poolId: ${poolId}
                          return: id
                    resources:
                      vm:
                        type: xenorchestra:Vm
                        properties:
                          nameLabel: "Pulumi yaml test"
                          nameDescription: "test with pulumi yaml provider"
                          cpus: 1
                          memoryMax: 1073733632
                          template: ${templateId}
                          tags:
                            - pulumi
                          cloudConfig: |
                            #cloud-config
                            ssh_authorized_keys:
                              - ***
                          disks:
                            - nameLabel: "OS"
                              size: 8294967296
                              srId: ${localStorageId}
                          networks:
                            - networkId: ${netId}
                          powerState: "Running"
                    
                    outputs:
                      poolId: ${poolId}
                      vmIp: ${vm.ipv4Addresses}
                    

                    Tell us if it ins't working

                    Please update OP as it’s not mentioned there!

                    CyrilleC 1 Reply Last reply Reply Quote 1
                    • CyrilleC Offline
                      Cyrille Vates πŸͺ DevOps Team @john.c
                      last edited by

                      Release v2.1.0

                      This new version builds on the improvements to the Terraform Provider regarding the disk lifecycle of a VM (TF provider release).

                      Full Release Note: https://github.com/vatesfr/pulumi-xenorchestra/releases/tag/v2.1.0

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