Especificación de restricciones de versión
Utiliza restricciones de versión para indicar la versión de Terraform, del proveedor de Terraform o de Ansible que deseas utilizar para tu plantilla de Terraform o tu playbook de Ansible.
Schematics da soporte simultáneamente a varias imágenes en las que cada paquete es una versión específica del plugin de proveedor de IBM Cloud, de otros proveedores de Terraform, como el proveedor de la API REST, y del ejecutable de Ansible. Cada imagen se crea, se prueba y se verifica mediante IBM Cloud. Las versiones del proveedor de Terraform incluidas se prueban y se empaquetan para una versión específica de la CLI de Terraform.
Es recomendable indicar la versión que requiere tu plantilla de Terraform o tu playbook de Ansible mediante restricciones de versión. De esta forma, puede asegurarse de que sus plantillas y playbooks sigan funcionando, incluso si Terraform, los proveedores de Terraform o Ansible publican nuevas versiones que puedan incorporar cambios.
Visión general de las imágenes de Schematics y los proveedores de Terraform empaquetados
Utilice el mandato ibmcloud schematics version para recuperar una lista de imágenes de Schematics y versiones de proveedor de Terraform y de ejecutables Ansible que se empaquetan en cada imagen. Por ejemplo, en la siguiente salida
de CLI, la versión más reciente del plug-in del proveedor de IBM Cloud se prueba en Terraform v1.1.
Schematics da soporte a las 5 versiones más recientes de binarios de IBM Cloud Provider Plug-in for Terraform en su imagen. Para obtener más información, consulte releases más recientes. A continuación se muestran algunas restricciones que debe seguir cuando utilice el proveedor de IBM Cloud en la plantilla de Terraform.
Se recomienda utilizar Terraform v1.0 o una versión superior.
- Si utiliza Terraform v0.13 o superior, puede elegir arbitrariamente cualquier versión del proveedor de IBM Cloud su plantilla. A continuación, Schematics descarga automáticamente el proveedor de IBM Cloud localmente desde la memoria caché ,o bien de forma remota desde el Registro de Terraform de HCL (Lenguaje de configuración de HashiCorp).
Para utilizar cualquiera de las imágenes de Schematics predefinidas, debe declarar explícitamente la versión del plug-in de proveedor de IBM Cloud en la plantilla de Terraform que incluye las versiones de proveedor que desea. Para obtener más información, consulte Especificación de restricciones de versión para la CLI de Terraform y los proveedores de Terraform.
No puede cambiar la versión predeterminada para el ejecutable de Ansible. Solo puede especificar la versión de los roles y las colecciones de Ansible a los que se hace referencia.
ibmcloud schematics version
Template Type Version
terraform terraform_v1.4
Additional terraform Providers Version
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Template Type Version
terraform terraform_v1.5
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Template Type Version
terraform terraform_v1.6
Additional terraform Providers Version
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Template Type Version
terraform terraform_v1.7
Additional terraform Providers Version
Provider for REST API v1.10.0
ansible v2.9.27
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Ansible Provisioner v2.3.3
Template Type Version
terraform terraform_v1.8
Additional terraform Providers Version
ansible v2.9.27
IBM Cloud Provider v1.38.2
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.9
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.10
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
Ansible Provisioner v2.3.3
ansible v2.9.27
Template Type Version
terraform terraform_v1.11
Additional terraform Providers Version
IBM Cloud Provider v1.38.2
Red Hat OpenShift client v3.11.0
Provider for REST API v1.10.0
ansible v2.9.27
Ansible Provisioner v2.3.3
Template Type Version
terraform terraform_v1.12
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.13
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
Template Type Version
terraform terraform_v1.14
Additional terraform Providers Version
ansible v2.9.27
Ansible Provisioner v2.3.3
Red Hat OpenShift client v3.11.0
IBM Cloud Provider v1.38.2
Provider for REST API v1.10.0
OK
Especificación de restricciones de versión para la CLI de Terraform y los proveedores de Terraform
Puede especificar si lo desea la versión de la CLI de Terraform y la versión de cualquiera de los proveedores que desea utilizar mediante restricciones de versión de Terraform. Para obtener más información sobre cómo especificar restricciones de versión, consulta la documentación de Terraform.
Restricciones de versión para la CLI de Terraform
Cuando creas un espacio de trabajo de Schematics y eliges una versión de Terraform, como v1.4, tus plantillas de Terraform se ejecutan utilizando la versión de parche predeterminada que se ha configurado en Schematics. Por ejemplo,
si elige terraform_v1.4, las plantillas se aplican utilizando Terraform v0.13.4. Puede utilizar el bloque required_providers en la definición provider para forzar que el motor de Terraform en Schematics
extraiga una versión posterior.
Solo puede especificar versiones posteriores a la versión MAJOR.MINOR.PATH predeterminada que se establece en Schematics. En el bloque de código version = "x.x.x" significa la versión del proveedor IBM Cloud.
terraform {
required_providers {
version = "1.39.1"
}
}
Puede especificar Terraform required_versions que sea superior al valor predeterminado MAJOR.MINOR.PATH en el archivo de configuración de Terraform. En el bloque de código, required_version = ">=1.0.0, <2.0" significa la versión de Terraform.
terraform {
required_version = ">=1.0.0, <2.0"
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
}
}
}
Restricciones de versión para los proveedores de Terraform
Para utilizar cualquiera de las Imágenes de Schematics predefinidas, debe declarar explícitamente la versión del plug-in de proveedor de IBM Cloud en la plantilla de Terraform que incluye las versiones de proveedor que desea.
Si la versión del plugin del proveedor de IBM Cloud no se declara en la plantilla de Terraform, se utiliza automáticamente la versión más reciente del plugin del proveedor en Schematics.
Ejemplo para especificar una imagen de Schematics predefinida:
El ejemplo siguiente muestra cómo utilizar la imagen de Schematics que se ha creado para el plug-in de proveedor de IBM Cloud v1.39.1. Esta imagen incluye versiones específicas para otros proveedores, como el proveedor de API REST.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "v1.39.1"
}
}
Ejemplo para utilizar versiones de proveedor de Terraform específicas:
Para utilizar otra versión del plugin del proveedor de IBM Cloud, o para marcar el archivo de configuración de Terraform en una versión específica de otro proveedor externo, como AWS, Helm o Kubernetes, utilice la siguiente sintaxis.
terraform {
required_providers {
ibm = {
source = "IBM-Cloud/ibm"
version = "~> 1.38.1"
}
aws = {
version = ">= 2.7.0"
source = "hashicorp/aws"
}
}
Especificación de restricciones de versión en Ansible
Schematics Actualmente solo es compatible con la última versión de Ansible ( v2.9.27 ). Cuando cree una acción de Schematics, debe asegurarse de que los playbooks de Ansible se puedan ejecutar con esta versión. No puede especificar una versión de Ansible específica para el playbook.
Sin embargo, si utiliza roles o colecciones de Ansible existentes en el playbook, puede especificar la versión del rol o de la colección que desea ejecutar mediante un archivo requirements.yml. Para obtener más información sobre
cómo hacer referencia a roles y colecciones en el playbook, consulte Cómo hacer referencia a roles de Ansible en el playbook y Cómo hacer referencia a colecciones de Ansible en el playbook.
Para obtener más información sobre cómo especificar versiones para roles y colecciones, consulta la documentación de Ansible.
roles:
- name: andrewrothstein.kubectl
version: 1.1.50