From 227736f6e931eef0ae6586ceddbe47284b0f0714 Mon Sep 17 00:00:00 2001 From: Fabien Boucher Date: Jan 15 2021 10:38:23 +0000 Subject: Provide a generated nodesets.yaml along with nodesets.dhall --- diff --git a/zuul.d/nodesets.dhall b/zuul.d/nodesets.dhall new file mode 100644 index 0000000..6dbb5df --- /dev/null +++ b/zuul.d/nodesets.dhall @@ -0,0 +1,141 @@ +{-| + +This Dhall definition helps to maintain the nodesets.yaml definition for Zuul. +The Dhall-Zuul library is used to benefit base Dhall type and function for Zuul +objects. + +To compute the jobs.yaml run: + + dhall-to-yaml --generated-comment --file nodesets.dhall | zuulfmt > nodesets.yaml +Install dhall by following https://docs.dhall-lang.org/tutorials/Getting-started_Generate-JSON-or-YAML.html#installation +Install zuulfmt by running: `python3 -mpip install --user zuulfmt` + +-} + +let Zuul = + ~/git/softwarefactory-project.io/software-factory/dhall-zuul/package.dhall + ? https://raw.githubusercontent.com/softwarefactory-project/dhall-zuul/master/package.dhall + +let Prelude = + https://prelude.dhall-lang.org/v17.0.0/package.dhall sha256:10db3c919c25e9046833df897a8ffe2701dc390fa0893d958c3430524be5a43e + +let Nodeset = + let NodesetDetails = { name : Text, label : Text, host : Text } + + let Union = + < Fedora-Latest-Container + | Fedora-33-Container + | Fedora-32-Container + | Fedora-31-Container + | Fedora-30-Container + | Centos-8-Container + | Centos-7-Container + | Fedora-Rawhide-VM + | Fedora-33-VM + | Fedora-32-VM + | Fedora-31-VM + | Fedora-30-VM + | Fedora-Rawhide-VM-Medium + | Fedora-33-VM-Medium + | Fedora-32-VM-Medium + | Fedora-31-VM-Medium + | Fedora-30-VM-Medium + | Centos-8-VM + > + + let all = + [ Union.Fedora-Latest-Container + , Union.Fedora-33-Container + , Union.Fedora-32-Container + , Union.Fedora-31-Container + , Union.Fedora-30-Container + , Union.Centos-8-Container + , Union.Centos-7-Container + , Union.Fedora-Rawhide-VM + , Union.Fedora-33-VM + , Union.Fedora-32-VM + , Union.Fedora-31-VM + , Union.Fedora-30-VM + , Union.Fedora-Rawhide-VM-Medium + , Union.Fedora-33-VM-Medium + , Union.Fedora-32-VM-Medium + , Union.Fedora-31-VM-Medium + , Union.Fedora-30-VM-Medium + , Union.Centos-8-VM + ] + + let create + : Text → Text → Text → Zuul.Nodeset.Type + = λ(name : Text) → + λ(label : Text) → + λ(host : Text) → + Zuul.Nodeset::{ + , name = Some name + , nodes = [ { name = host, label } ] : List Zuul.Nodeset.NodeType + } + + let show + : Union → Zuul.Nodeset.Type + = λ(nodeset : Union) → + merge + { Fedora-Latest-Container = + create "fedora-latest-container" "pod-fedora-33" "container" + , Fedora-33-Container = + create "fedora-33-container" "pod-fedora-33" "container" + , Fedora-32-Container = + create "fedora-32-container" "pod-fedora-32" "container" + , Fedora-31-Container = + create "fedora-31-container" "pod-fedora-31" "container" + , Fedora-30-Container = + create "fedora-30-container" "pod-fedora-30" "container" + , Centos-8-Container = + create "centos-8-container" "pod-centos-8" "container" + , Centos-7-Container = + create "centos-7-container" "pod-centos-7" "container" + , Fedora-Rawhide-VM = + create + "fedora-rawhide-vm" + "cloud-fedora-rawhide-small" + "cloud-host" + , Fedora-33-VM = + create "fedora-33-vm" "cloud-fedora-33-small" "cloud-host" + , Fedora-32-VM = + create "fedora-32-vm" "cloud-fedora-32-small" "cloud-host" + , Fedora-31-VM = + create "fedora-31-vm" "cloud-fedora-31-small" "cloud-host" + , Fedora-30-VM = + create "fedora-30-vm" "cloud-fedora-30-small" "cloud-host" + , Fedora-Rawhide-VM-Medium = + create + "fedora-rawhide-vm-medium" + "cloud-fedora-rawhide-medium" + "cloud-host" + , Fedora-33-VM-Medium = + create + "fedora-33-vm-medium" + "cloud-fedora-33-medium" + "cloud-host" + , Fedora-32-VM-Medium = + create + "fedora-32-vm-medium" + "cloud-fedora-32-medium" + "cloud-host" + , Fedora-31-VM-Medium = + create + "fedora-31-vm-medium" + "cloud-fedora-31-medium" + "cloud-host" + , Fedora-30-VM-Medium = + create + "fedora-30-vm-medium" + "cloud-fedora-30-medium" + "cloud-host" + , Centos-8-VM = + create "centos-8-vm" "cloud-centos-8" "cloud-host" + } + nodeset + + in { Type = Union, show, all, create } + +in Zuul.Nodeset.wrap + (Prelude.List.map Nodeset.Type Zuul.Nodeset.Type Nodeset.show Nodeset.all) diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 4a200b4..f7ea658 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -1,133 +1,109 @@ ---- -# Warning: -# When updating latest version, add depends-on check for each project using the updated nodeset. -# If all depends-on succeed, merge the change, else -# for the depends-on that failed, either fix the project, or change the job nodeset to a pinned version nodeset. +# Code generated by dhall-to-yaml. DO NOT EDIT. +- nodeset: + name: fedora-latest-container + nodes: + - label: pod-fedora-33 + name: container -# Container nodesets - nodeset: name: fedora-33-container nodes: - - name: container - label: pod-fedora-33 + - label: pod-fedora-33 + name: container - nodeset: name: fedora-32-container nodes: - - name: container - label: pod-fedora-32 + - label: pod-fedora-32 + name: container - nodeset: name: fedora-31-container nodes: - - name: container - label: pod-fedora-31 + - label: pod-fedora-31 + name: container - nodeset: name: fedora-30-container nodes: - - name: container - label: pod-fedora-30 + - label: pod-fedora-30 + name: container - nodeset: name: centos-8-container nodes: - - name: container - label: pod-centos-8 + - label: pod-centos-8 + name: container - nodeset: name: centos-7-container nodes: - - name: container - label: pod-centos-7 + - label: pod-centos-7 + name: container - -# VM nodesets -# small flavors - nodeset: name: fedora-rawhide-vm nodes: - - name: cloud-host - label: cloud-fedora-rawhide-small - -- nodeset: - name: fedora-latest-vm - nodes: - - name: cloud-host - label: cloud-fedora-31-small + - label: cloud-fedora-rawhide-small + name: cloud-host - nodeset: name: fedora-33-vm nodes: - - name: cloud-host - label: cloud-fedora-33-small + - label: cloud-fedora-33-small + name: cloud-host - nodeset: name: fedora-32-vm nodes: - - name: cloud-host - label: cloud-fedora-32-small + - label: cloud-fedora-32-small + name: cloud-host - nodeset: name: fedora-31-vm nodes: - - name: cloud-host - label: cloud-fedora-31-small + - label: cloud-fedora-31-small + name: cloud-host - nodeset: name: fedora-30-vm nodes: - - name: cloud-host - label: cloud-fedora-30-small + - label: cloud-fedora-30-small + name: cloud-host - nodeset: - name: centos-8-vm - nodes: - - name: cloud-host - label: cloud-centos-8 - -# medium flavors -- nodeset: name: fedora-rawhide-vm-medium nodes: - - name: cloud-host - label: cloud-fedora-rawhide-medium - -- nodeset: - name: fedora-latest-vm-medium - nodes: - - name: cloud-host - label: cloud-fedora-31-medium + - label: cloud-fedora-rawhide-medium + name: cloud-host - nodeset: name: fedora-33-vm-medium nodes: - - name: cloud-host - label: cloud-fedora-33-medium + - label: cloud-fedora-33-medium + name: cloud-host - nodeset: name: fedora-32-vm-medium nodes: - - name: cloud-host - label: cloud-fedora-32-medium + - label: cloud-fedora-32-medium + name: cloud-host - nodeset: name: fedora-31-vm-medium nodes: - - name: cloud-host - label: cloud-fedora-31-medium + - label: cloud-fedora-31-medium + name: cloud-host - nodeset: name: fedora-30-vm-medium nodes: - - name: cloud-host - label: cloud-fedora-30-medium - + - label: cloud-fedora-30-medium + name: cloud-host -# Legacy nodesets - nodeset: - name: fedora-latest-container + name: centos-8-vm nodes: - - name: container - label: runc-fedora-30 + - label: cloud-centos-8 + name: cloud-host