Konsolenseiten mit Schemadokumenten erweitern
Prüfen Sie Anforderungen, unterstützte Typen und Beispiele für Schemadokumente, die mit Terraform-Konfigurationen in Resource Manager verwendet werden.
Schemadokumente werden bei Verwendung von Resource Manager für Terraform-Konfigurationen empfohlen. Durch die Aufnahme eines Schemadokuments können Sie Seiten in der Oracle Cloud Infrastructure-Konsole erweitern. Erleichtern Sie den Variableneintrag auf der Seite Stack erstellen, indem Sie SSH-Schlüsselsteuerelemente anzeigen und Werte benennen, gruppieren, dynamisch vorab auffüllen und vieles mehr. Definieren Sie Text auf der Registerkarte Anwendungsinformationen der Seite Stackdetails, die für einen erstellten Stack geöffnet wird.
Anforderungen für Schemadokumente
Schemadokumente für Resource Manager müssen folgende Anforderungen erfüllen:
-
YAML-Format
-
Datentypen müssen mit der zugehörigen Terraform-Konfiguration konsistent sein.
Beispiel: Sie deklarieren den Typ
number
für die Variableavailability
im Schema. In diesem Fall mussavailability
denselben deklarierten Typ (number
) in der zugehörigen Terraform-Konfiguration aufweisen. (Standardmäßig verwenden Variablen ohne deklarierten Typstring
.) -
Platzierung unter dem Root-Ordner der Resource Manager-Terraform-Konfiguration. (Standardmäßig wird im Schemadokument angenommen, dass der Root-Ordner das Arbeitsverzeichnis ist.)
Unterstützte Typen (Dynamisches Ausfüllen und Steuerelemente)
In diesem Abschnitt werden die von Resource Manager unterstützten Typen für dynamische Vorabauffüllung und Steuerelemente aufgeführt.
Für die meisten Typen ist die Compartment-OCID (dependsOn: required: compartmentId
) erforderlich. Einige Typen verfügen über zusätzliche erforderliche oder optionale Elemente. Informationen zum Bestimmen erforderlicher und optionaler Elemente für einen Typ finden Sie unter Meta-Schema für Validierung.
Filtern Sie optional dynamisch vorab aufgefüllte Listen mit dependsOn
nach anderen Variablen. Beispiel: Subnetze nach VCN filtern. Weitere Informationen finden Sie unter Dynamische Vorabauffüllung.
Beschreibungen in schema.yaml
-Dateien sind HTML-codiert in der Ausgabe.
Wenn sie in der Terraform-Konfiguration definiert sind, werden die folgenden Variablen automatisch mit Werten auf den Konsolenseiten aufgefüllt, mit denen der Stack erstellt und bearbeitet wird. Die Werte des Stacks werden verwendet, wenn Sie die Terraform-Aktionen Planen, Anwenden und Zerstören auswählen.
tenancy_ocid
(Mandanten-OCID)compartment_ocid
(Compartment-OCID)region
(Region)current_user_ocid
(OCID des aktuellen Benutzers)
Typ (wird als Dropdown-Feld Dynamisch vorab aufgefüllt wiedergegeben, sofern nicht anders angegeben) | Ressourcen-ID | Anmerkungen |
---|---|---|
file |
-- | Übersetzt ein Steuerelement zum Hinzufügen einer einzelnen Datei durch Löschen oder Durchsuchen. Wenn dieses Steuerelement angezeigt wird, kann ein Benutzer eine Datei einer beliebigen Erweiterung hochladen, z.B. einen Lizenzschlüssel oder ein Zertifikat. Weitere Informationen finden Sie unter Dateikontrolle. |
oci:apm:domain:id |
OCID der Application Performance Monitoring-(APM-)Domain | |
oci:blockstorage:policies:id |
Volume-Backup-Policy | |
oci:container:cluster:id |
Kubernetes-Cluster-OCID | |
oci:core:image:id |
Image-OCID | |
oci:core:instanceshape:name |
Name der Instanzausprägung | |
oci:core:natgateway:id |
NAT-Gateway-OCID | |
oci:core:nsg:id |
Network Security Group-OCID | |
oci:core:servicegateway:id |
Servicegateway-OCID | |
oci:core:ssh:publickey |
-- | Stellt ein Steuerelement für das Hinzufügen eines oder mehrerer SSH-Public Keys dar, indem Dateien gelöscht oder Schlüsselwerte eingefügt werden. Weitere Informationen finden Sie unter SSH-Schlüsselsteuerung. |
oci:core:subnet:id |
Subnetz-OCID | |
oci:core:vcn:id |
OCID des VCN | |
oci:database:autonomouscontainerdatabase:id |
Autonomous Container Database-OCID | |
oci:database:autonomousdatabase:id |
Autonomous Database-OCID | |
oci:database:autonomousdatabaseversion:id |
Autonomous Database-Version | |
oci:database:database:id |
Datenbank-OCID für eine Base Database-Servicedatenbank oder eine Exadata Database Service on Dedicated Infrastructure-Datenbank. | |
oci:database:dbhome:id |
DB-Home-OCID (gilt für Base Database und Exadata Database Service on Dedicated Infrastructure) | |
oci:database:dbsystem:id |
DB-System-OCID (gilt für Basisdatenbank) | |
oci:identity:availabilitydomain:name |
Availability-Domainname | |
oci:identity:compartment:id |
Compartment-OCID | |
oci:identity:domains:id |
Identitätsdomain-OCID |
Geben Sie die Mandanten-OCID als |
oci:identity:dynamicgroups:id |
OCID der dynamischen Gruppe |
Geben Sie die Mandanten-OCID als |
oci:identity:faultdomain:name |
Name der Faultdomain | |
oci:identity:groups:id |
Gruppen-OCID |
Geben Sie die Mandanten-OCID als |
oci:identity:region:name |
Regionsname | |
oci:identity:tag:value |
Tagschlüsselname aus Tag-Namespace; siehe TagSummary | Stellt ein Steuerelement für das Hinzufügen von definierten Tags und Freiformtags dar. Weitere Informationen finden Sie unter Taggingsteuerelement. |
oci:kms:key:id |
Vault-Schlüssel-OCID; siehe ListKeys | |
oci:kms:secret:id |
Vault Secret-OCID; siehe ListSecrets | |
oci:kms:vault:id |
Vault-OCID | |
oci:kubernetes:versions:id |
Siehe GetClusterOptions | |
oci:loadbalancer:loadbalancer:id |
Load-Balancer-OCID | |
oci:ods:project:id |
OCID des Data Science-Projekts | |
oci:resourcemanager:privateendpoint:id |
OCID des privaten Resource Manager-Endpunkts | Geben Sie ein Compartment (compartmentId ) und ein VCN (vcnId ) an, um private Endpunkte aufzulisten. Ein Beispiel finden Sie unter Beispieldeklaration für private Endpunkte auf dieser Seite. |
Meta-Schema für Validierung
Verwenden Sie die folgende Meta-Schemadatei, um zu bestätigen, dass Ihr Schemadokument unterstützte Variablentypen verwendet.
# 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"
- $ref: "#/definitions/complexVariable"
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/identityDomainVariable"
- $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"
complexVariable:
oneOf:
- $ref: "#/definitions/listVariable"
- $ref: "#/definitions/mapVariable"
- $ref: "#/definitions/objectVariable"
mapVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type, valueType]
properties:
type:
enum: [map]
default:
type: [string]
valueType:
type: [string]
additionalProperties: true
listVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type, valueType]
properties:
type:
enum: [list]
default:
type: [string]
valueType:
type: [string]
additionalProperties: true
objectVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required: [type, attributes]
properties:
type:
enum: [object]
default:
type: string
attributes:
type: [array]
items:
type: string
additionalProperties: true
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
identityDomainVariable:
allOf:
- $ref: "#/definitions/baseVariable"
- required:
- type
- dependsOn
properties:
type:
enum: [oci:identity:domains:id]
pattern:
type: string
dependsOn:
type: object
required:
- compartmentId
properties:
compartmentId:
type: string
format: variablereference
additionalProperties: false
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
Beispielschemadokument
Im Folgenden finden Sie ein Beispielschemadokument.
# 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}
- ${iam_domains}
- title: "Database"
variables:
- ${dbCompartment}
- ${myDbSystem}
- ${myDbHome}
- ${myDb}
- ${myAutonomousDB}
- ${myAutonomousDBVersion}
- title: "Advanced"
variables:
- ${myImageId}
- ${myInstance}
- ${myShape}
- ${myCompatibleShape}
- ${myCompatibleShapeBasedOnAd}
- ${multilineText}
visible: true
- title: "Complex Variables"
variables:
- ${shapesList}
- ${subnet_ocids}
- ${compute_instance_config}
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
iam_domains:
type: oci:identity:domains:id
title: Domain 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}
# ---- Complex Data Type: Map Variable ---- #
# map variable with subnet OCIDs for dev, test, prod
subnet_ocids:
type: map
valueType: subnet_ocid
title: "Subnet OCIDs"
description: "Subnet Map containing dev, test and prod subnet OCIDs"
default: "{\"dev\":\"ocid1.subnet.oc1..aaaaaaaadevsubnet\",\"test\":\"ocid1.subnet.oc1..aaaaaaaatestsubnet\",\"prod\":\"ocid1.subnet.oc1..aaaaaaaaprodsubnet\"}"
subnet_ocid:
type: string
visible: false
# ---- Complex Data Type: List Variable ---- #
# list variable with dynamic valueType variable
shapesList:
type: list
valueType: shape
title: "List of Shapes"
required: true
description: "List of Shapes in the target Compartment"
shape:
type: oci:core:instanceshape:name
visible: false
dependsOn:
compartmentId: ${targetCompartment}
# ---- Complex Data Type: Object Variable ---- #
# an object variable for compute instance configuration
compute_instance_config:
type: object
title: "Compute Instance Configuration"
attributes:
- availabilityDomain
- displayName
- imageID
description: "Configuration for an OCI compute instance"
default: "{\"availability_domain\": \"us-phoenix-1\", \"display_name\":\"Instance1\", \"image_id\":\"ocid1.image.oc1..aaaaaaaadevimage\"}"
availabilityDomain:
type: oci:identity:availabilitydomain:name
actualName: availability_domain
visible: false
dependsOn:
compartmentId: ${targetCompartment}
displayName:
type: string
actualName: display_name
visible: false
imageID:
type: oci:core:image:id
actualName: image_id
visible: false
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}
So steuern Sie Konsolenelemente
Verwenden Sie ein Schemadokument, um die Anzeige von Stackvariablen und anderen Elementen auf Seiten mit Stackdetails in der Konsole zu steuern.
Dieses Anzeigesteuerelement ist für Stacks verfügbar, die aus einer Terraform-Konfigurationsdatei erstellt wurden. Mit einem Schemadokument können Sie definieren, wie Variablen während der Stackerstellung aussehen und sich verhalten und welchen Text in der Registerkarte Anwendungsinformationen für einen erstellten Stack angezeigt wird.
Im Folgenden werden Konsolenanzeigeelemente aufgeführt, die das Schemadokument steuert. Um relevante Anweisungen und Beispiele anzuzeigen, erweitern Sie ein Anzeigeelement, an dem Sie interessiert sind.
So rendern Sie ein Feldlabel und eine Beschreibung für eine Variable:
- Fügen Sie die Zeilen
title: <field_label>
unddescription: <field_description>
hinzu.
Beispielbild für ein Variablenfeldlabel und eine Beschreibung:
Beispieldeklaration für ein Variablenfeldlabel und eine Beschreibung:
advanced_logging_option:
type: enum
description: "Enable or disable advanced logging (VCN flow logs and/or audit logs)."
title: "Advanced logging"
Die folgenden Formate werden in einer Variablenbeschreibung unterstützt:
Format | Kennung |
---|---|
Stark (fett) | <strong>...</strong> |
Schwerpunkt (Kursivschrift) | <em>...</em> |
Link | <a href='...'>...</a> |
- Stark und betont (fett und kursiv):
<strong><em>...</em></strong>
ODER<em><strong>...</strong></em>
- Stark und betont im Linktext (fett und kursiv im Linktext):
<a href='...'><strong>...</strong><em>...</em></a>
Beispiel für eine Beschreibung der formatierten Variablen:
container_cluster_ocid:
type: oci:container:cluster:id
required: true
title: OKE Cluster
description: "<strong>Kubernetes cluster</strong> managed by <a href="https://www.oracle.com/cloud/cloud-native/kubernetes-engine/">OCI Container Engine</a> for Kubernetes"
So rendern Sie eine Variable mit einem Standardwert:
- Fügen Sie die Zeile
default: <default-value>
hinzu.
Beispielbild für eine Variable mit einem Standardwert:
Beispieldeklaration für einen Standardwert:
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"
So rendern Sie eine Variable als mehrzeiliges Textfeld:
- Fügen Sie die Zeile
multiline: true
hinzu.
So deklarieren Sie einen Standardwert mit mehreren Zeilen:
- Trennen Sie jede Zeile durch
\n
.
Beispielbild für eine Variable, die als mehrzeiliges Textfeld gerendert wird, wobei zwei Textzeilen eingegeben werden:
Beispieldeklaration für ein mehrzeiliges Textfeld:
otherNames:
type: text
required: false
multiline: true
title: "Other Names"
description: "Enter one name per line."
default: "Name1\nName2"
So rendern Sie eine Gruppe (Box) von Variablen mit den Variablen in einer vorgeschriebenen Reihenfolge:
- Fügen Sie einen
variableGroups
-Block hinzu. - Fügen Sie diesem Block eine
title
-Zeile hinzu. - Fügen Sie einen
variables
-Block zuvariableGroups
hinzu. - Fügen Sie Variablen in der gewünschten Reihenfolge zum Block
variables
hinzu.
Beispielbild für eine Gruppe von Variablen:
Beispieldeklaration für eine Gruppe von Variablen mit einer vorgegebenen Reihenfolge:
variableGroups:
- title: "WordPress configuration"
variables:
- wp_admin_user
- wp_admin_password
- Fügen Sie die Zeile
type: oci:core:ssh:publickey
hinzu.
Beispielimage für ein SSH-Schlüsselsteuerelement:
Beispieldeklaration für ein SSH-Schlüsselsteuerelement:
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})( [^,]*)?)*$"
So rendern Sie eine Variable als Dateikontrolle:
-
Fügen Sie die Zeile
type: file
hinzu.Hinweis
Die hochgeladene Datei wird im Format Base64 gespeichert. Um die Datei zu verwenden, dekodieren Sie die Ausgabe. Beispiel: Fügen Sie den folgenden Code zu eineroutputs.tf
-Datei in der Terraform-Konfiguration hinzu.output "generic_file_raw" { value = base64decode(var.generic_file) }
Beispielbild für eine Dateikontrolle:
Beispieldeklaration für eine Dateikontrolle:
generic_file:
type: file
title: generic_file
description: Drop any file or browse
required: true
So rendern Sie eine Variable als Tagging-Steuerelement:
-
Fügen Sie die Zeile
type: oci:identity:tag:value
hinzu.Hinweis
Um Tagwerte in der Konsole vorab auszufüllen, greifen Sie über die Terraform-Konfiguration auf die Werte zu. Beispiel: Fügen Sie den folgenden Code zu einermain.tf
-Datei in der Terraform-Konfiguration hinzu.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 }
Beispielimage für ein Taggingsteuerelement:
Beispieldeklaration für eine Tagging-Steuerung:
tag_value:
type: oci:identity:tag:value
title: Tags
required: true
In diesem Abschnitt werden komplexe Datentypen für Listen-, Karten- und Objektvariablen beschrieben. Es wird empfohlen, ein Feld title
für jeden komplexen Datentyp aufzunehmen.
Variablenrichtlinien auflisten und zuordnen:
- Definieren Sie das Feld
valueType
, wenn Sie die Schemavariable angeben. - Setzen Sie für jede
valueType
-Variablevisible
auffalse
.
Richtlinien für Objektvariablen:
- Nehmen Sie ein Feld
attributes
auf, um die Attributvariablen des Objekts zu definieren. - Fügen Sie für jede
attribute
-Variable ein FeldactualName
ein, das dem in der Terraform-Datei für die Objektvariable definierten Attributnamen entspricht. - Setzen Sie für jede
attribute
-Variablevisible
auffalse
.
Beispieldeklarationen aus Beispielschemadokument:
# ---- Complex Data Type: Map Variable ---- #
# map variable with subnet OCIDs for dev, test, prod
subnet_ocids:
type: map
valueType: subnet_ocid
title: "Subnet OCIDs"
description: "Subnet Map containing dev, test and prod subnet OCIDs"
default: "{\"dev\":\"ocid1.subnet.oc1..aaaaaaaadevsubnet\",\"test\":\"ocid1.subnet.oc1..aaaaaaaatestsubnet\",\"prod\":\"ocid1.subnet.oc1..aaaaaaaaprodsubnet\"}"
subnet_ocid:
type: string
visible: false
# ---- Complex Data Type: List Variable ---- #
# list variable with dynamic valueType variable
shapesList:
type: list
valueType: shape
title: "List of Shapes"
required: true
description: "List of Shapes in the target Compartment"
shape:
type: oci:core:instanceshape:name
visible: false
dependsOn:
compartmentId: ${targetCompartment}
# ---- Complex Data Type: Object Variable ---- #
# an object variable for compute instance configuration
compute_instance_config:
type: object
title: "Compute Instance Configuration"
attributes:
- availabilityDomain
- displayName
- imageID
description: "Configuration for an OCI compute instance"
default: "{\"availability_domain\": \"us-phoenix-1\", \"display_name\":\"Instance1\", \"image_id\":\"ocid1.image.oc1..aaaaaaaadevimage\"}"
availabilityDomain:
type: oci:identity:availabilitydomain:name
actualName: availability_domain
visible: false
dependsOn:
compartmentId: ${targetCompartment}
displayName:
type: string
actualName: display_name
visible: false
imageID:
type: oci:core:image:id
actualName: image_id
visible: false
dependsOn:
compartmentId: ${targetCompartment}
So füllen Sie Variablen dynamisch mit Werten basierend auf Abhängigkeiten aus:
- Fügen Sie die Zeilen
type: <supported-type>
unddependsOn: <other_variable>
hinzu.<supported-type> ist ein unter Unterstützte Typen (Dynamische Vorabauffüllung und Kontrollen) aufgeführter Typ.
Beispielbild für eine dynamisch vorab aufgefüllte Variable:
Beispieldeklaration für eine dynamisch vorab aufgefüllte Variable:
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: ""
Beispieldeklaration für private Endpunkte:
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}
Beispieldeklarationen für VCN je nach Compartment, wobei das Subnetz sowohl vom Compartment als auch vom VCN abhängig ist:
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}
Bildbeispieldeklaration 1, wobei das Bild nur vom Compartment abhängt (das eine obligatorische Feld dependsOn
):
instance_image:
title: Image
description: Image
type: oci:core:image:id
required: true
dependsOn:
compartmentId: ${compartment_ocid}
Imagebeispieldeklaration 2, wobei das Image von Compartment, Betriebssystem, Betriebssystemversion und Ausprägung abhängig ist:
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>"
So gerendern Sie Aufzählungswerte für eine Variable (Sie können nur einen Wert auswählen):
- Fügen Sie die Zeilen
type: enum
hinzu, und fügen Sie einenenum
-Block hinzu.
Beispielbild für eine Variable mit aufgezählten Werten, die eine Auswahl eines einzelnen Wertes zulassen:
Beispieldeklaration für eine Variable mit aufgezählten Werten:
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
So geben Sie Aufzählungswerte für eine Variable wieder (Sie können mehrere Werte auswählen):
- Fügen Sie die Zeilen
type: enum
hinzu, und fügen Sie einenenum
-Block hinzu. - Fügen Sie die Zeilen
additionalProps:
hinzu, und fügen Sie einenallowMultiple:true
-Block hinzu.
Beispielbild für eine Variable mit aufgezählten Werten, die eine Auswahl mehrerer Werte zulassen:
Beispieldeklaration für eine Variable mit aufgezählten Werten (Mehrfachwertauswahl):
attachment_type:
type: enum
title: "Attachment type"
additionalProps:
allowMultiple: true
default: "iscsi"
# enumerated values (multiple value selection)
enum:
- "iscsi"
- "paravirtualized"
So rendern Sie eine Variable als Kontrollkästchen:
- Fügen Sie die Zeile
type: boolean
hinzu.
Beispielbild für eine Kontrollkästchenvariable:
Beispieldeklaration für eine Kontrollkästchenvariable:
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
Gruppen haben eine höhere Priorität als die einzelnen Variablen der Gruppen. Beispiel: Wenn eine Variable in einer nicht sichtbaren Gruppe sichtbar ist, ist die gesamte Gruppe nicht sichtbar.
Unterstützte Vorgänge:
and
eq
(gleich)ge
(größer als oder gleich)gt
(größer als)le
(kleiner als oder gleich)lt
(kleiner als)not
or
- Fügen Sie die Zeile
visible: <other_variable>
hinzu.
Beispiel für die Variable Vorhandenen Vault verwenden?, deren Sichtbarkeit von der Benutzerauswahl für die Variable Vault-Unterstützung aktivieren? abhängt:
Beispieldeklarationen, bei denen die Felder "Anwendungsname" und "API-Gateway-Name" (functions_app_name
und apigateway_name
) nur angezeigt werden, wenn das Kontrollkästchen "Provisioning-Funktionen und API-Gateway?" (enable_functions_apigateway
) aktiviert ist:
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
- Fügen Sie die Zeile
type: password
hinzu.
- Fügen Sie die Zeile
confirmation: true
hinzu.
Beispielimage für eine Kennwortvariable, die bestätigt werden muss:
Beispieldeklaration für eine Kennwortvariable, die bestätigt werden muss:
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
So fordern Sie einen Wert für eine Variable an:
- Fügen Sie die Zeile
required: true
hinzu.
Beispielbild für eine erforderliche Variable mit Validierungswarnung:
Beispieldeklaration für eine erforderliche Variable:
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: ""
So markieren Sie eine Variable als optional:
- Fügen Sie die Zeile
required: false
hinzu.
Beispielbild für eine optionale Variable:
Beispieldeklaration für eine optionale Variable:
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: ""
So validieren Sie den für eine Variable eingegebenen Wert anhand eines regulären Ausdrucksmusters:
- Fügen Sie die Zeile
pattern: <regular-expression>
hinzu.<regular-expression> ist das Validierungsmuster, das für den zu validierenden Wert spezifisch ist.
Beispiel für ein Hyperlinkmuster:
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Beispielbild für einen Validierungsfehler für einen eingegebenen Wert:
Beispieldeklaration für eine Variable mit einem Validierungsmuster:
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
Die Ausgabe einer Variable mit sensiblen Markierungen wird als <sensitive> mit Option Entsperren auf der Registerkarte Anwendungsinformationen angezeigt. Diese Registerkarte wird auf den Seiten Jobdetails und Stackdetails angezeigt.
Beispielimage für eine Variable mit sensiblen Markierungen (Generierter SSH-Private Key) auf der Registerkarte Anwendungsinformationen:
Weitere Informationen zum sensiblen Terraform-Argument finden Sie unter sensibel - Werte in der CLI-Ausgabe unterdrücken.
So markieren Sie eine Variable als sensibel:
- Fügen Sie die Zeile
sensitive: true
hinzu.
Beispieldeklaration für eine Variable mit sensibler Markierung:
ssh_private_key:
title: Generated SSH private key
# marks variable as sensitive
sensitive: true
So zeigen Sie die Registerkarte Anwendungsinformationen für einen Stack an, der aus Ihrer Terraform-Konfiguration erstellt wurde:
- Fügen Sie Zeilen für das Schema
title
unddescription
hinzu. - Fügen Sie optional eine Zeile für ein blaues Informationsfeld hinzu:
informationalText
. - Fügen Sie mindestens eine Ausgabe im Abschnitt
outputs
hinzu, die optional mitoutputGroups
gruppiert werden kann.
- Legen Sie den Typ fest: Fügen Sie die Zeile
type: copyableString
hinzu.
Beispielbild für die Registerkarte Anwendungsinformationen:
Beispieldeklaration für einen Schematitel, eine Beschreibung und Ausgaben:
# 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
So interagieren Sie mit Konsolenelementen
In diesem Abschnitt wird beschrieben, wie Sie mit der schemakontrollierten Anzeige von Stackinformationen in der Oracle Cloud Infrastructure-Konsole interagieren.
Stackinformationen sind von dem Schemadokument (sofern vorhanden) betroffen, das Sie in die Terraform-Konfiguration zum Erstellen des Stacks aufnehmen. Das Schemadokument wirkt sich darauf aus, wie Variablen während der Stackerstellung aussehen und sich verhalten und welcher Text in der Registerkarte Anwendungsinformationen für einen erstellten Stack angezeigt wird.
Die Option Entsperren auf der Registerkarte Anwendungsinformationen gibt eine sensible markierte Variable an. Mit dieser Option wechseln Sie zwischen Entsperren und Sperren.
- Um den Wert anzuzeigen, wählen Sie Entsperren.
- Um den Wert auszublenden, wählen Sie Sperren.
Beispielimage für eine Variable mit sensiblen Markierungen (Generierter SSH-Private Key) auf der Registerkarte Anwendungsinformationen: