terraform-provider-ibm icon indicating copy to clipboard operation
terraform-provider-ibm copied to clipboard

Please improve ibm_is_instance_group_manager to contain example with both autoscalling and scheduled manager on single LB

Open matihost opened this issue 1 year ago • 1 comments

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

New or Affected Resource(s) or Datasource(s)

  • ibm_is_instance_group_manager
  • ibm_is_instance_group_manager_action

Description

Please update documentation to provide current, working example of Instance group along with Manager for autoscalling and manager for scheduled actions - together

Currently ibm_is_instance_group_manager_action is ommiting completely "target_manager" which is mandatory field.

The following working for me example so far:

resource "ibm_is_instance_group" "private-alb-ig" {
  resource_group = var.resource_group_id

  name              = "${local.prefix}-group-for-priv-alb"
  instance_template = ibm_is_instance_template.webserver.id
  instance_count    = 3
  subnets           = local.subnet_ids

  application_port = 80
  load_balancer = ibm_is_lb.private-alb.id
  load_balancer_pool =  element(split("/", ibm_is_lb_pool.private-alb-backend-pool.id), 1)


  lifecycle {
    ignore_changes = [
      instance_count,
    ]
  }
}

resource "ibm_is_instance_group_manager" "private-alb-igm" {
  name               = "${local.prefix}-igm-for-priv-alb"
  aggregation_window = 120
  instance_group     = ibm_is_instance_group.private-alb-ig.id

  cooldown             = 120
  manager_type         = "autoscale"
  enable_manager       = true
  max_membership_count = 6

  min_membership_count = 1
}

resource "ibm_is_instance_group_manager_policy" "private-alb-target-cpu" {
  name                   = "${local.prefix}-igm-policy-for-priv-alb"
  instance_group         = ibm_is_instance_group.private-alb-ig.id
  instance_group_manager = ibm_is_instance_group_manager.private-alb-igm.manager_id
  metric_type            = "cpu"
  metric_value           = 70
  policy_type            = "target"
}


resource "ibm_is_instance_group_manager" "priv-alb-scheduler" {
  name           = "${local.prefix}-scheduler-for-priv-alb"
  instance_group = ibm_is_instance_group.private-alb-ig.id
  manager_type   = "scheduled"
  enable_manager = true
}

resource "ibm_is_instance_group_manager_action" "priv-alb-scheduler-action-down" {
  name                   = "${local.prefix}-priv-alb-scheduler-down"
  instance_group         = ibm_is_instance_group.private-alb-ig.id
  instance_group_manager = ibm_is_instance_group_manager.priv-alb-scheduler.manager_id
  target_manager         = ibm_is_instance_group_manager.private-alb-igm.manager_id
  cron_spec              = "05 17 * * *"
  min_membership_count   = 1
  max_membership_count   = 6
}

resource "ibm_is_instance_group_manager_action" "priv-alb-scheduler-action-up" {
  name                   = "${local.prefix}-priv-alb-scheduler-down"
  instance_group         = ibm_is_instance_group.private-alb-ig.id
  instance_group_manager = ibm_is_instance_group_manager.priv-alb-scheduler.manager_id
  target_manager         = ibm_is_instance_group_manager.private-alb-igm.manager_id
  cron_spec              = "05 08 * * *"
  min_membership_count   = 3
  max_membership_count   = 6
}
  • #0000

matihost avatar Feb 12 '24 12:02 matihost

looking at it

ujjwal-ibm avatar Feb 13 '24 07:02 ujjwal-ibm