-
-
-
-
-
Terraform provider
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
Terraform provider
Citrix SecurSpaces™ publishes a Terraform provider so that platform configuration can be managed as code rather than through the console. It is useful when you create projects and templates repeatedly, when configuration has to be reviewed before it is applied, or when an audit needs a record of who changed what.
The provider manages platform objects. It does not deploy the platform itself — for that, see Install with the Strong Installer CLI.
What it manages
| Resource | Manages |
|---|---|
strong_user |
Platform users |
strong_organization |
Organizations and their owner |
strong_project |
Projects, their owner, and their members |
strong_user_group |
User groups and their membership |
strong_workspace_template |
Workspace templates, including specifications, images, scripts, secrets, apps, and security settings |
Get the provider
The provider is distributed through your SecurSpaces deployment rather than the public Terraform Registry, so you download it with the same installer container you use for upgrades. Access is tied to your platform entitlement.
- Run the installer container as described in Install with the Strong Installer CLI.
-
Fetch the provider:
sds-cli get-terraform -d <your-sds-hostname> <!--NeedCopy-->The newest version is downloaded into the shared directory. Add
-v <version>to select a specific one, or--verboseto list what is available first. -
Install it where Terraform looks for local providers, and mark it executable:
mkdir -p ~/.terraform.d/plugins/strong.network/strong-network/strong/<version>/linux_amd64/ cp terraform-provider-strong-<version> \ ~/.terraform.d/plugins/strong.network/strong-network/strong/<version>/linux_amd64/terraform-provider-strong chmod +x ~/.terraform.d/plugins/strong.network/strong-network/strong/<version>/linux_amd64/terraform-provider-strong <!--NeedCopy-->
Note:
Because the provider is installed from the filesystem rather than a registry,
terraform initdoes not verify a checksum for it. Fetch it throughsds-clirather than copying it between machines, and keep the version you deployed recorded with the rest of your infrastructure code.
Configure the provider
Declare the provider and point it at your deployment:
terraform {
required_providers {
strong = {
source = "strong.network/strong-network/strong"
version = "<version>"
}
}
}
provider "strong" {
api_token = var.api_token
deployment_url = var.deployment_url
}
<!--NeedCopy-->
| Argument | Required | Description |
|---|---|---|
api_token |
Yes | A platform API key. Create one under Profile > Security > API Keys |
deployment_url |
Yes | The URL of your SecurSpaces deployment |
The token is marked sensitive by the provider, so Terraform does not print it. Supply it through a variable or the environment rather than writing it into a file, and give it only the permissions the configuration needs — see Roles and permissions.
Resources
strong_user
| Argument | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | The user’s email address |
user_type |
integer | Yes |
1 for an administrator, 3 for a developer |
identity_provider |
integer | Yes | The identity provider, as a numeric value. 1 Google, 2 Microsoft, 3 SAML, 7 generic OIDC, 0 none |
full_name |
string | No | The user’s full name |
strong_organization
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The organization name |
owner_id |
string | Yes | The user ID or email of the owner |
strong_project
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The project name |
owner_id |
string | Yes | The user ID or email of the owner |
organization_id |
string | Yes | The organization the project belongs to |
member |
block list | No | Project members. Each block takes id and role
|
strong_user_group
| Argument | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | The group name |
description |
string | No | A description of the group |
members |
set of strings | No | User IDs in the group |
strong_workspace_template
The largest resource. It covers what a template defines in the console, including:
-
Identity and scope —
name,project_id,version,description,region_id -
Image —
workspace_imagewithidandtag -
Resources —
workspace_specswithcpu,memory, anddisk -
Startup —
before_startup_script,after_startup_script,default_folder -
Secrets —
injected_secrets_as_env,injected_secrets_as_file, and local equivalents takingsecret_nameandcontent -
Applications —
workspace_appswithport,name, anduse_https -
Security —
policy_idsfor network policies,apps_security,personal_ssh_identity,workspace_access_items -
Clipboard —
clipboard_settings, coveringmonitor,clipboard_restricted, paste restrictions, character limits, andenable_supervised_copy -
Schedule —
workspace_schedule,timeout_outside_schedule,idle_timeout
For what each setting does, see Workspace templates.
Example
Creating an organization, a project inside it, and a group:
resource "strong_user" "lead" {
email = "team-lead@example.com"
user_type = 3
full_name = "Team Lead"
identity_provider = 3
}
resource "strong_organization" "engineering" {
name = "engineering"
owner_id = strong_user.lead.id
}
resource "strong_project" "platform" {
name = "platform-services"
owner_id = strong_user.lead.id
organization_id = strong_organization.engineering.id
}
resource "strong_user_group" "reviewers" {
name = "reviewers"
description = "Engineers who review platform changes"
members = [strong_user.lead.id]
}
<!--NeedCopy-->
Apply it in the usual way:
terraform init
terraform plan
terraform apply
<!--NeedCopy-->
Every resource supports import, so you can bring objects that already exist under Terraform management with
terraform import.
Related information
Share
Share
This Preview product documentation is Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Citrix product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.