diff --git a/bundle-noceph.yaml b/bundle-noceph.yaml index 7c45d43156d8a7cb94396787257b578b238cb905..0811a44843f378f3f31b0f88abebf96595ec28d0 100644 --- a/bundle-noceph.yaml +++ b/bundle-noceph.yaml @@ -5,7 +5,7 @@ ## series: bionic -description: A four-machine Kubernetes cluster, appropriate for production. Includes a three-machine etcd and ceph-mon cluster, a Kubernetes master, three Kubernetes worker nodes and a Kubernetes worker with GPUs. The Ceph (Luminous) cluster uses three nodes for Ceph Monitors and a Ceph OSD in LXD containers on each worker machine. Two Ceph MDSs provide redundant shared Ceph File System. +description: A 9-machine Kubernetes cluster, appropriate for production. Includes a three-machine etcd and ceph-mon cluster, two Kubernetes masters, three Kubernetes worker nodes and a Kubernetes worker with GPUs. The Ceph (Luminous) cluster uses three nodes for Ceph Monitors and a Ceph OSD in LXD containers on each worker machine. Two Ceph MDSs provide redundant shared Ceph File System. # ---------------------------------------------------------------------- machines: @@ -30,17 +30,24 @@ machines: # ---------------------------------------------------------------------- services: -# defaultgw: -# charm: cs:~csd-garr/defaultgw -# options: -# # ip route | grep default -# gateway: 90.147.159.1/25 +# canal: +# annotations: +# gui-x: '450' +# gui-y: '750' +# charm: cs:~containers/canal +# resources: +# calico: 73 +# calico-arm64: 69 +# flannel: 73 +# flannel-arm64: 72 easyrsa: charm: cs:~containers/easyrsa bindings: "": space-os-mgmt num_units: 1 + resources: + easyrsa: 5 to: # an lxd on the unit of kubernetes-master - "lxd:kubernetes-master" @@ -56,6 +63,9 @@ services: # constraints: tags=kubernetes options: channel: 3.2/stable + resources: + etcd: 3 + snapshot: 0 to: - "lxd:0" - "lxd:1" @@ -81,6 +91,7 @@ services: apiserver: space-k8s-pub expose: true num_units: 1 + resources: {} to: - "lxd:kubernetes-master" annotations: @@ -95,19 +106,26 @@ services: kubernetes-master: charm: cs:~containers/kubernetes-master + constraints: tags=kubernetes-master bindings: "": space-os-mgmt #kube-api-endpoint: space-pub num_units: 1 - constraints: tags=kubernetes-master cores=2 mem=4G #root-disk=16G options: - channel: 1.11/stable - authorization-mode: "Node,RBAC,Webhook" + channel: 1.13/stable + authorization-mode: "Node,RBAC,WebHook" # RBAC to allow access to dashboard to User "system:anonymous" # Because of this bug https://github.com/kubernetes/kubernetes/issues/39722 # the value must be false, rather than what the documentation says. api-extra-args: "anonymous-auth=false" enable-dashboard-addons: True + resources: + cdk-addons: 0 + kube-apiserver: 0 + kube-controller-manager: 0 + kube-proxy: 0 + kube-scheduler: 0 + kubectl: 0 annotations: gui-x: '800' gui-y: '850' @@ -116,13 +134,13 @@ services: kubernetes-worker: charm: cs:~containers/kubernetes-worker + constraints: tags=kubernetes cores=4 mem=4G root-disk=16G bindings: "": space-os-mgmt - num_units: 3 - constraints: tags=kubernetes-worker cores=4 mem=4G #root-disk=16G expose: true + num_units: 3 options: - channel: 1.11/stable + channel: 1.13/stable # Enable Cloud Controller Manager # https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/ # kubelet-extra-args: --cloud-provider=external @@ -134,40 +152,16 @@ services: - "2" - "3" - - - -# ceph-proxy: -# charm: "cs:ceph-proxy" -# num_units: 1 -# bindings: -# '': *network_space_default -# options: -## admin-key: AQAYOl5Zy5oPABAAGm3E5rQ11CWEs7etRU1Tqg== -## fsid: "a5256fb9-3bba-4c19-bc1b-2e34fc132706" -## monitor-hosts: "10.2.3.23:6789,10.2.3.22:6789,10.2.3.21:6789" -# admin-key: AQAHQ4RVLRCZGxAAawt6yF14NEnSiZKk2MfyBA== -# fsid: "9a9eedd0-9400-488e-96de-c349fffad7c4" -# monitor-hosts: "10.2.3.243:6789,10.2.3.242:6789,10.2.3.241:6789" -# annotations: -# gui-x: "1300" -# gui-y: "0" -# to: -# - "lxd:0" - - - kubernetes-worker-gpu: charm: cs:~containers/kubernetes-worker bindings: "": space-os-mgmt - # charm: ./kubernetes-worker # patched for cuda-9.0 num_units: 1 - constraints: tags=gpu cores=4 mem=4G #root-disk=16G + constraints: tags=gpu expose: true options: - channel: 1.11/stable - cuda_repo: 10.0.130-1 + channel: 1.13/stable + # cuda_repo: 10.0.130-1 # kubelet-extra-args: --cloud-provider=external annotations: gui-x: "520" @@ -175,83 +169,16 @@ services: to: - "4" -# ceph-mon: -# charm: cs:ceph-mon -# num_units: 3 -# bindings: -# "": space-os-mgmt -# options: -# # source: cloud:xenial-pike -# to: -# - 'lxd:0' # lxd:etcd -# - 'lxd:1' -# - 'lxd:2' -# annotations: -# gui-x: '1200' -# gui-y: '400' - -# ceph-osd: -# charm: cs:~csd-garr/ceph-osd -# num_units: 3 -# bindings: -# "": space-os-mgmt -# cluster: space-os-data -# options: -# osd-devices: /dev/mapper/mpatha /dev/mapper/mpathb /dev/mapper/mpathc /dev/mapper/mpathd -# osd-max-backfills: 1 -# osd-recovery-max-active: 1 -# osd-journal-size: 10000 -# use-syslog: True -# # source: cloud:xenial-pike -# # bluestore: True -# to: -# - "kubernetes-worker/0" -# - "kubernetes-worker/1" -# - "kubernetes-worker/2" -# annotations: -# gui-x: '1400' -# gui-y: '400' - -# ceph-mds: -# charm: cs:ceph-fs -# num_units: 1 -# bindings: -# "": space-os-mgmt -# to: -# - 'lxd:1' -# annotations: -# gui-x: '1200' -# gui-y: '400' - - # manila: - # charm: cs:manila - # bindings: - # "": space-os-mgmt - # to: - # - 'lxd:2' - # options: - # debug: True - - # manila-generic: - # charm: cs:manila-generic - # bindings: - # "": space-os-mgmt - # to: - # - 'lxd:2' - # options: - # debug: True # ---------------------------------------------------------------------- relations: - ["kubernetes-master:kube-api-endpoint", "kubeapi-load-balancer:apiserver"] - ["kubernetes-master:loadbalancer", "kubeapi-load-balancer:loadbalancer"] - ["kubernetes-master:certificates", "easyrsa:client"] -# - ["kubernetes-master:juju-info", "defaultgw:juju-info"] - ["kubernetes-master:juju-info", "kubernetes-keystone:juju-info"] - ["kubernetes-master:etcd", "etcd:db"] # Kube load balancer - ["kubeapi-load-balancer:certificates", "easyrsa:client"] -# - ["kubeapi-load-balancer:juju-info", "defaultgw:juju-info"] - ["etcd:certificates", "easyrsa:client"] # Kube worker - ["kubernetes-master:kube-control", "kubernetes-worker:kube-control"] @@ -261,19 +188,14 @@ relations: - ["kubernetes-master:kube-control", "kubernetes-worker-gpu:kube-control"] - ["kubernetes-worker-gpu:certificates", "easyrsa:client"] - ["kubernetes-worker-gpu:kube-api-endpoint", "kubeapi-load-balancer:website"] + # Canal +# - ["canal:etcd", "etcd:db"] +# - ["canal:cni", "kubernetes-master:cni"] +# - ["canal:cni", "kubernetes-worker:cni"] +# - ["canal:cni", "kubernetes-worker-gpu:cni"] # Flannel - ["flannel:etcd", "etcd:db"] - ["flannel:cni", "kubernetes-master:cni"] - ["flannel:cni", "kubernetes-worker:cni"] - ["flannel:cni", "kubernetes-worker-gpu:cni"] - # Ceph -# - ["kubernetes-master:ceph-storage", "ceph-mon:admin"] -# - ["kubernetes-master:ceph-storage", "ceph-proxy:client"] - -# - ["ceph-osd:mon", "ceph-mon:osd"] -# - ["ceph-mds:ceph-mds", "ceph-mon:mds"] - # # Manila - # - [ manila, keystone ] - # - [ manila, manila-generic ] - # - [ neutron-openvswitch, manila ] diff --git a/bundle.yaml b/bundle.yaml index 7c45d43156d8a7cb94396787257b578b238cb905..0811a44843f378f3f31b0f88abebf96595ec28d0 100644 --- a/bundle.yaml +++ b/bundle.yaml @@ -5,7 +5,7 @@ ## series: bionic -description: A four-machine Kubernetes cluster, appropriate for production. Includes a three-machine etcd and ceph-mon cluster, a Kubernetes master, three Kubernetes worker nodes and a Kubernetes worker with GPUs. The Ceph (Luminous) cluster uses three nodes for Ceph Monitors and a Ceph OSD in LXD containers on each worker machine. Two Ceph MDSs provide redundant shared Ceph File System. +description: A 9-machine Kubernetes cluster, appropriate for production. Includes a three-machine etcd and ceph-mon cluster, two Kubernetes masters, three Kubernetes worker nodes and a Kubernetes worker with GPUs. The Ceph (Luminous) cluster uses three nodes for Ceph Monitors and a Ceph OSD in LXD containers on each worker machine. Two Ceph MDSs provide redundant shared Ceph File System. # ---------------------------------------------------------------------- machines: @@ -30,17 +30,24 @@ machines: # ---------------------------------------------------------------------- services: -# defaultgw: -# charm: cs:~csd-garr/defaultgw -# options: -# # ip route | grep default -# gateway: 90.147.159.1/25 +# canal: +# annotations: +# gui-x: '450' +# gui-y: '750' +# charm: cs:~containers/canal +# resources: +# calico: 73 +# calico-arm64: 69 +# flannel: 73 +# flannel-arm64: 72 easyrsa: charm: cs:~containers/easyrsa bindings: "": space-os-mgmt num_units: 1 + resources: + easyrsa: 5 to: # an lxd on the unit of kubernetes-master - "lxd:kubernetes-master" @@ -56,6 +63,9 @@ services: # constraints: tags=kubernetes options: channel: 3.2/stable + resources: + etcd: 3 + snapshot: 0 to: - "lxd:0" - "lxd:1" @@ -81,6 +91,7 @@ services: apiserver: space-k8s-pub expose: true num_units: 1 + resources: {} to: - "lxd:kubernetes-master" annotations: @@ -95,19 +106,26 @@ services: kubernetes-master: charm: cs:~containers/kubernetes-master + constraints: tags=kubernetes-master bindings: "": space-os-mgmt #kube-api-endpoint: space-pub num_units: 1 - constraints: tags=kubernetes-master cores=2 mem=4G #root-disk=16G options: - channel: 1.11/stable - authorization-mode: "Node,RBAC,Webhook" + channel: 1.13/stable + authorization-mode: "Node,RBAC,WebHook" # RBAC to allow access to dashboard to User "system:anonymous" # Because of this bug https://github.com/kubernetes/kubernetes/issues/39722 # the value must be false, rather than what the documentation says. api-extra-args: "anonymous-auth=false" enable-dashboard-addons: True + resources: + cdk-addons: 0 + kube-apiserver: 0 + kube-controller-manager: 0 + kube-proxy: 0 + kube-scheduler: 0 + kubectl: 0 annotations: gui-x: '800' gui-y: '850' @@ -116,13 +134,13 @@ services: kubernetes-worker: charm: cs:~containers/kubernetes-worker + constraints: tags=kubernetes cores=4 mem=4G root-disk=16G bindings: "": space-os-mgmt - num_units: 3 - constraints: tags=kubernetes-worker cores=4 mem=4G #root-disk=16G expose: true + num_units: 3 options: - channel: 1.11/stable + channel: 1.13/stable # Enable Cloud Controller Manager # https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/ # kubelet-extra-args: --cloud-provider=external @@ -134,40 +152,16 @@ services: - "2" - "3" - - - -# ceph-proxy: -# charm: "cs:ceph-proxy" -# num_units: 1 -# bindings: -# '': *network_space_default -# options: -## admin-key: AQAYOl5Zy5oPABAAGm3E5rQ11CWEs7etRU1Tqg== -## fsid: "a5256fb9-3bba-4c19-bc1b-2e34fc132706" -## monitor-hosts: "10.2.3.23:6789,10.2.3.22:6789,10.2.3.21:6789" -# admin-key: AQAHQ4RVLRCZGxAAawt6yF14NEnSiZKk2MfyBA== -# fsid: "9a9eedd0-9400-488e-96de-c349fffad7c4" -# monitor-hosts: "10.2.3.243:6789,10.2.3.242:6789,10.2.3.241:6789" -# annotations: -# gui-x: "1300" -# gui-y: "0" -# to: -# - "lxd:0" - - - kubernetes-worker-gpu: charm: cs:~containers/kubernetes-worker bindings: "": space-os-mgmt - # charm: ./kubernetes-worker # patched for cuda-9.0 num_units: 1 - constraints: tags=gpu cores=4 mem=4G #root-disk=16G + constraints: tags=gpu expose: true options: - channel: 1.11/stable - cuda_repo: 10.0.130-1 + channel: 1.13/stable + # cuda_repo: 10.0.130-1 # kubelet-extra-args: --cloud-provider=external annotations: gui-x: "520" @@ -175,83 +169,16 @@ services: to: - "4" -# ceph-mon: -# charm: cs:ceph-mon -# num_units: 3 -# bindings: -# "": space-os-mgmt -# options: -# # source: cloud:xenial-pike -# to: -# - 'lxd:0' # lxd:etcd -# - 'lxd:1' -# - 'lxd:2' -# annotations: -# gui-x: '1200' -# gui-y: '400' - -# ceph-osd: -# charm: cs:~csd-garr/ceph-osd -# num_units: 3 -# bindings: -# "": space-os-mgmt -# cluster: space-os-data -# options: -# osd-devices: /dev/mapper/mpatha /dev/mapper/mpathb /dev/mapper/mpathc /dev/mapper/mpathd -# osd-max-backfills: 1 -# osd-recovery-max-active: 1 -# osd-journal-size: 10000 -# use-syslog: True -# # source: cloud:xenial-pike -# # bluestore: True -# to: -# - "kubernetes-worker/0" -# - "kubernetes-worker/1" -# - "kubernetes-worker/2" -# annotations: -# gui-x: '1400' -# gui-y: '400' - -# ceph-mds: -# charm: cs:ceph-fs -# num_units: 1 -# bindings: -# "": space-os-mgmt -# to: -# - 'lxd:1' -# annotations: -# gui-x: '1200' -# gui-y: '400' - - # manila: - # charm: cs:manila - # bindings: - # "": space-os-mgmt - # to: - # - 'lxd:2' - # options: - # debug: True - - # manila-generic: - # charm: cs:manila-generic - # bindings: - # "": space-os-mgmt - # to: - # - 'lxd:2' - # options: - # debug: True # ---------------------------------------------------------------------- relations: - ["kubernetes-master:kube-api-endpoint", "kubeapi-load-balancer:apiserver"] - ["kubernetes-master:loadbalancer", "kubeapi-load-balancer:loadbalancer"] - ["kubernetes-master:certificates", "easyrsa:client"] -# - ["kubernetes-master:juju-info", "defaultgw:juju-info"] - ["kubernetes-master:juju-info", "kubernetes-keystone:juju-info"] - ["kubernetes-master:etcd", "etcd:db"] # Kube load balancer - ["kubeapi-load-balancer:certificates", "easyrsa:client"] -# - ["kubeapi-load-balancer:juju-info", "defaultgw:juju-info"] - ["etcd:certificates", "easyrsa:client"] # Kube worker - ["kubernetes-master:kube-control", "kubernetes-worker:kube-control"] @@ -261,19 +188,14 @@ relations: - ["kubernetes-master:kube-control", "kubernetes-worker-gpu:kube-control"] - ["kubernetes-worker-gpu:certificates", "easyrsa:client"] - ["kubernetes-worker-gpu:kube-api-endpoint", "kubeapi-load-balancer:website"] + # Canal +# - ["canal:etcd", "etcd:db"] +# - ["canal:cni", "kubernetes-master:cni"] +# - ["canal:cni", "kubernetes-worker:cni"] +# - ["canal:cni", "kubernetes-worker-gpu:cni"] # Flannel - ["flannel:etcd", "etcd:db"] - ["flannel:cni", "kubernetes-master:cni"] - ["flannel:cni", "kubernetes-worker:cni"] - ["flannel:cni", "kubernetes-worker-gpu:cni"] - # Ceph -# - ["kubernetes-master:ceph-storage", "ceph-mon:admin"] -# - ["kubernetes-master:ceph-storage", "ceph-proxy:client"] - -# - ["ceph-osd:mon", "ceph-mon:osd"] -# - ["ceph-mds:ceph-mds", "ceph-mon:mds"] - # # Manila - # - [ manila, keystone ] - # - [ manila, manila-generic ] - # - [ neutron-openvswitch, manila ]