Skip to content

Commit

Permalink
release-v0.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
aneeshk-citrix committed May 24, 2024
1 parent 15e4bd9 commit 8fe3ea6
Show file tree
Hide file tree
Showing 89 changed files with 7,981 additions and 492 deletions.
8 changes: 6 additions & 2 deletions DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ This documentation will guide you through the process of setting up your dev env
- [Debugging with citrix-daas-rest-go client code in Visual Studio Code](#debugging-with-citrix-daas-rest-go-client-code-in-visual-studio-code)
- [Running the tests](#running-the-tests)
- [Commonly faced errors](#commonly-faced-errors)

- [Plugin for Terraform Provider for StoreFront Developer Guide](#plugin-for-terraform-provider-for-storefront-developer-guide)
## Install Dependencies
* Install Go on your local system: https://go.dev/doc/install
* `choco install golang`
Expand Down Expand Up @@ -119,4 +119,8 @@ To navigate to `settings.json` file, follow the steps below:
To solve this issue, run the following command at the root of the repository:
```powershell
git config --global --add safe.directory [path to dir/repo]
```
```

## Plugin for Terraform Provider for StoreFront Developer Guide

The test running process is the same as [Running the tests](#running-the-tests) with additional parameter in the settings.cloud.example.json or settings.onprem.example.json `StoreFront env variable` section
46 changes: 36 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ Citrix has developed a custom Terraform provider for automating Citrix product d
- [Create a Hypervisor Resource Pool](#create-a-hypervisor-resource-pool)
- [Create a Machine Catalog](#create-a-machine-catalog)
- [Create a Delivery Group](#create-a-delivery-group)
- [Using the Plugin for Terraform Provider for other Citrix resources](#using-the-plugin-for-terraform-provider-for-other-citrix-resources)
- [Configure Global App Configuration (GAC) Settings](#configure-global-app-configuration-gac-settings)
- [Create Citrix Cloud Resource Locations](#create-citrix-cloud-resource-locations)
- [Managing StoreFront resources](#managing-storefront-resources)
- [Deployment Guides](#deployment-guides)
- [Frequently Asked Questions](#frequently-asked-questions)
- [What resource is supported for different connection types?](#what-resource-is-supported-for-different-connection-types)
- [What provisioning types are supported for machine catalog?](#what-provisioning-types-are-supported-for-machine-catalog)
Expand Down Expand Up @@ -123,7 +128,7 @@ Refer section [Understanding Provider Configuration](#understanding-provider-con

### Start writing Terraform for managing your Citrix DaaS site

To find all the Citrix DaaS resources manageable via Terraform, understand all the configurable properties for each resource and how they work together, refer documentations for DaaS resources that has `daas_` as resource name prefix in [Citrix Terraform resource documentation](docs/resources). To better understand how the resource is managed via Citrix DaaS Rest API, you can refer the [Citrix DaaS Rest API documentation](https://developer.cloud.com/citrixworkspace/citrix-daas/citrix-daas-rest-apis/docs/overview).
To find all the Citrix DaaS resources manageable via Terraform, understand all the configurable properties for each resource and how they work together, refer documentations for resources in [Citrix Terraform resource documentation](docs/resources). To better understand how the resource is managed via Citrix DaaS Rest API, you can refer the [Citrix DaaS Rest API documentation](https://developer.cloud.com/citrixworkspace/citrix-daas/citrix-daas-rest-apis/docs/overview).

### Create a Zone in Citrix DaaS as the first step

Expand All @@ -135,7 +140,7 @@ Hypervisor is needed to use your preferred public cloud provider with Citrix Daa

### Create a Hypervisor Resource Pool

The hypervisor resource pool defines the network configuration for a hypervisor connection. Refer the [DaaS Hypervisor Resource Pool documentaion](docs/resources/hypervisor_resource_pool.md) to configure a hypervisr resource pool via terraform.
The hypervisor resource pool defines the network configuration for a hypervisor connection. Refer the [DaaS Hypervisor Resource Pool documentaion](docs/resources/azure_hypervisor_resource_pool.md) to configure an Azure hypervisr resource pool via terraform.

### Create a Machine Catalog

Expand All @@ -144,18 +149,39 @@ A machine catalog is a collection of machines managed as a single entity. Refer
### Create a Delivery Group
A delivery group is a collection of machines selected from one or more machine catalogs. The delivery group can also specify which users can use those machines, plus the applications and desktops available to those users. Refer the [DaaS Delivery Group documentation](docs/resources/delivery_group.md) to configure a delivery group via terraform.

## Using the Plugin for Terraform Provider for other Citrix resources

### Configure Global App Configuration (GAC) Settings

The Global App Configuration service provides a centralized setup for IT admins to easily configure Citrix Workspace app settings on Windows, Mac, Android, iOS, HTML5, Chrome OS platforms. Currently, configuration of GAC settings is only supported for citrix cloud customers. Please refer to [Global App Configuration settings documentation](docs/resources/gac_settings.md) to configure GAC settings via terraform.

### Create Citrix Cloud Resource Locations

Resource locations contain the resources (e.g. cloud connectors) required to deliver applications and desktops to users. Resource locations are only supported for Cloud customers. On-premises customers can use the zone resource directly. Please refer to [Citrix Resource Location](docs/resources/resource_location.md) documentation to configure citrix cloud resource locations via terraform.

### Managing StoreFront resources
Please refer to the [StoreFront.md](StoreFront.md) to configure StoreFront resources via terraform.

## Deployment Guides
Detailed instructions on setting up deployments on different cloud providers.

- [AWS EC2](https://community.citrix.com/tech-zone/build/deployment-guides/terraform-daas-aws/)
- [Azure](https://community.citrix.com/tech-zone/build/deployment-guides/citrix-daas-terraform-azure/)
- [GCP](https://community.citrix.com/tech-zone/build/deployment-guides/terraform-daas-gcp/)

## Frequently Asked Questions

#### What resource is supported for different connection types?

| Connection Type | Hypervisor | Resource Pool | MCS Power Managed |MCS Provisioning |
|-----------------|------------------|------------------|---------------------|------------------|
| AzureRM |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| AWS EC2 |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| GCP |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| Vsphere |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| XenServer |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| Nutanix |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: |:heavy_check_mark:|
| Connection Type | Hypervisor | Resource Pool | MCS Power Managed | MCS Provisioning | PVS |
|-----------------|------------------|------------------|---------------------|-------------------|------------------------|
| AzureRM |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|In Progress |
| AWS EC2 |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|:heavy_multiplication_x:|
| GCP |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|:heavy_multiplication_x:|
| Vsphere |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|:heavy_multiplication_x:|
| XenServer |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|:heavy_multiplication_x:|
| Nutanix |:heavy_check_mark:|:heavy_check_mark:| :heavy_check_mark: | :heavy_check_mark:|:heavy_multiplication_x:|
| SCVMM |In Progress |In Progress | In Progress | In Progress |:heavy_multiplication_x:|


#### What provisioning types are supported for machine catalog?
Expand Down
108 changes: 108 additions & 0 deletions StoreFront.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Terraform Module for Citrix StoreFront

This Terraform module allows you to manage resources in Citrix StoreFront.

## Table of Contents

- [Terraform Module for Citrix StoreFront](#terraform-module-for-citrix-storefront)
- [Table of Contents](#table-of-contents)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [StoreFront configuration for provider](#storefront-configuration-for-provider)
- [Usage](#usage)
- [Create a deployment](#create-a-deployment)
- [Create an authentication service](#create-an-authentication-service)
- [Create a store service](#create-a-store-service)
- [Create a webreceiver service](#create-a-webreceiver-service)

## Prerequisites

- Terraform 0.14.x
- The machine running the provider needs to be running on Windows 10+ or Server 2016+
- The machine running the provider needs WinRM access to the specified StoreFront server ([Microsoft docs on how to enable WinRM](https://learn.microsoft.com/en-us/troubleshoot/windows-server/remote/how-to-enable-windows-remote-shell))

## Installation

If running the StoreFront provider on a machine other than the machine where StoreFront is installed, please provide the Active Directory Admin credentials in either environment variables or provider configuration
- `SF_COMPUTER_NAME`:
- The name of the remote computer where the StoreFront server is running.
- `SF_AD_ADMAIN_USERNAME`:
- The Active Directory Admin username to connect to the remote PowerShell of the StoreFront Server machine.
- `SF_AD_ADMAIN_PASSWORD`:
- The Active Directory Admin password to connect to the remote PowerShell of the StoreFront server machine.


### StoreFront configuration for provider

```hcl
provider "citrix" {
hostname =
customer_id =
environment =
client_id =
client_secret =
disable_ssl_verification =
storefront_remote_host = {
computer_name = "{Name of the remote computer where the StoreFront located}"
ad_admin_username ="{Active Directory Admin Username}"
ad_admin_password ="{Active Directory Admin Password}"
}
}
```


## Usage
Example Usage of the StoreFront Terraform Configuration

### Create a deployment

```hcl
resource citrix_stf_deployment "testSTFDeployment" {
site_id = 1
host_base_url = "https://example3.storefront.com"
}
```

### Create an authentication service
```hcl
resource "citrix_stf_authentication_service" "example-stf-authentication-service" {
site_id = "${citrix_stf_deployment.testSTFDeployment.site_id}"
friendly_name = "Auth"
virtual_path = "/Citrix/Authentication"
}
```

### Create a store service
```hcl
resource "citrix_stf_store_service" "example-stf-store-service" {
site_id = "${citrix_stf_deployment.testSTFDeployment.site_id}"
virtual_path = "/Citrix/Store"
friendly_name = "Store"
authentication_service = "${citrix_stf_authentication_service.example-stf-authentication-service.virtual_path}"
farm_config = {
farm_name = "Controller"
farm_type = "XenDesktop"
servers = ["cvad.storefront.com"]
}
}
```

### Create a webreceiver service
```hcl
resource "citrix_stf_webreceiver_service" "example-stf-webreceiver-service"{
site_id = "${citrix_stf_deployment.testSTFDeployment.site_id}"
virtual_path = "/Citrix/StoreWeb"
friendly_name = "Receiver2"
store_service = "${citrix_stf_store_service.example-stf-store-service.virtual_path}"
authentication_methods = [
"ExplicitForms",
]
plugin_assistant = {
enabled = true
html5_single_tab_launch = true
upgrade_at_login = true
html5_enabled = "Off"
}
}
```

10 changes: 10 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,13 @@ provider "citrix" {
- `disable_ssl_verification` (Boolean) Disable SSL verification against the target DDC. <br />Only applicable to on-premises customers. Citrix Cloud customers should omit this option. Set to true to skip SSL verification only when the target DDC does not have a valid SSL certificate issued by a trusted CA. <br />When set to true, please make sure that your provider config is set for a known DDC hostname. <br />[It is recommended to configure a valid certificate for the target DDC](https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/install-configure/install-core/secure-web-studio-deployment) <br />Can be set via Environment Variable **CITRIX_DISABLE_SSL_VERIFICATION**.
- `environment` (String) Citrix Cloud environment of the customer. Only applicable for Citrix Cloud customers. Available options: `Production`, `Staging`, `Japan`, `JapanStaging`, `Gov`, `GovStaging`. <br />Can be set via Environment Variable **CITRIX_ENVIRONMENT**.
- `hostname` (String) Host name / base URL of Citrix DaaS service. <br />For Citrix on-premises customers (Required): Use this to specify Delivery Controller hostname. <br />For Citrix Cloud customers (Optional): Use this to force override the Citrix DaaS service hostname.<br />Can be set via Environment Variable **CITRIX_HOSTNAME**.
- `storefront_remote_host` (Attributes) StoreFront Remote Host for Citrix DaaS service. <br />Only applicable for Citrix on-premises StoreFront. Use this to specify StoreFront Remote Host. <br /> (see [below for nested schema](#nestedatt--storefront_remote_host))

<a id="nestedatt--storefront_remote_host"></a>
### Nested Schema for `storefront_remote_host`

Required:

- `ad_admin_password` (String) Active Directory Admin Password to connect to storefront server <br />Only applicable for Citrix on-premises customers. Use this to specify AD admin password<br />Can be set via Environment Variable **SF_AD_ADMAIN_PASSWORD**.
- `ad_admin_username` (String) Active Directory Admin Username to connect to storefront server <br />Only applicable for Citrix on-premises customers. Use this to specify AD admin username <br />Can be set via Environment Variable **SF_AD_ADMAIN_USERNAME**.
- `computer_name` (String) StoreFront server computer Name <br />Only applicable for Citrix on-premises customers. Use this to specify StoreFront server computer name <br />Can be set via Environment Variable **SF_COMPUTER_NAME**.
4 changes: 2 additions & 2 deletions docs/resources/delivery_group.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ Optional:

Optional:

- `allow_list` (List of String) Users who can use this Desktop. Must be in `Domain\UserOrGroupName` or `[email protected]` format
- `allow_list` (List of String) Users who can use this Desktop. Must be in `DOMAIN\UserOrGroupName` or `[email protected]` format
- `block_list` (List of String) Users who cannot use this Desktop. A block list is meaningful only when used to block users in the allow list. Must be in `Domain\UserOrGroupName` or `[email protected]` format


Expand Down Expand Up @@ -274,7 +274,7 @@ Optional:

Optional:

- `allow_list` (List of String) Users who can use this Delivery Group. Must be in `Domain\UserOrGroupName` or `[email protected]` format
- `allow_list` (List of String) Users who can use this Delivery Group. Must be in `DOMAIN\UserOrGroupName` or `[email protected]` format
- `block_list` (List of String) Users who cannot use this Delivery Group. A block list is meaningful only when used to block users in the allow list. Must be in `Domain\UserOrGroupName` or `[email protected]` format

## Import
Expand Down
Loading

0 comments on commit 8fe3ea6

Please sign in to comment.