https://github.com/terraform-ibm-modules/terraform-ibm-certificate-manager
Terraform modules to create and work with Certificate Manager
https://github.com/terraform-ibm-modules/terraform-ibm-certificate-manager
certificate-manager ibm-cloud terraform-module
Last synced: 5 months ago
JSON representation
Terraform modules to create and work with Certificate Manager
- Host: GitHub
- URL: https://github.com/terraform-ibm-modules/terraform-ibm-certificate-manager
- Owner: terraform-ibm-modules
- License: apache-2.0
- Created: 2020-10-20T10:45:25.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-02T07:53:06.000Z (almost 2 years ago)
- Last Synced: 2023-06-02T08:29:53.994Z (almost 2 years ago)
- Topics: certificate-manager, ibm-cloud, terraform-module
- Language: HCL
- Homepage: https://cloud.ibm.com/docs/certificate-manager
- Size: 33.2 KB
- Stars: 0
- Watchers: 2
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# IBM Certificate Manager Terraform Module
🕸️ Archived: This repository has been archivied since support for Certificate Manager ended on 1 December 2022, and all Certificate Manager instances have been deleted on IBM Cloud.
This is a collection of modules that make it easier to provision certificate Manager, Import and Order Certificates on IBM Cloud Platform:
* [instance](./modules/instance)
* [import](./modules/import)
* [order](./modules/order)
## CompatibilityThis module is meant for use with Terraform 0.12.
## Usage
Full examples are in the [examples](./examples/) folder, but basic usage is as follows:
Provisioning instance:
``` hcl
data "ibm_resource_group" "resource_group" {
name = var.resource_group_name
}module "certificate-manager_instance" {
source = "terraform-ibm-modules/certificate-manager/ibm//modules/instance"
resource_group_id = data.ibm_resource_group.resource_group.id
service_name = var.service_name
region = var.region
plan = var.plan
tags = var.tags
service_endpoints = var.service_endpoints
parameters = var.parameters
}```
Importing Certificate from a file:
```hcl
provider "ibm" {
}
data "ibm_resource_group" "resource_group" {
name = var.resource_group_name
}data "ibm_resource_instance" "cms_instance" {
name = var.service_intance_name
location = var.region
service = "cloudcerts"
resource_group_id = data.ibm_resource_group.resource_group.id
}
}module "certificate-manager_import-from-file" {
source = "terraform-ibm-modules/certificate-manager/ibm//modules/import"
region = var.region
certificate_manager_instance_id = data.ibm_resource_instance.cms_instance.id
name = var.name
description = var.description
certificate_file = file(var.certificate_file)
priv_key_file = var.priv_key_file
intermediate_certificate_file = var.intermediate_certificate_file
}
```
Ordering Certificate```hcl
provider "ibm" {
}
data "ibm_resource_group" "resource_group" {
name = var.resource_group_name
}data "ibm_resource_instance" "cms_instance" {
name = var.service_intance_name
location = var.region
service = "cloudcerts"
resource_group_id = data.ibm_resource_group.resource_group.id
}
}
//Getting existing CIS resource
data "ibm_cis" "cis_instance" {
name = var.cis_instance_name
}
module "certificate-manager_order" {
source = "terraform-ibm-modules/certificate-manager/ibm//modules/order"
region = var.region
certificate_manager_instance_id = data.ibm_resource_instance.cms_instance.id
name = var.name
description = var.description
domain_names = var.domain_names
domain_validation_method = var.domain_validation_method
cis_instance_crn = data.ibm_cis.cis_instance.id
key_algorithm = var.key_algorithm
automatic_certificate_renewal = var.automatic_certificate_renewal
renew_certificate = var.renew_certificate
rekey_certificate = var.rekey_certificate
}
```
## NOTE: If we want to make use of a particular version of module, then set the "version" argument to respective module version.
## Certificate Manager Data Sources
`List all certificates:````hcl
data "ibm_certificate_manager_certificates" "certs"{
certificate_manager_instance_id=data.ibm_resource_instance.cms_instance.id
}```
`Get details of certificate:````hcl
data "ibm_certificate_manager_certificate" "certificate"{
certificate_manager_instance_id=data.ibm_resource_instance.cms_instance.id
name = "cert_name"
}```
## Requirements
### Terraform plugins
- [Terraform](https://www.terraform.io/downloads.html) 0.12
- [terraform-provider-ibm](https://github.com/IBM-Cloud/terraform-provider-ibm)## Install
### Terraform
Be sure you have the correct Terraform version (0.12), you can choose the binary here:
- https://releases.hashicorp.com/terraform/### Terraform plugins
Be sure you have the compiled plugins on $HOME/.terraform.d/plugins/
- [terraform-provider-ibm](https://github.com/IBM-Cloud/terraform-provider-ibm)
## How to input varaible values through a file
To review the plan for the configuration defined (no resources actually provisioned)
`terraform plan -var-file=./input.tfvars`
To execute and start building the configuration defined in the plan (provisions resources)
`terraform apply -var-file=./input.tfvars`
To destroy the Database resources
`terraform destroy -var-file=./input.tfvars`
All optional parameters by default will be set to null in respective example's varaible.tf file. If user wants to configure any optional paramter he has overwrite the default value.
## Notes
* All optional fields should be given value `null` in respective resource varaible.tf file. User can configure the same by overwriting with appropriate values.
* Notification Channel is not currently supported by the latest version of provider.
## References
[IBM-Cloud Certificate Manager docs](https://cloud.ibm.com/docs/certificate-manager?topic=certificate-manager-getting-started)