import upcloud_prov
servers = [
   upcloud_prov.Server_upcloud {
      # Hostname as reference for resource if is changed later inside server, change will not be updated in resource inventory
      hostname = "sgoyol-0"
      lock = False # True
      title = "Sgoyol 0"
      #plan = "1xCPU-2GB"
      #plan = "2xCPU-4GB"
      # plan = "DEV-1xCPU-4GB"
      #plan = "DEV-1xCPU-2GB"
      plan = "1xCPU-1GB"
      # If not Storage size, Plan Storage size will be used
      storages = [
         upcloud_prov.Storage_upcloud { 
            name = "root",
            total = 25,
            #total = 30,
            # size = 15, total = 25,
            # size = 25, total = 50,
            # size = 35, total = 80,
            parts = [
               { name = "root", size = 25, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "root", size = 80, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "root", size = 30, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "kluster", size = 25, type = "xfs" , mount = True, mount_path = "/home2" }
               #{ name = "ceph", size = 25, type = "raw" , mount = False, mount_path = "" }
               #{ name = "kluster", size = 10, type = "xfs" , mount = False }
            ]
         }
      #   upcloud_prov.Storage_upcloud { 
      #       name = "vol",
      #       total = 15,
      #       labels = "vol1",
      #       parts = [
      #          { name = "other", size = 15, type = "ext4" , mount = True, mount_path = "/others" }
      #       ]
      #    },
      ]
      # Labels to describe the server in `key = "value` format, multiple can be declared.
      # Usage = "env = "dev
      labels = "use=sgoyol"
      # To use private network it a VPC + Subnet + NetworkInfterface has to be created 
      # IP will be assign here
      network_private_ip = "10.11.2.10"
      liveness_ip = "$network_public_ip"
      liveness_port = 22
      extra_hostnames = [ "sgoyol-0" ]
      taskservs = [
         #{ name = "os", profile = "controlpanel"},
         { name = "os", profile = "basecamp"},
         { name = "coredns" },
         { name = "resolv" },
         { name = "etcd" },

         #{ name = "postgres" },
         #{ name = "proxy" },
         { name = "runc" },
         { name = "crun" },
         { name = "youki" },
         { name = "crio" },
         { name = "podman" },

         #{ name = "oci-reg"},
         #{ name = "oras"},

         #{ name = "gitea" },
         #{ name = "containerd" },
         #{ name = "kubernetes" },
         #{ name = "cilium" },
         #{ name = "rook-ceph" },
         #{ name = "kubernetes/kubeconfig", profile = "kubeconfig", install_mode = "getfile" },

         { name = "external-nfs" },
      ]
   },
   upcloud_prov.Server_upcloud {
      #not_use = True
      # Hostname as reference for resource if is changed later inside server, change will not be updated in resource inventory
      hostname = "sgoyol-1"
      lock = False # True
      title = "Sgoyol 1"
      #plan = "1xCPU-2GB"
      #plan = "2xCPU-4GB"
      # plan = "DEV-1xCPU-4GB"
      #plan = "DEV-1xCPU-2GB"
      plan = "1xCPU-2GB"
      # If not Storage size, Plan Storage size will be used
      storages = [
         upcloud_prov.Storage_upcloud { 
            name = "root",
            total = 50,
            #total = 30,
            # size = 15, total = 25,
            # size = 25, total = 50,
            # size = 35, total = 80,
            parts = [
               { name = "root", size = 40, type = "ext4" , mount = True, mount_path = "/" },
               { name = "home2", size = 10, type = "xfs" , mount = True, mount_path = "/home2" }
               #{ name = "root", size = 80, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "root", size = 30, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "kluster", size = 25, type = "xfs" , mount = True, mount_path = "/home2" }
               #{ name = "ceph", size = 25, type = "raw" , mount = False, mount_path = "" }
               #{ name = "kluster", size = 10, type = "xfs" , mount = False }
            ]
         }
      #   upcloud_prov.Storage_upcloud { 
      #       name = "vol",
      #       total = 15,
      #       labels = "vol1",
      #       parts = [
      #          { name = "other", size = 15, type = "ext4" , mount = True, mount_path = "/others" }
      #       ]
      #    },
      ]
      # Labels to describe the server in `key = "value` format, multiple can be declared.
      # Usage = "env = "dev
      labels = "use=sgoyol"
      # To use private network it a VPC + Subnet + NetworkInfterface has to be created 
      # IP will be assign here
      network_private_ip = "10.11.2.11"
      liveness_ip = "$network_public_ip"
      liveness_port = 22
      extra_hostnames = [ "sgoyol-1" ]
      taskservs = [
         #{ name = "os", profile = "controlpanel"},
         { name = "os", profile = "basecamp"},
         { name = "coredns" },
         { name = "resolv" },
         { name = "etcd" },
         { name = "proxy" },
         { name = "runc" },
         { name = "crun" },
         { name = "youki" },

         #{ name = "postgres" },
         #{ name = "gitea" },

         #{ name = "crio" },
         #{ name = "containerd" },

         { name = "podman" },

         #{ name = "kubernetes" },
         #{ name = "cilium" },
         #{ name = "rook-ceph" },
         #{ name = "kubernetes/kubeconfig", profile = "kubeconfig", install_mode = "getfile" },
         { name = "external-nfs" },
      ]
   },
   upcloud_prov.Server_upcloud {
      #not_use = True
      # Hostname as reference for resource if is changed later inside server, change will not be updated in resource inventory
      hostname = "sgoyol-2"
      lock = False # True
      title = "Sgoyol 2"
      #plan = "1xCPU-2GB"
      #plan = "2xCPU-4GB"
      plan = "DEV-1xCPU-4GB"
      #plan = "DEV-1xCPU-2GB"
      # If not Storage size, Plan Storage size will be used
      storages = [
         upcloud_prov.Storage_upcloud { 
            name = "root",
            total = 40,
            #total = 30,
            # size = 15, total = 25,
            # size = 25, total = 50,
            # size = 35, total = 80,
            parts = [
               { name = "root", size = 30, type = "ext4" , mount = True, mount_path = "/" },
               { name = "home2", size = 10, type = "xfs" , mount = True, mount_path = "/home2" }
               #{ name = "root", size = 80, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "root", size = 30, type = "ext4" , mount = True, mount_path = "/" }
               #{ name = "ceph", size = 25, type = "raw" , mount = False, mount_path = "" }
               #{ name = "kluster", size = 10, type = "xfs" , mount = False }
            ]
         }
      #   upcloud_prov.Storage_upcloud { 
      #       name = "vol",
      #       total = 15,
      #       labels = "vol1",
      #       parts = [
      #          { name = "other", size = 15, type = "ext4" , mount = True, mount_path = "/others" }
      #       ]
      #    },
      ]
      # Labels to describe the server in `key = "value` format, multiple can be declared.
      # Usage = "env = "dev
      labels = "use=sgoyol"
      # To use private network it a VPC + Subnet + NetworkInfterface has to be created 
      # IP will be assign here
      network_private_ip = "10.11.2.12"
      liveness_ip = "$network_public_ip"
      liveness_port = 22
      extra_hostnames = [ "sgoyol-2", "terton-cp-0" ]
      taskservs = [
         { name = "os", profile = "controlpanel"},
         #{ name = "os", profile = "basecamp"},
         { name = "ip-aliases" },
         { name = "resolv" },
         { name = "etcd" },
         #{ name = "postgres" },
         { name = "proxy" },
         #{ name = "gitea" },
         { name = "runc" },
         { name = "crun" },
         { name = "youki" },
         { name = "crio" },
         { name = "kubernetes", target_save_path = "/wuwei/terton" }
         #{ name = "cilium" },
         #{ name = "rook-ceph" },
         #{ name = "kubernetes/kubeconfig", profile = "kubeconfig", install_mode = "getfile" },
         { name = "external-nfs" },
         { name = "oras"},
      ]
      # clusters = [ "web" ]
   },
]
