objectscale Provider

The Terraform provider for Dell Objectscale can be used to interact with a Dell Objectscale array in order to manage the array resources.

Example Usage

The following abridged example demonstrates the usage of the provider.

/*
Copyright (c) 2025 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.
*/

terraform {
  required_providers {
    objectscale = {
      source = "registry.terraform.io/dell/objectscale"
    }
  }
}

provider "objectscale" {
  username = var.username
  password = var.password
  endpoint = var.endpoint
  insecure = var.insecure
}

Schema

Required

  • endpoint (String) The API endpoint, ex. https://10.10.10.10:4443
  • password (String, Sensitive) The password
  • username (String) The username

Optional

  • insecure (Boolean) whether to skip SSL validation
  • timeout (Number) The timeout in seconds

Managing User Tokens

Every time we run terraform <plan/refresh/apply/delete>, a new API token is generated by the provider which is never revoked. If you plan to invoke these commands frequently, please properly configure the token limit and token idle expiration time of the user whose credentials are passed to the provider. By increasing the token limit and decreasing the idle expiration time, you can avoid running into the maximum token limit of your user.

Best Practices

  1. The parent resource attributes of a certain resource can only be designated at creation. Once designated, they cannot be modified except for parent resource renaming.
  2. The name of a resource is modifiable, but it is necessary to make sure its name referenced in the child resources is also updated (can be done manually or use reference resource_id.name).
  3. Resources with child resources cannot be deleted independently. Use terraform destroy to delete all resources directly or delete all the child resources at the same time (depends_on is recommended to manage resources, serving as a precheck for delete operations).