Update to latest configs
* Add designate module * Update cinder/cinder-ceph modules * move the memcache/nova relation to nova block
This commit is contained in:
@@ -275,10 +275,12 @@ module "vault" {
|
||||
"ovn-chassis-kvm",
|
||||
"ovn-chassis-dpdk",
|
||||
"placement",
|
||||
"designate",
|
||||
]
|
||||
# Common variables
|
||||
sdn_ids = var.sdn_ids
|
||||
vips = var.vips
|
||||
sdn_ids = var.sdn_ids
|
||||
vips = var.vips
|
||||
internal-space = var.internal-space
|
||||
|
||||
# Application Variables
|
||||
nagios-context = var.nagios-context
|
||||
@@ -294,8 +296,31 @@ module "memcached" {
|
||||
controller_ids = var.controller_ids
|
||||
all_machines = juju_machine.all_machines
|
||||
model-name = var.model-name
|
||||
internal-space = var.internal-space
|
||||
|
||||
# Dependancies
|
||||
novacc_app = juju_application.nova-cloud-controller.name
|
||||
}
|
||||
|
||||
module "designate" {
|
||||
source = "./modules/designate"
|
||||
|
||||
designate-config-overrides = {
|
||||
nameservers = "ns1.arif-ali.co.uk,ns1.arif-ali.co.uk"
|
||||
}
|
||||
|
||||
# Common variables
|
||||
controller_ids = var.controller_ids
|
||||
all_machines = juju_machine.all_machines
|
||||
model-name = var.model-name
|
||||
vips = var.vips
|
||||
internal-space = var.internal-space
|
||||
public-space = var.public-space
|
||||
admin-space = var.admin-space
|
||||
|
||||
# Dependancies
|
||||
keystone_app = module.keystone.keystone.name
|
||||
neutron_app = juju_application.neutron-api.name
|
||||
rabbitmq-server_app = module.rabbitmq-server.rabbitmq-server.name
|
||||
memcache_app = module.memcached.memcached.name
|
||||
}
|
||||
|
||||
@@ -143,3 +143,18 @@ resource "juju_integration" "nova-cloud-controller-glance" {
|
||||
endpoint = "image-service"
|
||||
}
|
||||
}
|
||||
|
||||
resource "juju_integration" "nova-cloud-controller-memcached" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.nova-cloud-controller.name
|
||||
endpoint = "memcache"
|
||||
}
|
||||
|
||||
application {
|
||||
name = module.memcached.memcached.name
|
||||
endpoint = "cache"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ resource "juju_application" "cinder-ceph" {
|
||||
channel = var.cinder-ceph-channel
|
||||
}
|
||||
|
||||
config = {
|
||||
restrict-ceph-pools = "false"
|
||||
rbd-pool-name = var.ceph-pool==""? null : var.ceph-pool
|
||||
}
|
||||
config = local.cinder-ceph-config
|
||||
}
|
||||
|
||||
resource "juju_integration" "cinder-ceph-mon" {
|
||||
|
||||
@@ -100,10 +100,17 @@ variable cinder-ceph-config-overrides {
|
||||
|
||||
locals {
|
||||
base-cinder-ceph-config = {
|
||||
restrict-ceph-pools = "false"
|
||||
rbd-pool-name = var.ceph-pool==""? null : var.ceph-pool
|
||||
}
|
||||
|
||||
clean-cinder-ceph-config = {
|
||||
for k, v in local.base-cinder-ceph-config : k => v
|
||||
if v != null
|
||||
}
|
||||
|
||||
cinder-ceph-config = merge(
|
||||
local.base-cinder-ceph-config,
|
||||
local.clean-cinder-ceph-config,
|
||||
var.cinder-ceph-config-overrides
|
||||
)
|
||||
}
|
||||
|
||||
@@ -48,6 +48,7 @@ module "cinder-mysql-router" {
|
||||
}
|
||||
|
||||
module "cinder-hacluster" {
|
||||
count = contains(keys(var.vips), var.app-name) ? 1 : 0
|
||||
source = "../hacluster"
|
||||
|
||||
sub-name = var.app-name
|
||||
|
||||
@@ -139,14 +139,19 @@ locals {
|
||||
worker-multiplier = var.worker-multiplier
|
||||
openstack-origin = var.openstack-origin
|
||||
region = var.openstack-region
|
||||
vip = var.vips["cinder"]
|
||||
vip = try(var.vips[var.app-name], null)
|
||||
use-internal-endpoints = "true"
|
||||
block-device = "None"
|
||||
glance-api-version = "2"
|
||||
}
|
||||
|
||||
cleaned-cinder-config = {
|
||||
for k, v in local.base-cinder-config : k => v
|
||||
if v != null
|
||||
}
|
||||
|
||||
cinder-config = merge(
|
||||
local.base-cinder-config,
|
||||
local.cleaned-cinder-config,
|
||||
var.cinder-config-overrides
|
||||
)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
juju = {
|
||||
version = "~> 0.19.0"
|
||||
source = "registry.terraform.io/juju/juju"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,224 @@
|
||||
resource "juju_machine" "designate" {
|
||||
count = var.num_units
|
||||
model = var.model-name
|
||||
placement = join(":", ["lxd", var.all_machines[var.controller_ids[count.index+var.num_units]].machine_id])
|
||||
constraints = "spaces=oam"
|
||||
}
|
||||
|
||||
resource "juju_application" "designate" {
|
||||
name = var.app-name
|
||||
|
||||
model = var.model-name
|
||||
|
||||
charm {
|
||||
name = "designate"
|
||||
channel = var.designate-channel
|
||||
base = var.default-base
|
||||
}
|
||||
|
||||
machines = [
|
||||
for res in juju_machine.designate :
|
||||
res.machine_id
|
||||
]
|
||||
|
||||
endpoint_bindings = [{
|
||||
space = var.oam-space
|
||||
},{
|
||||
endpoint = "public"
|
||||
space = var.public-space
|
||||
},{
|
||||
endpoint = "admin"
|
||||
space = var.admin-space
|
||||
},{
|
||||
endpoint = "internal"
|
||||
space = var.internal-space
|
||||
},{
|
||||
endpoint = "shared-db"
|
||||
space = var.internal-space
|
||||
}]
|
||||
|
||||
config = local.designate-config
|
||||
}
|
||||
|
||||
module "designate-mysql-router" {
|
||||
source = "../mysql-router"
|
||||
|
||||
sub-name = var.app-name
|
||||
model-name = var.model-name
|
||||
}
|
||||
|
||||
module "designate-hacluster" {
|
||||
source = "../hacluster"
|
||||
|
||||
sub-name = var.app-name
|
||||
model-name = var.model-name
|
||||
}
|
||||
|
||||
resource "juju_machine" "designate-bind" {
|
||||
count = var.num_units
|
||||
model = var.model-name
|
||||
placement = join(":", ["lxd", var.all_machines[var.controller_ids[count.index+var.num_units]].machine_id])
|
||||
constraints = "spaces=oam"
|
||||
}
|
||||
|
||||
resource "juju_application" "designate-bind" {
|
||||
name = "${var.app-name}-bind"
|
||||
|
||||
model = var.model-name
|
||||
|
||||
charm {
|
||||
name = "designate-bind"
|
||||
channel = var.designate-channel
|
||||
base = var.default-base
|
||||
}
|
||||
|
||||
machines = [
|
||||
for res in juju_machine.designate-bind :
|
||||
res.machine_id
|
||||
]
|
||||
|
||||
config = {
|
||||
disable-dnssec-validation = true
|
||||
forwarders = ""
|
||||
recursion = true
|
||||
service_ips = var.vips["designate-bind"]
|
||||
use-internal-endpoints = true
|
||||
}
|
||||
}
|
||||
|
||||
module "designate-bind-hacluster" {
|
||||
source = "../hacluster"
|
||||
|
||||
sub-name = "${var.app-name}-bind"
|
||||
model-name = var.model-name
|
||||
}
|
||||
|
||||
resource "juju_integration" "designate-rmq" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.designate.name
|
||||
endpoint = "amqp"
|
||||
}
|
||||
|
||||
application {
|
||||
name = var.rabbitmq-server_app
|
||||
endpoint = "amqp"
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
replace_triggered_by = [
|
||||
juju_application.designate.name,
|
||||
juju_application.designate.model,
|
||||
juju_application.designate.constraints,
|
||||
juju_application.designate.placement,
|
||||
juju_application.designate.charm.name,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "juju_integration" "designate-neutron" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.designate.name
|
||||
endpoint = "dnsaas"
|
||||
}
|
||||
|
||||
application {
|
||||
name = var.neutron_app
|
||||
endpoint = "external-dns"
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
replace_triggered_by = [
|
||||
juju_application.designate.name,
|
||||
juju_application.designate.model,
|
||||
juju_application.designate.constraints,
|
||||
juju_application.designate.placement,
|
||||
juju_application.designate.charm.name,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "juju_integration" "designate-keystone" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.designate.name
|
||||
endpoint = "identity-service"
|
||||
}
|
||||
|
||||
application {
|
||||
name = var.keystone_app
|
||||
endpoint = "identity-service"
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
replace_triggered_by = [
|
||||
juju_application.designate.name,
|
||||
juju_application.designate.model,
|
||||
juju_application.designate.constraints,
|
||||
juju_application.designate.placement,
|
||||
juju_application.designate.charm.name,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "juju_integration" "designate-memcache" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.designate.name
|
||||
endpoint = "coordinator-memcached"
|
||||
}
|
||||
|
||||
application {
|
||||
name = var.memcache_app
|
||||
endpoint = "cache"
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
replace_triggered_by = [
|
||||
juju_application.designate.name,
|
||||
juju_application.designate.model,
|
||||
juju_application.designate.constraints,
|
||||
juju_application.designate.placement,
|
||||
juju_application.designate.charm.name,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
resource "juju_integration" "designate-designate-bind" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = juju_application.designate.name
|
||||
endpoint = "dns-backend"
|
||||
}
|
||||
|
||||
application {
|
||||
name = juju_application.designate-bind.name
|
||||
endpoint = "dns-backend"
|
||||
}
|
||||
|
||||
lifecycle {
|
||||
replace_triggered_by = [
|
||||
juju_application.designate.name,
|
||||
juju_application.designate.model,
|
||||
juju_application.designate.constraints,
|
||||
juju_application.designate.placement,
|
||||
juju_application.designate.charm.name,
|
||||
juju_application.designate-bind.name,
|
||||
juju_application.designate-bind.model,
|
||||
juju_application.designate-bind.constraints,
|
||||
juju_application.designate-bind.placement,
|
||||
juju_application.designate-bind.charm.name,
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
output "designate" {
|
||||
value = juju_application.designate
|
||||
}
|
||||
|
||||
#output "designate-bind" {
|
||||
# value = juju_application.designate-bind
|
||||
#}
|
||||
@@ -0,0 +1,143 @@
|
||||
variable num_units {
|
||||
type = number
|
||||
default = 3
|
||||
}
|
||||
|
||||
variable "all_machines" {
|
||||
description = "Machines"
|
||||
type = map(object({
|
||||
base = string
|
||||
constraints = string
|
||||
id = string
|
||||
machine_id = string
|
||||
model = string
|
||||
name = string
|
||||
series = string
|
||||
}))
|
||||
}
|
||||
|
||||
variable controller_ids {
|
||||
type = list(string)
|
||||
default = []
|
||||
}
|
||||
|
||||
variable model-name {
|
||||
type = string
|
||||
default = "openstack"
|
||||
}
|
||||
|
||||
variable default-base {
|
||||
type = string
|
||||
default = "ubuntu@22.04"
|
||||
}
|
||||
|
||||
variable default-series {
|
||||
type = string
|
||||
default = "jammy"
|
||||
}
|
||||
|
||||
variable designate-channel {
|
||||
type = string
|
||||
default = "yoga/stable"
|
||||
}
|
||||
|
||||
variable designate-revision {
|
||||
type = 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 openstack-origin {
|
||||
type = string
|
||||
default = "distro"
|
||||
}
|
||||
|
||||
variable openstack-region {
|
||||
type = string
|
||||
default = "RegionOne"
|
||||
}
|
||||
|
||||
variable worker-multiplier {
|
||||
type = string
|
||||
default = "0.25"
|
||||
}
|
||||
|
||||
variable app-name {
|
||||
type = string
|
||||
default = "designate"
|
||||
}
|
||||
|
||||
variable vips {
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
||||
variable neutron_app {
|
||||
type = string
|
||||
default = "neutron-api"
|
||||
}
|
||||
variable keystone_app {
|
||||
type = string
|
||||
default = "keystone"
|
||||
}
|
||||
variable rabbitmq-server_app {
|
||||
type = string
|
||||
default = "rabbitmq-server"
|
||||
}
|
||||
variable memcache_app {
|
||||
type = string
|
||||
default = "memcached"
|
||||
}
|
||||
|
||||
variable designate-config-overrides {
|
||||
type = map(string)
|
||||
default = {}
|
||||
}
|
||||
|
||||
locals {
|
||||
base-designate-config = {
|
||||
openstack-origin = var.openstack-origin
|
||||
region = var.openstack-region
|
||||
use-internal-endpoints = "true"
|
||||
vip = var.vips["designate"]
|
||||
}
|
||||
|
||||
designate-config = merge(
|
||||
local.base-designate-config,
|
||||
var.designate-config-overrides
|
||||
)
|
||||
}
|
||||
@@ -31,18 +31,3 @@ resource "juju_application" "memcached" {
|
||||
|
||||
config = local.memcached-config
|
||||
}
|
||||
|
||||
resource "juju_integration" "nova-cc-memcached" {
|
||||
|
||||
model = var.model-name
|
||||
|
||||
application {
|
||||
name = var.novacc_app
|
||||
endpoint = "memcache"
|
||||
}
|
||||
|
||||
application {
|
||||
name = juju_application.memcached.name
|
||||
endpoint = "cache"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,6 +99,8 @@ vips = {
|
||||
vault = "10.0.1.222"
|
||||
placement = "10.0.1.223"
|
||||
radosgw = "10.0.1.224"
|
||||
designate = "10.0.1.225"
|
||||
designate-bind = "10.0.1.225"
|
||||
}
|
||||
|
||||
fqdn-pub = {
|
||||
|
||||
Reference in New Issue
Block a user