powerflex_sdc (Resource)

This resource can be used to Manage the SDC in PowerFlex Cluster.

Note: Before Destroy/Deleteing SDC user have to disconnect SDC from MDM and unmap all Volumes. Disconnection from MDM should be done manually. It is not in the scope of this provider. For unmapping the SDC from volumes, user can utilize SDC_Volume_Mapping Resource.

Example Usage

/*
Copyright (c) 2023 Dell Inc., or its subsidiaries. All Rights Reserved.

Licensed under the Mozilla Public License Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://mozilla.org/MPL/2.0/


Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

# Command to run this tf file : terraform init && terraform plan && terraform apply.
# Create, Update, Read, Delete and Import operations are supported for this resource.

# To perform Multiple SDC Detail Update and SDC Expansion
resource "powerflex_sdc" "expansion" {
  mdm_password = "Password"
  lia_password = "Password"
  sdc_details = [
    {
      ip                  = "10.10.10.1"
      username            = "Username"
      password            = "Password"
      operating_system    = "linux"
      is_mdm_or_tb        = "Primary"
      is_sdc              = "No"
      name                = "SDC_NAME"
      performance_profile = "HighPerformance"
      sdc_id              = "sdc_id"
    },
    {
      ip                  = "10.10.10.2"
      username            = "Username"
      password            = "Password"
      operating_system    = "linux"
      is_mdm_or_tb        = "Secondary"
      is_sdc              = "Yes"
      name                = "SDC_NAME"
      performance_profile = "Compact"
      sdc_id              = "sdc_id"
    },
    {
      ip                  = "10.10.10.3"
      username            = "Username"
      password            = "Password"
      operating_system    = "linux"
      is_mdm_or_tb        = "TB"
      is_sdc              = "Yes"
      name                = "SDC_NAME"
      performance_profile = "Compact"
      sdc_id              = "sdc_id"
    },
    {
      ip                  = "10.10.10.4"
      username            = "Username"
      password            = "Password"
      operating_system    = "linux"
      is_mdm_or_tb        = "Standby"
      is_sdc              = "Yes"
      name                = "SDC_NAME"
      performance_profile = "Compact"
      sdc_id              = "sdc_id"
    },
  ]
}

#To Rename One SDC Server 
resource "powerflex_sdc" "rename" {
   id   = "SDC_ID"
   name = "Name"
}

#To update multiple SDC Performance Profile
resource "powerflex_sdc" "update" {
  mdm_password = "MDM_Password"
  lia_password = "LIA_Password"
  sdc_details = [
    {
      sdc_id              = "ID1"
      performance_profile = "HighPerformance"
    },
    {
      sdc_id              = "ID2"
      performance_profile = "Compact"
    },
  ]
}


# For Import Multiple SDC
resource "powerflex_sdc" "importing" {
}
#terraform import powerflex_sdc.importing ID1,ID2,ID3

Schema

Optional

  • id (String) ID of the SDC to manage. This can be retrieved from the PowerFlex Server via SDC Datasource. Cannot be updated. Conflict sdc_details, mdm_password and lia_password
  • lia_password (String, Sensitive) LIA Password to connect MDM Server.
  • mdm_password (String, Sensitive) MDM Password to connect MDM Server.
  • name (String, Deprecated) Name of the SDC to manage. Conflict sdc_details, mdm_password and lia_password.
  • sdc_details (Attributes List) List of SDC Expansion Server Details. (see below for nested schema)

Nested Schema for sdc_details

Optional:

  • ip (String, Sensitive) IP of the node. Conflict with sdc_id
  • is_mdm_or_tb (String) Whether this works as MDM or Tie Breaker,The acceptable values are Primary, Secondary, TB, Standby or blank. Default value is blank
  • is_sdc (String) Whether this node is to operate as an SDC or not. The acceptable values are Yes and No. Default value is Yes.
  • name (String) Name of the SDC to manage.
  • operating_system (String) Operating System on the node
  • password (String, Sensitive) Password of the node
  • performance_profile (String) Performance Profile of SDC, The acceptable value are HighPerformance or Compact.
  • sdc_id (String) ID of the SDC to manage. This can be retrieved from the PowerFlex Server via SDC Datasource. Cannot be updated. Conflict with ip
  • username (String) Username of the node

Read-Only:

  • mdm_connection_state (String) The MDM connection status of the fetched SDC.
  • on_vmware (Boolean) If the fetched SDC is on vmware.
  • sdc_approved (Boolean) If the fetched SDC is approved.
  • sdc_guid (String) The GUID of the fetched SDC.
  • system_id (String) The System ID of the fetched SDC.

Import

Import is supported using the following syntax:

# Below are the steps to import SDC :
# Step 1 - To import a sdc , we need the id of that sdc 
# Step 2 - To check the id of the sdc we can make use of sdc datasource . Please refer sdc_datasource.tf for more info.
# Step 3 - create a tf file with empty resource block . Refer the example below.
# Example :
# resource "powerflex_sdc" "resource_block_name" {
# }
# Step 4 - execute the command : terraform init && terraform import "powerflex_sdc.resource_block_name" "id_of_the_sdc" (resource_block_name must be taken from step 3 and id must be taken from step 2)
# Step 5 - After successful execution of the command , check the state file