|  | 
| 1 | 1 | ############################################################################## | 
| 2 |  | -# SLZ VPC | 
|  | 2 | +# Resource Group | 
| 3 | 3 | ############################################################################## | 
| 4 | 4 | 
 | 
| 5 |  | -module "landing_zone" { | 
| 6 |  | -  source           = "git::https://github.com/terraform-ibm-modules/terraform-ibm-landing-zone//patterns//roks-quickstart?ref=v7.4.4" | 
| 7 |  | -  ibmcloud_api_key = var.ibmcloud_api_key | 
| 8 |  | -  region           = var.region | 
| 9 |  | -  prefix           = var.prefix | 
| 10 |  | -  resource_tags    = var.resource_tags | 
|  | 5 | +module "resource_group" { | 
|  | 6 | +  source  = "terraform-ibm-modules/resource-group/ibm" | 
|  | 7 | +  version = "1.2.0" | 
|  | 8 | +  # if an existing resource group is not set (null) create a new one using prefix | 
|  | 9 | +  resource_group_name          = var.resource_group == null ? "${var.prefix}-resource-group" : null | 
|  | 10 | +  existing_resource_group_name = var.resource_group | 
|  | 11 | +} | 
|  | 12 | + | 
|  | 13 | +######################################################################################################################## | 
|  | 14 | +# VPC + Subnet + Public Gateway | 
|  | 15 | +# | 
|  | 16 | +# NOTE: This is a very simple VPC with single subnet in a single zone with a public gateway enabled, that will allow | 
|  | 17 | +# all traffic ingress/egress by default. | 
|  | 18 | +# For production use cases this would need to be enhanced by adding more subnets and zones for resiliency, and | 
|  | 19 | +# ACLs/Security Groups for network security. | 
|  | 20 | +######################################################################################################################## | 
|  | 21 | + | 
|  | 22 | +resource "ibm_is_vpc" "vpc" { | 
|  | 23 | +  name                      = "${var.prefix}-vpc" | 
|  | 24 | +  resource_group            = module.resource_group.resource_group_id | 
|  | 25 | +  address_prefix_management = "auto" | 
|  | 26 | +  tags                      = var.resource_tags | 
|  | 27 | +} | 
|  | 28 | + | 
|  | 29 | +resource "ibm_is_subnet" "subnet_zone_1" { | 
|  | 30 | +  name                     = "${var.prefix}-subnet-1" | 
|  | 31 | +  vpc                      = ibm_is_vpc.vpc.id | 
|  | 32 | +  resource_group           = module.resource_group.resource_group_id | 
|  | 33 | +  zone                     = "${var.region}-1" | 
|  | 34 | +  total_ipv4_address_count = 256 | 
|  | 35 | +} | 
|  | 36 | + | 
|  | 37 | +######################################################################################################################## | 
|  | 38 | +# OCP VPC cluster (single zone) | 
|  | 39 | +######################################################################################################################## | 
|  | 40 | + | 
|  | 41 | +locals { | 
|  | 42 | +  cluster_vpc_subnets = { | 
|  | 43 | +    default = [ | 
|  | 44 | +      { | 
|  | 45 | +        id         = ibm_is_subnet.subnet_zone_1.id | 
|  | 46 | +        cidr_block = ibm_is_subnet.subnet_zone_1.ipv4_cidr_block | 
|  | 47 | +        zone       = ibm_is_subnet.subnet_zone_1.zone | 
|  | 48 | +      } | 
|  | 49 | +    ] | 
|  | 50 | +  } | 
|  | 51 | + | 
|  | 52 | +  worker_pools = [ | 
|  | 53 | +    { | 
|  | 54 | +      subnet_prefix    = "default" | 
|  | 55 | +      pool_name        = "default" # ibm_container_vpc_cluster automatically names default pool "default" (See https://github.com/IBM-Cloud/terraform-provider-ibm/issues/2849) | 
|  | 56 | +      machine_type     = "bx2.16x64" | 
|  | 57 | +      workers_per_zone = 2 # minimum of 2 is allowed when using single zone | 
|  | 58 | +      operating_system = "REDHAT_8_64" | 
|  | 59 | +    } | 
|  | 60 | +  ] | 
|  | 61 | +} | 
|  | 62 | + | 
|  | 63 | +module "ocp_base" { | 
|  | 64 | +  source               = "terraform-ibm-modules/base-ocp-vpc/ibm" | 
|  | 65 | +  version              = "3.49.0" | 
|  | 66 | +  resource_group_id    = module.resource_group.resource_group_id | 
|  | 67 | +  region               = var.region | 
|  | 68 | +  tags                 = var.resource_tags | 
|  | 69 | +  cluster_name         = "${var.prefix}-cluster" | 
|  | 70 | +  force_delete_storage = true | 
|  | 71 | +  vpc_id               = ibm_is_vpc.vpc.id | 
|  | 72 | +  vpc_subnets          = local.cluster_vpc_subnets | 
|  | 73 | +  worker_pools         = local.worker_pools | 
|  | 74 | +  access_tags          = [] | 
|  | 75 | +} | 
|  | 76 | + | 
|  | 77 | +############################################################################## | 
|  | 78 | +# Monitoring: | 
|  | 79 | +# - Cloud Monitoring instance | 
|  | 80 | +############################################################################## | 
|  | 81 | + | 
|  | 82 | +module "cloudpak_data" { | 
|  | 83 | +  source              = "../../solutions/fully-configurable" | 
|  | 84 | +  ibmcloud_api_key    = var.ibmcloud_api_key | 
|  | 85 | +  prefix              = var.prefix | 
|  | 86 | +  region              = var.region | 
|  | 87 | +  cluster_name        = module.ocp_base.cluster_name | 
|  | 88 | +  cluster_rg_id       = module.resource_group.resource_group_id | 
|  | 89 | +  cpd_admin_password  = var.cpd_admin_password | 
|  | 90 | +  cpd_entitlement_key = var.cpd_entitlement_key | 
| 11 | 91 | } | 
0 commit comments