Ampliación de las páginas de la consola mediante documentos de esquema
Revise los requisitos, los tipos soportados y los ejemplos de documentos de esquema utilizados con las configuraciones de Terraform en Resource Manager.
Se recomiendan documentos de esquema para las configuraciones de Terraform al utilizar Resource Manager. La inclusión de un documento de esquema permite ampliar páginas en la consola de Oracle Cloud Infrastructure. Facilite la entrada de variables en la página Crear pila mostrando los controles de claves SSH y nombrando, agrupando, rellenando previamente valores de forma dinámica, entre otros. Defina el texto en el separador Información de la aplicación de la página Detalles de pila que se abre para una pila creada.
Requisitos para documentos de esquema
Los documentos de esquema para Resource Manager tienen los siguientes requisitos:
-
Formato YAML.
-
Los tipos de dato deben ser coherentes con la configuración de Terraform asociada.
Por ejemplo, supongamos que declara el tipo
number
para la variableavailability
en el esquema. En esta situación,availability
debe tener el mismo tipo declarado (number
) en la configuración de Terraform asociada. (Por defecto, las variables sin tipo declarado utilizanstring
.) -
Colocación en la carpeta raíz de la configuración de Terraform del gestor de recursos. Por defecto, el documento de esquema asume que la carpeta raíz es el directorio de trabajo.
Tipos admitidos (controles y relleno previo dinámico)
En esta sección, se muestran los tipos admitidos por Resource Manager para los controles y la población previa dinámica.
La mayoría de los tipos necesitan el OCID del compartimento (dependsOn: required: compartmentId
). Algunos tipos tienen elementos obligatorios u opcionales adicionales. Para determinar los elementos necesarios y opcionales para un tipo, consulte Esquema Meta para Validación.
Opcionalmente, filtre listas rellenadas previamente de forma dinámica por otras variables mediante dependsOn
. Por ejemplo, filtre las subredes por VCN. Para obtener más información, consulte Relleno previo dinámico.
Las descripciones de los archivos schema.yaml
están codificadas en HTML en la salida.
Cuando se definen en la configuración de Terraform, las siguientes variables se rellenan automáticamente con valores en las páginas de la consola que se utilizan para crear y editar la pila. Los valores de la pila se utilizan al seleccionar las acciones de Terraform Plan, Aplicar y Destruir.
tenancy_ocid
(OCID de arrendamiento)compartment_ocid
(OCID de compartimento)region
(región)current_user_ocid
(OCID del usuario actual)
Escriba (se representa como un campo desplegable rellenado dinámicamente a menos que se indique lo contrario) | Identificador de recurso | Comentarios |
---|---|---|
file |
-- | Supera un control para agregar un único archivo soltando o navegando. Cuando se muestra este control, un usuario puede cargar un archivo de cualquier extensión, como una clave de licencia o un certificado. Para obtener más información, consulte Control de archivos. |
oci:apm:domain:id |
OCID de dominio de Application Performance Monitoring (APM) | |
oci:blockstorage:policies:id |
Política de copia de seguridad de volumen | |
oci:container:cluster:id |
OCID de clusters de Kubernetes | |
oci:core:image:id |
OCID de imagen | |
oci:core:instanceshape:name |
Nombre de la unidad de instancia | |
oci:core:natgateway:id |
OCID de gateway de NAT | |
oci:core:nsg:id |
OCID de grupo de seguridad de red | |
oci:core:servicegateway:id |
OCID de gateway de servicio | |
oci:core:ssh:publickey |
-- | Superpone un control para agregar una o más claves SSH públicas borrando archivos o pegando valores de clave. Para obtener más información, consulte SSH key control. |
oci:core:subnet:id |
OCID de subred | |
oci:core:vcn:id |
OCID de VCN | |
oci:database:autonomouscontainerdatabase:id |
OCID de Autonomous Container Database | |
oci:database:autonomousdatabase:id |
OCID de Autonomous Database | |
oci:database:autonomousdatabaseversion:id |
Versión de Autonomous Database | |
oci:database:database:id |
OCID de base de datos para una base de datos del servicio Base de datos base o una base de datos Exadata Database Service on Dedicated Infrastructure. | |
oci:database:dbhome:id |
OCID de directorio raíz de base de datos (se aplica a Base Database y Exadata Database Service on Dedicated Infrastructure) | |
oci:database:dbsystem:id |
OCID del sistema de base de datos (se aplica a la base de datos base) | |
oci:identity:availabilitydomain:name |
Nombre de dominio de disponibilidad | |
oci:identity:compartment:id |
OCID de compartimento | |
oci:identity:dynamicgroups:id |
OCID de grupo dinámico |
Especifique el OCID del arrendamiento como |
oci:identity:faultdomain:name |
Nombre de dominio de errores | |
oci:identity:groups:id |
OCID de grupo |
Especifique el OCID del arrendamiento como |
oci:identity:region:name |
Nombre de la región | |
oci:identity:tag:value |
Nombre de clave de etiqueta del espacio de nombres de etiqueta; consulte TagSummary | Superpone un control para agregar etiquetas definidas y de formato libre. Para obtener más información, consulte Control de Tagging. |
oci:kms:key:id |
OCID de la clave de almacén; consulte ListKeys | |
oci:kms:secret:id |
OCID del secreto de almacén; consulte ListSecrets | |
oci:kms:vault:id |
OCID de almacén | |
oci:kubernetes:versions:id |
Consulte GetClusterOptions | |
oci:loadbalancer:loadbalancer:id |
OCID del equilibrador de carga | |
oci:ods:project:id |
OCID de proyecto de Data Science | |
oci:resourcemanager:privateendpoint:id |
OCID de punto final privado de gestor de recursos | Especifique un compartimento (compartmentId ) y una VCN (vcnId ) para mostrar los puntos finales privados. Para ver un ejemplo, consulte Declaración de ejemplo para puntos finales privados en esta página. |
Meta Esquema para Validación
Utilice el siguiente archivo de esquema de metadatos para confirmar que el documento de esquema está utilizando tipos de variables soportados.
# Meta JSON Schema.
#
# This is used to validate the Schema file when the package is uploaded/loaded into Resource Manager.
# For marketplace, it is also used to validate the package when the package artifact is created in Partner Portal.
#
# NOTE: additionalProperties are set to true explicitly even though this is the default. It must be set to true in
# cases where we use the allOf. This is a quirk of JSON Schema. During validation, allOf means it has to match all of
# the individual definitions separately. It doesn't mean it has to match a Union of the individual definitions. This
# is a known issue with JSON Schema.
title: Schema
type: object
required:
- variables
- schemaVersion
additionalProperties: true
properties:
title:
type: string
description:
type: string
stackDescription:
type: string
packageVersion:
type: string
version:
type: string
schemaVersion:
type: string
enum:
- 1.0.0
- 1.1.0
locale:
$ref: "#/definitions/locale"
logoUrl:
$ref: "#/definitions/url"
source:
$ref: "#/definitions/source"
informationalText:
type: string
instructions:
type: string
troubleshooting:
type: string
allowViewState:
type: boolean
variables:
$ref: "#/definitions/variables"
# Deprecated - use variableGroups instead
groupings:
$ref: "#/definitions/variableGroups"
variableGroups:
$ref: "#/definitions/variableGroups"
outputs:
$ref: "#/definitions/outputs"
outputGroups:
$ref: "#/definitions/outputGroups"
primaryOutputButton:
type: string
format: variablereference
definitions:
source:
type: object
properties:
type:
enum:
- marketplace
- quickstart
- web
reference:
type:
- string
- number
additionalProperties: false
variableGroups:
type: array
items:
$ref: "#/definitions/variableGroup"
variableGroup:
type: object
required:
- title
- variables
properties:
title:
type: string
variables:
type: array
items:
type: string
format: variablereference
visible:
$ref: "#/definitions/booleanStatement"
additionalProperties: true
locale:
enum:
- en
default: en
url:
type: string
pattern: ^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
ocid:
type: string
pattern: ^ocid1\.([a-z0-9_-]{1,32})\.([a-z0-9_-]{1,15})\.([a-z0-9]{0,24})\.([a-z0-9]{60})$
variables:
type: object
additionalProperties:
$ref: "#/definitions/variable"
variable:
oneOf:
- $ref: "#/definitions/staticVariable"
- $ref: "#/definitions/dynamicVariable"
baseVariable:
type: object
properties:
title:
type: string
minLength: 1
description:
type: string
required:
type: boolean
default: false
visible:
$ref: "#/definitions/booleanStatement"
booleanStatement:
oneOf:
- type: boolean
- type: string
- $ref: "#/definitions/equality"
- $ref: "#/definitions/greaterThanOrEqual"
- $ref: "#/definitions/lessThanOrEqual"
- $ref: "#/definitions/greaterThan"
- $ref: "#/definitions/lessThan"
- $ref: "#/definitions/booleanOr"
- $ref: "#/definitions/booleanAnd"
- $ref: "#/definitions/booleanNot"
equality:
type: object
properties:
eq:
type: array
items:
- type: [string, number]
- type: [string, number]
additionalItems: false
additionalProperties: false
greaterThanOrEqual:
type: object
properties:
ge:
type: array
items:
- type: [string, number]
- type: [string, number]
additionalItems: false
additionalProperties: false
lessThanOrEqual:
type: object
properties:
le:
type: array
items:
- type: [string, number]
- type: [string, number]
additionalItems: false
additionalProperties: false
greaterThan:
type: object
properties:
gt:
type: array
items:
- type: [string, number]
- type: [string, number]
additionalItems: false
additionalProperties: false
lessThan:
type: object
properties:
lt:
type: array
items:
- type: [string, number]
- type: [string, number]
additionalItems: false
additionalProperties: false
booleanOr:
type: object
properties:
or:
type: array
items:
- $ref: "#/definitions/booleanStatement"
- $ref: "#/definitions/booleanStatement"
additionalItems: false
additionalProperties: false
booleanAnd:
type: object
properties:
and:
type: array
items:
- $ref: "#/definitions/booleanStatement"
- $ref: "#/definitions/booleanStatement"
additionalItems: false
additionalProperties: false
booleanNot:
type: object
properties:
not:
type: array
items:
- $ref: "#/definitions/booleanStatement"
additionalItems: false
additionalProperties: false
dependsOnCompartment:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- dependsOn
properties:
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
staticVariable:
oneOf:
- $ref: "#/definitions/arrayVariable"
- $ref: "#/definitions/booleanVariable"
- $ref: "#/definitions/enumVariable"
- $ref: "#/definitions/integerVariable"
- $ref: "#/definitions/numberVariable"
- $ref: "#/definitions/stringVariable"
- $ref: "#/definitions/multilineVariable"
- $ref: "#/definitions/fileVariable"
- $ref: "#/definitions/passwordVariable"
- $ref: "#/definitions/datetimeVariable"
dynamicVariable:
oneOf:
- $ref: "#/definitions/imageVariable"
- $ref: "#/definitions/instanceShapeVariable"
- $ref: "#/definitions/subnetVariable"
- $ref: "#/definitions/vcnVariable"
- $ref: "#/definitions/availabilityDomainVariable"
- $ref: "#/definitions/compartmentVariable"
- $ref: "#/definitions/faultDomainVariable"
- $ref: "#/definitions/regionVariable"
- $ref: "#/definitions/dbSystemVariable"
- $ref: "#/definitions/dbHomeVariable"
- $ref: "#/definitions/dbHomeVersionVariable"
- $ref: "#/definitions/databaseVariable"
- $ref: "#/definitions/autonomousDatabaseVariable"
- $ref: "#/definitions/autonomousDatabaseVersionVariable"
- $ref: "#/definitions/autonomousContainerDBVariable"
- $ref: "#/definitions/kmsVaultVariable"
- $ref: "#/definitions/containerClusterVariable"
- $ref: "#/definitions/volumeBackupPoliciesVariable"
- $ref: "#/definitions/loadBalancerVariable"
- $ref: "#/definitions/serviceGatewayVariable"
- $ref: "#/definitions/kubernetesVersionsVariable"
- $ref: "#/definitions/instanceVariable"
- $ref: "#/definitions/natGatewayVariable"
- $ref: "#/definitions/tagVariable"
- $ref: "#/definitions/nsgVariable"
- $ref: "#/definitions/mountTargetsVariable"
- $ref: "#/definitions/kmsKeyVariable"
- $ref: "#/definitions/kmsSecretVariable"
- $ref: "#/definitions/odsProjectVariable"
- $ref: "#/definitions/instanceShapeVariableWithFlex"
- $ref: "#/definitions/groupsVariable"
- $ref: "#/definitions/dynamicGroupsVariable"
- $ref: "#/definitions/logAnalyticsLogGroup"
- $ref: "#/definitions/logAnalyticsLogEntities"
- $ref: "#/definitions/logAnalyticsScheduledTasks"
- $ref: "#/definitions/logAnalyticsEntityTypes"
- $ref: "#/definitions/managementAgents"
- $ref: "#/definitions/logAnalyticsSources"
- $ref: "#/definitions/privateEndpointVariable"
- $ref: "#/definitions/apmDomainVariable"
nonNegativeInteger:
type: integer
minimum: 0
nonNegativeIntegerDefault0:
allOf:
- $ref: "#/definitions/nonNegativeInteger"
- default: 0
arrayVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [array]
items:
$ref: "#/definitions/variable"
maxItems:
$ref: "#/definitions/nonNegativeInteger"
minItems:
$ref: "#/definitions/nonNegativeIntegerDefault0"
uniqueItems:
type: boolean
default: false
contains:
$ref: "#/definitions/variable"
additionalProperties: true
booleanVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [boolean]
default:
$ref: "#/definitions/booleanStatement"
default: false
additionalProperties: true
enumVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [enum]
enum:
type: array
items:
type: string
default:
$ref: "#/definitions/booleanStatement"
allowMultiple:
type: boolean
default: false
additionalProperties: true
integerVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [integer]
default:
type: integer
multipleOf:
type: number
exclusiveMinimum: 0
minimum:
type: number
maximum:
type: number
exclusiveMinimum:
type: number
exclusiveMaximum:
type: number
additionalProperties: true
numberVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [number]
default:
type: number
multipleOf:
type: number
exclusiveMinimum: 0
minimum:
type: number
maximum:
type: number
exclusiveMinimum:
type: number
exclusiveMaximum:
type: number
additionalProperties: true
stringVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [string]
default:
$ref: "#/definitions/booleanStatement"
pattern:
type: string
maxLength:
$ref: "#/definitions/nonNegativeInteger"
minLength:
$ref: "#/definitions/nonNegativeIntegerDefault0"
additionalProperties: true
multilineVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [text]
default:
$ref: "#/definitions/booleanStatement"
pattern:
type: string
multiline:
type: boolean
maxLength:
$ref: "#/definitions/nonNegativeInteger"
minLength:
$ref: "#/definitions/nonNegativeIntegerDefault0"
additionalProperties: true
fileVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [file]
additionalProperties: true
passwordVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [password]
default:
$ref: "#/definitions/booleanStatement"
confirmation:
$ref: "#/definitions/booleanStatement"
additionalProperties: true
datetimeVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [datetime]
default:
$ref: "#/definitions/booleanStatement"
additionalProperties: true
imageVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:image:id]
pattern:
type: string
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
shape:
type: string
format: variablereference
operatingSystem:
type: string
format: variablereference
operatingSystemVersion:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
instanceShapeVariableWithFlex:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:instanceshapewithflex:name]
pattern:
type: string
dependsOn:
type: object
required:
- compartmentId
properties:
imageId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
availabilityDomain:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
instanceShapeVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:instanceshape:name]
pattern:
type: string
dependsOn:
type: object
required:
- compartmentId
properties:
imageId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
availabilityDomain:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
natGatewayVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:natgateway:id]
dependsOn:
type: object
required:
- compartmentId
properties:
vcnId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
instanceVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:instance:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
subnetVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:subnet:id]
dependsOn:
type: object
required:
- vcnId
- compartmentId
properties:
vcnId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
hidePublicSubnet:
$ref: "#/definitions/booleanStatement"
hidePrivateSubnet:
$ref: "#/definitions/booleanStatement"
hideRegionalSubnet:
$ref: "#/definitions/booleanStatement"
hideAdSubnet:
$ref: "#/definitions/booleanStatement"
additionalProperties: false
additionalProperties: true
serviceGatewayVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:servicegateway:id]
dependsOn:
type: object
required:
- compartmentId
properties:
vcnId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
logAnalyticsLogGroup:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:logan:loggroup:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
logAnalyticsScheduledTasks:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:logan:scheduledtask:id]
dependsOn:
type: object
required:
- compartmentId
- taskType
properties:
compartmentId:
type: string
format: variablereference
taskType:
type: string
additionalProperties: false
additionalProperties: true
logAnalyticsLogEntities:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:logan:logentity:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
logAnalyticsEntityTypes:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
properties:
type:
enum: [oci:logan:entitytype:id]
additionalProperties: true
managementAgents:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:mgmt:agent:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
logAnalyticsSources:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:logan:source:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
nsgVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:core:nsg:id]
dependsOn:
type: object
required:
- compartmentId
properties:
vcnId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
vcnVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:core:vcn:id]
additionalProperties: true
availabilityDomainVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:identity:availabilitydomain:name]
additionalProperties: true
compartmentVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [oci:identity:compartment:id]
default:
$ref: "#/definitions/booleanStatement"
additionalProperties: true
faultDomainVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:identity:faultdomain:name]
dependsOn:
type: object
required:
- compartmentId
- availabilityDomainName
properties:
compartmentId:
type: string
format: variablereference
availabilityDomainName:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
regionVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [oci:identity:region:name]
default:
$ref: "#/definitions/booleanStatement"
default: ${session.region}
additionalProperties: true
dbSystemVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:database:dbsystem:id]
additionalProperties: true
dbHomeVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:database:dbhome:id]
dependsOn:
type: object
required:
- dbSystemId
- compartmentId
properties:
dbSystemId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
dbHomeVersionVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:database:dbhome:dbversion]
dependsOn:
type: object
required:
- dbHomeId
properties:
dbHomeId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
databaseVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:database:database:id]
dependsOn:
type: object
required:
- dbHomeId
- compartmentId
properties:
dbHomeId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
autonomousDatabaseVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:database:autonomousdatabase:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
dbWorkload:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
autonomousDatabaseVersionVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:database:autonomousdatabaseversion:id]
dependsOn:
type: object
properties:
compartmentId:
type: string
format: variablereference
dbWorkload:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
autonomousContainerDBVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:database:autonomouscontainerdatabase:id]
additionalProperties: true
kmsVaultVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:kms:vault:id]
additionalProperties: true
kmsKeyVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:kms:key:id]
dependsOn:
type: object
required:
- compartmentId
- vaultId
properties:
compartmentId:
type: string
format: variablereference
vaultId:
type: string
format: variablereference
protectionMode:
type: string
format: variablereference
algorithm:
type: string
format: variablereference
length:
type: number
format: variablereference
curveId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
kmsSecretVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:kms:secret:id]
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
vaultId:
type: string
format: variablereference
name:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
containerClusterVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:container:cluster:id]
additionalProperties: true
sshPublicKeyVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [oci:core:ssh:publickey]
additionalProperties: true
kubernetesVersionsVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:kubernetes:versions:id]
dependsOn:
type: object
required:
- clusterOptionId
- compartmentId
properties:
clusterOptionId:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
volumeBackupPoliciesVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [oci:blockstorage:policies:id]
dependsOn:
type: object
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
groupsVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:identity:groups:id]
additionalProperties: true
dynamicGroupsVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:identity:dynamicgroups:id]
additionalProperties: true
loadBalancerVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:loadbalancer:loadbalancer:id]
pattern:
type: string
additionalProperties: true
mountTargetsVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:mount:target:id]
dependsOn:
type: object
required:
- compartmentId
- availabilityDomain
properties:
availabilityDomain:
type: string
format: variablereference
compartmentId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
tagVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:identity:tag:value]
additionalProperties: true
odsProjectVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:ods:project:id]
additionalProperties: true
privateEndpointVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type]
properties:
type:
enum: [oci:resourcemanager:privateendpoint:id]
dependsOn:
type: object
required:
- compartmentId
- vcnId
properties:
compartmentId:
type: string
format: variablereference
vcnId:
type: string
format: variablereference
additionalProperties: false
additionalProperties: true
apmDomainVariable:
allOf:
- $ref: "#/definitions/dependsOnCompartment"
- required: [type]
properties:
type:
enum: [oci:apm:domain:id]
additionalProperties: true
outputs:
type: object
additionalProperties:
$ref: "#/definitions/output"
output:
oneOf:
- $ref: "#/definitions/booleanOutput"
- $ref: "#/definitions/numberOutput"
- $ref: "#/definitions/stringOutput"
- $ref: "#/definitions/copyableStringOutput"
- $ref: "#/definitions/linkOutput"
- $ref: "#/definitions/ocidOutput"
- $ref: "#/definitions/mapOutput"
- $ref: "#/definitions/jsonOutput"
- $ref: "#/definitions/listOutput"
- $ref: "#/definitions/csvOutput"
outputGroups:
type: array
items:
$ref: "#/definitions/outputGroup"
outputGroup:
type: object
required:
- title
- outputs
properties:
title:
type: string
outputs:
type: array
items:
type: string
additionalProperties: true
baseOutput:
type: object
properties:
title:
type: string
description:
type: string
sensitive:
type: boolean
default: false
format:
type: string
visible:
type: boolean
default: true
additionalProperties: true
booleanOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [boolean]
value:
type: boolean
additionalProperties: true
numberOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [number]
value:
type: number
additionalProperties: true
stringOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [string]
value:
type: string
additionalProperties: true
copyableStringOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [copyableString]
value:
type: string
additionalProperties: true
mapOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [map]
value:
type: object
additionalProperties: true
jsonOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [json]
value:
type: object
additionalProperties: true
listOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [list]
value:
type: array
additionalProperties: true
csvOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [csv]
value:
type: array
additionalProperties: true
linkOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [link]
displayText:
type: string
minLength: 3
maxLength: 45
value:
$ref: "#/definitions/url"
additionalProperties: true
ocidOutput:
allOf:
- $ref: "#/definitions/baseOutput"
- required: [type]
properties:
type:
enum: [ocid]
value:
$ref: "#/definitions/ocid"
additionalProperties: true
Ejemplo de documento de esquema
A continuación se muestra un documento de esquema de ejemplo.
# Title shown in Application Information tab.
title: Sample input variable schema
# Sub Title shown in Application Information tab.
description: Sample description...
informationalText: Sample informational text to display in tab...
schemaVersion: 1.1.0
version: "20190304"
# URL of Logo Icon used on Application Information tab. Logo must be 130x130 pixels.
# (Optional)
logoUrl: https://cloudmarketplace.oracle.com/marketplace/content?contentId=53066708
# Used in Application Information tab to Hyperlink Title and Logo to the Marketplace
# Listing.
# Also used to link to Listing Usage section for "View Instructions".
# (Optional) If it is missing, Application Information uses the
# "marketplace-listing-id" tag for the same purpose.
source:
type: marketplace
reference: 16132843
locale: "en"
variableGroups:
- title: "Node Configuration"
variables:
- targetCompartment
- ${nodeCount}
- ${nodeShapes}
- ${availability}
- title: "Application Details"
variables:
- ${username}
- ${password}
- ${dnsServers}
- title: "Subnet"
variables:
- ${vcnCompartment}
- ${myVcn}
- ${subnetCompartment}
- ${mySubnet}
- ${mySubnetWithFilter}
- ${hide_public_subnet}
- ${hide_private_subnet}
- ${hide_regional_subnet}
- ${hide_ad_subnet}
- title: "Network Configuration"
variables:
- ${service_gateway}
- ${nat_gateway}
- ${load_balancer}
- ${myNsg}
- ${Kubernetes_version}
- ${backup_policies}
- ${mount_target}
- title: "Existing Groups"
variables:
- ${iam_groups_use_existing}
- title: "Identity"
variables:
- ${iam_groups}
- ${iam_dynamic_groups}
- title: "Database"
variables:
- ${dbCompartment}
- ${myDbSystem}
- ${myDbHome}
- ${myDb}
- ${myAutonomousDB}
- ${myAutonomousDBVersion}
- title: "Advanced"
variables:
- ${myImageId}
- ${myInstance}
- ${myShape}
- ${myCompatibleShape}
- ${myCompatibleShapeBasedOnAd}
- ${multilineText}
visible: true
- title: "Hidden"
variables:
- ${myRegion}
visible: false
- title: "Existing Vcn"
variables:
- ${myVcn}
visible:
or:
- ${useExistingVcn}
- and:
- and:
- true
- true
- not:
- false
- title: "Password can't be 'password'!"
variables:
- ${password}
- title: "Complex Conditional Section"
variables:
- ${myVcn}
visible:
or:
- ${useExistingVcn}
- and:
- and:
- true
- true
- not:
- false
- title: "Equality Conditional Section"
variables:
- ${myVcn}
visible:
eq:
- ${objectStorageTier}
- standard
- title: "Less than Conditional Section"
variables:
- ${myVcn}
visible:
lt:
- ${availability}
- 5
- title: "Less than or Equal Conditional Section"
variables:
- ${myVcn}
visible:
le:
- ${availability}
- 4
- title: "Greater than Conditional Section"
variables:
- ${myVcn}
visible:
gt:
- ${availability}
- 5
- title: "Greater than or Equal Conditional Section"
variables:
- ${myVcn}
visible:
ge:
- ${availability}
- 4
- title: "Vault section"
variables:
- ${myVault}
- ${myVaultKey}
- ${mode}
- ${myCompatibleKey}
- ${algo}
- ${myCompatibleKeyBasedOnAlgo}
- ${mySecret}
- ${myVaultSecret}
- title: "DataScience"
variables:
- ${ods_project_ocid}
- title: "Generic File"
variables:
- ${generic_file}
- title: "Resource Tagging"
variables:
- ${tag}
- title: "Resource Manager Section"
variables:
- ${private_endpoint_ocid}
- title: "APM Domain Selection"
variables:
- ${apmDomain}
variables:
# string field
username:
type: string
minLength: 1
maxLength: 255
pattern: "^[a-z][a-zA-Z0-9]+$"
# title is used as the label if present
title: Username
# description used as the tooltip if present
description: Enter your username
default: admin
required: true
# password field
password:
description: Really Bad Password Field
type: password
pattern: "^[a-zA-z]{1,8}$"
required: true
# integer field
nodeCount:
type: integer
description: Number of Nodes
minimum: 3
maximum: 12
multipleOf: 3
# non-integer number field
availability:
type: number
default: 99.7
maximum: 100
minimum: 0
# string enum
objectStorageTier:
type: enum
enum:
- archive
- standard
allowMultiple: false
# input a list, each element must be an ip addresses
dnsServers:
type: array
items:
type: string
pattern: "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
minItems: 1
uniqueItems: true
default: [8.8.8.8, 8.8.4.4]
# datetime picker
expireDate:
type: datetime
# compartmentId dynamic dropdown, targetCompartment present in input variables
targetCompartment:
type: oci:identity:compartment:id
# ---- subnet picker ---- #
useExistingVcn:
type: boolean
vcnCompartment:
type: oci:identity:compartment:id
visible: ${useExistingVcn}
myVcn:
type: oci:core:vcn:id
dependsOn:
compartmentId: ${vcnCompartment}
visible:
or:
- ${useExistingVcn}
- and:
- and:
- true
- true
- not:
- false
subnetCompartment:
type: oci:identity:compartment:id
visible: ${useExistingVcn}
mySubnet:
type: oci:core:subnet:id
dependsOn:
compartmentId: ${subnetCompartment}
vcnId: ${myVcn}
visible: ${useExistingVcn}
mySubnetWithFilter:
type: oci:core:subnet:id
dependsOn:
compartmentId: ${subnetCompartment}
vcnId: ${myVcn}
hidePublicSubnet: ${hide_public_subnet}
hidePrivateSubnet: ${hide_private_subnet}
hideRegionalSubnet: ${hide_regional_subnet}
hideAdSubnet: ${hide_ad_subnet}
visible: ${useExistingVcn}
hide_public_subnet:
type: boolean
default: false
hide_private_subnet:
type: boolean
default: false
hide_regional_subnet:
type: boolean
default: false
hide_ad_subnet:
type: boolean
default: false
load_balancer:
type: oci:loadbalancer:loadbalancer:id
pattern: ^(10)Mbps.*$
title: Existing LBaaS for "Application" Evaluation
required: true
dependsOn:
compartmentId: ${vcnCompartment}
Kubernetes_version:
type: oci:kubernetes:versions:id
title: Kubernetes version
description: The Oracle cloud kubernetes version for tenancy.
required: true
visible: true
dependsOn:
compartmentId: ${vcnCompartment}
clusterOptionId: "all"
backup_policies:
type: oci:blockstorage:policies:id
title: Backup Policy
description: The Oracle Cloud Backup Policy for tenancy.
required: true
mount_target:
type: oci:mount:target:id
title: Mount target
description: The Oracle Cloud mount target
dependsOn:
compartmentId: ${targetCompartment}
availabilityDomain: ${myAvailabilityDomain}
myNsg:
type: oci:core:nsg:id
title: "Network Security Group"
description: "Network Security Group description"
dependsOn:
compartmentId: ${vcnCompartment}
service_gateway:
type: oci:core:servicegateway:id
title: NAT Gateway
dependsOn:
compartmentId: ${vcnCompartment}
vcnId: ${myVcn}
nat_gateway:
type: oci:core:servicegateway:id
title: NAT Gateway
dependsOn:
compartmentId: ${vcnCompartment}
vcnId: ${myVcn}
iam_groups_use_existing:
type: boolean
title: Use existing Groups
required: true
default: false
iam_groups:
type: oci:identity:groups:id
title: Group Name
dependsOn:
compartmentId: ${targetCompartment}
visible:
or:
- ${iam_groups_use_existing}
- and:
- and:
- true
- true
- not:
- false
iam_dynamic_groups:
type: oci:identity:dynamicgroups:id
title: Dynamic Group Name
dependsOn:
compartmentId: ${targetCompartment}
visible:
or:
- ${iam_groups_use_existing}
- and:
- and:
- true
- true
- not:
- false
myRegion:
type: oci:identity:region:name
visible: false
myImageId:
type: oci:core:image:id
dependsOn:
compartmentId: ${targetCompartment}
myShape:
type: oci:core:instanceshape:name
dependsOn:
compartmentId: ${targetCompartment}
myInstance:
type: oci:core:instance:id
dependsOn:
compartmentId: ${targetCompartment}
myCompatibleShape:
type: oci:core:instanceshape:name
dependsOn:
compartmentId: ${targetCompartment}
imageId: ${myImageId}
visible:
or:
- ${useExistingVcn}
- and:
- and:
- true
- true
- not:
- false
myCompatibleShapeBasedOnAd:
type: oci:core:instanceshape:name
dependsOn:
compartmentId: ${targetCompartment}
availabilityDomain: ${myAvailabilityDomain}
visible:
or:
- ${useExistingVcn}
- and:
- and:
- true
- true
- not:
- false
myAvailabilityDomain:
type: oci:identity:availabilitydomain:name
dependsOn:
compartmentId: ${targetCompartment}
visible: complexExpression
myFaultdomain:
type: oci:identity:faultdomain:name
dependsOn:
compartmentId: ${targetCompartment}
availabilityDomainName: ${myAvailabilityDomain}
dbCompartment:
type: oci:identity:compartment:id
myDbSystem:
type: oci:database:dbsystem:id
dependsOn:
compartmentId: ${dbCompartment}
myDbHome:
type: oci:database:dbhome:id
dependsOn:
dbSystemId: ${myDbSystem}
compartmentId: ${dbCompartment}
myDbHomeVersion:
type: oci:database:dbhome:dbversion
dependsOn:
dbHomeId: ${myDbHome}
myDb:
type: oci:database:database:id
dependsOn:
dbHomeId: ${myDbHome}
compartmentId: ${dbCompartment}
myAutonomousDB:
type: oci:database:autonomousdatabase:id
dependsOn:
compartmentId: ${dbCompartment}
dbWorkload: "DW"
myAutonomousDBVersion:
type: oci:database:autonomousdatabaseversion:id
title: AutonomousDatabaseVersionTitle
description: AutonomousDatabaseVersionDescription
required: true
default: "19c"
dependsOn:
compartmentId: ${compartment_ocid}
dbWorkload: "AJD"
container_cluster_ocid:
type: oci:container:cluster:id
required: true
title: OKE Cluster
description: Kubernetes cluster managed by OCI Container Engine for Kubernetes
dependsOn:
compartmentId: ${compartment_ocid}
myVault:
type: oci:kms:vault:id
title: "vault"
description: "vault"
dependsOn:
compartmentId: ${targetCompartment}
myVaultKey:
type: oci:kms:key:id
title: "key"
description: "key"
dependsOn:
compartmentId: ${targetCompartment}
vaultId: ${myVault}
mode:
type: enum
enum:
- Hsm
- Software
allowMultiple: false
myCompatibleKey:
type: oci:kms:key:id
title: "key"
description: "key"
dependsOn:
compartmentId: ${targetCompartment}
vaultId: ${myVault}
protectionMode: ${mode}
algo:
type: enum
enum:
- AES
- RSA
- ECDSA
allowMultiple: true
myCompatibleKeyBasedOnAlgo:
type: oci:kms:key:id
title: "key"
description: "key"
dependsOn:
compartmentId: ${targetCompartment}
vaultId: ${myVault}
protectionMode: ${mode}
algorithm: ${algo}
mySecret:
type: "oci:kms:secret:id"
title: "secret"
description: "secret"
dependsOn:
compartmentId: ${targetCompartment}
myVaultSecret:
type: "oci:kms:secret:id"
title: "secret"
description: "secret"
dependsOn:
compartmentId: ${targetCompartment}
vaultId: ${myVault}
ods_project_ocid:
type: oci:ods:project:id
required: true
title: odsProject
description: "Select ods project from list"
dependsOn:
compartmentId: ${targetCompartment}
generic_file:
type: file
required: true
title: GenericFile
description: "Drop a raw file (stored as base64 string data)"
tag:
type: oci:identity:tag:value
required: true
title: Tagging
description: Tag value for resource created
dependsOn:
compartmentId: ${targetCompartment}
private_endpoint_ocid:
type: oci:resourcemanager:privateendpoint:id
required: true
title: privateEndpoint
description: "Resource Manager Private Endpoint for Private Access"
dependsOn:
compartmentId: ${targetCompartment}
vcnId: ${vcnId}
multilineText:
type: text
required: false
multiline: true
title: Multi-line value
description: Multi-line value
default: "First line\nSecond line\nThird line"
apmDomainVariable:
type: oci:apm:domain:id
title: "APM Domain"
description: "APM Domain"
dependsOn:
compartmentId: ${targetCompartment}
# Used to present outputs with more refinement on the Application Information tab.
# The Application Information tab is only shown if the schema has a "title",
# "description", and at least one output in this "outputs" section.
#
# type:
# - boolean
# - string
# - number
# - link - contains url that can be hyperlinked. If type is not specified and the
# value is a proper url, this type is assumed.
# - ocid - contains an OCID. An attempt is made to hyperlink it to the designated
# resource in the console.
# - csv - synonym for list. Array of values converted to a comma separated list.
# - json - synonym for map. Map of key / values converted to JSON.
# - list - array of values converted to a comma separated list.
# - map - map of key / values converted to JSON.
#
# displayText: used in links to give text displayed instead of value
# title: friendly label
# visible: if false, this ouptut is not shown in the outputs section of Application Information.
# It can still be used as the primaryOutputButton.
outputs:
controlCenterUrl:
type: link
title: Control Center
displayText: Control Center
visible: false
schemaRegistryUrl:
type: link
title: Schema Registry
displayText: Schema Registry
schemaRegistryPublicIps:
type: csv
title: Public IPs
schemaRegistryLoadBalancer:
type: ocid
title: Load Balancer
brokerPublicIps:
type: csv
connectUrl:
type: link
title: Connect
displayText: Connect
connectPublicIps:
type: csv
title: Public IPs
restUrl:
type: link
title: Rest API
# primaryOutputButton is a reference to a link output that creates a primary button
# on the Application Information tab.
# (Optional) if not provided, no primary button is shown. Also if the output
# referenced is not a link output, no button is shown.
primaryOutputButton: ${controlCenterUrl}
# Used to group Outputs. Any outputs not included in these defined groups, are
# included in a default group labelled "Outputs".
# (Optional) if not groups are given, outputs are not grouped at all.
outputGroups:
- title: Schema Registry
outputs:
- ${schemaRegistryUrl}
- ${schemaRegistryPublicIps}
- ${schemaRegistryInstances}
- ${schemaRegistryLoadBalancer}
- title: Broker / Connect
outputs:
- ${brokerPublicIps}
- ${brokerInstances}
- ${connectUrl}
- ${connectPublicIps}
- ${restUrl}
Cómo controlar los elementos de la consola
Utilice un documento de esquema para controlar la visualización de variables de pila y otros elementos en las páginas de detalles de pila de la consola.
Este control de visualización está disponible para pilas creadas a partir de un archivo de configuración de Terraform. Mediante un documento de esquema, puede definir el aspecto y el comportamiento de las variables durante la creación de la pila y el texto que se muestra en el separador Información de la aplicación de una pila creada.
A continuación se muestran los elementos de visualización de la consola que controla el documento de esquema. Para ver instrucciones y ejemplos relevantes, expanda un elemento de visualización en el que esté interesado.
Para representar una etiqueta de campo y una descripción para una variable:
- Agregue las líneas
title: <field_label>
ydescription: <field_description>
.
Imagen de ejemplo para una etiqueta y descripción de campo de variable:
Declaración de ejemplo para una etiqueta y descripción de campo de variable:
advanced_logging_option:
type: enum
description: "Enable or disable advanced logging (VCN flow logs and/or audit logs)."
title: "Advanced logging"
Para representar una variable con un valor por defecto:
- Agregue la línea
default: <default-value>
.
Imagen de ejemplo para una variable con un valor por defecto:
Ejemplo de declaración para un valor por defecto:
ods_group_name:
type: string
title: ${Messages.solutionsHub.solutions.dataScience.variables.ods_group_name.title()}
description: ${Messages.solutionsHub.solutions.dataScience.variables.ods_group_name.description()}
required: true
# provide a default value
default: "DataScienceGroup"
Para representar una variable como un campo de texto de varias líneas:
- Agregue la línea
multiline: true
.
Para declarar un valor por defecto con varias líneas:
- Separe cada línea con
\n
.
Imagen de ejemplo para una variable representada como un campo de texto de varias líneas, con dos líneas de texto introducidas:
Declaración de ejemplo para un campo de texto de varias líneas:
otherNames:
type: text
required: false
multiline: true
title: "Other Names"
description: "Enter one name per line."
default: "Name1\nName2"
Para representar un grupo (cuadro) de variables, con las variables en una secuencia prescrita:
- Agregue un bloque
variableGroups
. - Agregue una línea
title
a este bloque. - Agregue un bloque
variables
avariableGroups
. - Agregue variables al bloque
variables
en el orden que desee.
Imagen de ejemplo para un grupo de variables:
Ejemplo de declaración para un grupo de variables con un orden prescrito:
variableGroups:
- title: "WordPress configuration"
variables:
- wp_admin_user
- wp_admin_password
- Agregue la línea
type: oci:core:ssh:publickey
.
Imagen de ejemplo para un control de clave SSH:
Declaración de ejemplo para un control de clave SSH:
ssh_public_key:
title: SSH public key
description: Public SSH key to be included in the ~/.ssh/authorized_keys file for the default user on the instance
# renders variable as an SSH key control
type: oci:core:ssh:publickey
additionalProps:
allowMultiple: true
required: false
default: [""]
pattern: "((^(ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+\/]+[=]{0,3})( [^,]*)?)(,((ssh-rsa AAAAB3NzaC1yc2|ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNT|ecdsa-sha2-nistp384 AAAAE2VjZHNhLXNoYTItbmlzdHAzODQAAAAIbmlzdHAzOD|ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1Mj|ssh-ed25519 AAAAC3NzaC1lZDI1NTE5|ssh-dss AAAAB3NzaC1kc3)[0-9A-Za-z+\/]+[=]{0,3})( [^,]*)?)*$"
Para representar una variable como un control de archivos:
-
Agregue la línea
type: file
.Nota
El archivo cargado se almacena en formato Base64. Para utilizar el archivo, decodifique la salida. Por ejemplo, agregue el siguiente código a un archivooutputs.tf
en la configuración de Terraform.output "generic_file_raw" { value = base64decode(var.generic_file) }
Imagen de ejemplo para un control de archivos:
Ejemplo de declaración para un control de archivo:
generic_file:
type: file
title: generic_file
description: Drop any file or browse
required: true
Para representar una variable como control de etiquetado:
-
Agregue la línea
type: oci:identity:tag:value
.Nota
Para rellenar previamente los valores de etiqueta en la consola, acceda a los valores desde la configuración de Terraform. Por ejemplo, agregue el siguiente código a un archivomain.tf
en la configuración de Terraform.resource "oci_logging_log_group" "sample_log_group" { compartment_id = var.compartment_ocid display_name = "sample_log_group" description = "Prepopulated tag values" freeform_tags = var.tag_value.freeformTags defined_tags = var.tag_value.definedTags }
Imagen de ejemplo para un control de etiquetado:
Declaración de ejemplo para un control de etiquetado:
tag_value:
type: oci:identity:tag:value
title: Tags
required: true
Para rellenar previamente variables de forma dinámica con valores basados en dependencias:
- Agregue las líneas
type: <supported-type>
ydependsOn: <other_variable>
.<supported-type> es un tipo que se muestra en Supported Types (Dynamic Prepopulation and Controls).
Imagen de ejemplo para una variable rellenada previamente de forma dinámica:
Ejemplo de declaración para una variable rellenada previamente de forma dinámica:
vcn_ocid:
"title": "Virtual cloud network (VCN)",
"description": "The virtual cloud network to use with the compute instance. You can use the subnets template to create a VCN."
# prepopulates available values for VCN
type: oci:core:vcn:id
# determines values for prepopulation from selected compartment
dependsOn:
compartmentId: compartment_ocid
required: true
default: ""
Ejemplo de declaración para puntos finales privados:
private_endpoint_ocid:
type: oci:resourcemanager:privateendpoint:id
required: true
title: "Resource Manager Private Endpoint"
description: "Resource Manager Private Endpoint for Private Access"
dependsOn:
compartmentId: ${privateEndpointCompartmentOCID}
vcnId: ${privateEndpointVCNOCID}
Declaraciones de ejemplo para la VCN según el compartimento, con subred según el compartimento y la VCN:
vcnCompartment:
# prepopulates available values for compartment
type: oci:identity:compartment:id
myVcn:
# prepopulates available values for VCN
type: oci:core:vcn:id
# determines values for VCN prepopulation from selected compartment
dependsOn:
compartmentId: ${vcnCompartment}
subnetCompartment:
# prepopulates available values for compartment
type: oci:identity:compartment:id
mySubnet:
# prepopulates available values for subnet
type: oci:core:subnet:id
# determines values for subnet prepopulation from selected compartment and VCN
dependsOn:
compartmentId: ${subnetCompartment}
vcnId: ${myVcn}
Declaración de ejemplo de imagen 1, donde la imagen depende solo del compartimento (el campo dependsOn
obligatorio):
instance_image:
title: Image
description: Image
type: oci:core:image:id
required: true
dependsOn:
compartmentId: ${compartment_ocid}
Declaración de ejemplo de imagen 2, donde la imagen depende del compartimento, el sistema operativo, la versión del sistema operativo y la unidad:
instance_image:
title: Image
description: Image
type: oci:core:image:id
required: true
dependsOn:
compartmentId: ${compartment_ocid}
operatingSystem: "Oracle Linux"
operatingSystemVersion: "7.8"
shape: "<shape name>"
Representar valores enumerados para una variable (permitiendo la selección de un valor):
- Agregue las líneas
type: enum
y agregue un bloqueenum
.
Imagen de ejemplo para una variable con valores enumerados que permiten seleccionar un único valor:
Declaración de ejemplo para una variable con valores enumerados:
advanced_logging_option:
title: "Advanced logging"
description: "Enable or disable advanced logging (VCN flow logs and/or audit logs)."
type: enum
# enumerated values
enum:
- AUDIT_LOGS
- FLOW_LOGS
- BOTH
- NONE
default: NONE
required: true
Representar valores enumerados para una variable (permitiendo la selección de varios valores):
- Agregue las líneas
type: enum
y agregue un bloqueenum
. - Agregue las líneas
additionalProps:
y agregue un bloqueallowMultiple:true
.
Imagen de ejemplo para una variable con valores enumerados que permiten la selección de varios valores:
Declaración de ejemplo para una variable con valores enumerados (selección de varios valores):
attachment_type:
type: enum
title: "Attachment type"
additionalProps:
allowMultiple: true
default: "iscsi"
# enumerated values (multiple value selection)
enum:
- "iscsi"
- "paravirtualized"
Para representar una variable como casilla de control:
- Agregue la línea
type: boolean
.
Imagen de ejemplo para una variable de casilla de control:
Ejemplo de declaración para una variable de casilla de control:
ods_vcn_use_existing:
# renders variable as a check box
type: boolean
title: "Enable vault support?"
description: "Use a vault to store secrets and manage encrypted resources."
required: true
default: false
Los grupos tienen mayor prioridad que las variables constituyentes de los grupos. Por ejemplo, si una variable es visible dentro de un grupo que no lo es, el grupo completo no será visible.
Operaciones soportadas:
and
eq
(igual que)ge
(mayor o igual que)gt
(mayor que)le
(menor o igual que)lt
(menor que)not
or
- Agregue la línea
visible: <other_variable>
.
Ejemplo de la variable ¿Usar almacén existente?, cuya visibilidad depende de la selección del usuario para la variable ¿Activar soporte de almacén?:
Declaraciones de ejemplo que muestran los campos "Nombre de aplicación" y "Nombre de gateway de API" (functions_app_name
y apigateway_name
) solo cuando se selecciona la casilla de control "Aprovisionar funciones y gateway de API" (enable_functions_apigateway
):
enable_vault:
type: boolean
title: "Enable vault support?"
description: "Use a vault to store secrets and manage encrypted resources."
required: true
default: false
ods_use_existing_vault:
type: boolean
title: "Use existing vault?"
description: "Use a pre-existing vault in the current compartment."
required: true
default: false
# show only when enable_vault variable is selected
visible: enable_vault
- Agregue la línea
type: password
.
- Agregue la línea
confirmation: true
.
Imagen de ejemplo para una variable de contraseña que requiere confirmación:
Declaración de ejemplo para una variable de contraseña que requiere confirmación:
wp_admin_password:
title: "WordPress administrator password"
description: "The password must be more than 8 characters and include at least one uppercase letter, one lowercase letter, one number, and one of the following special characters: !@#%^*_+-:?.,[]{}"
# renders variable as a password field
type: password
# renders a second field to re-enter the password for confirmation
confirmation: true
pattern: "^(?=.*[!@#%^*_+\\-:?.,\\[\\]\\{\\}])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[$\\(\\)]).{8,32}$"
required: true
Para requerir un valor para una variable:
- Agregue la línea
required: true
.
Imagen de ejemplo para una variable necesaria, con advertencia de validación:
Ejemplo de declaración para una variable necesaria:
vcn_ocid:
"title": "Virtual cloud network (VCN)",
"description": "The virtual cloud network to use with the compute instance. You can use the subnets template to create a VCN."
type: oci:core:vcn:id
dependsOn:
compartmentId: compartment_ocid
# displays validation warning if no value is selected or entered
required: true
default: ""
Para marcar una variable como opcional:
- Agregue la línea
required: false
.
Imagen de ejemplo para una variable opcional:
Declaración de ejemplo para una variable opcional:
private_ip:
title: "Private IP"
description: "Private IP address of your choice to assign to the VNICs."
type: string
# displays "Optional" marking to right of field label
required: false
default: ""
Para validar el valor introducido para una variable con un patrón de expresión regular:
- Agregue la línea
pattern: <regular-expression>
.<regular-expression> es el patrón de validación específico del valor que desea validar.
Ejemplo de patrón de hiperenlace:
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Imagen de ejemplo para un error de validación de un valor introducido:
Ejemplo de declaración para una variable con un patrón de validación:
wp_admin_password:
title: "WordPress administrator password"
description: "The password must be more than 8 characters and include at least one uppercase letter, one lowercase letter, one number, and one of the following special characters: !@#%^*_+-:?.,[]{}"
type: password
confirmation: true
# validate entered value against alphanumeric regular expression
pattern: "^(?=.*[!@#%^*_+\\-:?.,\\[\\]\\{\\}])(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?!.*[$\\(\\)]).{8,32}$"
required: true
La salida de una variable con marcas confidenciales se muestra como <sensible> con una opción Desbloquear en el separador Información de la aplicación. Este separador está visible en las páginas Detalles del trabajo y Detalles de pila.
Imagen de ejemplo para una variable con marca confidencial (Clave privada SSH generada) en el separador Información de la aplicación:
Para obtener más información sobre el argumento confidencial de Terraform, consulte sensitive - Suppressing Values in CLI Output.
Para marcar una variable como confidencial:
- Agregue la línea
sensitive: true
.
Declaración de ejemplo para una variable con marca confidencial:
ssh_private_key:
title: Generated SSH private key
# marks variable as sensitive
sensitive: true
Para mostrar el separador Información de aplicación de una pila creada a partir de la configuración de Terraform:
- Agregue líneas para el esquema
title
ydescription
. - También puede agregar una línea para un cuadro de texto informativo azul:
informationalText
. - Agregue al menos una salida en la sección
outputs
, agrupada opcionalmente medianteoutputGroups
.
- Defina el tipo: agregue la línea
type: copyableString
.
Imagen de ejemplo para el separador Información de aplicación:
Declaración de ejemplo para el título, la descripción y las salidas de un esquema:
# heading under Application Information tab
title: "Deploy a WordPress instance"
# text under heading
description: "Create your own website or blog using WordPress."
...
# output variable groups
outputGroups:
- title: "Service endpoints"
outputs:
- wordpress_public_ip
- title: "Generated passwords"
outputs:
- generated_ssh_private_key
...
# output variable field names and values
outputs:
wordpress_public_ip:
type: link
title: "Your WordPress website"
generated_ssh_private_key:
title: "Generated SSH private key"
sensitive: true
Cómo interactuar con elementos de la consola
En esta sección se describe cómo interactuar con la visualización de información de pila controlada por esquema en la consola de Oracle Cloud Infrastructure.
La información de pila se ve afectada por el documento de esquema (si lo hay) que incluya en la configuración de Terraform para crear la pila. El documento de esquema afecta al aspecto y comportamiento de las variables durante la creación de la pila y al texto que se muestra en el separador Información de Aplicación de una pila creada.
Una opción Unlock (Desbloquear) en el separador Application information (Información de aplicación) indica una sensitive-marked variable (variable marcada como confidencial). Esta opción cambia entre Desbloquear y Bloquear.
- Para ver el valor, seleccione Desbloquear.
- Para ocultar el valor, seleccione Bloquear.
Imagen de ejemplo para una variable con marca confidencial (Clave privada SSH generada) en el separador Información de la aplicación: