### Validate Terraform Examples Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Initializes and validates Terraform configurations in all example directories. Fix any failures in examples you touch or that your changes break. ```shell make verify ``` -------------------------------- ### Example Usage of Account IAM Resources Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/account-iam-resources/README.md Demonstrates how to include and configure the account-wide IAM resources sub-module in your Terraform configuration. This setup is necessary for ROSA HCP cluster deployments. ```terraform module "account_iam_resources" { source = "terraform-redhat/rosa-hcp/rhcs//modules/account-iam-resources" version = "1.6.2" account_role_prefix = "my-cluster-account" } ``` -------------------------------- ### Example Usage of Kubelet Config Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/kubelet-configs/README.md Demonstrates how to use the kubelet-configs sub-module to set a custom pod PID limit for a ROSA HCP cluster. ```terraform module "kubeletconfig" { source = "terraform-redhat/rosa-hcp/rhcs//modules/kubelet-configs" cluster_id = "cluster-id-123" name = "my-kubelet-config" pod_pids_limit = 4096 } ``` -------------------------------- ### Example Usage of Machine Pool Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/machine-pool/README.md Demonstrates how to configure a machine pool for a ROSA HCP cluster using the terraform-redhat/rosa-hcp/rhcs module. ```terraform module "mp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/machine-pool" version = "1.6.2" cluster_id = "cluster-id-123" name = "my-pool" openshift_version = "my-version" aws_node_pool = { instance_type = "my-instance" tags = {} additional_security_group_ids = [""] } subnet_id = "subnet-123" autoscaling = { enabled = false min_replicas = null max_replicas = null } replicas = 2 } ``` -------------------------------- ### Example Usage: Deploy VPC and Bastion Host Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/bastion-host/README.md This snippet demonstrates how to use the VPC module to create a VPC and then deploy a bastion host within that VPC. It specifies the source for the VPC module and then configures the bastion host module with necessary parameters like VPC ID, subnet IDs, AMI ID, and user data. ```terraform ############################ # VPC ############################ module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-vpc" availability_zones_count = 1 } ############################ # Bastion instance for connection to the cluster ############################ module "bastion_host" { source = "../../modules/bastion-host" prefix = "my-host" vpc_id = module.vpc.vpc_id subnet_ids = [module.vpc.public_subnets[0]] ami_id = aws_ami.rhel9.id user_data_file = file("bastion-host-user-data.yaml") } ``` -------------------------------- ### Example Usage of OIDC Config and Provider Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/oidc-config-and-provider/README.md Demonstrates how to include the oidc-config-and-provider module in your Terraform configuration. Ensure you specify the correct source path and version. ```terraform module "oidc_config_and_provider" { source = "terraform-redhat/rosa-hcp/rhcs//modules/oidc-config-and-provider" version = "1.6.2" managed = true } ``` -------------------------------- ### Commit Message Format Example: Feature Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Example of a commit subject line for adding a new feature, including a JIRA ticket ID and the 'feat' type. ```git commit [OCM-12345] | feat: add day-1 setting support ``` -------------------------------- ### Bastion Host Setup Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private/README.md Configures a bastion host EC2 instance for accessing the private ROSA cluster. It uses a specific RHEL 9 AMI and user data from a file. ```terraform ############################ # Bastion instance for connection to the cluster ############################ data "aws_ami" "rhel9" { most_recent = true filter { name = "platform-details" values = ["Red Hat Enterprise Linux"] } filter { name = "architecture" values = ["x86_64"] } filter { name = "root-device-type" values = ["ebs"] } filter { name = "manifest-location" values = ["amazon/RHEL-9.*_HVM-*-x86_64-*-Hourly2-GP2"] } owners = ["309956199498"] # Amazon's "Official Red Hat" account } module "bastion_host" { source = "../../modules/bastion-host" prefix = "my-host" vpc_id = module.vpc.vpc_id subnet_ids = [module.vpc.public_subnets[0]] ami_id = aws_ami.rhel9.id user_data_file = file("bastion-host-user-data.yaml") } ``` -------------------------------- ### Example Usage of VPC Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/vpc/README.md This snippet demonstrates how to include the VPC module in your Terraform configuration. It sets a name prefix for the VPC resources and specifies the desired number of availability zones. ```terraform module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-vpc" availability_zones_count = 3 } ``` -------------------------------- ### HTPasswd Identity Provider Setup Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-unmanaged-oidc/README.md Sets up an HTPasswd Identity Provider for the ROSA cluster, associating it with the cluster ID and defining users with their credentials. ```terraform ############################ # HTPASSWD IDP ############################ module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" cluster_id = module.hcp.cluster_id name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = [{ username = "test-user", password = random_password.password.result }] } ``` -------------------------------- ### Commit Message Format Example: Chore Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Example of a commit subject line for routine maintenance or build tasks, using the 'chore' type and a JIRA ticket ID. ```git commit [OCM-00000] | chore: adjust CI workflow ``` -------------------------------- ### Example Usage of Operator Roles Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/operator-roles/README.md Demonstrates how to include the operator-roles sub-module in your Terraform configuration. Specify the source, version, operator role prefix, and OIDC endpoint URL. ```terraform module "operator_roles" { source = "terraform-redhat/rosa-hcp/rhcs//modules/operator-roles" version = "1.6.2" operator_role_prefix = "role-prefix" oidc_endpoint_url = "my-url" } ``` -------------------------------- ### Example ROSA HCP Cluster Deployment Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/README.md This snippet demonstrates a basic configuration for deploying a ROSA HCP cluster using the terraform-redhat/rosa-hcp module. It includes essential parameters like cluster name, OpenShift version, networking, and role creation. ```terraform module "hcp" { source = "terraform-redhat/rosa-hcp/rhcs" version = "1.6.2" cluster_name = "my-cluster" openshift_version = "4.14.24" machine_cidr = "10.0.0.0/16" aws_subnet_ids = ["subnet-1", "subnet-2"] aws_availability_zones = ["us-west-2a"] replicas = 2 // STS configuration create_account_roles = true account_role_prefix = "my-cluster-account" create_oidc = true create_operator_roles = true operator_role_prefix = "my-cluster-operator" } ``` -------------------------------- ### Commit Message Format Example: Fix Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Example of a commit subject line for a bug fix, including a JIRA ticket ID, the 'fix' type, and a scope for the change. ```git commit [OCM-12345] | fix(cluster): validate machine pool defaults ``` -------------------------------- ### Example Usage of ROSA HCP Cluster Module Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/rosa-cluster-hcp/README.md This snippet demonstrates how to use the rosa-cluster-hcp Terraform sub-module to provision a ROSA HCP cluster. Ensure all required AWS IAM roles, OIDC configuration, and network CIDRs are correctly defined. ```terraform module "rosa_cluster_hcp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/rosa-cluster-hcp" version = "1.6.2" cluster_name = "my-cluster" operator_role_prefix = "my-operators" openshift_version = "4.14.24" installer_role_arn = "arn:aws:iam::012345678912:role/ManagedOpenShift-HCP-ROSA-Installer-Role" support_role_arn = "arn:aws:iam::012345678912:role/ManagedOpenShift-HCP-ROSA-Support-Role" worker_role_arn = "arn:aws:iam::012345678912:role/ManagedOpenShift-HCP-ROSA-Worker-Role" oidc_config_id = "oidc-config-123" aws_subnet_ids = ["subnet-1","subnet-2"] machine_cidr = "10.0.0.0/16" service_cidr = "172.30.0.0/16" pod_cidr = "10.128.0.0/14" host_prefix = "23" replicas = 2 compute_machine_type = "m5.xlarge" aws_availability_zones = ["us-west-2a"] } ``` -------------------------------- ### Configure HTPasswd Identity Provider Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/idp/README.md Example of configuring an HTPasswd identity provider for a ROSA HCP cluster. Requires a cluster ID, a name for the IDP, and the IDP type. It also uses a random_password resource for user password generation. ```terraform module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" version = "1.6.2" cluster_id = "cluster-id-123" name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = [{ username = "test-user", password = random_password.password.result }] } resource "random_password" "password" { length = 14 special = true min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### Commit Message Format Example: Breaking Change Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Example of a commit subject line indicating a breaking change, using 'feat!' to denote a feature that introduces backward incompatibilities. ```git commit [OCM-12345] | feat!: change upgrade behavior ``` -------------------------------- ### Lint Documentation with Vale Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Runs the Vale static analysis tool with Red Hat documentation styles to lint documentation files. Building Vale requires a C compiler toolchain. ```shell make docs-lint ``` -------------------------------- ### Run Full Local Verification Flow Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Executes all standard CI checks locally in sequence: verify, verify-gen, lint, unit-tests, license-check, and docs-lint. This command fails fast if any step encounters an error. ```shell make basic-checks ``` -------------------------------- ### Generate and Verify Documentation Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Generates documentation for variables, outputs, and modules using terraform-docs and verifies that README injection blocks are committed. Run this if you changed module interfaces. ```shell make verify-gen ``` -------------------------------- ### Run Module Unit Tests Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Executes unit tests for Terraform modules that have test files. Alternatively, run `terraform init -backend=false && terraform test` from within a specific module's directory. ```shell make unit-tests ``` -------------------------------- ### Inspect CI Check Sequence Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Allows inspection of the sequence of steps executed by `make run-checks` without actually running them. Use `--list-steps` to see the order or `--dry-run` to simulate execution. ```shell make run-checks -- basic --list-steps ``` -------------------------------- ### Generate Changelog for Release Range Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Manually generate changelog entries for a specific range of Git tags. This command prepends the new entries to the existing CHANGELOG.md file. ```bash git-cliff v1.7.2..v1.7.3 --prepend CHANGELOG.md ``` -------------------------------- ### Configure Image Mirror Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/image-mirrors/README.md Use this snippet to set up a digest image mirror for a ROSA HCP cluster. It requires the cluster ID, source registry, and a list of mirror registries. ```terraform module "imagemirror" { source = "terraform-redhat/rosa-hcp/rhcs//modules/image-mirrors" cluster_id = "cluster-id-123" type = "digest" source_registry = "registry.redhat.io" mirrors = ["mirror.example.com"] } ``` -------------------------------- ### VPC Module Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private/README.md Deploys a Virtual Private Cloud (VPC) with a specified number of availability zones. This module provides networking resources for the ROSA cluster. ```terraform ############################ # VPC ############################ module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-vpc" availability_zones_count = 3 } ``` -------------------------------- ### Deploy VPC Module for ROSA HCP Cluster Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private-with-additional-control-plane-security-groups/README.md Instantiates the VPC module to create the necessary networking infrastructure for the ROSA HCP cluster, including CIDR blocks and availability zones. ```terraform module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-cluster" availability_zones_count = 1 } ``` -------------------------------- ### Format Terraform Code Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md Ensures consistent Terraform code formatting. Run this command recursively or only in directories you have modified. ```shell terraform fmt -recursive ``` -------------------------------- ### Deploy Bastion Host Module for Private Cluster Access Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private-with-additional-control-plane-security-groups/README.md Deploys a bastion host EC2 instance within the VPC's public subnet. This instance serves as a jump point for connecting to the private ROSA HCP cluster. ```terraform module "bastion_host" { source = "terraform-redhat/rosa-hcp/rhcs//modules/bastion-host" prefix = "my-cluster" vpc_id = module.vpc.vpc_id subnet_ids = [module.vpc.public_subnets[0]] } ``` -------------------------------- ### HTPASSWD Identity Provider Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private/README.md Sets up an HTPASSWD identity provider for the ROSA cluster. Requires the cluster ID from the HCP module and a generated random password. ```terraform ############################ # HTPASSWD IDP ############################ module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" cluster_id = module.hcp.cluster_id name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = [{ username = "test-user", password = random_password.password.result }] } resource "random_password" "password" { length = 14 special = true min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### VPC Module Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-unmanaged-oidc/README.md Configures the VPC module for the ROSA cluster, specifying the name prefix and the desired number of availability zones. ```terraform ############################ # VPC ############################ module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-cluster" availability_zones_count = 3 } ``` -------------------------------- ### Configure S3 Log Forwarding Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/modules/log-forwarder/README.md Use this snippet to configure forwarding of cluster logs to an Amazon S3 bucket. Ensure the bucket name and optional prefix are correctly specified. ```terraform module "cluster_logs_s3" { source = "terraform-redhat/rosa-hcp/rhcs//modules/log-forwarder" version = "1.7.2" cluster_id = module.hcp.cluster_id s3 = { bucket_name = "my-cluster-logs" bucket_prefix = "rosa-hcp/" } applications = ["my-app"] } ``` -------------------------------- ### Random Password Resource Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-unmanaged-oidc/README.md Generates a random password for HTPasswd IDP users, ensuring it meets complexity requirements. ```terraform resource "random_password" "password" { length = 14 special = true min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### ROSA HCP Cluster and VPC Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public/README.md This snippet defines the main ROSA HCP cluster module and the VPC module. It configures cluster name, OpenShift version, networking, and IAM roles. Use this for initial cluster deployment. ```terraform module "hcp" { source = "terraform-redhat/rosa-hcp/rhcs" version = "1.6.2" cluster_name = "my-cluster" openshift_version = "4.14.24" machine_cidr = module.vpc.cidr_block aws_subnet_ids = concat(module.vpc.public_subnets, module.vpc.private_subnets) aws_availability_zones = module.vpc.availability_zones replicas = length(module.vpc.availability_zones) // STS configuration create_account_roles = true account_role_prefix = "my-cluster-account" create_oidc = true create_operator_roles = true operator_role_prefix = "my-cluster-operator" } module "vpc" { source = "terraform-redhat/rosa-hcp/rhcs//modules/vpc" name_prefix = "my-cluster" availability_zones_count = 3 } ``` -------------------------------- ### Verify Commit Message Format in CI Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/CONTRIBUTING.md CI workflow and make target used to validate commit message formats on pull requests targeting the 'main' branch. This ensures adherence to the project's commit conventions. ```shell make commits/check ``` -------------------------------- ### Random Password Resource for Client ID Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-with-multiple-machinepools-and-idps/README.md Defines a random password resource to be used for client IDs, ensuring unique and secure credentials. ```terraform resource "random_password" "client_id" { length = 16 numeric = true upper = false lower = false special = false min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### Random Password Resource for Client Secret Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-with-multiple-machinepools-and-idps/README.md Defines a random password resource for client secrets, adhering to specific length and complexity requirements. ```terraform resource "random_password" "client_secret" { length = 39 numeric = true upper = true lower = false special = false min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### Define Additional Security Groups and Ingress Rules Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-private-with-additional-control-plane-security-groups/README.md Creates two additional security groups (sg1, sg2) and configures ingress rules for TCP traffic on port 443 from specified CIDR blocks. These are intended to be attached to the control plane VPC endpoint. ```terraform resource "aws_security_group" "sg1" { name = "my-cluster-sg1" description = "Additional SG 1" vpc_id = module.vpc.vpc_id tags = { Name = "my-cluster-sg1" } } resource "aws_vpc_security_group_ingress_rule" "sg1" { security_group_id = aws_security_group.sg1.id cidr_ipv4 = "172.16.0.0/16" from_port = 443 ip_protocol = "tcp" to_port = 443 } resource "aws_security_group" "sg2" { name = "my-cluster-sg2" description = "Additional SG 2" vpc_id = module.vpc.vpc_id tags = { Name = "my-cluster-sg2" } } resource "aws_vpc_security_group_ingress_rule" "sg2" { security_group_id = aws_security_group.sg2.id cidr_ipv4 = "192.168.0.0/16" from_port = 443 ip_protocol = "tcp" to_port = 443 } ``` -------------------------------- ### Random Password Resource for User Password Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-with-multiple-machinepools-and-idps/README.md Generates a random password for user authentication, with specified length and character type requirements. ```terraform resource "random_password" "password" { length = 14 special = true min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### HTPasswd Identity Provider Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public/README.md This snippet configures an HTPasswd Identity Provider for the ROSA cluster. It requires the cluster ID from the main HCP module and defines user credentials. Use this to set up basic authentication. ```terraform module "htpasswd_idp" { source = "terraform-redhat/rosa-hcp/rhcs//modules/idp" cluster_id = module.hcp.cluster_id name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = [{ username = "test-user", password = random_password.password.result }] } resource "random_password" "password" { length = 14 special = true min_lower = 1 min_numeric = 1 min_special = 1 min_upper = 1 } ``` -------------------------------- ### RHCS ROSA HCP Module Configuration Source: https://github.com/terraform-redhat/terraform-rhcs-rosa-hcp/blob/main/examples/rosa-hcp-public-with-multiple-machinepools-and-idps/README.md This snippet configures the main RHCS ROSA HCP module, specifying cluster details, networking, replicas, STS configuration, kubelet configurations, image mirrors, multiple machine pools, and various identity providers. ```terraform locals { account_role_prefix = "my-cluster-account" operator_role_prefix = "my-cluster-operator" } module "hcp" { source = "../../" cluster_name = "my-cluster" openshift_version = "4.16.13" machine_cidr = module.vpc.cidr_block aws_subnet_ids = concat(module.vpc.public_subnets, module.vpc.private_subnets) aws_availability_zones = module.vpc.availability_zones replicas = length(module.vpc.availability_zones) // STS configuration create_account_roles = true account_role_prefix = local.account_role_prefix create_oidc = true create_operator_roles = true operator_role_prefix = local.operator_role_prefix kubelet_configs = { config1 = { name = "config1" pod_pids_limit = 8192 }, config2 = { name = "config2" pod_pids_limit = 16384 } } image_mirrors = { mirror1 = { type = "digest" source = "registry.redhat.io" mirrors = ["mirror.example.com", "backup-mirror.example.com"] }, mirror2 = { type = "digest" source = "quay.io" mirrors = ["internal-quay.corp.example.com"] } } machine_pools = { pool1 = { name = "pool1" aws_node_pool = { instance_type = "r5.xlarge" tags = {} } auto_repair = true replicas = 3 openshift_version = "4.16.13" subnet_id = module.vpc.private_subnets[0] kubelet_configs = "config1" }, pool2 = { name = "pool2" aws_node_pool = { instance_type = "r5.xlarge" tags = {} } auto_repair = true replicas = 3 openshift_version = "4.16.13" subnet_id = module.vpc.private_subnets[1] kubelet_configs = "config2" }, } identity_providers = { gitlab-idp = { name = "gitlab-idp" idp_type = "gitlab" gitlab_idp_client_id = random_password.client_id.result # replace with valid gitlab_idp_client_secret = random_password.client_secret.result # replace with valid gitlab_idp_url = "https://gitlab.com" }, htpasswd-idp = { name = "htpasswd-idp" idp_type = "htpasswd" htpasswd_idp_users = jsonencode([{ username = "test-user", password = random_password.password.result }]) }, github-idp = { name = "github-idp" idp_type = "github" github_idp_client_id = random_password.client_id.result # replace with valid github_idp_client_secret = random_password.client_secret.result # replace with valid github_idp_organizations = jsonencode(["example"]) }, google-idp = { name = "google-idp" idp_type = "google" google_idp_client_id = random_password.client_id.result # replace with valid google_idp_client_secret = random_password.client_secret.result # replace with valid google_idp_hosted_domain = "example.com" }, ldap-idp = { name = "ldap-idp" idp_type = "ldap" ldap_idp_ca = "" ldap_idp_url = "ldap://ldap.forumsys.com/dc=example,dc=com?uid" ldap_idp_insecure = true }, openid-idp = { name = "openid-idp" idp_type = "openid" openid_idp_client_id = random_password.client_id.result # replace with valid openid_idp_client_secret = random_password.client_secret.result # replace with valid openid_idp_ca = "" openid_idp_issuer = "https://example.com" openid_idp_claims_email = jsonencode(["example@email.com"]) openid_idp_claims_groups = jsonencode(["example"]) openid_idp_claims_name = jsonencode(["example"]) openid_idp_claims_preferred_username = jsonencode(["example"]) }, } } ```