diff --git a/juju/home-maas/00-variables.tf b/juju/home-maas/00-variables.tf index 9d797b2..dd31ceb 100644 --- a/juju/home-maas/00-variables.tf +++ b/juju/home-maas/00-variables.tf @@ -20,6 +20,21 @@ variable openstack-region { default = "RegionOne" } +variable openstack-channel { + type = string + default = "ussuri/stable" +} + +variable default-base { + type = string + default = "ubuntu@20.04" +} + +variable mysql-channel { + type = string + default = "8.0/stable" +} + variable osd-devices { type = string default = "" @@ -31,13 +46,13 @@ variable customize-failure-domain { } variable reserved-host-memory { - type = string - default = "512" + type = number + default = 512 } variable worker-multiplier { - type = string - default = "0.25" + type = number + default = 0.25 } variable bridge-mappings { @@ -61,11 +76,87 @@ variable nagios-context { } variable mysql-connections { - type = string - default = "4000" + type = number + default = 4000 } variable mysql-tuning-level { type = string default = "safest" } + +variable vips { + type = map(string) + default = {} +} + +variable oam-space { + type = string + default = "oam" +} + +variable admin-space { + type = string + default = "admin" +} + +variable public-space { + type = string + default = "public" +} + +variable internal-space { + type = string + default = "internal" +} + +variable ceph-public-space { + type = string + default = "ceph-public" +} + +variable ceph-cluster-space { + type = string + default = "ceph-cluster" +} + +variable overlay-space { + type = string + default = "overlay" +} + +variable external-network-gateway { + type = string + default = "" +} + +variable cpu-allocation-ratio { + type = number + default = 16.0 +} + +variable ram-allocation-ratio { + type = number + default = 2.0 +} + +variable ntp-source { + type = string + default = "" +} + +variable external-network-cidr { + type = string + default = "" +} + +variable expected-osd-count { + type = number + default = 0 +} + +variable expected-mon-count { + type = number + default = 3 +} + diff --git a/juju/home-maas/04-keystone.tf b/juju/home-maas/04-keystone.tf index b97bcf0..42a0321 100644 --- a/juju/home-maas/04-keystone.tf +++ b/juju/home-maas/04-keystone.tf @@ -1,20 +1,19 @@ resource "juju_machine" "keystone-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "keystone-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "keystone-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "keystone" { name = "keystone" @@ -22,7 +21,7 @@ resource "juju_application" "keystone" { charm { name = "keystone" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,29 +33,29 @@ resource "juju_application" "keystone" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.public-space endpoint = "public" },{ - space = "oam" + space = var.admin-space endpoint = "admin" },{ - space = "oam" + space = var.internal-space endpoint = "internal" },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" }] config = { - worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - vip = "10.0.1.216" - region = var.openstack-region + worker-multiplier = var.worker-multiplier + openstack-origin = var.openstack-origin + vip = var.vips["keystone"] + region = var.openstack-region preferred-api-version = "3" - token-provider = "fernet" - admin-password = "openstack" + token-provider = "fernet" + admin-password = "openstack" } } @@ -73,17 +72,17 @@ resource "juju_application" "keystone-mysql-router" { units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] config = { - source = var.openstack-origin + source = var.openstack-origin } } @@ -93,8 +92,8 @@ resource "juju_application" "hacluster-keystone" { model = var.model-name charm { - name = "hacluster" - channel = "2.0.3/stable" + name = "hacluster" + channel = "2.0.3/stable" } units = 0 @@ -102,16 +101,15 @@ resource "juju_application" "hacluster-keystone" { resource "juju_integration" "keystone-ha" { - model = var.model-name application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "ha" } application { - name = juju_application.hacluster-keystone.name + name = juju_application.hacluster-keystone.name endpoint = "ha" } } @@ -121,12 +119,12 @@ resource "juju_integration" "keystone-mysql" { model = var.model-name application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "shared-db" } application { - name = juju_application.keystone-mysql-router.name + name = juju_application.keystone-mysql-router.name endpoint = "shared-db" } } @@ -136,13 +134,12 @@ resource "juju_integration" "keystone-db" { model = var.model-name application { - name = juju_application.keystone-mysql-router.name + name = juju_application.keystone-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } - diff --git a/juju/home-maas/04-mysql.tf b/juju/home-maas/04-mysql.tf index 6a4dd44..2e0f3e1 100644 --- a/juju/home-maas/04-mysql.tf +++ b/juju/home-maas/04-mysql.tf @@ -1,20 +1,19 @@ resource "juju_machine" "mysql-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "mysql-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "mysql-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "mysql-innodb-cluster" { name = "mysql-innodb-cluster" @@ -22,8 +21,8 @@ resource "juju_application" "mysql-innodb-cluster" { charm { name = "mysql-innodb-cluster" - channel = "8.0/stable" - base = "ubuntu@20.04" + channel = var.mysql-channel + base = var.default-base } units = 3 @@ -35,23 +34,21 @@ resource "juju_application" "mysql-innodb-cluster" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "cluster" - space = "oam" + space = var.internal-space },{ endpoint = "db-router" - space = "oam" + space = var.internal-space }] config = { - source = var.openstack-origin - #innodb-buffer-pool-size = "16G" - wait-timeout = "3600" - enable-binlogs = "false" - snapd_refresh = "max" + source = var.openstack-origin + wait-timeout = "3600" + enable-binlogs = "false" + snapd_refresh = "max" max-connections = var.mysql-connections - tuning-level = var.mysql-tuning-level + tuning-level = var.mysql-tuning-level } } - diff --git a/juju/home-maas/04-rmq.tf b/juju/home-maas/04-rmq.tf index 1b34e42..3b485b2 100644 --- a/juju/home-maas/04-rmq.tf +++ b/juju/home-maas/04-rmq.tf @@ -1,16 +1,16 @@ resource "juju_machine" "rmq-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "rmq-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "rmq-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam" } @@ -34,19 +34,18 @@ resource "juju_application" "rabbitmq-server" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "amqp" - space = "oam" + space = var.internal-space },{ endpoint = "cluster" - space = "oam" + space = var.internal-space }] config = { - source = var.openstack-origin + source = var.openstack-origin min-cluster-size = "3" cluster-partition-handling = "pause_minority" } } - diff --git a/juju/home-maas/05-ceilometer.tf b/juju/home-maas/05-ceilometer.tf index 8c9ea12..15f0cf6 100644 --- a/juju/home-maas/05-ceilometer.tf +++ b/juju/home-maas/05-ceilometer.tf @@ -1,16 +1,16 @@ resource "juju_machine" "ceilometer-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "ceilometer-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "ceilometer-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam" } @@ -22,7 +22,7 @@ resource "juju_application" "ceilometer" { charm { name = "ceilometer" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,21 +34,21 @@ resource "juju_application" "ceilometer" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space }] config = { openstack-origin = var.openstack-origin - region = var.openstack-region + region = var.openstack-region use-internal-endpoints = "true" } } @@ -58,12 +58,12 @@ resource "juju_integration" "ceilometer-rmq" { model = var.model-name application { - name = juju_application.ceilometer.name + name = juju_application.ceilometer.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -73,12 +73,12 @@ resource "juju_integration" "ceilometer-keystone" { model = var.model-name application { - name = juju_application.ceilometer.name + name = juju_application.ceilometer.name endpoint = "identity-credentials" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-credentials" } } @@ -88,13 +88,12 @@ resource "juju_integration" "ceilometer-ceil-agent" { model = var.model-name application { - name = juju_application.ceilometer.name + name = juju_application.ceilometer.name endpoint = "ceilometer-service" } application { - name = juju_application.ceilometer-agent.name + name = juju_application.ceilometer-agent.name endpoint = "ceilometer-service" } } - diff --git a/juju/home-maas/05-ceph.tf b/juju/home-maas/05-ceph.tf index 1d170cf..45cf302 100644 --- a/juju/home-maas/05-ceph.tf +++ b/juju/home-maas/05-ceph.tf @@ -4,8 +4,8 @@ resource "juju_application" "ceph-osd" { model = var.model-name charm { - name = "ceph-osd" - channel = "octopus/stable" + name = "ceph-osd" + channel = "octopus/stable" } units = 8 @@ -21,34 +21,33 @@ resource "juju_application" "ceph-osd" { ]))}" config = { - osd-devices = var.osd-devices - source = var.openstack-origin + osd-devices = var.osd-devices + source = var.openstack-origin aa-profile-mode = "complain" customize-failure-domain = "true" - autotune = "false" - bluestore = "true" - #osd-encrypt = "true" + autotune = "false" + bluestore = "true" + #osd-encrypt = "true" #osd-encrypt-keymanager = "vault" } } resource "juju_machine" "ceph-mon-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam,ceph-access,ceph-replica" } resource "juju_machine" "ceph-mon-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam,ceph-access,ceph-replica" } resource "juju_machine" "ceph-mon-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam,ceph-access,ceph-replica" } - resource "juju_application" "ceph-mon" { name = "ceph-mon" @@ -68,45 +67,45 @@ resource "juju_application" "ceph-mon" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "ceph-access" + space = var.ceph-public-space },{ endpoint = "osd" - space = "ceph-access" + space = var.ceph-public-space },{ endpoint = "client" - space = "ceph-access" + space = var.ceph-public-space },{ endpoint = "admin" - space = "ceph-access" + space = var.ceph-public-space },{ endpoint = "cluster" - space = "ceph-replica" + space = var.ceph-cluster-space }] config = { - expected-osd-count = 12 - source = var.openstack-origin - monitor-count = 3 + expected-osd-count = var.expected-osd-count + source = var.openstack-origin + monitor-count = var.expected-mon-count customize-failure-domain = true } } resource "juju_machine" "ceph-rgw-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam,ceph-access" } resource "juju_machine" "ceph-rgw-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam,ceph-access" } resource "juju_machine" "ceph-rgw-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam,ceph-access" } @@ -129,26 +128,26 @@ resource "juju_application" "ceph-radosgw" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.public-space endpoint = "public" },{ - space = "oam" + space = var.admin-space endpoint = "admin" },{ - space = "oam" + space = var.internal-space endpoint = "internal" },{ - space = "ceph-access" + space = var.ceph-public-space endpoint = "mon" }] config = { - source = var.openstack-origin - vip = "10.0.1.224" - operator-roles = "Member,admin" - region = var.openstack-region + source = var.openstack-origin + vip = var.vips["radosgw"] + operator-roles = "Member,admin" + region = var.openstack-region os-admin-hostname = "swift-internal.example.com" os-internal-hostname = "swift-internal.example.com" os-public-hostname = "swift.example.com" @@ -166,7 +165,6 @@ resource "juju_application" "hacluster-radosgw" { } units = 0 - } resource "juju_integration" "osd-mon" { @@ -174,44 +172,42 @@ resource "juju_integration" "osd-mon" { model = var.model-name application { - name = juju_application.ceph-osd.name + name = juju_application.ceph-osd.name endpoint = "mon" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "osd" } } - resource "juju_integration" "rgw-mon" { model = var.model-name application { - name = juju_application.ceph-radosgw.name + name = juju_application.ceph-radosgw.name endpoint = "mon" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "radosgw" } } - resource "juju_integration" "rgw-ha" { model = var.model-name application { - name = juju_application.ceph-radosgw.name + name = juju_application.ceph-radosgw.name endpoint = "ha" } application { - name = juju_application.hacluster-radosgw.name + name = juju_application.hacluster-radosgw.name endpoint = "ha" } } @@ -221,13 +217,12 @@ resource "juju_integration" "rgw-keystone" { model = var.model-name application { - name = juju_application.ceph-radosgw.name + name = juju_application.ceph-radosgw.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } - diff --git a/juju/home-maas/05-cinder.tf b/juju/home-maas/05-cinder.tf index e4d0002..8848173 100644 --- a/juju/home-maas/05-cinder.tf +++ b/juju/home-maas/05-cinder.tf @@ -1,20 +1,19 @@ resource "juju_machine" "cinder-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "cinder-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "cinder-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "cinder" { name = "cinder" @@ -22,7 +21,7 @@ resource "juju_application" "cinder" { charm { name = "cinder" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,31 +33,30 @@ resource "juju_application" "cinder" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space }] config = { - worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - region = var.openstack-region - vip = "10.0.1.212" - region = var.openstack-region + worker-multiplier = var.worker-multiplier + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["cinder"] use-internal-endpoints = "true" - block-device = "None" + block-device = "None" glance-api-version = "2" - enabled-services = "api,scheduler,volume" + enabled-services = "api,scheduler,volume" } } @@ -68,8 +66,8 @@ resource "juju_application" "cinder-ceph" { model = var.model-name charm { - name = "cinder-ceph" - channel = "ussuri/stable" + name = "cinder-ceph" + channel = var.openstack-channel } units = 0 @@ -86,19 +84,19 @@ resource "juju_application" "cinder-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -122,16 +120,15 @@ resource "juju_application" "hacluster-cinder" { resource "juju_integration" "cinder-ha" { - model = var.model-name application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "ha" } application { - name = juju_application.hacluster-cinder.name + name = juju_application.hacluster-cinder.name endpoint = "ha" } } @@ -141,12 +138,12 @@ resource "juju_integration" "cinder-mysql" { model = var.model-name application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "shared-db" } application { - name = juju_application.cinder-mysql-router.name + name = juju_application.cinder-mysql-router.name endpoint = "shared-db" } } @@ -156,12 +153,12 @@ resource "juju_integration" "cinder-db" { model = var.model-name application { - name = juju_application.cinder-mysql-router.name + name = juju_application.cinder-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -171,12 +168,12 @@ resource "juju_integration" "cinder-rmq" { model = var.model-name application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -186,12 +183,12 @@ resource "juju_integration" "cinder-keystone" { model = var.model-name application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -201,28 +198,27 @@ resource "juju_integration" "cinder-ceph" { model = var.model-name application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "ceph" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "client" } } - resource "juju_integration" "cinder-ceph-mon" { model = var.model-name application { - name = juju_application.cinder-ceph.name + name = juju_application.cinder-ceph.name endpoint = "ceph" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "client" } } @@ -232,12 +228,12 @@ resource "juju_integration" "cinder-ceph-cinder" { model = var.model-name application { - name = juju_application.cinder-ceph.name + name = juju_application.cinder-ceph.name endpoint = "storage-backend" } application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "storage-backend" } } diff --git a/juju/home-maas/05-glance.tf b/juju/home-maas/05-glance.tf index 1bc7268..9dd8396 100644 --- a/juju/home-maas/05-glance.tf +++ b/juju/home-maas/05-glance.tf @@ -1,20 +1,19 @@ resource "juju_machine" "glance-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "glance-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "glance-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "glance" { name = "glance" @@ -22,7 +21,7 @@ resource "juju_application" "glance" { charm { name = "glance" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,29 +33,28 @@ resource "juju_application" "glance" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space }] config = { worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - vip = "10.0.1.214" - region = var.openstack-region + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["glance"] use-internal-endpoints = "true" - restrict-ceph-pools = "false" - region = var.openstack-region + restrict-ceph-pools = "false" } } @@ -66,19 +64,19 @@ resource "juju_application" "glance-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -106,12 +104,12 @@ resource "juju_integration" "glance-ha" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "ha" } application { - name = juju_application.hacluster-glance.name + name = juju_application.hacluster-glance.name endpoint = "ha" } } @@ -121,12 +119,12 @@ resource "juju_integration" "glance-mysql" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "shared-db" } application { - name = juju_application.glance-mysql-router.name + name = juju_application.glance-mysql-router.name endpoint = "shared-db" } } @@ -136,12 +134,12 @@ resource "juju_integration" "glance-db" { model = var.model-name application { - name = juju_application.glance-mysql-router.name + name = juju_application.glance-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -151,12 +149,12 @@ resource "juju_integration" "glance-rmq" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -166,12 +164,12 @@ resource "juju_integration" "glance-keystone" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -181,12 +179,12 @@ resource "juju_integration" "glance-ceph" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "ceph" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "client" } } @@ -196,12 +194,12 @@ resource "juju_integration" "glance-cinder" { model = var.model-name application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "image-service" } application { - name = juju_application.cinder.name + name = juju_application.cinder.name endpoint = "image-service" } } diff --git a/juju/home-maas/05-gnocchi.tf b/juju/home-maas/05-gnocchi.tf index dc4ee9d..412d36a 100644 --- a/juju/home-maas/05-gnocchi.tf +++ b/juju/home-maas/05-gnocchi.tf @@ -1,20 +1,19 @@ resource "juju_machine" "gnocchi-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam,ceph-access" } resource "juju_machine" "gnocchi-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam,ceph-access" } resource "juju_machine" "gnocchi-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam,ceph-access" } - resource "juju_application" "gnocchi" { name = "gnocchi" @@ -22,7 +21,7 @@ resource "juju_application" "gnocchi" { charm { name = "gnocchi" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,32 +33,32 @@ resource "juju_application" "gnocchi" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space },{ endpoint = "storage-ceph" - space = "ceph-access" + space = var.ceph-public-space },{ endpoint = "coordinator-memcached" - space = "oam" + space = var.internal-space }] config = { worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - vip = "10.0.1.220" - region = var.openstack-region + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["gnocchi"] use-internal-endpoints = "true" } } @@ -70,19 +69,19 @@ resource "juju_application" "gnocchi-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -110,12 +109,12 @@ resource "juju_integration" "gnocchi-ha" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "ha" } application { - name = juju_application.hacluster-gnocchi.name + name = juju_application.hacluster-gnocchi.name endpoint = "ha" } } @@ -125,12 +124,12 @@ resource "juju_integration" "gnocchi-mysql" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "shared-db" } application { - name = juju_application.gnocchi-mysql-router.name + name = juju_application.gnocchi-mysql-router.name endpoint = "shared-db" } } @@ -140,12 +139,12 @@ resource "juju_integration" "gnocchi-db" { model = var.model-name application { - name = juju_application.gnocchi-mysql-router.name + name = juju_application.gnocchi-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -155,12 +154,12 @@ resource "juju_integration" "gnocchi-rmq" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -170,12 +169,12 @@ resource "juju_integration" "gnocchi-keystone" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -185,12 +184,12 @@ resource "juju_integration" "gnocchi-ceph" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "storage-ceph" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "client" } } @@ -200,12 +199,12 @@ resource "juju_integration" "gnocchi-memcache" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "coordinator-memcached" } application { - name = juju_application.memcached.name + name = juju_application.memcached.name endpoint = "cache" } } @@ -215,12 +214,12 @@ resource "juju_integration" "gnocchi-ceilometer" { model = var.model-name application { - name = juju_application.gnocchi.name + name = juju_application.gnocchi.name endpoint = "metric-service" } application { - name = juju_application.ceilometer.name + name = juju_application.ceilometer.name endpoint = "metric-service" } } diff --git a/juju/home-maas/05-heat.tf b/juju/home-maas/05-heat.tf index 98a516a..7e08620 100644 --- a/juju/home-maas/05-heat.tf +++ b/juju/home-maas/05-heat.tf @@ -1,20 +1,19 @@ resource "juju_machine" "heat-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "heat-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "heat-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "heat" { name = "heat" @@ -22,7 +21,7 @@ resource "juju_application" "heat" { charm { name = "heat" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,28 +33,28 @@ resource "juju_application" "heat" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space }] config = { worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - region = var.openstack-region - vip = "10.0.1.215" + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["heat"] use-internal-endpoints = "true" - config-flags = "max_nested_stack_depth=20" + config-flags = "max_nested_stack_depth=20" } } @@ -65,19 +64,19 @@ resource "juju_application" "heat-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -101,16 +100,15 @@ resource "juju_application" "hacluster-heat" { resource "juju_integration" "heat-ha" { - model = var.model-name application { - name = juju_application.heat.name + name = juju_application.heat.name endpoint = "ha" } application { - name = juju_application.hacluster-heat.name + name = juju_application.hacluster-heat.name endpoint = "ha" } } @@ -120,12 +118,12 @@ resource "juju_integration" "heat-mysql" { model = var.model-name application { - name = juju_application.heat.name + name = juju_application.heat.name endpoint = "shared-db" } application { - name = juju_application.heat-mysql-router.name + name = juju_application.heat-mysql-router.name endpoint = "shared-db" } } @@ -135,12 +133,12 @@ resource "juju_integration" "heat-db" { model = var.model-name application { - name = juju_application.heat-mysql-router.name + name = juju_application.heat-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -150,12 +148,12 @@ resource "juju_integration" "heat-rmq" { model = var.model-name application { - name = juju_application.heat.name + name = juju_application.heat.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -165,12 +163,12 @@ resource "juju_integration" "heat-keystone" { model = var.model-name application { - name = juju_application.heat.name + name = juju_application.heat.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } diff --git a/juju/home-maas/05-memcache.tf b/juju/home-maas/05-memcache.tf index 5c83d97..3a70f88 100644 --- a/juju/home-maas/05-memcache.tf +++ b/juju/home-maas/05-memcache.tf @@ -1,16 +1,16 @@ resource "juju_machine" "memcache-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "memcache-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "memcache-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } @@ -20,9 +20,9 @@ resource "juju_application" "memcached" { model = var.model-name charm { - name = "memcached" - channel = "latest/stable" - base = "ubuntu@20.04" + name = "memcached" + channel = "latest/stable" + base = var.default-base } units = 3 @@ -34,10 +34,10 @@ resource "juju_application" "memcached" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.internal-space },{ endpoint = "cache" - space = "oam" + space = var.internal-space }] config = { @@ -47,17 +47,15 @@ resource "juju_application" "memcached" { resource "juju_integration" "nova-cloud-controller-memcache" { - model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "memcache" } application { - name = juju_application.memcached.name + name = juju_application.memcached.name endpoint = "cache" } } - diff --git a/juju/home-maas/05-nova.tf b/juju/home-maas/05-nova.tf index f73d704..5ea3c57 100644 --- a/juju/home-maas/05-nova.tf +++ b/juju/home-maas/05-nova.tf @@ -1,20 +1,19 @@ resource "juju_machine" "ncc-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "ncc-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "ncc-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam" } - resource "juju_application" "nova-cloud-controller" { name = "nova-cloud-controller" @@ -22,7 +21,7 @@ resource "juju_application" "nova-cloud-controller" { charm { name = "nova-cloud-controller" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -34,36 +33,36 @@ resource "juju_application" "nova-cloud-controller" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space },{ endpoint = "memcache" - space = "oam" + space = var.internal-space }] config = { worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - region = var.openstack-region - vip = "10.0.1.219" - network-manager = "Neutron" + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["nova-cc"] + network-manager = "Neutron" console-access-protocol = "novnc" - console-proxy-ip = "local" + console-proxy-ip = "local" use-internal-endpoints = "true" - ram-allocation-ratio: "1.0" - cpu-allocation-ratio: "2.0" - config-flags = "scheduler_max_attempts=20" + ram-allocation-ratio = var.ram-allocation-ratio + cpu-allocation-ratio = var.cpu-allocation-ratio + config-flags = "scheduler_max_attempts=20" } } @@ -73,19 +72,19 @@ resource "juju_application" "nova-cloud-controller-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -109,16 +108,15 @@ resource "juju_application" "hacluster-nova" { resource "juju_integration" "nova-cloud-controller-ha" { - model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "ha" } application { - name = juju_application.hacluster-nova.name + name = juju_application.hacluster-nova.name endpoint = "ha" } } @@ -128,12 +126,12 @@ resource "juju_integration" "nova-cloud-controller-mysql" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "shared-db" } application { - name = juju_application.nova-cloud-controller-mysql-router.name + name = juju_application.nova-cloud-controller-mysql-router.name endpoint = "shared-db" } } @@ -143,12 +141,12 @@ resource "juju_integration" "nova-cloud-controller-db" { model = var.model-name application { - name = juju_application.nova-cloud-controller-mysql-router.name + name = juju_application.nova-cloud-controller-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -158,12 +156,12 @@ resource "juju_integration" "nova-cloud-controller-rmq" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -173,12 +171,12 @@ resource "juju_integration" "nova-cloud-controller-keystone" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -188,12 +186,12 @@ resource "juju_integration" "nova-cloud-controller-neutron" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "neutron-api" } application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "neutron-api" } } @@ -203,12 +201,12 @@ resource "juju_integration" "nova-cloud-controller-nova-compute" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "cloud-compute" } application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "cloud-compute" } } @@ -217,12 +215,12 @@ resource "juju_integration" "nova-cloud-controller-glance" { model = var.model-name application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "image-service" } application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "image-service" } } diff --git a/juju/home-maas/05-placement.tf b/juju/home-maas/05-placement.tf index 57b9233..e6a0de8 100644 --- a/juju/home-maas/05-placement.tf +++ b/juju/home-maas/05-placement.tf @@ -1,16 +1,16 @@ resource "juju_machine" "placement-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["103"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "placement-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["104"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "placement-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["105"].machine_id]) constraints = "spaces=oam" } @@ -21,7 +21,7 @@ resource "juju_application" "placement" { charm { name = "placement" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -33,25 +33,25 @@ resource "juju_application" "placement" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space }] config = { worker-multiplier = var.worker-multiplier - openstack-origin = var.openstack-origin - vip = "10.0.1.223" + openstack-origin = var.openstack-origin + vip = var.vips["placement"] } } @@ -61,19 +61,19 @@ resource "juju_application" "placement-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -95,20 +95,17 @@ resource "juju_application" "hacluster-placement" { units = 0 } - - resource "juju_integration" "placement-ha" { - model = var.model-name application { - name = juju_application.placement.name + name = juju_application.placement.name endpoint = "ha" } application { - name = juju_application.hacluster-placement.name + name = juju_application.hacluster-placement.name endpoint = "ha" } } @@ -118,12 +115,12 @@ resource "juju_integration" "placement-mysql" { model = var.model-name application { - name = juju_application.placement.name + name = juju_application.placement.name endpoint = "shared-db" } application { - name = juju_application.placement-mysql-router.name + name = juju_application.placement-mysql-router.name endpoint = "shared-db" } } @@ -133,12 +130,12 @@ resource "juju_integration" "placement-db" { model = var.model-name application { - name = juju_application.placement-mysql-router.name + name = juju_application.placement-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -148,12 +145,12 @@ resource "juju_integration" "placement-keystone" { model = var.model-name application { - name = juju_application.placement.name + name = juju_application.placement.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -163,12 +160,12 @@ resource "juju_integration" "placement-nova" { model = var.model-name application { - name = juju_application.placement.name + name = juju_application.placement.name endpoint = "placement" } application { - name = juju_application.nova-cloud-controller.name + name = juju_application.nova-cloud-controller.name endpoint = "placement" } } diff --git a/juju/home-maas/06-nova-compute.tf b/juju/home-maas/06-nova-compute.tf index 34cd1f3..4a48a28 100644 --- a/juju/home-maas/06-nova-compute.tf +++ b/juju/home-maas/06-nova-compute.tf @@ -5,7 +5,7 @@ resource "juju_application" "nova-compute-kvm" { charm { name = "nova-compute" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 8 @@ -21,27 +21,27 @@ resource "juju_application" "nova-compute-kvm" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "internal" }] config = { - openstack-origin = var.openstack-origin - enable-live-migration = "true" - enable-resize = "true" - migration-auth-type = "ssh" + openstack-origin = var.openstack-origin + enable-live-migration = "true" + enable-resize = "true" + migration-auth-type = "ssh" use-internal-endpoints = "true" - libvirt-image-backend = "rbd" - restrict-ceph-pools = "false" - aa-profile-mode = "complain" - virt-type = "kvm" + libvirt-image-backend = "rbd" + restrict-ceph-pools = "false" + aa-profile-mode = "complain" + virt-type = "kvm" customize-failure-domain = var.customize-failure-domain - reserved-host-memory = var.reserved-host-memory - #cpu-mode = "custom" - #cpu-model = "EPYC-IBPB" - #cpu-model-extra-flags = "svm,pcid" + reserved-host-memory = var.reserved-host-memory + #cpu-mode = "custom" + #cpu-model = "EPYC-IBPB" + #cpu-model-extra-flags = "svm,pcid" pci-passthrough-whitelist = jsonencode([ {vendor_id: "1af4", product_id: "1000", address: "00:08.0"}, {vendor_id: "1af4", product_id: "1000", address: "00:07.0"}, @@ -54,7 +54,6 @@ resource "juju_application" "nova-compute-kvm" { name: "arifpass", numa_policy: "preferred" }) - } } @@ -65,7 +64,7 @@ resource "juju_application" "ceilometer-agent" { charm { name = "ceilometer-agent" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 0 @@ -82,26 +81,25 @@ resource "juju_application" "neutron-openvswitch" { charm { name = "neutron-openvswitch" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.overlay-space endpoint = "data" }] config = { - data-port = "br-data:ens9" - dns-servers = "192.168.1.13" + data-port = var.data-port + dns-servers = var.dns-servers enable-local-dhcp-and-metadata = "true" firewall-driver = "openvswitch" - worker-multiplier = "0" + worker-multiplier = var.worker-multiplier } - } resource "juju_application" "sysconfig-compute" { @@ -131,12 +129,12 @@ resource "juju_integration" "compute-ceilometer" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "nova-ceilometer" } application { - name = juju_application.ceilometer-agent.name + name = juju_application.ceilometer-agent.name endpoint = "nova-ceilometer" } } @@ -146,12 +144,12 @@ resource "juju_integration" "compute-ovs" { model = var.model-name application { - name = juju_application.neutron-openvswitch.name + name = juju_application.neutron-openvswitch.name endpoint = "neutron-plugin" } application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "neutron-plugin" } } @@ -161,12 +159,12 @@ resource "juju_integration" "compute-sysconfig" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "juju-info" } application { - name = juju_application.sysconfig-compute.name + name = juju_application.sysconfig-compute.name endpoint = "juju-info" } } @@ -176,12 +174,12 @@ resource "juju_integration" "compute-ceph-mon" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "ceph" } application { - name = juju_application.ceph-mon.name + name = juju_application.ceph-mon.name endpoint = "client" } } @@ -191,12 +189,12 @@ resource "juju_integration" "neutron-api-ovs" { model = var.model-name application { - name = juju_application.neutron-openvswitch.name + name = juju_application.neutron-openvswitch.name endpoint = "neutron-plugin-api" } application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "neutron-plugin-api" } } @@ -206,12 +204,12 @@ resource "juju_integration" "nova-compute-rmq" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -221,12 +219,12 @@ resource "juju_integration" "neutron-ovs-rmq" { model = var.model-name application { - name = juju_application.neutron-openvswitch.name + name = juju_application.neutron-openvswitch.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -236,12 +234,12 @@ resource "juju_integration" "ceilometer-agent-rmq" { model = var.model-name application { - name = juju_application.ceilometer-agent.name + name = juju_application.ceilometer-agent.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -251,12 +249,12 @@ resource "juju_integration" "nova-compute-glance" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "image-service" } application { - name = juju_application.glance.name + name = juju_application.glance.name endpoint = "image-service" } } @@ -266,12 +264,12 @@ resource "juju_integration" "nova-compute-cinder-ceph" { model = var.model-name application { - name = juju_application.nova-compute-kvm.name + name = juju_application.nova-compute-kvm.name endpoint = "ceph-access" } application { - name = juju_application.cinder-ceph.name + name = juju_application.cinder-ceph.name endpoint = "ceph-access" } } diff --git a/juju/home-maas/07-controllers.tf b/juju/home-maas/07-controllers.tf index f718d5b..9ce1cfc 100644 --- a/juju/home-maas/07-controllers.tf +++ b/juju/home-maas/07-controllers.tf @@ -7,7 +7,7 @@ resource "juju_application" "controller-server" { name = "ubuntu" channel = "latest/stable" revision = "24" - base = "ubuntu@20.04" + base = var.default-base } units = 6 @@ -19,7 +19,6 @@ resource "juju_application" "controller-server" { juju_machine.all_machines["104"].machine_id, juju_machine.all_machines["105"].machine_id, ]))}" - } resource "juju_application" "sysconfig-control" { @@ -48,13 +47,12 @@ resource "juju_integration" "control-sysconfig" { model = var.model-name application { - name = juju_application.sysconfig-control.name + name = juju_application.sysconfig-control.name endpoint = "juju-info" } application { - name = juju_application.controller-server.name + name = juju_application.controller-server.name endpoint = "juju-info" } } - diff --git a/juju/home-maas/08-neutron.tf b/juju/home-maas/08-neutron.tf index 3cb352d..6e1df0e 100644 --- a/juju/home-maas/08-neutron.tf +++ b/juju/home-maas/08-neutron.tf @@ -5,7 +5,7 @@ resource "juju_application" "neutron-gateway" { charm { name = "neutron-gateway" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -28,18 +28,18 @@ resource "juju_application" "neutron-gateway" { } resource "juju_machine" "neutron-api-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["100"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "neutron-api-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["101"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "neutron-api-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["102"].machine_id]) constraints = "spaces=oam" } @@ -50,7 +50,7 @@ resource "juju_application" "neutron-api" { charm { name = "neutron-api" - channel = "ussuri/stable" + channel = var.openstack-channel } units = 3 @@ -62,43 +62,41 @@ resource "juju_application" "neutron-api" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ endpoint = "public" - space = "oam" + space = var.public-space },{ endpoint = "admin" - space = "oam" + space = var.admin-space },{ endpoint = "internal" - space = "oam" + space = var.internal-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space }] config = { - vip = "10.0.1.218" - worker-multiplier: var.worker-multiplier - openstack-origin: var.openstack-origin - region: var.openstack-region - neutron-security-groups = "true" - #overlay-network-type = "vxlan gre" - overlay-network-type = "vxlan" - use-internal-endpoints = "true" - enable-l3ha = "true" - dhcp-agents-per-network = "2" + worker-multiplier = var.worker-multiplier + openstack-origin = var.openstack-origin + region = var.openstack-region + vip = var.vips["neutron-api"] + neutron-security-groups = "true" + #overlay-network-type = "vxlan gre" + overlay-network-type = "vxlan" + use-internal-endpoints = "true" + enable-l3ha = "true" + dhcp-agents-per-network = "2" enable-ml2-port-security = "true" + l2-population = "true" + #global-physnet-mtu = "9000" + vlan-ranges = "physnet1:350:599" + flat-network-providers = "physnet1" + enable-vlan-trunking = "true" default-tenant-network-type = "vxlan" - l2-population = "true" - #global-physnet-mtu = "9000" manage-neutron-plugin-legacy-mode = "true" - vlan-ranges = "physnet1:350:599" - flat-network-providers = "physnet1" - enable-vlan-trunking = "true" } - - } resource "juju_application" "neutron-mysql-router" { @@ -114,12 +112,12 @@ resource "juju_application" "neutron-mysql-router" { units = 0 endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "shared-db" },{ - space = "oam" + space = var.internal-space endpoint = "db-router" }] @@ -146,12 +144,12 @@ resource "juju_integration" "neutron-ha" { model = var.model-name application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "ha" } application { - name = juju_application.hacluster-neutron.name + name = juju_application.hacluster-neutron.name endpoint = "ha" } } @@ -161,12 +159,12 @@ resource "juju_integration" "neutron-mysql" { model = var.model-name application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "shared-db" } application { - name = juju_application.neutron-mysql-router.name + name = juju_application.neutron-mysql-router.name endpoint = "shared-db" } } @@ -176,12 +174,12 @@ resource "juju_integration" "neutron-db" { model = var.model-name application { - name = juju_application.neutron-mysql-router.name + name = juju_application.neutron-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } @@ -191,12 +189,12 @@ resource "juju_integration" "neutron-keystone" { model = var.model-name application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "identity-service" } application { - name = juju_application.keystone.name + name = juju_application.keystone.name endpoint = "identity-service" } } @@ -206,12 +204,12 @@ resource "juju_integration" "neutron-api-rmq" { model = var.model-name application { - name = juju_application.neutron-api.name + name = juju_application.neutron-api.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } @@ -221,12 +219,12 @@ resource "juju_integration" "neutron-gw-rmq" { model = var.model-name application { - name = juju_application.neutron-gateway.name + name = juju_application.neutron-gateway.name endpoint = "amqp" } application { - name = juju_application.rabbitmq-server.name + name = juju_application.rabbitmq-server.name endpoint = "amqp" } } diff --git a/juju/home-maas/10-vault.tf b/juju/home-maas/10-vault.tf index d52eaa8..f95d9e7 100644 --- a/juju/home-maas/10-vault.tf +++ b/juju/home-maas/10-vault.tf @@ -1,16 +1,16 @@ resource "juju_machine" "vault-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["400"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["400"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "vault-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["401"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["401"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "vault-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) constraints = "spaces=oam" } @@ -20,9 +20,9 @@ resource "juju_application" "vault" { model = var.model-name charm { - name = "vault" - channel = "1.7/stable" - base = "ubuntu@20.04" + name = "vault" + channel = "1.7/stable" + base = var.default-base } units = 3 @@ -34,7 +34,7 @@ resource "juju_application" "vault" { ]))}" config = { - vip = "10.0.1.222" + vip = var.vips["vault"] nagios_context = var.nagios-context } @@ -46,7 +46,7 @@ resource "juju_application" "vault-mysql-router" { model = var.model-name charm { - name = "mysql-router" + name = "mysql-router" channel = "8.0/stable" } @@ -54,13 +54,13 @@ resource "juju_application" "vault-mysql-router" { endpoint_bindings = [ { - space = "oam" + space = var.oam-space },{ endpoint = "shared-db" - space = "oam" + space = var.internal-space },{ endpoint = "db-router" - space = "oam" + space = var.internal-space }, ] @@ -80,23 +80,22 @@ resource "juju_application" "hacluster-vault" { } units = 0 - } resource "juju_machine" "etcd-1" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["400"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["400"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "etcd-2" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["401"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["401"].machine_id]) constraints = "spaces=oam" } resource "juju_machine" "etcd-3" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) constraints = "spaces=oam" } @@ -108,7 +107,7 @@ resource "juju_application" "etcd" { charm { name = "etcd" channel = "latest/stable" - base = "ubuntu@20.04" + base = var.default-base revision = 583 } @@ -119,12 +118,12 @@ resource "juju_application" "etcd" { ]))}" endpoint_bindings = [{ - space = "oam" + space = var.oam-space },{ - space = "oam" + space = var.internal-space endpoint = "cluster" },{ - space = "oam" + space = var.internal-space endpoint = "db" }] @@ -136,8 +135,8 @@ resource "juju_application" "etcd" { } resource "juju_machine" "easyrsa" { - model = var.model-name - placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) + model = var.model-name + placement = join(":",["lxd",juju_machine.all_machines["402"].machine_id]) constraints = "spaces=oam" } @@ -147,14 +146,14 @@ resource "juju_application" "easyrsa" { model = var.model-name charm { - name = "easyrsa" - channel = "latest/stable" - base = "ubuntu@20.04" + name = "easyrsa" + channel = "latest/stable" + base = var.default-base } placement = "${juju_machine.easyrsa.machine_id}" - endpoint_bindings = [{space = "oam"}] + endpoint_bindings = [{space = var.oam-space}] units = 1 } @@ -164,12 +163,12 @@ resource "juju_integration" "vault-etcd" { model = var.model-name application { - name = juju_application.vault.name + name = juju_application.vault.name endpoint = "etcd" } application { - name = juju_application.etcd.name + name = juju_application.etcd.name endpoint = "db" } } @@ -179,12 +178,12 @@ resource "juju_integration" "etcd-easyrsa" { model = var.model-name application { - name = juju_application.etcd.name + name = juju_application.etcd.name endpoint = "certificates" } application { - name = juju_application.easyrsa.name + name = juju_application.easyrsa.name endpoint = "client" } } @@ -194,12 +193,12 @@ resource "juju_integration" "vault-ha" { model = var.model-name application { - name = juju_application.vault.name + name = juju_application.vault.name endpoint = "ha" } application { - name = juju_application.hacluster-vault.name + name = juju_application.hacluster-vault.name endpoint = "ha" } } @@ -209,12 +208,12 @@ resource "juju_integration" "vault-mysql" { model = var.model-name application { - name = juju_application.vault.name + name = juju_application.vault.name endpoint = "shared-db" } application { - name = juju_application.vault-mysql-router.name + name = juju_application.vault-mysql-router.name endpoint = "shared-db" } } @@ -224,12 +223,12 @@ resource "juju_integration" "vault-ceph" { model = var.model-name application { - name = juju_application.vault.name + name = juju_application.vault.name endpoint = "secrets" } application { - name = juju_application.ceph-osd.name + name = juju_application.ceph-osd.name endpoint = "secrets-storage" } } @@ -239,12 +238,12 @@ resource "juju_integration" "vault-db" { model = var.model-name application { - name = juju_application.vault-mysql-router.name + name = juju_application.vault-mysql-router.name endpoint = "db-router" } application { - name = juju_application.mysql-innodb-cluster.name + name = juju_application.mysql-innodb-cluster.name endpoint = "db-router" } } diff --git a/juju/home-maas/terraform.tfvars b/juju/home-maas/terraform.tfvars index ec5a140..bab08ba 100644 --- a/juju/home-maas/terraform.tfvars +++ b/juju/home-maas/terraform.tfvars @@ -20,12 +20,44 @@ machines = [ {machine_id=1007,constraints="tags=compute,asrock04"}, ] -osd-devices = "/dev/sdb /dev/sdc" -data-port = "br-data:ens9" -bridge-mappings = "physnet1:br-data" -dns-servers = "192.168.1.13" +osd-devices = "/dev/sdb /dev/sdc" + nagios-context = "arif-nc01" -#vips = [ -# {vault=10.0.1.222} -#] +ram-allocation-ratio = 1.0 +cpu-allocation-ratio = 2.0 + +oam-space = "oam" +admin-space = "oam" +public-space = "oam" +internal-space = "oam" +ceph-public-space = "ceph-access" +ceph-cluster-space = "ceph-replica" +overlay-space = "overlay" + +expected-osd-count = 12 +expected-mon-count = 3 + +ntp-source = "192.168.1.11" +external-network-cidr = "192.168.1.0/24" +external-network-gateway = "192.168.1.249" +dns-servers = "192.168.1.13" + +data-port = "br-data:ens9" +bridge-mappings = "physnet1:br-data" + +vips = { + aodh = "10.0.1.211" + cinder = "10.0.1.212" + dashboard = "10.0.1.213" + glance = "10.0.1.214" + heat = "10.0.1.215" + keystone = "10.0.1.216" + neutron-api = "10.0.1.218" + nova-cc = "10.0.1.219" + gnocchi = "10.0.1.220" + contrail = "10.0.1.221" + vault = "10.0.1.222" + placement = "10.0.1.223" + radosgw = "10.0.1.224" +}