diff --git a/docs/docs/assets/documents/dependencies.csv b/docs/docs/assets/documents/dependencies.csv
index 191cd6babc..b24da9176e 100644
--- a/docs/docs/assets/documents/dependencies.csv
+++ b/docs/docs/assets/documents/dependencies.csv
@@ -174,7 +174,7 @@
"on-finished@2.4.1","MIT","https://github.com/jshttp/on-finished"
"once@1.4.0","ISC","https://github.com/isaacs/once"
"open@7.4.2","MIT","https://github.com/sindresorhus/open"
-"opentosca-vintner@0.1.4","Apache-2.0","https://github.com/OpenTOSCA/opentosca-vintner"
+"opentosca-vintner@0.1.5","Apache-2.0","https://github.com/OpenTOSCA/opentosca-vintner"
"os-tmpdir@1.0.2","MIT","https://github.com/sindresorhus/os-tmpdir"
"papaparse@5.4.1","MIT","https://github.com/mholt/PapaParse"
"parseurl@1.3.3","MIT","https://github.com/pillarjs/parseurl"
diff --git a/docs/docs/dependencies.md b/docs/docs/dependencies.md
index c0c469f35e..cd3e56f1b9 100644
--- a/docs/docs/dependencies.md
+++ b/docs/docs/dependencies.md
@@ -188,7 +188,7 @@ We ensure, that only the licenses 0BSD, Apache-2.0, BSD-2-Clause, BSD-3-Clause,
| 173 | on-finished@2.4.1 | MIT | [https://github.com/jshttp/on-finished](https://github.com/jshttp/on-finished){target=_blank} |
| 174 | once@1.4.0 | ISC | [https://github.com/isaacs/once](https://github.com/isaacs/once){target=_blank} |
| 175 | open@7.4.2 | MIT | [https://github.com/sindresorhus/open](https://github.com/sindresorhus/open){target=_blank} |
-| 176 | opentosca-vintner@0.1.4 | Apache-2.0 | [https://github.com/OpenTOSCA/opentosca-vintner](https://github.com/OpenTOSCA/opentosca-vintner){target=_blank} |
+| 176 | opentosca-vintner@0.1.5 | Apache-2.0 | [https://github.com/OpenTOSCA/opentosca-vintner](https://github.com/OpenTOSCA/opentosca-vintner){target=_blank} |
| 177 | os-tmpdir@1.0.2 | MIT | [https://github.com/sindresorhus/os-tmpdir](https://github.com/sindresorhus/os-tmpdir){target=_blank} |
| 178 | papaparse@5.4.1 | MIT | [https://github.com/mholt/PapaParse](https://github.com/mholt/PapaParse){target=_blank} |
| 179 | parseurl@1.3.3 | MIT | [https://github.com/pillarjs/parseurl](https://github.com/pillarjs/parseurl){target=_blank} |
diff --git a/docs/docs/edmm/index.md b/docs/docs/edmm/index.md
index 9d4694a631..48c3a70de9 100644
--- a/docs/docs/edmm/index.md
+++ b/docs/docs/edmm/index.md
@@ -32,20 +32,20 @@ The specification is under active development and is not backwards compatible wi
1. A `software.application` node template always requires a `source.archive` or `system.package` deployment artifact.
1. A `software.application` node template with an `source.archive` deployment artifact always requires the `start` operation and the `stop` operation.
-1. A `software.application` node template with a `source.archive` deployment artifact implicitly requires an `virtual.machine` or `gcp.appengine` node template as host.
-1. A `software.application` node template with a `system.package` deployment artifact implicitly requires an `virtual.machine` node template as host.
+1. A `software.application` node template with a `source.archive` deployment artifact implicitly requires an `remote.machine` or `gcp.appengine` node template as host.
+1. A `software.application` node template with a `system.package` deployment artifact implicitly requires an `remote.machine` node template as host.
## Service Applications
-1. A `service.application` node template on a `virtual.machine` host is started as `systemd` service.
+1. A `service.application` node template on a `remote.machine` host is started as `systemd` service.
1. A `service.appcliation` always requires a `source.archive` or `container.image` deployment artifact.
1. A `service.application` does not require a `stop` operation.
1. A `service.application` node template with a `container.image` deployment artifact implicitly requires a `docker.engine`, `gcp.cloudrun`, or `kubernetes` node template as host.
## Virtual Machine
-1. A `virtual.machine` node template always requires a `machine.image` deployment artifact.
+1. A `remote.machine` node template always requires a `machine.image` deployment artifact.
## Management Operations
@@ -73,7 +73,7 @@ The specification is under active development and is not backwards compatible wi
## Application Directory
-1. A `software.application` node template hosted on a `virtual.machine` node template has its own dedicated application directory.
+1. A `software.application` node template hosted on a `remote.machine` node template has its own dedicated application directory.
1. The `.vintner` directory is a reserved directory in the application directory.
diff --git a/docs/docs/normative/index.md b/docs/docs/normative/index.md
index 04bed6d0ed..dbc61cad83 100644
--- a/docs/docs/normative/index.md
+++ b/docs/docs/normative/index.md
@@ -135,6 +135,17 @@ machine.image:
vintner_normative: 'true'
```
+#### dbms.image
+
+expects image reference in "file"
+
+```yaml linenums="1"
+dbms.image:
+ derived_from: artifact
+ metadata:
+ vintner_normative: 'true'
+```
+
### Interface Types
We specify the following normative interface types.
@@ -309,50 +320,42 @@ container.runtime:
vintner_abstract: 'true'
```
-#### virtual.machine
+#### machine
```yaml linenums="1"
-virtual.machine:
+machine:
derived_from: node
metadata:
vintner_normative: 'true'
+ vintner_abstract: 'true'
properties:
machine_name:
type: string
- ports:
- type: list
- entry_schema:
- type: string
- flavor:
- type: string
- default: m1.medium
- network:
- type: string
- ssh_user:
- type: string
- ssh_key_name:
- type: string
- ssh_key_file:
- type: string
- attributes:
- management_address:
- type: string
- application_address:
- type: string
+```
+
+#### local.machine
+
+
+
+```yaml linenums="1"
+local.machine:
+ derived_from: machine
+ metadata:
+ vintner_normative: 'true'
capabilities:
host:
type: tosca.capabilities.Compute
```
-#### physical.machine
+#### remote.machine
```yaml linenums="1"
-physical.machine:
- derived_from: node
+remote.machine:
+ derived_from: machine
metadata:
vintner_normative: 'true'
properties:
@@ -383,6 +386,24 @@ physical.machine:
type: tosca.capabilities.Compute
```
+#### virtual.machine
+
+
+
+```yaml linenums="1"
+virtual.machine:
+ derived_from: remote.machine
+```
+
+#### physical.machine
+
+
+
+```yaml linenums="1"
+physical.machine:
+ derived_from: remote.machine
+```
+
#### database
@@ -998,9 +1019,6 @@ mysql.dbms:
type: string
application_name:
type: string
- dbms_version:
- type: string
- default: '5.7'
dbms_password:
type: string
dbms_ssl_mode:
diff --git a/docs/docs/normative/tosca-vintner-profile-core.artifact-types.svg b/docs/docs/normative/tosca-vintner-profile-core.artifact-types.svg
index b4c21170a7..ffbb8bb78c 100644
--- a/docs/docs/normative/tosca-vintner-profile-core.artifact-types.svg
+++ b/docs/docs/normative/tosca-vintner-profile-core.artifact-types.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/docs/normative/tosca-vintner-profile-core.node-types.svg b/docs/docs/normative/tosca-vintner-profile-core.node-types.svg
index 131d924b46..b2e876ac94 100644
--- a/docs/docs/normative/tosca-vintner-profile-core.node-types.svg
+++ b/docs/docs/normative/tosca-vintner-profile-core.node-types.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/docs/docs/normative/tosca-vintner-profile-core.yaml b/docs/docs/normative/tosca-vintner-profile-core.yaml
index 5ac8a2f35e..11e9cd9022 100644
--- a/docs/docs/normative/tosca-vintner-profile-core.yaml
+++ b/docs/docs/normative/tosca-vintner-profile-core.yaml
@@ -65,6 +65,11 @@ artifact_types:
description: expects image reference in "file"
metadata:
vintner_normative: 'true'
+ dbms.image:
+ derived_from: artifact
+ description: expects image reference in "file"
+ metadata:
+ vintner_normative: 'true'
interface_types:
interface:
derived_from: tosca.interfaces.Root
@@ -158,38 +163,23 @@ node_types:
metadata:
vintner_normative: 'true'
vintner_abstract: 'true'
- virtual.machine:
+ machine:
derived_from: node
metadata:
vintner_normative: 'true'
+ vintner_abstract: 'true'
properties:
machine_name:
type: string
- ports:
- type: list
- entry_schema:
- type: string
- flavor:
- type: string
- default: m1.medium
- network:
- type: string
- ssh_user:
- type: string
- ssh_key_name:
- type: string
- ssh_key_file:
- type: string
- attributes:
- management_address:
- type: string
- application_address:
- type: string
+ local.machine:
+ derived_from: machine
+ metadata:
+ vintner_normative: 'true'
capabilities:
host:
type: tosca.capabilities.Compute
- physical.machine:
- derived_from: node
+ remote.machine:
+ derived_from: machine
metadata:
vintner_normative: 'true'
properties:
@@ -218,6 +208,10 @@ node_types:
capabilities:
host:
type: tosca.capabilities.Compute
+ virtual.machine:
+ derived_from: remote.machine
+ physical.machine:
+ derived_from: remote.machine
database:
derived_from: node
metadata:
diff --git a/docs/docs/normative/tosca-vintner-profile-extended.yaml b/docs/docs/normative/tosca-vintner-profile-extended.yaml
index 476d8e3b2c..8f6bc9c384 100644
--- a/docs/docs/normative/tosca-vintner-profile-extended.yaml
+++ b/docs/docs/normative/tosca-vintner-profile-extended.yaml
@@ -353,9 +353,6 @@ node_types:
type: string
application_name:
type: string
- dbms_version:
- type: string
- default: '5.7'
dbms_password:
type: string
dbms_ssl_mode:
diff --git a/docs/docs/variability4tosca/rules/index.md b/docs/docs/variability4tosca/rules/index.md
index 53daecbbc6..b1d1fc8399 100644
--- a/docs/docs/variability4tosca/rules/index.md
+++ b/docs/docs/variability4tosca/rules/index.md
@@ -65,9 +65,9 @@ We assess the deployment quality of the following scenarios.
### Scenario #1
-A node template whose node type is or is derived from the node type [docker.engine](/normative#dockerengine){target=_blank} and which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [docker.engine](/normative#dockerengine){target=_blank} and which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -113,9 +113,9 @@ A node template whose node type is or is derived from the node type [ingress](/n
### Scenario #4
-A node template whose node type is or is derived from the node type [ingress](/normative#ingress){target=_blank} and which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [ingress](/normative#ingress){target=_blank} and which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -128,9 +128,9 @@ A node template whose node type is or is derived from the node type [ingress](/n
### Scenario #5
-A node template whose node type is or is derived from the node type [mysql.database](/normative#mysqldatabase){target=_blank} and which is hosted on a node template whose node type is or is derived from [mysql.dbms](/normative#mysqldbms){target=_blank}, which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.database](/normative#mysqldatabase){target=_blank} and which is hosted on a node template whose node type is or is derived from [mysql.dbms](/normative#mysqldbms){target=_blank}, which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -140,7 +140,7 @@ A node template whose node type is or is derived from the node type [mysql.datab
Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
!!! failure "Docker Compose (Quality: 0)"
- One-time use docker container ("fake Kubernetes job") with imperative parts, while declarative other technologies provide declarative modules.
+ One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.
@@ -151,8 +151,8 @@ A node template whose node type is or is derived from the node type [mysql.datab
-!!! success "Ansible (Quality: 1)"
- Primary use case due to the specialization of Ansible.
+!!! info "Ansible (Quality: 0.5)"
+ Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.
!!! success "Terraform (Quality: 1)"
Terraform provides a declarative module.
@@ -179,9 +179,9 @@ A node template whose node type is or is derived from the node type [mysql.datab
### Scenario #8
-A node template whose node type is or is derived from the node type [mysql.database](/normative#mysqldatabase){target=_blank} and which is hosted on a node template whose node type is or is derived from [mysql.dbms](/normative#mysqldbms){target=_blank}, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.database](/normative#mysqldatabase){target=_blank} and which is hosted on a node template whose node type is or is derived from [mysql.dbms](/normative#mysqldbms){target=_blank}, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -194,9 +194,10 @@ A node template whose node type is or is derived from the node type [mysql.datab
### Scenario #9
-A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which has an artifact whose artifact type is or is derived from [dbms.image](/normative#dbmsimage){target=_blank},
+ and which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! info "Ansible (Quality: 0.5)"
@@ -212,9 +213,10 @@ A node template whose node type is or is derived from the node type [mysql.dbms]
### Scenario #10
-A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which is hosted on a node template whose node type is or is derived from [gcp.cloudsql](/normative#gcpcloudsql){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which has an artifact whose artifact type is or is derived from [dbms.image](/normative#dbmsimage){target=_blank},
+ and which is hosted on a node template whose node type is or is derived from [gcp.cloudsql](/normative#gcpcloudsql){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -227,9 +229,10 @@ A node template whose node type is or is derived from the node type [mysql.dbms]
### Scenario #11
-A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which is hosted on a node template whose node type is or is derived from [kubernetes.cluster](/normative#kubernetescluster){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which has an artifact whose artifact type is or is derived from [dbms.image](/normative#dbmsimage){target=_blank},
+ and which is hosted on a node template whose node type is or is derived from [kubernetes.cluster](/normative#kubernetescluster){target=_blank}.
-
+
!!! info "Ansible (Quality: 0.5)"
@@ -245,9 +248,10 @@ A node template whose node type is or is derived from the node type [mysql.dbms]
### Scenario #12
-A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+A node template whose node type is or is derived from the node type [mysql.dbms](/normative#mysqldbms){target=_blank} and which has an artifact whose artifact type is or is derived from [dbms.image](/normative#dbmsimage){target=_blank},
+ and which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -261,9 +265,9 @@ A node template whose node type is or is derived from the node type [mysql.dbms]
### Scenario #13
A node template whose node type is or is derived from the node type [service.application](/normative#serviceapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [docker.image](/normative#dockerimage){target=_blank},
- and which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on a node template whose node type is or is derived from [docker.engine](/normative#dockerengine){target=_blank}, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! info "Ansible (Quality: 0.5)"
@@ -315,9 +319,9 @@ A node template whose node type is or is derived from the node type [service.app
### Scenario #16
A node template whose node type is or is derived from the node type [service.application](/normative#serviceapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [tar.archive](/normative#tararchive){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -331,9 +335,9 @@ A node template whose node type is or is derived from the node type [service.app
### Scenario #17
A node template whose node type is or is derived from the node type [service.application](/normative#serviceapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [zip.archive](/normative#ziparchive){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -363,9 +367,9 @@ A node template whose node type is or is derived from the node type [service.app
### Scenario #19
A node template whose node type is or is derived from the node type [software.application](/normative#softwareapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [apt.package](/normative#aptpackage){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! success "Ansible (Quality: 1)"
@@ -376,9 +380,9 @@ A node template whose node type is or is derived from the node type [software.ap
### Scenario #20
A node template whose node type is or is derived from the node type [software.application](/normative#softwareapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [tar.archive](/normative#tararchive){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! info "Ansible (Quality: 0.5)"
@@ -392,9 +396,9 @@ A node template whose node type is or is derived from the node type [software.ap
### Scenario #21
A node template whose node type is or is derived from the node type [software.application](/normative#softwareapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [zip.archive](/normative#ziparchive){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! info "Ansible (Quality: 0.5)"
@@ -424,9 +428,9 @@ A node template whose node type is or is derived from the node type [virtual.mac
### Scenario #23
A node template whose node type is or is derived from the node type [software.application](/normative#softwareapplication){target=_blank} and which has an artifact whose artifact type is or is derived from [apt.archive](/normative#aptarchive){target=_blank},
- and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [virtual.machine](/normative#virtualmachine){target=_blank}.
+ and which is hosted on an arbitrary hosting stack, which is hosted on a node template whose node type is or is derived from [remote.machine](/normative#remotemachine){target=_blank}.
-
+
!!! failure "Terraform (Quality: 0)"
@@ -443,13 +447,13 @@ This appendix contains the deployment technology rules.
### Rule #1
| Attribute | Value |
| --- | --- |
-| Identifier | docker.engine::ansible@virtual.machine |
+| Identifier | docker.engine::ansible@remote.machine |
| Component | [docker.engine](/normative#dockerengine){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | "ansible.builtin.shell", "ansible.builtin.group", and "ansible.builtin.user" tasks |
-| Graph ||
+| Graph ||
### Rule #2
| Attribute | Value |
@@ -475,24 +479,24 @@ This appendix contains the deployment technology rules.
### Rule #4
| Attribute | Value |
| --- | --- |
-| Identifier | ingress::ansible@virtual.machine |
+| Identifier | ingress::ansible@remote.machine |
| Component | [ingress](/normative#ingress){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | "ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", "ansible.builtin.copy", and "ansible.builtin.systemd" tasks |
-| Graph ||
+| Graph ||
### Rule #5
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.database::ansible@mysql.dbms->docker.engine->virtual.machine |
+| Identifier | mysql.database::ansible@mysql.dbms->docker.engine->remote.machine |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
-| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | |
-| Graph ||
+| Graph ||
### Rule #6
| Attribute | Value |
@@ -500,8 +504,8 @@ This appendix contains the deployment technology rules.
| Identifier | mysql.database::ansible@mysql.dbms->gcp.cloudsql |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [gcp.cloudsql](/normative#gcpcloudsql){target=_blank} |
-| Quality | 1 |
-| Reason | Primary use case due to the specialization of Ansible. |
+| Quality | 0.5 |
+| Reason | Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this. |
| Details | |
| Graph ||
@@ -519,69 +523,73 @@ This appendix contains the deployment technology rules.
### Rule #8
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.database::ansible@mysql.dbms->virtual.machine |
+| Identifier | mysql.database::ansible@mysql.dbms->remote.machine |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
-| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | |
-| Graph ||
+| Graph ||
### Rule #9
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::ansible@docker.engine->virtual.machine |
+| Identifier | mysql.dbms#dbms.image::ansible@docker.engine->remote.machine |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Docker Compose is more specialized |
| Details | "community.docker.docker_container" task |
-| Graph ||
+| Graph ||
### Rule #10
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::ansible@gcp.cloudsql |
+| Identifier | mysql.dbms#dbms.image::ansible@gcp.cloudsql |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
| Hosting | [gcp.cloudsql](/normative#gcpcloudsql){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | "google.cloud.gcp_sql_instance" and "google.cloud.gcp_sql_user" tasks |
-| Graph ||
+| Graph ||
### Rule #11
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::ansible@kubernetes.cluster |
+| Identifier | mysql.dbms#dbms.image::ansible@kubernetes.cluster |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
| Hosting | [kubernetes.cluster](/normative#kubernetescluster){target=_blank} |
| Quality | 0.5 |
| Reason | Kubernetes is more specialized. |
| Details | "kubernetes.core.k8s" tasks |
-| Graph ||
+| Graph ||
### Rule #12
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::ansible@virtual.machine |
+| Identifier | mysql.dbms#dbms.image::ansible@remote.machine |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | "ansible.builtin.apt", "ansible.builtin.systemd", "ansible.builtin.copy", "ansible.builtin.lineinfile", and "community.mysql.mysql_user" tasks |
-| Graph ||
+| Graph ||
### Rule #13
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#docker.image::ansible@docker.engine->virtual.machine |
+| Identifier | service.application#docker.image::ansible@docker.engine->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [docker.image](/normative#dockerimage){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Docker Compose is more specialized. |
| Details | "community.docker.docker_container" task |
-| Graph ||
+| Graph ||
### Rule #14
| Attribute | Value |
@@ -610,26 +618,26 @@ This appendix contains the deployment technology rules.
### Rule #16
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#tar.archive::ansible@*->virtual.machine |
+| Identifier | service.application#tar.archive::ansible@*->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [tar.archive](/normative#tararchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. Special integration for systemd. |
| Details | "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements |
-| Graph ||
+| Graph ||
### Rule #17
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#zip.archive::ansible@*->virtual.machine |
+| Identifier | service.application#zip.archive::ansible@*->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [zip.archive](/normative#ziparchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. Special integration for systemd. |
| Details | "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements |
-| Graph ||
+| Graph ||
### Rule #18
| Attribute | Value |
@@ -646,38 +654,38 @@ This appendix contains the deployment technology rules.
### Rule #19
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#apt.package::ansible@*->virtual.machine |
+| Identifier | software.application#apt.package::ansible@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [apt.package](/normative#aptpackage){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Primary use case due to the specialization of Ansible. |
| Details | "ansible.builtin.shell", "ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", and "ansible.builtin.copy", tasks with "when" statements |
-| Graph ||
+| Graph ||
### Rule #20
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#tar.archive::ansible@*->virtual.machine |
+| Identifier | software.application#tar.archive::ansible@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [tar.archive](/normative#tararchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., "service.application". |
| Details | "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements |
-| Graph ||
+| Graph ||
### Rule #21
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#zip.archive::ansible@*->virtual.machine |
+| Identifier | software.application#zip.archive::ansible@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [zip.archive](/normative#ziparchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application. |
| Details | "ansible.builtin.apt", "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements |
-| Graph ||
+| Graph ||
### Rule #22
| Attribute | Value |
@@ -696,13 +704,13 @@ This appendix contains the deployment technology rules.
### Rule #23
| Attribute | Value |
| --- | --- |
-| Identifier | docker.engine::terraform@virtual.machine |
+| Identifier | docker.engine::terraform@remote.machine |
| Component | [docker.engine](/normative#dockerengine){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "remote-exec" provider |
-| Graph ||
+| Graph ||
### Rule #24
| Attribute | Value |
@@ -728,24 +736,24 @@ This appendix contains the deployment technology rules.
### Rule #26
| Attribute | Value |
| --- | --- |
-| Identifier | ingress::terraform@virtual.machine |
+| Identifier | ingress::terraform@remote.machine |
| Component | [ingress](/normative#ingress){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner |
-| Graph ||
+| Graph ||
### Rule #27
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.database::terraform@mysql.dbms->docker.engine->virtual.machine |
+| Identifier | mysql.database::terraform@mysql.dbms->docker.engine->remote.machine |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
-| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. |
| Details | |
-| Graph ||
+| Graph ||
### Rule #28
| Attribute | Value |
@@ -772,69 +780,73 @@ This appendix contains the deployment technology rules.
### Rule #30
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.database::terraform@mysql.dbms->virtual.machine |
+| Identifier | mysql.database::terraform@mysql.dbms->remote.machine |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
-| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized. |
| Details | |
-| Graph ||
+| Graph ||
### Rule #31
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::terraform@docker.engine->virtual.machine |
+| Identifier | mysql.dbms#dbms.image::terraform@docker.engine->remote.machine |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Docker Compose is more specialized. |
| Details | "docker_container" and "docker_image" resources |
-| Graph ||
+| Graph ||
### Rule #32
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::terraform@gcp.cloudsql |
+| Identifier | mysql.dbms#dbms.image::terraform@gcp.cloudsql |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
| Hosting | [gcp.cloudsql](/normative#gcpcloudsql){target=_blank} |
| Quality | 1 |
| Reason | Terraform provides a declarative module. |
| Details | "google_sql_database_instance" and "google_sql_user" resources |
-| Graph ||
+| Graph ||
### Rule #33
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::terraform@kubernetes.cluster |
+| Identifier | mysql.dbms#dbms.image::terraform@kubernetes.cluster |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
| Hosting | [kubernetes.cluster](/normative#kubernetescluster){target=_blank} |
| Quality | 0.5 |
| Reason | Kubernetes is more specialized. |
| Details | "kubernetes_deployment_v1" and "kubernetes_service_v1" resources |
-| Graph ||
+| Graph ||
### Rule #34
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::terraform@virtual.machine |
+| Identifier | mysql.dbms#dbms.image::terraform@remote.machine |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
-| Hosting | [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
+| Hosting | [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner |
-| Graph ||
+| Graph ||
### Rule #35
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#docker.image::terraform@docker.engine->virtual.machine |
+| Identifier | service.application#docker.image::terraform@docker.engine->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [docker.image](/normative#dockerimage){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0.5 |
| Reason | Docker Compose is more specialized. |
| Details | "docker_container" and "docker_image" resources |
-| Graph ||
+| Graph ||
### Rule #36
| Attribute | Value |
@@ -863,26 +875,26 @@ This appendix contains the deployment technology rules.
### Rule #38
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#tar.archive::terraform@*->virtual.machine |
+| Identifier | service.application#tar.archive::terraform@*->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [tar.archive](/normative#tararchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts |
-| Graph ||
+| Graph ||
### Rule #39
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#zip.archive::terraform@*->virtual.machine |
+| Identifier | service.application#zip.archive::terraform@*->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [zip.archive](/normative#ziparchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts |
-| Graph ||
+| Graph ||
### Rule #40
| Attribute | Value |
@@ -899,38 +911,38 @@ This appendix contains the deployment technology rules.
### Rule #41
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#apt.archive::terraform@*->virtual.machine |
+| Identifier | software.application#apt.archive::terraform@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [apt.archive](/normative#aptarchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "file" provisioner to upload scripts and "remote-exec" to execute scripts |
-| Graph ||
+| Graph ||
### Rule #42
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#tar.archive::terraform@*->virtual.machine |
+| Identifier | software.application#tar.archive::terraform@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [tar.archive](/normative#tararchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts |
-| Graph ||
+| Graph ||
### Rule #43
| Attribute | Value |
| --- | --- |
-| Identifier | software.application#zip.archive::terraform@*->virtual.machine |
+| Identifier | software.application#zip.archive::terraform@*->remote.machine |
| Component | [software.application](/normative#softwareapplication){target=_blank} |
| Artifact | [zip.archive](/normative#ziparchive){target=_blank} |
-| Hosting | * -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | * -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
| Reason | Ansible is more specialized. Also using provisioners is a "last resort". |
| Details | "file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts |
-| Graph ||
+| Graph ||
### Rule #44
| Attribute | Value |
@@ -971,13 +983,14 @@ This appendix contains the deployment technology rules.
### Rule #47
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::kubernetes@kubernetes.cluster |
+| Identifier | mysql.dbms#dbms.image::kubernetes@kubernetes.cluster |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
| Hosting | [kubernetes.cluster](/normative#kubernetescluster){target=_blank} |
| Quality | 1 |
| Reason | Kubernetes is the underlying technology. |
| Details | Kubernetes manifest generated and applied |
-| Graph ||
+| Graph ||
### Rule #48
| Attribute | Value |
@@ -996,36 +1009,37 @@ This appendix contains the deployment technology rules.
### Rule #49
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.database::compose@mysql.dbms->docker.engine->virtual.machine |
+| Identifier | mysql.database::compose@mysql.dbms->docker.engine->remote.machine |
| Component | [mysql.database](/normative#mysqldatabase){target=_blank} |
-| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [mysql.dbms](/normative#mysqldbms){target=_blank} -> [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 0 |
-| Reason | One-time use docker container ("fake Kubernetes job") with imperative parts, while declarative other technologies provide declarative modules. |
+| Reason | One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules. |
| Details | |
-| Graph ||
+| Graph ||
### Rule #50
| Attribute | Value |
| --- | --- |
-| Identifier | mysql.dbms::compose@docker.engine->virtual.machine |
+| Identifier | mysql.dbms#dbms.image::compose@docker.engine->remote.machine |
| Component | [mysql.dbms](/normative#mysqldbms){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Artifact | [dbms.image](/normative#dbmsimage){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Docker is the underlying technology. |
| Details | docker-compose manifest generated and applied |
-| Graph ||
+| Graph ||
### Rule #51
| Attribute | Value |
| --- | --- |
-| Identifier | service.application#docker.image::compose@docker.engine->virtual.machine |
+| Identifier | service.application#docker.image::compose@docker.engine->remote.machine |
| Component | [service.application](/normative#serviceapplication){target=_blank} |
| Artifact | [docker.image](/normative#dockerimage){target=_blank} |
-| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [virtual.machine](/normative#virtualmachine){target=_blank} |
+| Hosting | [docker.engine](/normative#dockerengine){target=_blank} -> [remote.machine](/normative#remotemachine){target=_blank} |
| Quality | 1 |
| Reason | Docker is the underlying technology. |
| Details | docker compose manifest generated and applied |
-| Graph ||
+| Graph ||
diff --git a/docs/docs/variability4tosca/rules/technology-rules.yaml b/docs/docs/variability4tosca/rules/technology-rules.yaml
index 063e1081f6..41b401cf87 100644
--- a/docs/docs/variability4tosca/rules/technology-rules.yaml
+++ b/docs/docs/variability4tosca/rules/technology-rules.yaml
@@ -1,7 +1,7 @@
ansible:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.group", and "ansible.builtin.user" tasks'
@@ -18,7 +18,7 @@ ansible:
details: '"kubernetes.core.k8s" task'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", "ansible.builtin.copy", and "ansible.builtin.systemd" tasks'
@@ -26,15 +26,15 @@ ansible:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.database
hosting:
- mysql.dbms
- gcp.cloudsql
- weight: 1
- reason: Primary use case due to the specialization of Ansible.
+ weight: 0.5
+ reason: Primary use case due to the specialization of Ansible. However, need to install and handle GCP CloudSQL Proxy, while the corresponding Terraform module already provides this.
- component: mysql.database
hosting:
- mysql.dbms
@@ -44,31 +44,35 @@ ansible:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized
details: '"community.docker.docker_container" task'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"google.cloud.gcp_sql_instance" and "google.cloud.gcp_sql_user" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt", "ansible.builtin.systemd", "ansible.builtin.copy", "ansible.builtin.lineinfile", and "community.mysql.mysql_user" tasks'
@@ -76,7 +80,7 @@ ansible:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"community.docker.docker_container" task'
@@ -98,7 +102,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -106,7 +110,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -121,7 +125,7 @@ ansible:
artifact: apt.package
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", and "ansible.builtin.copy", tasks with "when" statements'
@@ -129,7 +133,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., "service.application".
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -137,7 +141,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.
details: '"ansible.builtin.apt", "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -151,7 +155,7 @@ ansible:
terraform:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"remote-exec" provider'
@@ -168,7 +172,7 @@ terraform:
details: '"kubernetes_service_v1" resource'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -176,7 +180,7 @@ terraform:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.database
@@ -194,31 +198,35 @@ terraform:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Terraform provides a declarative module.
details: '"google_sql_database_instance" and "google_sql_user" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -226,7 +234,7 @@ terraform:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
@@ -248,7 +256,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -256,7 +264,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -271,7 +279,7 @@ terraform:
artifact: apt.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload scripts and "remote-exec" to execute scripts'
@@ -279,7 +287,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -287,7 +295,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -312,6 +320,7 @@ kubernetes:
weight: 0
reason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 1
@@ -329,13 +338,14 @@ compose:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0
- reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while declarative other technologies provide declarative modules.
+ reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker-compose manifest generated and applied
@@ -343,7 +353,7 @@ compose:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker compose manifest generated and applied
diff --git a/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-large/test.yaml b/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-large/test.yaml
index 3444d18b3e..c71224cf8e 100644
--- a/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-large/test.yaml
+++ b/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-large/test.yaml
@@ -76,7 +76,7 @@ merge:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-medium/test.yaml b/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-medium/test.yaml
index 24b713a13e..b07f15ce0e 100644
--- a/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-medium/test.yaml
+++ b/examples/unfurl-technology---boutique---baseline-maintenance/tests/os-medium/test.yaml
@@ -76,7 +76,7 @@ merge:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---baseline-maintenance/variable-service-template.yaml b/examples/unfurl-technology---boutique---baseline-maintenance/variable-service-template.yaml
index 3a6cddd046..f853ddd87d 100644
--- a/examples/unfurl-technology---boutique---baseline-maintenance/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---baseline-maintenance/variable-service-template.yaml
@@ -684,7 +684,6 @@ topology_template:
- mysql_password: {eval: '.::.requirements::[.name=database]::.target::database_password'}
- mysql_table: 'cart'
- mysql_ssl_mode: {eval: '.::.requirements::[.name=database]::.target::.requirements::[.name=host]::.target::dbms_ssl_mode'}
-
requirements:
- database: cart_database_terraform
- host: gcp_cloudrun
@@ -726,6 +725,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: docker_engine
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
cart_dbms_kubernetes:
type: mysql.dbms
@@ -735,6 +738,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: kubernetes_cluster
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
cart_dbms_terraform:
type: mysql.dbms
@@ -744,6 +751,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---baseline-original/variable-service-template.yaml b/examples/unfurl-technology---boutique---baseline-original/variable-service-template.yaml
index 3e4a25cc84..a2e48b7137 100644
--- a/examples/unfurl-technology---boutique---baseline-original/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---baseline-original/variable-service-template.yaml
@@ -510,6 +510,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: docker_engine
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
cart_dbms_terraform:
type: mysql.dbms
@@ -519,6 +523,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/falco.agent.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/falco.agent.yaml
index ac848e1319..da3b5990e9 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/falco.agent.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/falco.agent.yaml
@@ -27,7 +27,7 @@ node_types:
#
################################################################
- falco.agent~software.application#apt.package::ansible@*->virtual.machine:
+ falco.agent~software.application#apt.package::ansible@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
@@ -249,7 +249,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- falco.agent~software.application#tar.archive::ansible@*->virtual.machine:
+ falco.agent~software.application#tar.archive::ansible@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
@@ -466,7 +466,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- falco.agent~software.application#zip.archive::ansible@*->virtual.machine:
+ falco.agent~software.application#zip.archive::ansible@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
@@ -686,7 +686,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- falco.agent~software.application#apt.archive::terraform@*->virtual.machine:
+ falco.agent~software.application#apt.archive::terraform@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
@@ -883,7 +883,7 @@ node_types:
- sudo bash /tmp/stop-falco.agent.sh
- sudo bash /tmp/delete-falco.agent.sh
when: destroy
- falco.agent~software.application#tar.archive::terraform@*->virtual.machine:
+ falco.agent~software.application#tar.archive::terraform@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
@@ -1066,7 +1066,7 @@ node_types:
- sudo bash /tmp/stop-falco.agent.sh
- sudo bash /tmp/delete-falco.agent.sh
when: destroy
- falco.agent~software.application#zip.archive::terraform@*->virtual.machine:
+ falco.agent~software.application#zip.archive::terraform@*->remote.machine:
derived_from: falco.agent
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/node.agent.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/node.agent.yaml
index d959d632d5..f466b8e592 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/node.agent.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/node.agent.yaml
@@ -25,7 +25,7 @@ node_types:
#
################################################################
- node.agent~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ node.agent~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -268,7 +268,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- node.agent~service.application#tar.archive::ansible@*->virtual.machine:
+ node.agent~service.application#tar.archive::ansible@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -513,7 +513,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- node.agent~service.application#zip.archive::ansible@*->virtual.machine:
+ node.agent~service.application#zip.archive::ansible@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -855,7 +855,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- node.agent~software.application#apt.package::ansible@*->virtual.machine:
+ node.agent~software.application#apt.package::ansible@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -1077,7 +1077,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- node.agent~software.application#tar.archive::ansible@*->virtual.machine:
+ node.agent~software.application#tar.archive::ansible@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -1294,7 +1294,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- node.agent~software.application#zip.archive::ansible@*->virtual.machine:
+ node.agent~software.application#zip.archive::ansible@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -1514,7 +1514,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- node.agent~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ node.agent~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -1728,7 +1728,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- node.agent~service.application#tar.archive::terraform@*->virtual.machine:
+ node.agent~service.application#tar.archive::terraform@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -1914,7 +1914,7 @@ node_types:
- sudo bash /tmp/stop-node.agent.sh
- sudo bash /tmp/delete-node.agent.sh
when: destroy
- node.agent~service.application#zip.archive::terraform@*->virtual.machine:
+ node.agent~service.application#zip.archive::terraform@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -2184,7 +2184,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- node.agent~software.application#apt.archive::terraform@*->virtual.machine:
+ node.agent~software.application#apt.archive::terraform@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -2381,7 +2381,7 @@ node_types:
- sudo bash /tmp/stop-node.agent.sh
- sudo bash /tmp/delete-node.agent.sh
when: destroy
- node.agent~software.application#tar.archive::terraform@*->virtual.machine:
+ node.agent~software.application#tar.archive::terraform@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -2564,7 +2564,7 @@ node_types:
- sudo bash /tmp/stop-node.agent.sh
- sudo bash /tmp/delete-node.agent.sh
when: destroy
- node.agent~software.application#zip.archive::terraform@*->virtual.machine:
+ node.agent~software.application#zip.archive::terraform@*->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
@@ -2823,7 +2823,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- node.agent~service.application#docker.image::compose@docker.engine->virtual.machine:
+ node.agent~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: node.agent
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/promtail.agent.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/promtail.agent.yaml
index 54d3a56d89..29f3ed5c6c 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/promtail.agent.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/agents/promtail.agent.yaml
@@ -25,7 +25,7 @@ node_types:
#
################################################################
- promtail.agent~software.application#apt.package::ansible@*->virtual.machine:
+ promtail.agent~software.application#apt.package::ansible@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
@@ -247,7 +247,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- promtail.agent~software.application#tar.archive::ansible@*->virtual.machine:
+ promtail.agent~software.application#tar.archive::ansible@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
@@ -464,7 +464,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- promtail.agent~software.application#zip.archive::ansible@*->virtual.machine:
+ promtail.agent~software.application#zip.archive::ansible@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
@@ -684,7 +684,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- promtail.agent~software.application#apt.archive::terraform@*->virtual.machine:
+ promtail.agent~software.application#apt.archive::terraform@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
@@ -881,7 +881,7 @@ node_types:
- sudo bash /tmp/stop-promtail.agent.sh
- sudo bash /tmp/delete-promtail.agent.sh
when: destroy
- promtail.agent~software.application#tar.archive::terraform@*->virtual.machine:
+ promtail.agent~software.application#tar.archive::terraform@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
@@ -1064,7 +1064,7 @@ node_types:
- sudo bash /tmp/stop-promtail.agent.sh
- sudo bash /tmp/delete-promtail.agent.sh
when: destroy
- promtail.agent~software.application#zip.archive::terraform@*->virtual.machine:
+ promtail.agent~software.application#zip.archive::terraform@*->remote.machine:
derived_from: promtail.agent
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/advertisement.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/advertisement.component.yaml
index 4d9c9682f7..17c5f4a1e2 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/advertisement.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/advertisement.component.yaml
@@ -62,7 +62,7 @@ node_types:
#
################################################################
- advertisement.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ advertisement.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -316,7 +316,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- advertisement.component~service.application#tar.archive::ansible@*->virtual.machine:
+ advertisement.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -563,7 +563,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- advertisement.component~service.application#zip.archive::ansible@*->virtual.machine:
+ advertisement.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -911,7 +911,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- advertisement.component~software.application#apt.package::ansible@*->virtual.machine:
+ advertisement.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -1133,7 +1133,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- advertisement.component~software.application#tar.archive::ansible@*->virtual.machine:
+ advertisement.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -1352,7 +1352,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- advertisement.component~software.application#zip.archive::ansible@*->virtual.machine:
+ advertisement.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -1574,7 +1574,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- advertisement.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ advertisement.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -1799,7 +1799,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- advertisement.component~service.application#tar.archive::terraform@*->virtual.machine:
+ advertisement.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -1986,7 +1986,7 @@ node_types:
- sudo bash /tmp/stop-advertisement.component.sh
- sudo bash /tmp/delete-advertisement.component.sh
when: destroy
- advertisement.component~service.application#zip.archive::terraform@*->virtual.machine:
+ advertisement.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -2261,7 +2261,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- advertisement.component~software.application#apt.archive::terraform@*->virtual.machine:
+ advertisement.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -2459,7 +2459,7 @@ node_types:
- sudo bash /tmp/stop-advertisement.component.sh
- sudo bash /tmp/delete-advertisement.component.sh
when: destroy
- advertisement.component~software.application#tar.archive::terraform@*->virtual.machine:
+ advertisement.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -2643,7 +2643,7 @@ node_types:
- sudo bash /tmp/stop-advertisement.component.sh
- sudo bash /tmp/delete-advertisement.component.sh
when: destroy
- advertisement.component~software.application#zip.archive::terraform@*->virtual.machine:
+ advertisement.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
@@ -2907,7 +2907,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- advertisement.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ advertisement.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: advertisement.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/analytics.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/analytics.component.yaml
index 8f741f7193..5df71056bd 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/analytics.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/analytics.component.yaml
@@ -69,7 +69,7 @@ node_types:
#
################################################################
- analytics.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ analytics.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -333,7 +333,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- analytics.component~service.application#tar.archive::ansible@*->virtual.machine:
+ analytics.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -582,7 +582,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- analytics.component~service.application#zip.archive::ansible@*->virtual.machine:
+ analytics.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -934,7 +934,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- analytics.component~software.application#apt.package::ansible@*->virtual.machine:
+ analytics.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -1156,7 +1156,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- analytics.component~software.application#tar.archive::ansible@*->virtual.machine:
+ analytics.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -1377,7 +1377,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- analytics.component~software.application#zip.archive::ansible@*->virtual.machine:
+ analytics.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -1601,7 +1601,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- analytics.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ analytics.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -1836,7 +1836,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- analytics.component~service.application#tar.archive::terraform@*->virtual.machine:
+ analytics.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -2025,7 +2025,7 @@ node_types:
- sudo bash /tmp/stop-analytics.component.sh
- sudo bash /tmp/delete-analytics.component.sh
when: destroy
- analytics.component~service.application#zip.archive::terraform@*->virtual.machine:
+ analytics.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -2304,7 +2304,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- analytics.component~software.application#apt.archive::terraform@*->virtual.machine:
+ analytics.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -2504,7 +2504,7 @@ node_types:
- sudo bash /tmp/stop-analytics.component.sh
- sudo bash /tmp/delete-analytics.component.sh
when: destroy
- analytics.component~software.application#tar.archive::terraform@*->virtual.machine:
+ analytics.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -2690,7 +2690,7 @@ node_types:
- sudo bash /tmp/stop-analytics.component.sh
- sudo bash /tmp/delete-analytics.component.sh
when: destroy
- analytics.component~software.application#zip.archive::terraform@*->virtual.machine:
+ analytics.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
@@ -2960,7 +2960,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ analytics.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: analytics.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/cart.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/cart.component.yaml
index 51f2278599..c0464155f4 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/cart.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/cart.component.yaml
@@ -90,7 +90,7 @@ node_types:
#
################################################################
- cart.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ cart.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -379,7 +379,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- cart.component~service.application#tar.archive::ansible@*->virtual.machine:
+ cart.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -633,7 +633,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- cart.component~service.application#zip.archive::ansible@*->virtual.machine:
+ cart.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -995,7 +995,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- cart.component~software.application#apt.package::ansible@*->virtual.machine:
+ cart.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -1217,7 +1217,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- cart.component~software.application#tar.archive::ansible@*->virtual.machine:
+ cart.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -1443,7 +1443,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- cart.component~software.application#zip.archive::ansible@*->virtual.machine:
+ cart.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -1672,7 +1672,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- cart.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ cart.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -1932,7 +1932,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- cart.component~service.application#tar.archive::terraform@*->virtual.machine:
+ cart.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -2126,7 +2126,7 @@ node_types:
- sudo bash /tmp/stop-cart.component.sh
- sudo bash /tmp/delete-cart.component.sh
when: destroy
- cart.component~service.application#zip.archive::terraform@*->virtual.machine:
+ cart.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -2415,7 +2415,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- cart.component~software.application#apt.archive::terraform@*->virtual.machine:
+ cart.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -2620,7 +2620,7 @@ node_types:
- sudo bash /tmp/stop-cart.component.sh
- sudo bash /tmp/delete-cart.component.sh
when: destroy
- cart.component~software.application#tar.archive::terraform@*->virtual.machine:
+ cart.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -2811,7 +2811,7 @@ node_types:
- sudo bash /tmp/stop-cart.component.sh
- sudo bash /tmp/delete-cart.component.sh
when: destroy
- cart.component~software.application#zip.archive::terraform@*->virtual.machine:
+ cart.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
@@ -3096,7 +3096,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- cart.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ cart.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: cart.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/checkout.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/checkout.component.yaml
index 49d0bb1e84..aea1fa38ed 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/checkout.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/checkout.component.yaml
@@ -123,7 +123,7 @@ node_types:
#
################################################################
- checkout.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ checkout.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -417,7 +417,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- checkout.component~service.application#tar.archive::ansible@*->virtual.machine:
+ checkout.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -672,7 +672,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- checkout.component~service.application#zip.archive::ansible@*->virtual.machine:
+ checkout.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -1036,7 +1036,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- checkout.component~software.application#apt.package::ansible@*->virtual.machine:
+ checkout.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -1258,7 +1258,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- checkout.component~software.application#tar.archive::ansible@*->virtual.machine:
+ checkout.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -1485,7 +1485,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- checkout.component~software.application#zip.archive::ansible@*->virtual.machine:
+ checkout.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -1715,7 +1715,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- checkout.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ checkout.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -1980,7 +1980,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- checkout.component~service.application#tar.archive::terraform@*->virtual.machine:
+ checkout.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -2175,7 +2175,7 @@ node_types:
- sudo bash /tmp/stop-checkout.component.sh
- sudo bash /tmp/delete-checkout.component.sh
when: destroy
- checkout.component~service.application#zip.archive::terraform@*->virtual.machine:
+ checkout.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -2466,7 +2466,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- checkout.component~software.application#apt.archive::terraform@*->virtual.machine:
+ checkout.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -2672,7 +2672,7 @@ node_types:
- sudo bash /tmp/stop-checkout.component.sh
- sudo bash /tmp/delete-checkout.component.sh
when: destroy
- checkout.component~software.application#tar.archive::terraform@*->virtual.machine:
+ checkout.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -2864,7 +2864,7 @@ node_types:
- sudo bash /tmp/stop-checkout.component.sh
- sudo bash /tmp/delete-checkout.component.sh
when: destroy
- checkout.component~software.application#zip.archive::terraform@*->virtual.machine:
+ checkout.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
@@ -3152,7 +3152,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- checkout.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ checkout.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: checkout.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/currency.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/currency.component.yaml
index 8561c6ca89..012f22f4d7 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/currency.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/currency.component.yaml
@@ -60,7 +60,7 @@ node_types:
#
################################################################
- currency.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ currency.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -314,7 +314,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- currency.component~service.application#tar.archive::ansible@*->virtual.machine:
+ currency.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -561,7 +561,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- currency.component~service.application#zip.archive::ansible@*->virtual.machine:
+ currency.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -909,7 +909,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- currency.component~software.application#apt.package::ansible@*->virtual.machine:
+ currency.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -1131,7 +1131,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- currency.component~software.application#tar.archive::ansible@*->virtual.machine:
+ currency.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -1350,7 +1350,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- currency.component~software.application#zip.archive::ansible@*->virtual.machine:
+ currency.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -1572,7 +1572,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- currency.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ currency.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -1797,7 +1797,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- currency.component~service.application#tar.archive::terraform@*->virtual.machine:
+ currency.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -1984,7 +1984,7 @@ node_types:
- sudo bash /tmp/stop-currency.component.sh
- sudo bash /tmp/delete-currency.component.sh
when: destroy
- currency.component~service.application#zip.archive::terraform@*->virtual.machine:
+ currency.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -2259,7 +2259,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- currency.component~software.application#apt.archive::terraform@*->virtual.machine:
+ currency.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -2457,7 +2457,7 @@ node_types:
- sudo bash /tmp/stop-currency.component.sh
- sudo bash /tmp/delete-currency.component.sh
when: destroy
- currency.component~software.application#tar.archive::terraform@*->virtual.machine:
+ currency.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -2641,7 +2641,7 @@ node_types:
- sudo bash /tmp/stop-currency.component.sh
- sudo bash /tmp/delete-currency.component.sh
when: destroy
- currency.component~software.application#zip.archive::terraform@*->virtual.machine:
+ currency.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
@@ -2905,7 +2905,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- currency.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ currency.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: currency.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/email.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/email.component.yaml
index 865d2341f8..95f034392a 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/email.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/email.component.yaml
@@ -60,7 +60,7 @@ node_types:
#
################################################################
- email.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ email.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -314,7 +314,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- email.component~service.application#tar.archive::ansible@*->virtual.machine:
+ email.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -561,7 +561,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- email.component~service.application#zip.archive::ansible@*->virtual.machine:
+ email.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -909,7 +909,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- email.component~software.application#apt.package::ansible@*->virtual.machine:
+ email.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -1131,7 +1131,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- email.component~software.application#tar.archive::ansible@*->virtual.machine:
+ email.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -1350,7 +1350,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- email.component~software.application#zip.archive::ansible@*->virtual.machine:
+ email.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -1572,7 +1572,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- email.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ email.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -1797,7 +1797,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- email.component~service.application#tar.archive::terraform@*->virtual.machine:
+ email.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -1984,7 +1984,7 @@ node_types:
- sudo bash /tmp/stop-email.component.sh
- sudo bash /tmp/delete-email.component.sh
when: destroy
- email.component~service.application#zip.archive::terraform@*->virtual.machine:
+ email.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -2259,7 +2259,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- email.component~software.application#apt.archive::terraform@*->virtual.machine:
+ email.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -2457,7 +2457,7 @@ node_types:
- sudo bash /tmp/stop-email.component.sh
- sudo bash /tmp/delete-email.component.sh
when: destroy
- email.component~software.application#tar.archive::terraform@*->virtual.machine:
+ email.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -2641,7 +2641,7 @@ node_types:
- sudo bash /tmp/stop-email.component.sh
- sudo bash /tmp/delete-email.component.sh
when: destroy
- email.component~software.application#zip.archive::terraform@*->virtual.machine:
+ email.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
@@ -2905,7 +2905,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- email.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ email.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: email.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/frontend.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/frontend.component.yaml
index 4add40947e..a0319f538d 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/frontend.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/frontend.component.yaml
@@ -139,7 +139,7 @@ node_types:
#
################################################################
- frontend.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ frontend.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -448,7 +448,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- frontend.component~service.application#tar.archive::ansible@*->virtual.machine:
+ frontend.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -706,7 +706,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- frontend.component~service.application#zip.archive::ansible@*->virtual.machine:
+ frontend.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -1076,7 +1076,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- frontend.component~software.application#apt.package::ansible@*->virtual.machine:
+ frontend.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -1298,7 +1298,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- frontend.component~software.application#tar.archive::ansible@*->virtual.machine:
+ frontend.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -1528,7 +1528,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- frontend.component~software.application#zip.archive::ansible@*->virtual.machine:
+ frontend.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -1761,7 +1761,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- frontend.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ frontend.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -2041,7 +2041,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- frontend.component~service.application#tar.archive::terraform@*->virtual.machine:
+ frontend.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -2239,7 +2239,7 @@ node_types:
- sudo bash /tmp/stop-frontend.component.sh
- sudo bash /tmp/delete-frontend.component.sh
when: destroy
- frontend.component~service.application#zip.archive::terraform@*->virtual.machine:
+ frontend.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -2536,7 +2536,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- frontend.component~software.application#apt.archive::terraform@*->virtual.machine:
+ frontend.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -2745,7 +2745,7 @@ node_types:
- sudo bash /tmp/stop-frontend.component.sh
- sudo bash /tmp/delete-frontend.component.sh
when: destroy
- frontend.component~software.application#tar.archive::terraform@*->virtual.machine:
+ frontend.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -2940,7 +2940,7 @@ node_types:
- sudo bash /tmp/stop-frontend.component.sh
- sudo bash /tmp/delete-frontend.component.sh
when: destroy
- frontend.component~software.application#zip.archive::terraform@*->virtual.machine:
+ frontend.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
@@ -3237,7 +3237,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- frontend.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ frontend.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: frontend.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/payment.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/payment.component.yaml
index 0e0c206e0e..9c3930d058 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/payment.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/payment.component.yaml
@@ -66,7 +66,7 @@ node_types:
#
################################################################
- payment.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ payment.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -330,7 +330,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- payment.component~service.application#tar.archive::ansible@*->virtual.machine:
+ payment.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -579,7 +579,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- payment.component~service.application#zip.archive::ansible@*->virtual.machine:
+ payment.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -931,7 +931,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- payment.component~software.application#apt.package::ansible@*->virtual.machine:
+ payment.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -1153,7 +1153,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- payment.component~software.application#tar.archive::ansible@*->virtual.machine:
+ payment.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -1374,7 +1374,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- payment.component~software.application#zip.archive::ansible@*->virtual.machine:
+ payment.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -1598,7 +1598,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- payment.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ payment.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -1833,7 +1833,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- payment.component~service.application#tar.archive::terraform@*->virtual.machine:
+ payment.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -2022,7 +2022,7 @@ node_types:
- sudo bash /tmp/stop-payment.component.sh
- sudo bash /tmp/delete-payment.component.sh
when: destroy
- payment.component~service.application#zip.archive::terraform@*->virtual.machine:
+ payment.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -2301,7 +2301,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- payment.component~software.application#apt.archive::terraform@*->virtual.machine:
+ payment.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -2501,7 +2501,7 @@ node_types:
- sudo bash /tmp/stop-payment.component.sh
- sudo bash /tmp/delete-payment.component.sh
when: destroy
- payment.component~software.application#tar.archive::terraform@*->virtual.machine:
+ payment.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -2687,7 +2687,7 @@ node_types:
- sudo bash /tmp/stop-payment.component.sh
- sudo bash /tmp/delete-payment.component.sh
when: destroy
- payment.component~software.application#zip.archive::terraform@*->virtual.machine:
+ payment.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
@@ -2957,7 +2957,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- payment.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ payment.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: payment.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/product.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/product.component.yaml
index de3ce3eb90..9d9abcffbd 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/product.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/product.component.yaml
@@ -66,7 +66,7 @@ node_types:
#
################################################################
- product.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ product.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -320,7 +320,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- product.component~service.application#tar.archive::ansible@*->virtual.machine:
+ product.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -567,7 +567,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- product.component~service.application#zip.archive::ansible@*->virtual.machine:
+ product.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -915,7 +915,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- product.component~software.application#apt.package::ansible@*->virtual.machine:
+ product.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -1137,7 +1137,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- product.component~software.application#tar.archive::ansible@*->virtual.machine:
+ product.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -1356,7 +1356,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- product.component~software.application#zip.archive::ansible@*->virtual.machine:
+ product.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -1578,7 +1578,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- product.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ product.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -1803,7 +1803,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- product.component~service.application#tar.archive::terraform@*->virtual.machine:
+ product.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -1990,7 +1990,7 @@ node_types:
- sudo bash /tmp/stop-product.component.sh
- sudo bash /tmp/delete-product.component.sh
when: destroy
- product.component~service.application#zip.archive::terraform@*->virtual.machine:
+ product.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -2265,7 +2265,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- product.component~software.application#apt.archive::terraform@*->virtual.machine:
+ product.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -2463,7 +2463,7 @@ node_types:
- sudo bash /tmp/stop-product.component.sh
- sudo bash /tmp/delete-product.component.sh
when: destroy
- product.component~software.application#tar.archive::terraform@*->virtual.machine:
+ product.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -2647,7 +2647,7 @@ node_types:
- sudo bash /tmp/stop-product.component.sh
- sudo bash /tmp/delete-product.component.sh
when: destroy
- product.component~software.application#zip.archive::terraform@*->virtual.machine:
+ product.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
@@ -2911,7 +2911,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- product.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ product.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: product.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/recommendation.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/recommendation.component.yaml
index ff7675b6ee..de7faac16b 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/recommendation.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/recommendation.component.yaml
@@ -76,7 +76,7 @@ node_types:
#
################################################################
- recommendation.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ recommendation.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -335,7 +335,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- recommendation.component~service.application#tar.archive::ansible@*->virtual.machine:
+ recommendation.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -583,7 +583,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- recommendation.component~service.application#zip.archive::ansible@*->virtual.machine:
+ recommendation.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -933,7 +933,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- recommendation.component~software.application#apt.package::ansible@*->virtual.machine:
+ recommendation.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -1155,7 +1155,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- recommendation.component~software.application#tar.archive::ansible@*->virtual.machine:
+ recommendation.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -1375,7 +1375,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- recommendation.component~software.application#zip.archive::ansible@*->virtual.machine:
+ recommendation.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -1598,7 +1598,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- recommendation.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ recommendation.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -1828,7 +1828,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- recommendation.component~service.application#tar.archive::terraform@*->virtual.machine:
+ recommendation.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -2016,7 +2016,7 @@ node_types:
- sudo bash /tmp/stop-recommendation.component.sh
- sudo bash /tmp/delete-recommendation.component.sh
when: destroy
- recommendation.component~service.application#zip.archive::terraform@*->virtual.machine:
+ recommendation.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -2293,7 +2293,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- recommendation.component~software.application#apt.archive::terraform@*->virtual.machine:
+ recommendation.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -2492,7 +2492,7 @@ node_types:
- sudo bash /tmp/stop-recommendation.component.sh
- sudo bash /tmp/delete-recommendation.component.sh
when: destroy
- recommendation.component~software.application#tar.archive::terraform@*->virtual.machine:
+ recommendation.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -2677,7 +2677,7 @@ node_types:
- sudo bash /tmp/stop-recommendation.component.sh
- sudo bash /tmp/delete-recommendation.component.sh
when: destroy
- recommendation.component~software.application#zip.archive::terraform@*->virtual.machine:
+ recommendation.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
@@ -2944,7 +2944,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- recommendation.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ recommendation.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: recommendation.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/shipping.component.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/shipping.component.yaml
index b1158a84dc..8360699f3b 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/shipping.component.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/boutique/shipping.component.yaml
@@ -60,7 +60,7 @@ node_types:
#
################################################################
- shipping.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ shipping.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -314,7 +314,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- shipping.component~service.application#tar.archive::ansible@*->virtual.machine:
+ shipping.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -561,7 +561,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shipping.component~service.application#zip.archive::ansible@*->virtual.machine:
+ shipping.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -909,7 +909,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- shipping.component~software.application#apt.package::ansible@*->virtual.machine:
+ shipping.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -1131,7 +1131,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shipping.component~software.application#tar.archive::ansible@*->virtual.machine:
+ shipping.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -1350,7 +1350,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shipping.component~software.application#zip.archive::ansible@*->virtual.machine:
+ shipping.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -1572,7 +1572,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shipping.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ shipping.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -1797,7 +1797,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- shipping.component~service.application#tar.archive::terraform@*->virtual.machine:
+ shipping.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -1984,7 +1984,7 @@ node_types:
- sudo bash /tmp/stop-shipping.component.sh
- sudo bash /tmp/delete-shipping.component.sh
when: destroy
- shipping.component~service.application#zip.archive::terraform@*->virtual.machine:
+ shipping.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -2259,7 +2259,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- shipping.component~software.application#apt.archive::terraform@*->virtual.machine:
+ shipping.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -2457,7 +2457,7 @@ node_types:
- sudo bash /tmp/stop-shipping.component.sh
- sudo bash /tmp/delete-shipping.component.sh
when: destroy
- shipping.component~software.application#tar.archive::terraform@*->virtual.machine:
+ shipping.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -2641,7 +2641,7 @@ node_types:
- sudo bash /tmp/stop-shipping.component.sh
- sudo bash /tmp/delete-shipping.component.sh
when: destroy
- shipping.component~software.application#zip.archive::terraform@*->virtual.machine:
+ shipping.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
@@ -2905,7 +2905,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- shipping.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ shipping.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: shipping.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/rules.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/rules.yaml
index b7b69a380a..6f279bd251 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/rules.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/rules.yaml
@@ -7,7 +7,7 @@
ansible:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.group", and "ansible.builtin.user" tasks'
@@ -24,7 +24,7 @@ ansible:
details: '"kubernetes.core.k8s" task'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", "ansible.builtin.copy", and "ansible.builtin.systemd" tasks'
@@ -32,7 +32,7 @@ ansible:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.database
@@ -50,31 +50,35 @@ ansible:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized
details: '"community.docker.docker_container" task'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"google.cloud.gcp_sql_instance" and "google.cloud.gcp_sql_user" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt", "ansible.builtin.systemd", "ansible.builtin.copy", "ansible.builtin.lineinfile", and "community.mysql.mysql_user" tasks'
@@ -82,7 +86,7 @@ ansible:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"community.docker.docker_container" task'
@@ -104,7 +108,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -112,7 +116,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -127,7 +131,7 @@ ansible:
artifact: apt.package
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", and "ansible.builtin.copy", tasks with "when" statements'
@@ -135,7 +139,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., "service.application".
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -143,7 +147,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.
details: '"ansible.builtin.apt", "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -157,7 +161,7 @@ ansible:
terraform:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"remote-exec" provider'
@@ -174,7 +178,7 @@ terraform:
details: '"kubernetes_service_v1" resource'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -182,7 +186,7 @@ terraform:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.database
@@ -200,31 +204,35 @@ terraform:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Terraform provides a declarative module.
details: '"google_sql_database_instance" and "google_sql_user" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -232,7 +240,7 @@ terraform:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
@@ -254,7 +262,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -262,7 +270,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -277,7 +285,7 @@ terraform:
artifact: apt.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload scripts and "remote-exec" to execute scripts'
@@ -285,7 +293,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -293,7 +301,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -318,6 +326,7 @@ kubernetes:
weight: 0
reason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 1
@@ -335,13 +344,14 @@ compose:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0
- reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while declarative other technologies provide declarative modules.
+ reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker-compose manifest generated and applied
@@ -349,7 +359,7 @@ compose:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker compose manifest generated and applied
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
index 52b8da3c39..e4c0368edc 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
@@ -69,6 +69,9 @@ artifact_types:
machine.image:
derived_from: artifact
description: expects image reference in "file"
+ dbms.image:
+ derived_from: artifact
+ description: expects image reference in "file"
interface_types:
interface:
derived_from: tosca.interfaces.Root
@@ -219,8 +222,23 @@ node_types:
metadata:
vintner_normative: 'true'
vintner_abstract: 'true'
- virtual.machine:
+ machine:
derived_from: node
+ metadata:
+ vintner_normative: 'true'
+ vintner_abstract: 'true'
+ properties:
+ machine_name:
+ type: string
+ local.machine:
+ derived_from: machine
+ metadata:
+ vintner_normative: 'true'
+ capabilities:
+ host:
+ type: tosca.capabilities.Compute
+ remote.machine:
+ derived_from: machine
metadata:
vintner_normative: 'true'
properties:
@@ -257,36 +275,10 @@ node_types:
connection: ssh
host:
eval: .parent::management_address
+ virtual.machine:
+ derived_from: remote.machine
physical.machine:
- derived_from: node
- metadata:
- vintner_normative: 'true'
- properties:
- machine_name:
- type: string
- ports:
- type: list
- entry_schema:
- type: string
- flavor:
- type: string
- default: m1.medium
- network:
- type: string
- ssh_user:
- type: string
- ssh_key_name:
- type: string
- ssh_key_file:
- type: string
- attributes:
- management_address:
- type: string
- application_address:
- type: string
- capabilities:
- host:
- type: tosca.capabilities.Compute
+ derived_from: remote.machine
database:
derived_from: node
metadata:
@@ -618,7 +610,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: LoadBalancer
- ingress~ingress::ansible@virtual.machine:
+ ingress~ingress::ansible@remote.machine:
derived_from: ingress
metadata:
vintner_generated: 'true'
@@ -746,7 +738,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: LoadBalancer
- ingress~ingress::terraform@virtual.machine:
+ ingress~ingress::terraform@remote.machine:
derived_from: ingress
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
index 2fdc7164fd..d438d48ded 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
@@ -401,9 +401,6 @@ node_types:
type: string
default:
eval: .::dbms_name
- dbms_version:
- type: string
- default: '5.7'
dbms_password:
type: string
dbms_ssl_mode:
@@ -461,7 +458,7 @@ node_types:
#
################################################################
- nodejs.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -683,7 +680,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -900,7 +897,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1120,7 +1117,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1317,7 +1314,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- nodejs.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1500,7 +1497,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- nodejs.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1683,7 +1680,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- python.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ python.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -1905,7 +1902,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ python.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2122,7 +2119,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ python.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2342,7 +2339,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2539,7 +2536,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- python.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2722,7 +2719,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- python.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2905,7 +2902,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- java.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ java.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3127,7 +3124,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ java.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3344,7 +3341,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ java.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3564,7 +3561,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3761,7 +3758,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- java.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3944,7 +3941,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- java.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -4127,7 +4124,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- dotnet.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4349,7 +4346,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4566,7 +4563,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4786,7 +4783,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4983,7 +4980,7 @@ node_types:
- sudo bash /tmp/stop-dotnet.runtime.sh
- sudo bash /tmp/delete-dotnet.runtime.sh
when: destroy
- dotnet.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -5166,7 +5163,7 @@ node_types:
- sudo bash /tmp/stop-dotnet.runtime.sh
- sudo bash /tmp/delete-dotnet.runtime.sh
when: destroy
- dotnet.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -5764,7 +5761,7 @@ node_types:
- disable_on_destroy: false
project: '{{ SELF.gcp_project }}'
service: '{{ SELF.gcp_service }}'
- docker.engine~docker.engine::ansible@virtual.machine:
+ docker.engine~docker.engine::ansible@remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -5809,7 +5806,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- docker.engine~software.application#apt.package::ansible@*->virtual.machine:
+ docker.engine~software.application#apt.package::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6031,7 +6028,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~software.application#tar.archive::ansible@*->virtual.machine:
+ docker.engine~software.application#tar.archive::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6250,7 +6247,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~software.application#zip.archive::ansible@*->virtual.machine:
+ docker.engine~software.application#zip.archive::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6472,7 +6469,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~docker.engine::terraform@virtual.machine:
+ docker.engine~docker.engine::terraform@remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6520,7 +6517,7 @@ node_types:
- curl -sSL https://get.docker.com | sudo sh
- sudo groupadd -f docker
- sudo usermod -aG docker {{ SELF.os_ssh_user }}
- docker.engine~software.application#apt.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#apt.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6718,7 +6715,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- docker.engine~software.application#tar.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#tar.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6902,7 +6899,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- docker.engine~software.application#zip.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#zip.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -7086,7 +7083,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- mysql.dbms~mysql.dbms::ansible@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7131,7 +7128,7 @@ node_types:
- name: start container
community.docker.docker_container:
name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
network_mode: host
env:
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password | string }}'
@@ -7140,7 +7137,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.dbms~mysql.dbms::ansible@gcp.cloudsql:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@gcp.cloudsql:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7191,7 +7188,7 @@ node_types:
register: instance_info
google.cloud.gcp_sql_instance:
name: '{{ SELF.dbms_name }}'
- database_version: MYSQL_{{ SELF.dbms_version | replace(".", "_") }}
+ database_version: MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}
settings:
tier: db-f1-micro
availability_type: REGIONAL
@@ -7234,7 +7231,7 @@ node_types:
ansible.builtin.shell: gcloud sql instances delete {{ SELF.dbms_name }} --quiet
args:
executable: /bin/bash
- mysql.dbms~mysql.dbms::ansible@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7310,7 +7307,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
spec:
containers:
- - image: mysql:{{ SELF.dbms_version }}
+ - image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
name: '{{ SELF.dbms_name }}'
env:
- name: MYSQL_ROOT_PASSWORD
@@ -7335,7 +7332,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
type: ClusterIP
delete: exit 0
- mysql.dbms~mysql.dbms::ansible@virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7451,7 +7448,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.dbms~software.application#apt.package::ansible@*->virtual.machine:
+ mysql.dbms~software.application#apt.package::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7673,7 +7670,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~software.application#tar.archive::ansible@*->virtual.machine:
+ mysql.dbms~software.application#tar.archive::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7736,7 +7733,6 @@ node_types:
content: |-
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
- name: copy management operation
@@ -7895,7 +7891,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~software.application#zip.archive::ansible@*->virtual.machine:
+ mysql.dbms~software.application#zip.archive::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7961,7 +7957,6 @@ node_types:
content: |-
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
- name: copy management operation
@@ -8120,7 +8115,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~mysql.dbms::terraform@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8200,8 +8195,8 @@ node_types:
- MYSQL_ROOT_PASSWORD={{ SELF.dbms_password }}
docker_image:
image:
- - name: mysql:{{ SELF.dbms_version }}
- mysql.dbms~mysql.dbms::terraform@gcp.cloudsql:
+ - name: mysql:{{ ".artifacts::dbms_image::file" | eval }}
+ mysql.dbms~mysql.dbms#dbms.image::terraform@gcp.cloudsql:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8264,7 +8259,7 @@ node_types:
resource:
google_sql_database_instance:
dbms:
- - database_version: MYSQL_{{ SELF.dbms_version | replace(".", "_") }}
+ - database_version: MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}
deletion_protection: false
name: '{{ SELF.dbms_name }}'
root_password: '{{ SELF.dbms_password }}'
@@ -8285,7 +8280,7 @@ node_types:
instance: ${google_sql_database_instance.dbms.name}
name: root
password: ${google_sql_database_instance.dbms.root_password}
- mysql.dbms~mysql.dbms::terraform@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8363,7 +8358,7 @@ node_types:
spec:
- container:
- name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
env:
- name: MYSQL_ROOT_PASSWORD
value: '{{ SELF.dbms_password }}'
@@ -8382,7 +8377,7 @@ node_types:
selector:
app: '{{ SELF.dbms_name }}'
type: ClusterIP
- mysql.dbms~mysql.dbms::terraform@virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8487,7 +8482,7 @@ node_types:
remote-exec:
- inline:
- sudo bash /tmp/install-mysql-dbms.sh {{ SELF.dbms_password }} {{ SELF.application_port }}
- mysql.dbms~software.application#apt.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#apt.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8571,7 +8566,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -8688,7 +8682,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~software.application#tar.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#tar.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8749,7 +8743,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -8875,7 +8868,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~software.application#zip.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#zip.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8936,7 +8929,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -9062,7 +9054,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~mysql.dbms::kubernetes@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::kubernetes@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -9138,7 +9130,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
spec:
containers:
- - image: mysql:{{ SELF.dbms_version }}
+ - image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
name: '{{ SELF.dbms_name }}'
env:
- name: MYSQL_ROOT_PASSWORD
@@ -9171,7 +9163,7 @@ node_types:
ansible.builtin.pause:
seconds: 10
delete: exit 0
- mysql.dbms~mysql.dbms::compose@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::compose@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -9234,7 +9226,7 @@ node_types:
services:
application:
container_name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
network_mode: host
environment:
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password }}'
@@ -9250,7 +9242,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9476,7 +9468,7 @@ node_types:
ansible.builtin.shell: pkill -f "kubectl port-forward service/{{ HOST.dbms_name }}"
args:
executable: /usr/bin/bash
- mysql.database~mysql.database::ansible@mysql.dbms->virtual.machine:
+ mysql.database~mysql.database::ansible@mysql.dbms->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9534,7 +9526,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.database~mysql.database::terraform@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::terraform@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9761,7 +9753,7 @@ node_types:
privileges:
- ALL
user: ${mysql_user.user.user}
- mysql.database~mysql.database::terraform@mysql.dbms->virtual.machine:
+ mysql.database~mysql.database::terraform@mysql.dbms->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9935,7 +9927,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- mysql.database~mysql.database::compose@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::compose@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/gcp/expected.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/gcp/expected.yaml
index 6990f65cb8..a72ce7bcf1 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/gcp/expected.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/gcp/expected.yaml
@@ -213,12 +213,16 @@ topology_template:
- host: cart_dbms
cart_dbms:
- type: mysql.dbms~mysql.dbms::terraform@gcp.cloudsql
+ type: mysql.dbms~mysql.dbms#dbms.image::terraform@gcp.cloudsql
properties:
dbms_name: unfurl-technology-boutique-cart-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/kubernetes/expected.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/kubernetes/expected.yaml
index 36abbe8984..aedf7cb34d 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/kubernetes/expected.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/kubernetes/expected.yaml
@@ -222,12 +222,16 @@ topology_template:
- host: cart_dbms
cart_dbms:
- type: mysql.dbms~mysql.dbms::kubernetes@kubernetes.cluster
+ type: mysql.dbms~mysql.dbms#dbms.image::kubernetes@kubernetes.cluster
properties:
dbms_name: unfurl-technology-boutique-cart-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: kubernetes_cluster
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/expected.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/expected.yaml
index 3ec420d1e3..3a4f4dfbec 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/expected.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/expected.yaml
@@ -52,7 +52,7 @@ topology_template:
###################################################
frontend_component:
- type: frontend.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: frontend.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: frontend
application_port: 8080
@@ -83,7 +83,7 @@ topology_template:
file: milesstoetzner/boutique-frontend:v8
frontend_ingress:
- type: ingress~ingress::ansible@virtual.machine
+ type: ingress~ingress::ansible@remote.machine
requirements:
- application: frontend_component
- host: virtual_machine
@@ -95,7 +95,7 @@ topology_template:
###################################################
checkout_component:
- type: checkout.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: checkout.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: checkout
application_port: 7003
@@ -129,7 +129,7 @@ topology_template:
###################################################
email_component:
- type: email.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: email.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: email
application_port: 7005
@@ -149,7 +149,7 @@ topology_template:
###################################################
payment_component:
- type: payment.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: payment.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: payment
application_port: 7006
@@ -171,7 +171,7 @@ topology_template:
###################################################
currency_component:
- type: currency.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: currency.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: currency
application_port: 7004
@@ -191,7 +191,7 @@ topology_template:
###################################################
shipping_component:
- type: shipping.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: shipping.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: shipping
application_port: 7009
@@ -211,7 +211,7 @@ topology_template:
###################################################
cart_component:
- type: cart.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: cart.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: cart
application_port: 7070
@@ -233,7 +233,7 @@ topology_template:
file: milesstoetzner/boutique-cart:v8
cart_database:
- type: mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->virtual.machine
+ type: mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->remote.machine
properties:
database_name: cart
database_user: cart
@@ -242,12 +242,16 @@ topology_template:
- host: cart_dbms
cart_dbms:
- type: mysql.dbms~mysql.dbms::compose@docker.engine->virtual.machine
+ type: mysql.dbms~mysql.dbms#dbms.image::compose@docker.engine->remote.machine
properties:
dbms_name: unfurl-technology-boutique-cart-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: docker_engine
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
@@ -256,7 +260,7 @@ topology_template:
###################################################
product_component:
- type: product.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: product.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: product
application_port: 7007
@@ -276,7 +280,7 @@ topology_template:
###################################################
recommendation_component:
- type: recommendation.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: recommendation.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: recommendation
application_port: 7008
@@ -298,7 +302,7 @@ topology_template:
###################################################
advertisement_component:
- type: advertisement.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: advertisement.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: advertisement
application_port: 7000
@@ -318,12 +322,12 @@ topology_template:
###################################################
docker_engine:
- type: docker.engine~docker.engine::ansible@virtual.machine
+ type: docker.engine~docker.engine::ansible@remote.machine
requirements:
- host: virtual_machine
node_agent:
- type: node.agent~service.application#tar.archive::ansible@*->virtual.machine
+ type: node.agent~service.application#tar.archive::ansible@*->remote.machine
properties:
application_name: node_exporter
application_port: 9100
@@ -339,7 +343,7 @@ topology_template:
- '--strip-components=1'
promtail_agent:
- type: promtail.agent~software.application#apt.package::ansible@*->virtual.machine
+ type: promtail.agent~software.application#apt.package::ansible@*->remote.machine
properties:
application_name: promtail
requirements:
@@ -354,7 +358,7 @@ topology_template:
source: https://apt.grafana.com stable main
falco_agent:
- type: falco.agent~software.application#apt.package::ansible@*->virtual.machine
+ type: falco.agent~software.application#apt.package::ansible@*->remote.machine
properties:
application_name: falco
requirements:
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/test.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/test.yaml
index b22598fca6..616f52519b 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/test.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-large/test.yaml
@@ -2,7 +2,7 @@ merge:
topology_template:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/expected.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/expected.yaml
index ce576c341f..57d339a9b8 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/expected.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/expected.yaml
@@ -52,7 +52,7 @@ topology_template:
###################################################
frontend_component:
- type: frontend.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: frontend.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: frontend
application_port: 8080
@@ -83,7 +83,7 @@ topology_template:
file: milesstoetzner/boutique-frontend:v8
frontend_ingress:
- type: ingress~ingress::ansible@virtual.machine
+ type: ingress~ingress::ansible@remote.machine
requirements:
- application: frontend_component
- host: virtual_machine
@@ -95,7 +95,7 @@ topology_template:
###################################################
checkout_component:
- type: checkout.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: checkout.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: checkout
application_port: 7003
@@ -129,7 +129,7 @@ topology_template:
###################################################
email_component:
- type: email.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: email.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: email
application_port: 7005
@@ -149,7 +149,7 @@ topology_template:
###################################################
payment_component:
- type: payment.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: payment.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: payment
application_port: 7006
@@ -171,7 +171,7 @@ topology_template:
###################################################
currency_component:
- type: currency.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: currency.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: currency
application_port: 7004
@@ -191,7 +191,7 @@ topology_template:
###################################################
shipping_component:
- type: shipping.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: shipping.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: shipping
application_port: 7009
@@ -211,7 +211,7 @@ topology_template:
###################################################
cart_component:
- type: cart.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: cart.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: cart
application_port: 7070
@@ -233,7 +233,7 @@ topology_template:
file: milesstoetzner/boutique-cart:v8
cart_database:
- type: mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->virtual.machine
+ type: mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->remote.machine
properties:
database_name: cart
database_user: cart
@@ -242,12 +242,16 @@ topology_template:
- host: cart_dbms
cart_dbms:
- type: mysql.dbms~mysql.dbms::compose@docker.engine->virtual.machine
+ type: mysql.dbms~mysql.dbms#dbms.image::compose@docker.engine->remote.machine
properties:
dbms_name: unfurl-technology-boutique-cart-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: docker_engine
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
@@ -256,7 +260,7 @@ topology_template:
###################################################
product_component:
- type: product.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: product.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: product
application_port: 7007
@@ -276,7 +280,7 @@ topology_template:
###################################################
recommendation_component:
- type: recommendation.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: recommendation.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: recommendation
application_port: 7008
@@ -298,7 +302,7 @@ topology_template:
###################################################
advertisement_component:
- type: advertisement.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: advertisement.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: advertisement
application_port: 7000
@@ -318,12 +322,12 @@ topology_template:
###################################################
docker_engine:
- type: docker.engine~docker.engine::ansible@virtual.machine
+ type: docker.engine~docker.engine::ansible@remote.machine
requirements:
- host: virtual_machine
node_agent:
- type: node.agent~service.application#tar.archive::ansible@*->virtual.machine
+ type: node.agent~service.application#tar.archive::ansible@*->remote.machine
properties:
application_name: node_exporter
application_port: 9100
@@ -339,7 +343,7 @@ topology_template:
- '--strip-components=1'
promtail_agent:
- type: promtail.agent~software.application#apt.package::ansible@*->virtual.machine
+ type: promtail.agent~software.application#apt.package::ansible@*->remote.machine
properties:
application_name: promtail
requirements:
@@ -354,7 +358,7 @@ topology_template:
source: https://apt.grafana.com stable main
falco_agent:
- type: falco.agent~software.application#apt.package::ansible@*->virtual.machine
+ type: falco.agent~software.application#apt.package::ansible@*->remote.machine
properties:
application_name: falco
requirements:
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/test.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/test.yaml
index b22598fca6..616f52519b 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/test.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/tests/os-medium/test.yaml
@@ -2,7 +2,7 @@ merge:
topology_template:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-automated/variable-service-template.yaml b/examples/unfurl-technology---boutique---plus-maintenance-automated/variable-service-template.yaml
index f18550f51c..acb1227bf0 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-automated/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-automated/variable-service-template.yaml
@@ -351,6 +351,10 @@ topology_template:
- host: docker_engine
- host: kubernetes_cluster
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-large/test.yaml b/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-large/test.yaml
index f3f81875ce..a9193da2cb 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-large/test.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-large/test.yaml
@@ -5,7 +5,7 @@ merge:
topology_template:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-medium/test.yaml b/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-medium/test.yaml
index c5a5d93579..0b41f2d63c 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-medium/test.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-manual/tests/os-medium/test.yaml
@@ -5,7 +5,7 @@ merge:
topology_template:
node_templates:
analytics_component:
- type: analytics.component~service.application#docker.image::compose@docker.engine->virtual.machine
+ type: analytics.component~service.application#docker.image::compose@docker.engine->remote.machine
properties:
application_name: analytics
application_port: 7001
diff --git a/examples/unfurl-technology---boutique---plus-maintenance-manual/variable-service-template.yaml b/examples/unfurl-technology---boutique---plus-maintenance-manual/variable-service-template.yaml
index 52ee9f0b58..a1b7d5261d 100644
--- a/examples/unfurl-technology---boutique---plus-maintenance-manual/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---plus-maintenance-manual/variable-service-template.yaml
@@ -420,6 +420,10 @@ topology_template:
- host: docker_engine
- host: kubernetes_cluster
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-original-automated/variable-service-template.yaml b/examples/unfurl-technology---boutique---plus-original-automated/variable-service-template.yaml
index d9a0489884..7ce6edf64c 100644
--- a/examples/unfurl-technology---boutique---plus-original-automated/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---plus-original-automated/variable-service-template.yaml
@@ -351,6 +351,10 @@ topology_template:
- host: docker_engine
- host: kubernetes_cluster
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---boutique---plus-original-manual/variable-service-template.yaml b/examples/unfurl-technology---boutique---plus-original-manual/variable-service-template.yaml
index dfa4b301d9..0cc76fcda3 100644
--- a/examples/unfurl-technology---boutique---plus-original-manual/variable-service-template.yaml
+++ b/examples/unfurl-technology---boutique---plus-original-manual/variable-service-template.yaml
@@ -378,6 +378,10 @@ topology_template:
requirements:
- host: docker_engine
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---baseline-maintenance/variable-service-template.yaml b/examples/unfurl-technology---shop---baseline-maintenance/variable-service-template.yaml
index 9e605bd65f..b1b66c65a4 100644
--- a/examples/unfurl-technology---shop---baseline-maintenance/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---baseline-maintenance/variable-service-template.yaml
@@ -257,6 +257,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: virtual_machine
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
mysql_dbms_terraform:
type: mysql.dbms
@@ -266,6 +270,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
mysql_dbms_kubernetes:
type: mysql.dbms
@@ -275,6 +283,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: kubernetes_cluster
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---baseline-original/variable-service-template.yaml b/examples/unfurl-technology---shop---baseline-original/variable-service-template.yaml
index 834ac88dee..600b1cfbaf 100644
--- a/examples/unfurl-technology---shop---baseline-original/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---baseline-original/variable-service-template.yaml
@@ -161,6 +161,7 @@ topology_template:
- database_password: {get_input: database_password}
requirements:
- host: mysql_dbms_terraform
+ artifacts:
mysql_dbms_ansible:
type: mysql.dbms
@@ -170,6 +171,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: virtual_machine
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
mysql_dbms_terraform:
type: mysql.dbms
@@ -179,6 +184,10 @@ topology_template:
- dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/rules.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/rules.yaml
index 668a200aa5..6f279bd251 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/rules.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/rules.yaml
@@ -7,7 +7,7 @@
ansible:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.group", and "ansible.builtin.user" tasks'
@@ -24,7 +24,7 @@ ansible:
details: '"kubernetes.core.k8s" task'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", "ansible.builtin.copy", and "ansible.builtin.systemd" tasks'
@@ -32,7 +32,7 @@ ansible:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.database
@@ -50,31 +50,35 @@ ansible:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized
details: '"community.docker.docker_container" task'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"google.cloud.gcp_sql_instance" and "google.cloud.gcp_sql_user" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.apt", "ansible.builtin.systemd", "ansible.builtin.copy", "ansible.builtin.lineinfile", and "community.mysql.mysql_user" tasks'
@@ -82,7 +86,7 @@ ansible:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"community.docker.docker_container" task'
@@ -104,7 +108,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -112,7 +116,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible. Special integration for systemd.
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", "ansible.builtin.shell", and "ansible.builtin.systemd" tasks with "when" statements'
@@ -127,7 +131,7 @@ ansible:
artifact: apt.package
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 1
reason: Primary use case due to the specialization of Ansible.
details: '"ansible.builtin.shell", "ansible.builtin.apt_key", "ansible.builtin.apt_repository", "ansible.builtin.apt", and "ansible.builtin.copy", tasks with "when" statements'
@@ -135,7 +139,7 @@ ansible:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., "service.application".
details: '"ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -143,7 +147,7 @@ ansible:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.
details: '"ansible.builtin.apt", "ansible.builtin.file", "ansible.builtin.unarchive", "ansible.builtin.copy", "ansible.builtin.fail", and "ansible.builtin.shell" tasks with "when" statements'
@@ -157,7 +161,7 @@ ansible:
terraform:
- component: docker.engine
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"remote-exec" provider'
@@ -174,7 +178,7 @@ terraform:
details: '"kubernetes_service_v1" resource'
- component: ingress
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -182,7 +186,7 @@ terraform:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.database
@@ -200,31 +204,35 @@ terraform:
- component: mysql.database
hosting:
- mysql.dbms
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- gcp.cloudsql
weight: 1
reason: Terraform provides a declarative module.
details: '"google_sql_database_instance" and "google_sql_user" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"terraform_data" resource with an "ssh" connection to the virtual machine to copy the install script using the "file" provisioner on the virtual machine and to execute the script using the "remote-exec" provisioner'
@@ -232,7 +240,7 @@ terraform:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0.5
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
@@ -254,7 +262,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -262,7 +270,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -277,7 +285,7 @@ terraform:
artifact: apt.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload scripts and "remote-exec" to execute scripts'
@@ -285,7 +293,7 @@ terraform:
artifact: tar.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -293,7 +301,7 @@ terraform:
artifact: zip.archive
hosting:
- '*'
- - virtual.machine
+ - remote.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
@@ -318,6 +326,7 @@ kubernetes:
weight: 0
reason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- kubernetes.cluster
weight: 1
@@ -335,13 +344,14 @@ compose:
hosting:
- mysql.dbms
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 0
reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.
- component: mysql.dbms
+ artifact: dbms.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker-compose manifest generated and applied
@@ -349,7 +359,7 @@ compose:
artifact: docker.image
hosting:
- docker.engine
- - virtual.machine
+ - remote.machine
weight: 1
reason: Docker is the underlying technology.
details: docker compose manifest generated and applied
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/shop.component.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/shop.component.yaml
index 78b67b04a1..1b55d0ef12 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/shop.component.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/shop.component.yaml
@@ -75,7 +75,7 @@ node_types:
#
################################################################
- shop.component~service.application#docker.image::ansible@docker.engine->virtual.machine:
+ shop.component~service.application#docker.image::ansible@docker.engine->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -364,7 +364,7 @@ node_types:
app: '{{ SELF.application_name }}'
type: ClusterIP
delete: exit 0
- shop.component~service.application#tar.archive::ansible@*->virtual.machine:
+ shop.component~service.application#tar.archive::ansible@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -618,7 +618,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shop.component~service.application#zip.archive::ansible@*->virtual.machine:
+ shop.component~service.application#zip.archive::ansible@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -980,7 +980,7 @@ node_types:
ansible.builtin.shell: gcloud app services delete {{ SELF.application_name }} --quiet
args:
executable: /bin/bash
- shop.component~software.application#apt.package::ansible@*->virtual.machine:
+ shop.component~software.application#apt.package::ansible@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -1202,7 +1202,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shop.component~software.application#tar.archive::ansible@*->virtual.machine:
+ shop.component~software.application#tar.archive::ansible@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -1428,7 +1428,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shop.component~software.application#zip.archive::ansible@*->virtual.machine:
+ shop.component~software.application#zip.archive::ansible@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -1657,7 +1657,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- shop.component~service.application#docker.image::terraform@docker.engine->virtual.machine:
+ shop.component~service.application#docker.image::terraform@docker.engine->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -1917,7 +1917,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: ClusterIP
- shop.component~service.application#tar.archive::terraform@*->virtual.machine:
+ shop.component~service.application#tar.archive::terraform@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -2111,7 +2111,7 @@ node_types:
- sudo bash /tmp/stop-shop.component.sh
- sudo bash /tmp/delete-shop.component.sh
when: destroy
- shop.component~service.application#zip.archive::terraform@*->virtual.machine:
+ shop.component~service.application#zip.archive::terraform@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -2400,7 +2400,7 @@ node_types:
- bucket: ${google_storage_bucket.bucket.name}
name: object.zip
source: '{{ "project" | get_dir }}/ensemble/{{ ".artifacts::zip_archive::file" | eval }}'
- shop.component~software.application#apt.archive::terraform@*->virtual.machine:
+ shop.component~software.application#apt.archive::terraform@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -2605,7 +2605,7 @@ node_types:
- sudo bash /tmp/stop-shop.component.sh
- sudo bash /tmp/delete-shop.component.sh
when: destroy
- shop.component~software.application#tar.archive::terraform@*->virtual.machine:
+ shop.component~software.application#tar.archive::terraform@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -2796,7 +2796,7 @@ node_types:
- sudo bash /tmp/stop-shop.component.sh
- sudo bash /tmp/delete-shop.component.sh
when: destroy
- shop.component~software.application#zip.archive::terraform@*->virtual.machine:
+ shop.component~software.application#zip.archive::terraform@*->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
@@ -3081,7 +3081,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- shop.component~service.application#docker.image::compose@docker.engine->virtual.machine:
+ shop.component~service.application#docker.image::compose@docker.engine->remote.machine:
derived_from: shop.component
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
index 52b8da3c39..e4c0368edc 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-core.yaml
@@ -69,6 +69,9 @@ artifact_types:
machine.image:
derived_from: artifact
description: expects image reference in "file"
+ dbms.image:
+ derived_from: artifact
+ description: expects image reference in "file"
interface_types:
interface:
derived_from: tosca.interfaces.Root
@@ -219,8 +222,23 @@ node_types:
metadata:
vintner_normative: 'true'
vintner_abstract: 'true'
- virtual.machine:
+ machine:
derived_from: node
+ metadata:
+ vintner_normative: 'true'
+ vintner_abstract: 'true'
+ properties:
+ machine_name:
+ type: string
+ local.machine:
+ derived_from: machine
+ metadata:
+ vintner_normative: 'true'
+ capabilities:
+ host:
+ type: tosca.capabilities.Compute
+ remote.machine:
+ derived_from: machine
metadata:
vintner_normative: 'true'
properties:
@@ -257,36 +275,10 @@ node_types:
connection: ssh
host:
eval: .parent::management_address
+ virtual.machine:
+ derived_from: remote.machine
physical.machine:
- derived_from: node
- metadata:
- vintner_normative: 'true'
- properties:
- machine_name:
- type: string
- ports:
- type: list
- entry_schema:
- type: string
- flavor:
- type: string
- default: m1.medium
- network:
- type: string
- ssh_user:
- type: string
- ssh_key_name:
- type: string
- ssh_key_file:
- type: string
- attributes:
- management_address:
- type: string
- application_address:
- type: string
- capabilities:
- host:
- type: tosca.capabilities.Compute
+ derived_from: remote.machine
database:
derived_from: node
metadata:
@@ -618,7 +610,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: LoadBalancer
- ingress~ingress::ansible@virtual.machine:
+ ingress~ingress::ansible@remote.machine:
derived_from: ingress
metadata:
vintner_generated: 'true'
@@ -746,7 +738,7 @@ node_types:
selector:
app: '{{ SELF.application_name }}'
type: LoadBalancer
- ingress~ingress::terraform@virtual.machine:
+ ingress~ingress::terraform@remote.machine:
derived_from: ingress
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
index 2fdc7164fd..d438d48ded 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/lib/tosca-vintner-profile-extended.yaml
@@ -401,9 +401,6 @@ node_types:
type: string
default:
eval: .::dbms_name
- dbms_version:
- type: string
- default: '5.7'
dbms_password:
type: string
dbms_ssl_mode:
@@ -461,7 +458,7 @@ node_types:
#
################################################################
- nodejs.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -683,7 +680,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -900,7 +897,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ nodejs.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1120,7 +1117,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- nodejs.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1317,7 +1314,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- nodejs.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1500,7 +1497,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- nodejs.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ nodejs.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: nodejs.runtime
metadata:
vintner_generated: 'true'
@@ -1683,7 +1680,7 @@ node_types:
- sudo bash /tmp/stop-nodejs.runtime.sh
- sudo bash /tmp/delete-nodejs.runtime.sh
when: destroy
- python.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ python.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -1905,7 +1902,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ python.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2122,7 +2119,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ python.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2342,7 +2339,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- python.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2539,7 +2536,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- python.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2722,7 +2719,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- python.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ python.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: python.runtime
metadata:
vintner_generated: 'true'
@@ -2905,7 +2902,7 @@ node_types:
- sudo bash /tmp/stop-python.runtime.sh
- sudo bash /tmp/delete-python.runtime.sh
when: destroy
- java.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ java.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3127,7 +3124,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ java.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3344,7 +3341,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ java.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3564,7 +3561,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- java.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3761,7 +3758,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- java.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -3944,7 +3941,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- java.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ java.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: java.runtime
metadata:
vintner_generated: 'true'
@@ -4127,7 +4124,7 @@ node_types:
- sudo bash /tmp/stop-java.runtime.sh
- sudo bash /tmp/delete-java.runtime.sh
when: destroy
- dotnet.runtime~software.application#apt.package::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#apt.package::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4349,7 +4346,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#tar.archive::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#tar.archive::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4566,7 +4563,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#zip.archive::ansible@*->virtual.machine:
+ dotnet.runtime~software.application#zip.archive::ansible@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4786,7 +4783,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- dotnet.runtime~software.application#apt.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#apt.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -4983,7 +4980,7 @@ node_types:
- sudo bash /tmp/stop-dotnet.runtime.sh
- sudo bash /tmp/delete-dotnet.runtime.sh
when: destroy
- dotnet.runtime~software.application#tar.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#tar.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -5166,7 +5163,7 @@ node_types:
- sudo bash /tmp/stop-dotnet.runtime.sh
- sudo bash /tmp/delete-dotnet.runtime.sh
when: destroy
- dotnet.runtime~software.application#zip.archive::terraform@*->virtual.machine:
+ dotnet.runtime~software.application#zip.archive::terraform@*->remote.machine:
derived_from: dotnet.runtime
metadata:
vintner_generated: 'true'
@@ -5764,7 +5761,7 @@ node_types:
- disable_on_destroy: false
project: '{{ SELF.gcp_project }}'
service: '{{ SELF.gcp_service }}'
- docker.engine~docker.engine::ansible@virtual.machine:
+ docker.engine~docker.engine::ansible@remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -5809,7 +5806,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- docker.engine~software.application#apt.package::ansible@*->virtual.machine:
+ docker.engine~software.application#apt.package::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6031,7 +6028,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~software.application#tar.archive::ansible@*->virtual.machine:
+ docker.engine~software.application#tar.archive::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6250,7 +6247,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~software.application#zip.archive::ansible@*->virtual.machine:
+ docker.engine~software.application#zip.archive::ansible@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6472,7 +6469,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- docker.engine~docker.engine::terraform@virtual.machine:
+ docker.engine~docker.engine::terraform@remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6520,7 +6517,7 @@ node_types:
- curl -sSL https://get.docker.com | sudo sh
- sudo groupadd -f docker
- sudo usermod -aG docker {{ SELF.os_ssh_user }}
- docker.engine~software.application#apt.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#apt.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6718,7 +6715,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- docker.engine~software.application#tar.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#tar.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -6902,7 +6899,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- docker.engine~software.application#zip.archive::terraform@*->virtual.machine:
+ docker.engine~software.application#zip.archive::terraform@*->remote.machine:
derived_from: docker.engine
metadata:
vintner_generated: 'true'
@@ -7086,7 +7083,7 @@ node_types:
- sudo bash /tmp/stop-docker.engine.sh
- sudo bash /tmp/delete-docker.engine.sh
when: destroy
- mysql.dbms~mysql.dbms::ansible@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7131,7 +7128,7 @@ node_types:
- name: start container
community.docker.docker_container:
name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
network_mode: host
env:
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password | string }}'
@@ -7140,7 +7137,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.dbms~mysql.dbms::ansible@gcp.cloudsql:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@gcp.cloudsql:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7191,7 +7188,7 @@ node_types:
register: instance_info
google.cloud.gcp_sql_instance:
name: '{{ SELF.dbms_name }}'
- database_version: MYSQL_{{ SELF.dbms_version | replace(".", "_") }}
+ database_version: MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}
settings:
tier: db-f1-micro
availability_type: REGIONAL
@@ -7234,7 +7231,7 @@ node_types:
ansible.builtin.shell: gcloud sql instances delete {{ SELF.dbms_name }} --quiet
args:
executable: /bin/bash
- mysql.dbms~mysql.dbms::ansible@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7310,7 +7307,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
spec:
containers:
- - image: mysql:{{ SELF.dbms_version }}
+ - image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
name: '{{ SELF.dbms_name }}'
env:
- name: MYSQL_ROOT_PASSWORD
@@ -7335,7 +7332,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
type: ClusterIP
delete: exit 0
- mysql.dbms~mysql.dbms::ansible@virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::ansible@remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7451,7 +7448,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.dbms~software.application#apt.package::ansible@*->virtual.machine:
+ mysql.dbms~software.application#apt.package::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7673,7 +7670,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~software.application#tar.archive::ansible@*->virtual.machine:
+ mysql.dbms~software.application#tar.archive::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7736,7 +7733,6 @@ node_types:
content: |-
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
- name: copy management operation
@@ -7895,7 +7891,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~software.application#zip.archive::ansible@*->virtual.machine:
+ mysql.dbms~software.application#zip.archive::ansible@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -7961,7 +7957,6 @@ node_types:
content: |-
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
- name: copy management operation
@@ -8120,7 +8115,7 @@ node_types:
- '--become'
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
- mysql.dbms~mysql.dbms::terraform@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8200,8 +8195,8 @@ node_types:
- MYSQL_ROOT_PASSWORD={{ SELF.dbms_password }}
docker_image:
image:
- - name: mysql:{{ SELF.dbms_version }}
- mysql.dbms~mysql.dbms::terraform@gcp.cloudsql:
+ - name: mysql:{{ ".artifacts::dbms_image::file" | eval }}
+ mysql.dbms~mysql.dbms#dbms.image::terraform@gcp.cloudsql:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8264,7 +8259,7 @@ node_types:
resource:
google_sql_database_instance:
dbms:
- - database_version: MYSQL_{{ SELF.dbms_version | replace(".", "_") }}
+ - database_version: MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}
deletion_protection: false
name: '{{ SELF.dbms_name }}'
root_password: '{{ SELF.dbms_password }}'
@@ -8285,7 +8280,7 @@ node_types:
instance: ${google_sql_database_instance.dbms.name}
name: root
password: ${google_sql_database_instance.dbms.root_password}
- mysql.dbms~mysql.dbms::terraform@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8363,7 +8358,7 @@ node_types:
spec:
- container:
- name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
env:
- name: MYSQL_ROOT_PASSWORD
value: '{{ SELF.dbms_password }}'
@@ -8382,7 +8377,7 @@ node_types:
selector:
app: '{{ SELF.dbms_name }}'
type: ClusterIP
- mysql.dbms~mysql.dbms::terraform@virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::terraform@remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8487,7 +8482,7 @@ node_types:
remote-exec:
- inline:
- sudo bash /tmp/install-mysql-dbms.sh {{ SELF.dbms_password }} {{ SELF.application_port }}
- mysql.dbms~software.application#apt.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#apt.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8571,7 +8566,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -8688,7 +8682,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~software.application#tar.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#tar.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8749,7 +8743,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -8875,7 +8868,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~software.application#zip.archive::terraform@*->virtual.machine:
+ mysql.dbms~software.application#zip.archive::terraform@*->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -8936,7 +8929,6 @@ node_types:
cat < {{ SELF.application_directory }}/.env
DBMS_NAME="{{ SELF.dbms_name }}"
APPLICATION_NAME="{{ SELF.application_name }}"
- DBMS_VERSION="{{ SELF.dbms_version }}"
DBMS_PASSWORD="{{ SELF.dbms_password }}"
DBMS_SSL_MODE="{{ SELF.dbms_ssl_mode }}"
EOF>>
@@ -9062,7 +9054,7 @@ node_types:
- sudo bash /tmp/stop-mysql.dbms.sh
- sudo bash /tmp/delete-mysql.dbms.sh
when: destroy
- mysql.dbms~mysql.dbms::kubernetes@kubernetes.cluster:
+ mysql.dbms~mysql.dbms#dbms.image::kubernetes@kubernetes.cluster:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -9138,7 +9130,7 @@ node_types:
app: '{{ SELF.dbms_name }}'
spec:
containers:
- - image: mysql:{{ SELF.dbms_version }}
+ - image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
name: '{{ SELF.dbms_name }}'
env:
- name: MYSQL_ROOT_PASSWORD
@@ -9171,7 +9163,7 @@ node_types:
ansible.builtin.pause:
seconds: 10
delete: exit 0
- mysql.dbms~mysql.dbms::compose@docker.engine->virtual.machine:
+ mysql.dbms~mysql.dbms#dbms.image::compose@docker.engine->remote.machine:
derived_from: mysql.dbms
metadata:
vintner_generated: 'true'
@@ -9234,7 +9226,7 @@ node_types:
services:
application:
container_name: '{{ SELF.dbms_name }}'
- image: mysql:{{ SELF.dbms_version }}
+ image: mysql:{{ ".artifacts::dbms_image::file" | eval }}
network_mode: host
environment:
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password }}'
@@ -9250,7 +9242,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::ansible@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9476,7 +9468,7 @@ node_types:
ansible.builtin.shell: pkill -f "kubectl port-forward service/{{ HOST.dbms_name }}"
args:
executable: /usr/bin/bash
- mysql.database~mysql.database::ansible@mysql.dbms->virtual.machine:
+ mysql.database~mysql.database::ansible@mysql.dbms->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9534,7 +9526,7 @@ node_types:
- '--key-file={{ SELF.os_ssh_key_file }}'
- '--user={{ SELF.os_ssh_user }}'
delete: exit 0
- mysql.database~mysql.database::terraform@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::terraform@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9761,7 +9753,7 @@ node_types:
privileges:
- ALL
user: ${mysql_user.user.user}
- mysql.database~mysql.database::terraform@mysql.dbms->virtual.machine:
+ mysql.database~mysql.database::terraform@mysql.dbms->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
@@ -9935,7 +9927,7 @@ node_types:
args:
executable: /usr/bin/bash
delete: exit 0
- mysql.database~mysql.database::compose@mysql.dbms->docker.engine->virtual.machine:
+ mysql.database~mysql.database::compose@mysql.dbms->docker.engine->remote.machine:
derived_from: mysql.database
metadata:
vintner_generated: 'true'
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/elastic/expected.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/elastic/expected.yaml
index 358a43d2f6..de7586f390 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/elastic/expected.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/elastic/expected.yaml
@@ -63,12 +63,16 @@ topology_template:
- host: mysql_dbms
mysql_dbms:
- type: mysql.dbms~mysql.dbms::terraform@gcp.cloudsql
+ type: mysql.dbms~mysql.dbms#dbms.image::terraform@gcp.cloudsql
properties:
dbms_name: unfurl-technology-shop-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: gcp_cloudsql
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/kubernetes/expected.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/kubernetes/expected.yaml
index 5bd29fb2bf..e79e12d9f6 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/kubernetes/expected.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/kubernetes/expected.yaml
@@ -72,12 +72,16 @@ topology_template:
- host: mysql_dbms
mysql_dbms:
- type: mysql.dbms~mysql.dbms::kubernetes@kubernetes.cluster
+ type: mysql.dbms~mysql.dbms#dbms.image::kubernetes@kubernetes.cluster
properties:
dbms_name: unfurl-technology-shop-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: kubernetes_cluster
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static-large/expected.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static-large/expected.yaml
index 882bf6eec9..e9705e44a8 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static-large/expected.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static-large/expected.yaml
@@ -52,7 +52,7 @@ topology_template:
###################################################
shop:
- type: shop.component~service.application#zip.archive::ansible@*->virtual.machine
+ type: shop.component~service.application#zip.archive::ansible@*->remote.machine
properties:
application_name: unfurl-technology-shop
application_port: 3000
@@ -72,7 +72,7 @@ topology_template:
file: files/shop.source.zip
shop_ingress:
- type: ingress~ingress::ansible@virtual.machine
+ type: ingress~ingress::ansible@remote.machine
requirements:
- application: shop
- host: virtual_machine
@@ -84,7 +84,7 @@ topology_template:
###################################################
database:
- type: mysql.database~mysql.database::ansible@mysql.dbms->virtual.machine
+ type: mysql.database~mysql.database::ansible@mysql.dbms->remote.machine
properties:
database_name: shop
database_user: shop
@@ -93,12 +93,16 @@ topology_template:
- host: mysql_dbms
mysql_dbms:
- type: mysql.dbms~mysql.dbms::ansible@virtual.machine
+ type: mysql.dbms~mysql.dbms#dbms.image::ansible@remote.machine
properties:
dbms_name: unfurl-technology-shop-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: virtual_machine
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
@@ -107,7 +111,7 @@ topology_template:
###################################################
nodejs_runtime:
- type: nodejs.runtime~software.application#apt.package::ansible@*->virtual.machine
+ type: nodejs.runtime~software.application#apt.package::ansible@*->remote.machine
requirements:
- host: virtual_machine
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static/expected.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static/expected.yaml
index 96ff4e8fee..d5f55cd954 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static/expected.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/tests/static/expected.yaml
@@ -52,7 +52,7 @@ topology_template:
###################################################
shop:
- type: shop.component~service.application#zip.archive::ansible@*->virtual.machine
+ type: shop.component~service.application#zip.archive::ansible@*->remote.machine
properties:
application_name: unfurl-technology-shop
application_port: 3000
@@ -72,7 +72,7 @@ topology_template:
file: files/shop.source.zip
shop_ingress:
- type: ingress~ingress::ansible@virtual.machine
+ type: ingress~ingress::ansible@remote.machine
requirements:
- application: shop
- host: virtual_machine
@@ -84,7 +84,7 @@ topology_template:
###################################################
database:
- type: mysql.database~mysql.database::ansible@mysql.dbms->virtual.machine
+ type: mysql.database~mysql.database::ansible@mysql.dbms->remote.machine
properties:
database_name: shop
database_user: shop
@@ -93,12 +93,16 @@ topology_template:
- host: mysql_dbms
mysql_dbms:
- type: mysql.dbms~mysql.dbms::ansible@virtual.machine
+ type: mysql.dbms~mysql.dbms#dbms.image::ansible@remote.machine
properties:
dbms_name: unfurl-technology-shop-dbms
dbms_password: {get_input: dbms_password}
requirements:
- host: virtual_machine
+ artifacts:
+ dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
@@ -107,7 +111,7 @@ topology_template:
###################################################
nodejs_runtime:
- type: nodejs.runtime~software.application#apt.package::ansible@*->virtual.machine
+ type: nodejs.runtime~software.application#apt.package::ansible@*->remote.machine
requirements:
- host: virtual_machine
diff --git a/examples/unfurl-technology---shop---plus-maintenance-automated/variable-service-template.yaml b/examples/unfurl-technology---shop---plus-maintenance-automated/variable-service-template.yaml
index d29feed969..9287ccc499 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-automated/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-automated/variable-service-template.yaml
@@ -152,6 +152,10 @@ topology_template:
- host: virtual_machine
- host: kubernetes_cluster
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-maintenance-manual/variable-service-template.yaml b/examples/unfurl-technology---shop---plus-maintenance-manual/variable-service-template.yaml
index d1fa42b669..208053aa70 100644
--- a/examples/unfurl-technology---shop---plus-maintenance-manual/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---plus-maintenance-manual/variable-service-template.yaml
@@ -181,6 +181,10 @@ topology_template:
- host: virtual_machine
- host: kubernetes_cluster
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-original-automated/variable-service-template.yaml b/examples/unfurl-technology---shop---plus-original-automated/variable-service-template.yaml
index 3683693ea2..318ada7423 100644
--- a/examples/unfurl-technology---shop---plus-original-automated/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---plus-original-automated/variable-service-template.yaml
@@ -124,6 +124,10 @@ topology_template:
requirements:
- host: virtual_machine
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/examples/unfurl-technology---shop---plus-original-manual/variable-service-template.yaml b/examples/unfurl-technology---shop---plus-original-manual/variable-service-template.yaml
index c17196bbb8..12857dcf76 100644
--- a/examples/unfurl-technology---shop---plus-original-manual/variable-service-template.yaml
+++ b/examples/unfurl-technology---shop---plus-original-manual/variable-service-template.yaml
@@ -141,6 +141,10 @@ topology_template:
requirements:
- host: virtual_machine
- host: gcp_cloudsql
+ artifacts:
+ - dbms_image:
+ type: dbms.image
+ file: 5.7
###################################################
#
diff --git a/src/normative/dialects/unfurl/core/nodes.ts b/src/normative/dialects/unfurl/core/nodes.ts
index 4d9ac001b6..e4673e7986 100644
--- a/src/normative/dialects/unfurl/core/nodes.ts
+++ b/src/normative/dialects/unfurl/core/nodes.ts
@@ -89,7 +89,7 @@ const nodes: RecursivePartial = {
},
},
},
- 'virtual.machine': {
+ 'remote.machine': {
capabilities: {
...UnfurlSSHEndpointCapability(),
},
diff --git a/src/normative/types/core/artifacts.ts b/src/normative/types/core/artifacts.ts
index 1dd3cb0254..bcfce54c46 100644
--- a/src/normative/types/core/artifacts.ts
+++ b/src/normative/types/core/artifacts.ts
@@ -76,6 +76,13 @@ const artifacts: ArtifactTypeMap = {
...MetadataNormative(),
},
},
+ 'dbms.image': {
+ derived_from: 'artifact',
+ description: 'expects image reference in "file"',
+ metadata: {
+ ...MetadataNormative(),
+ },
+ },
}
export default artifacts
diff --git a/src/normative/types/core/nodes.ts b/src/normative/types/core/nodes.ts
index d262fc2e8d..87ab3080c6 100644
--- a/src/normative/types/core/nodes.ts
+++ b/src/normative/types/core/nodes.ts
@@ -114,45 +114,22 @@ const nodes: NodeTypeMap = {
...MetadataAbstract(),
},
},
- 'virtual.machine': {
+ machine: {
derived_from: 'node',
metadata: {
...MetadataNormative(),
+ ...MetadataAbstract(),
},
properties: {
machine_name: {
type: 'string',
},
- ports: {
- type: 'list',
- entry_schema: {
- type: 'string',
- },
- },
- flavor: {
- type: 'string',
- default: 'm1.medium',
- },
- network: {
- type: 'string',
- },
- ssh_user: {
- type: 'string',
- },
- ssh_key_name: {
- type: 'string',
- },
- ssh_key_file: {
- type: 'string',
- },
},
- attributes: {
- management_address: {
- type: 'string',
- },
- application_address: {
- type: 'string',
- },
+ },
+ 'local.machine': {
+ derived_from: 'machine',
+ metadata: {
+ ...MetadataNormative(),
},
capabilities: {
host: {
@@ -160,8 +137,8 @@ const nodes: NodeTypeMap = {
},
},
},
- 'physical.machine': {
- derived_from: 'node',
+ 'remote.machine': {
+ derived_from: 'machine',
metadata: {
...MetadataNormative(),
},
@@ -206,6 +183,12 @@ const nodes: NodeTypeMap = {
},
},
},
+ 'virtual.machine': {
+ derived_from: 'remote.machine',
+ },
+ 'physical.machine': {
+ derived_from: 'remote.machine',
+ },
database: {
derived_from: 'node',
metadata: {
diff --git a/src/normative/types/extended/nodes.ts b/src/normative/types/extended/nodes.ts
index 0ababe3adc..e34208a827 100644
--- a/src/normative/types/extended/nodes.ts
+++ b/src/normative/types/extended/nodes.ts
@@ -455,10 +455,6 @@ const nodes: NodeTypeMap = {
application_name: {
type: 'string',
},
- dbms_version: {
- type: 'string',
- default: '5.7',
- },
dbms_password: {
type: 'string',
},
diff --git a/src/technologies/plugins/rules/.template.ts b/src/technologies/plugins/rules/.template.ts
index 5a99a034ae..6bbabaaf22 100644
--- a/src/technologies/plugins/rules/.template.ts
+++ b/src/technologies/plugins/rules/.template.ts
@@ -7,7 +7,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'ansible',
artifact: 'zip.archive',
- hosting: ['virtual.machine'],
+ hosting: ['remote.machine'],
generate: (name, type) => {
return {
diff --git a/src/technologies/plugins/rules/generators/docker-engine/index.ts b/src/technologies/plugins/rules/generators/docker-engine/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/docker-engine/index.ts
+++ b/src/technologies/plugins/rules/generators/docker-engine/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/docker-engine/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/docker-engine/remote-machine/ansible/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/docker-engine/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/docker-engine/remote-machine/ansible/index.ts
index b147a934a5..dc02c1852c 100644
--- a/src/technologies/plugins/rules/generators/docker-engine/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/docker-engine/remote-machine/ansible/index.ts
@@ -11,7 +11,7 @@ import {
const generator: ImplementationGenerator = {
component: 'docker.engine',
technology: 'ansible',
- hosting: ['virtual.machine'],
+ hosting: ['remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
details: '"ansible.builtin.shell", "ansible.builtin.group", and "ansible.builtin.user" tasks',
diff --git a/src/technologies/plugins/rules/generators/docker-engine/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/docker-engine/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/docker-engine/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/docker-engine/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/docker-engine/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/docker-engine/remote-machine/terraform/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/docker-engine/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/docker-engine/remote-machine/terraform/index.ts
index e8d09a9ee4..f9b1661f7a 100644
--- a/src/technologies/plugins/rules/generators/docker-engine/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/docker-engine/remote-machine/terraform/index.ts
@@ -10,7 +10,7 @@ import {
const generator: ImplementationGenerator = {
component: 'docker.engine',
technology: 'terraform',
- hosting: ['virtual.machine'],
+ hosting: ['remote.machine'],
weight: 0,
reason: 'Ansible is more specialized. Also using provisioners is a "last resort".',
details: '"remote-exec" provider',
diff --git a/src/technologies/plugins/rules/generators/index.ts b/src/technologies/plugins/rules/generators/index.ts
index a15793f985..50b642f27e 100644
--- a/src/technologies/plugins/rules/generators/index.ts
+++ b/src/technologies/plugins/rules/generators/index.ts
@@ -5,7 +5,7 @@ import mysqlDatabase from './mysql-database'
import mysqlDBMS from './mysql-dbms'
import serviceApplication from './service-application'
import softwareApplication from './software-application'
-import virtualMachine from './virtual-machine'
+import remoteMachine from './virtual-machine'
export default [
dockerEngine,
@@ -15,5 +15,5 @@ export default [
mysqlDBMS,
serviceApplication,
softwareApplication,
- virtualMachine,
+ remoteMachine,
]
diff --git a/src/technologies/plugins/rules/generators/ingress/index.ts b/src/technologies/plugins/rules/generators/ingress/index.ts
index b220d71314..9d63bb2693 100644
--- a/src/technologies/plugins/rules/generators/ingress/index.ts
+++ b/src/technologies/plugins/rules/generators/ingress/index.ts
@@ -1,4 +1,4 @@
import kubernetesCluster from './kubernetes-cluster'
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [kubernetesCluster, virtualMachine]
+export default [kubernetesCluster, remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/ingress/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/ingress/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/ingress/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/ingress/remote-machine/ansible/index.ts
index ec988ff233..e2d839711e 100644
--- a/src/technologies/plugins/rules/generators/ingress/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/ingress/remote-machine/ansible/index.ts
@@ -11,7 +11,7 @@ import {
const generator: ImplementationGenerator = {
component: 'ingress',
technology: 'ansible',
- hosting: ['virtual.machine'],
+ hosting: ['remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
details:
diff --git a/src/technologies/plugins/rules/generators/ingress/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/ingress/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/ingress/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/ingress/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/ingress/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/ingress/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/ingress/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/ingress/remote-machine/terraform/index.ts
index 54f1fd778f..ab357213b3 100644
--- a/src/technologies/plugins/rules/generators/ingress/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/ingress/remote-machine/terraform/index.ts
@@ -32,7 +32,7 @@ systemctl reload caddy
const generator: ImplementationGenerator = {
component: 'ingress',
technology: 'terraform',
- hosting: ['virtual.machine'],
+ hosting: ['remote.machine'],
weight: 0,
reason: 'Ansible is more specialized. Also using provisioners is a "last resort".',
details:
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/index.ts
index 0f2f5c64b1..a6f4d21dc1 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './virtual-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts
index bc51eade9b..5d8e6dc51c 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts
@@ -19,7 +19,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.database',
technology: 'ansible',
- hosting: ['mysql.dbms', 'docker.engine', 'virtual.machine'],
+ hosting: ['mysql.dbms', 'docker.engine', 'remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/compose/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/compose/index.ts
index fd2c2040eb..7255c84f76 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/compose/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/compose/index.ts
@@ -13,7 +13,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.database',
technology: 'compose',
- hosting: ['mysql.dbms', 'docker.engine', 'virtual.machine'],
+ hosting: ['mysql.dbms', 'docker.engine', 'remote.machine'],
weight: 0,
reason: 'One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.',
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts
index 7890b2f4f4..02d9e84768 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts
@@ -12,7 +12,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.database',
technology: 'terraform',
- hosting: ['mysql.dbms', 'docker.engine', 'virtual.machine'],
+ hosting: ['mysql.dbms', 'docker.engine', 'remote.machine'],
weight: 0.5,
reason: 'Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.',
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/index.ts
index 44d708e610..c5f5b08145 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/index.ts
@@ -1,6 +1,6 @@
import dockerEngine from './docker-engine'
import gcpCloudSQL from './gcp-cloudsql'
import kubernetesCluster from './kubernetes-cluster'
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [dockerEngine, gcpCloudSQL, kubernetesCluster, virtualMachine]
+export default [dockerEngine, gcpCloudSQL, kubernetesCluster, remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/ansible/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/ansible/index.ts
index a925cb302d..aeb8bee861 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/ansible/index.ts
@@ -11,7 +11,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.database',
technology: 'ansible',
- hosting: ['mysql.dbms', 'virtual.machine'],
+ hosting: ['mysql.dbms', 'remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/terraform/index.ts
index 0e3ca1ac89..261dccce2c 100644
--- a/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-database/mysql-dbms/remote-machine/terraform/index.ts
@@ -10,7 +10,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.database',
technology: 'terraform',
- hosting: ['mysql.dbms', 'virtual.machine'],
+ hosting: ['mysql.dbms', 'remote.machine'],
weight: 0.5,
reason: 'Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/index.ts
deleted file mode 100644
index 0f2f5c64b1..0000000000
--- a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import virtualMachine from './virtual-machine'
-
-export default [virtualMachine]
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/index.ts
index 44d708e610..262cc087e7 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/index.ts
@@ -1,6 +1,3 @@
-import dockerEngine from './docker-engine'
-import gcpCloudSQL from './gcp-cloudsql'
-import kubernetesCluster from './kubernetes-cluster'
-import virtualMachine from './virtual-machine'
+import mysqlDBMSimage from './mysql-dbms-image'
-export default [dockerEngine, gcpCloudSQL, kubernetesCluster, virtualMachine]
+export default [mysqlDBMSimage]
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/index.ts
new file mode 100644
index 0000000000..a6f4d21dc1
--- /dev/null
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/index.ts
@@ -0,0 +1,3 @@
+import remoteMachine from './virtual-machine'
+
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/ansible/index.ts
similarity index 96%
rename from src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/ansible/index.ts
index d0354e810c..8fc5ae80f0 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/ansible/index.ts
@@ -11,7 +11,8 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'ansible',
- hosting: ['docker.engine', 'virtual.machine'],
+ artifact: 'dbms.image',
+ hosting: ['docker.engine', 'remote.machine'],
weight: 0.5,
reason: 'Docker Compose is more specialized',
details: '"community.docker.docker_container" task',
@@ -61,7 +62,7 @@ const generator: ImplementationGenerator = {
name: 'start container',
'community.docker.docker_container': {
name: '{{ SELF.dbms_name }}',
- image: 'mysql:{{ SELF.dbms_version }}',
+ image: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
network_mode: 'host',
env: {
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password | string }}',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/compose/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/compose/index.ts
similarity index 97%
rename from src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/compose/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/compose/index.ts
index 6d32275a94..6dd097ca06 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/compose/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/compose/index.ts
@@ -12,7 +12,8 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'compose',
- hosting: ['docker.engine', 'virtual.machine'],
+ artifact: 'dbms.image',
+ hosting: ['docker.engine', 'remote.machine'],
weight: 1,
reason: 'Docker is the underlying technology.',
details: 'docker-compose manifest generated and applied',
@@ -80,7 +81,7 @@ const generator: ImplementationGenerator = {
services: {
application: {
container_name: '{{ SELF.dbms_name }}',
- image: 'mysql:{{ SELF.dbms_version }}',
+ image: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
network_mode: 'host',
environment: {
MYSQL_ROOT_PASSWORD: '{{ SELF.dbms_password }}',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/terraform/index.ts
similarity index 96%
rename from src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/terraform/index.ts
index b087c58dff..cea9c54f49 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/docker-engine/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/docker-engine/virtual-machine/terraform/index.ts
@@ -11,7 +11,8 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'terraform',
- hosting: ['docker.engine', 'virtual.machine'],
+ artifact: 'dbms.image',
+ hosting: ['docker.engine', 'remote.machine'],
weight: 0.5,
reason: 'Docker Compose is more specialized.',
details: '"docker_container" and "docker_image" resources',
@@ -100,7 +101,7 @@ const generator: ImplementationGenerator = {
docker_image: {
image: [
{
- name: 'mysql:{{ SELF.dbms_version }}',
+ name: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
},
],
},
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/ansible/index.ts
similarity index 97%
rename from src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/ansible/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/ansible/index.ts
index d20ba31430..ba1f11e739 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/ansible/index.ts
@@ -10,6 +10,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'ansible',
+ artifact: 'dbms.image',
hosting: ['gcp.cloudsql'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
@@ -69,7 +70,8 @@ const generator: ImplementationGenerator = {
register: 'instance_info',
'google.cloud.gcp_sql_instance': {
name: '{{ SELF.dbms_name }}',
- database_version: 'MYSQL_{{ SELF.dbms_version | replace(".", "_") }}',
+ database_version:
+ 'MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}',
settings: {
tier: 'db-f1-micro',
availability_type: 'REGIONAL',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/index.ts
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/terraform/index.ts
similarity index 96%
rename from src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/terraform/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/terraform/index.ts
index e6a022fd96..ebb08c30c0 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/gcp-cloudsql/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/gcp-cloudsql/terraform/index.ts
@@ -9,6 +9,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'terraform',
+ artifact: 'dbms.image',
hosting: ['gcp.cloudsql'],
weight: 1,
reason: 'Terraform provides a declarative module.',
@@ -86,7 +87,8 @@ const generator: ImplementationGenerator = {
google_sql_database_instance: {
dbms: [
{
- database_version: 'MYSQL_{{ SELF.dbms_version | replace(".", "_") }}',
+ database_version:
+ 'MYSQL_{{ ".artifacts::dbms_image::file" | eval | replace(".", "_") }}',
deletion_protection: false,
name: '{{ SELF.dbms_name }}',
root_password: '{{ SELF.dbms_password }}',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/index.ts
new file mode 100644
index 0000000000..c5f5b08145
--- /dev/null
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/index.ts
@@ -0,0 +1,6 @@
+import dockerEngine from './docker-engine'
+import gcpCloudSQL from './gcp-cloudsql'
+import kubernetesCluster from './kubernetes-cluster'
+import remoteMachine from './remote-machine'
+
+export default [dockerEngine, gcpCloudSQL, kubernetesCluster, remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/ansible/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/ansible/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/ansible/index.ts
index d9d1e0eb0a..cc5b114360 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/ansible/index.ts
@@ -9,6 +9,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'ansible',
+ artifact: 'dbms.image',
hosting: ['kubernetes.cluster'],
weight: 0.5,
reason: 'Kubernetes is more specialized.',
@@ -96,7 +97,7 @@ const generator: ImplementationGenerator = {
spec: {
containers: [
{
- image: 'mysql:{{ SELF.dbms_version }}',
+ image: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
name: '{{ SELF.dbms_name }}',
env: [
{
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/index.ts
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/kubernetes/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/kubernetes/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/kubernetes/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/kubernetes/index.ts
index 53118ba71f..9b30cba97c 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/kubernetes/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/kubernetes/index.ts
@@ -11,6 +11,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'kubernetes',
+ artifact: 'dbms.image',
hosting: ['kubernetes.cluster'],
weight: 1,
reason: 'Kubernetes is the underlying technology.',
@@ -94,7 +95,7 @@ const generator: ImplementationGenerator = {
spec: {
containers: [
{
- image: 'mysql:{{ SELF.dbms_version }}',
+ image: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
name: '{{ SELF.dbms_name }}',
env: [
{
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/terraform/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/terraform/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/terraform/index.ts
index d114209c03..adeafe74d2 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/kubernetes-cluster/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/kubernetes-cluster/terraform/index.ts
@@ -9,6 +9,7 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'terraform',
+ artifact: 'dbms.image',
hosting: ['kubernetes.cluster'],
weight: 0.5,
reason: 'Kubernetes is more specialized.',
@@ -106,7 +107,7 @@ const generator: ImplementationGenerator = {
container: [
{
name: '{{ SELF.dbms_name }}',
- image: 'mysql:{{ SELF.dbms_version }}',
+ image: 'mysql:{{ ".artifacts::dbms_image::file" | eval }}',
env: [
{
name: 'MYSQL_ROOT_PASSWORD',
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/ansible/index.ts
index 2c0a79d828..309d9c3a62 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/ansible/index.ts
@@ -22,7 +22,8 @@ import {
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'ansible',
- hosting: ['virtual.machine'],
+ artifact: 'dbms.image',
+ hosting: ['remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
details:
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/terraform/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/terraform/index.ts
index f8248b274f..e9ed192051 100644
--- a/src/technologies/plugins/rules/generators/mysql-dbms/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/mysql-dbms/mysql-dbms-image/remote-machine/terraform/index.ts
@@ -53,7 +53,8 @@ systemctl restart mysql
const generator: ImplementationGenerator = {
component: 'mysql.dbms',
technology: 'terraform',
- hosting: ['virtual.machine'],
+ artifact: 'dbms.image',
+ hosting: ['remote.machine'],
weight: 0,
reason: 'Ansible is more specialized. Also using provisioners is a "last resort".',
details:
diff --git a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/index.ts b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/ansible/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/ansible/index.ts
index 994a3d6e4c..3389e62deb 100644
--- a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/ansible/index.ts
@@ -13,7 +13,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'ansible',
artifact: 'docker.image',
- hosting: ['docker.engine', 'virtual.machine'],
+ hosting: ['docker.engine', 'remote.machine'],
weight: 0.5,
reason: 'Docker Compose is more specialized.',
details: '"community.docker.docker_container" task',
diff --git a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/compose/index.ts b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/compose/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/compose/index.ts
rename to src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/compose/index.ts
index fae14ac57f..f5e3a4d010 100644
--- a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/compose/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/compose/index.ts
@@ -15,7 +15,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'compose',
artifact: 'docker.image',
- hosting: ['docker.engine', 'virtual.machine'],
+ hosting: ['docker.engine', 'remote.machine'],
weight: 1,
reason: 'Docker is the underlying technology.',
details: 'docker compose manifest generated and applied',
diff --git a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/terraform/index.ts
similarity index 98%
rename from src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/terraform/index.ts
index ea160fc3a5..fa4ddaebaf 100644
--- a/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/docker-image/docker-engine/remote-machine/terraform/index.ts
@@ -12,7 +12,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'terraform',
artifact: 'docker.image',
- hosting: ['docker.engine', 'virtual.machine'],
+ hosting: ['docker.engine', 'remote.machine'],
weight: 0.5,
reason: 'Docker Compose is more specialized.',
details: '"docker_container" and "docker_image" resources',
diff --git a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/index.ts b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/ansible/index.ts
index 87b8401476..384fd32707 100644
--- a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/ansible/index.ts
@@ -26,7 +26,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'ansible',
artifact,
- hosting: ['*', 'virtual.machine'],
+ hosting: ['*', 'remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible. Special integration for systemd.',
details:
diff --git a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/terraform/index.ts
index 0d41140670..57406379d0 100644
--- a/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/tar-archive/asterisk/remote-machine/terraform/index.ts
@@ -26,7 +26,7 @@ class Generator extends GeneratorAbstract {
component = 'service.application'
technology = 'terraform'
artifact = 'tar.archive'
- hosting = ['*', 'virtual.machine']
+ hosting = ['*', 'remote.machine']
weight = 0
reason = 'Ansible is more specialized. Also using provisioners is a "last resort".'
details = '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
diff --git a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/index.ts b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/ansible/index.ts
index 0f54618f24..913ae206e2 100644
--- a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/ansible/index.ts
@@ -25,7 +25,7 @@ const generator: ImplementationGenerator = {
component: 'service.application',
technology: 'ansible',
artifact,
- hosting: ['*', 'virtual.machine'],
+ hosting: ['*', 'remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible. Special integration for systemd.',
details:
diff --git a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/terraform/index.ts
index b20b646896..2386167efb 100644
--- a/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/service-application/zip-archive/asterisk/remote-machine/terraform/index.ts
@@ -26,7 +26,7 @@ class Generator extends GeneratorAbstract {
component = 'service.application'
technology = 'terraform'
artifact = 'zip.archive'
- hosting = ['*', 'virtual.machine']
+ hosting = ['*', 'remote.machine']
weight = 0
reason = 'Ansible is more specialized. Also using provisioners is a "last resort".'
details = '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
diff --git a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/index.ts b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/ansible/index.ts
index a27df69fea..5cca2768b8 100644
--- a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/ansible/index.ts
@@ -18,7 +18,7 @@ const generator: ImplementationGenerator = {
component: 'software.application',
technology: 'ansible',
artifact: 'apt.package',
- hosting: ['*', 'virtual.machine'],
+ hosting: ['*', 'remote.machine'],
weight: 1,
reason: 'Primary use case due to the specialization of Ansible.',
details:
diff --git a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/terraform/index.ts
index a7d4f5f024..4a11d4c34f 100644
--- a/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/apt-package/asterisk/remote-machine/terraform/index.ts
@@ -22,7 +22,7 @@ class Generator extends GeneratorAbstract {
component = 'software.application'
technology = 'terraform'
artifact = 'apt.archive'
- hosting = ['*', 'virtual.machine']
+ hosting = ['*', 'remote.machine']
weight = 0
reason = 'Ansible is more specialized. Also using provisioners is a "last resort".'
details = '"file" provisioner to upload scripts and "remote-exec" to execute scripts'
diff --git a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/index.ts b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/ansible/index.ts
index 02a2b5b9ec..f38be0edb1 100644
--- a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/ansible/index.ts
@@ -25,7 +25,7 @@ const generator: ImplementationGenerator = {
component: 'software.application',
technology: 'ansible',
artifact,
- hosting: ['*', 'virtual.machine'],
+ hosting: ['*', 'remote.machine'],
weight: 0.5,
reason: 'While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., "service.application".',
details:
diff --git a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/terraform/index.ts
index ec9eaa023c..b0cb6e4020 100644
--- a/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/tar-archive/asterisk/remote-machine/terraform/index.ts
@@ -25,7 +25,7 @@ class Generator extends GeneratorAbstract {
component = 'software.application'
technology = 'terraform'
artifact = 'tar.archive'
- hosting = ['*', 'virtual.machine']
+ hosting = ['*', 'remote.machine']
weight = 0
reason = 'Ansible is more specialized. Also using provisioners is a "last resort".'
details = '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'
diff --git a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/index.ts b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/index.ts
index 0f2f5c64b1..37846c4803 100644
--- a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/index.ts
@@ -1,3 +1,3 @@
-import virtualMachine from './virtual-machine'
+import remoteMachine from './remote-machine'
-export default [virtualMachine]
+export default [remoteMachine]
diff --git a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/ansible/index.ts b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/ansible/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/ansible/index.ts
rename to src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/ansible/index.ts
index 9d89a2548f..b3e14b6ce4 100644
--- a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/ansible/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/ansible/index.ts
@@ -24,7 +24,7 @@ const generator: ImplementationGenerator = {
component: 'software.application',
technology: 'ansible',
artifact,
- hosting: ['*', 'virtual.machine'],
+ hosting: ['*', 'remote.machine'],
weight: 0.5,
reason: 'While this is a primary use case due to the specialization of Ansible, we must rely on scripts. More specialized types should be used, e.g., service.application.',
details:
diff --git a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/index.ts b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/index.ts
similarity index 100%
rename from src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/index.ts
rename to src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/index.ts
diff --git a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/terraform/index.ts b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/terraform/index.ts
similarity index 99%
rename from src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/terraform/index.ts
rename to src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/terraform/index.ts
index 4270e56b94..90c8e85103 100644
--- a/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/virtual-machine/terraform/index.ts
+++ b/src/technologies/plugins/rules/generators/software-application/zip-archive/asterisk/remote-machine/terraform/index.ts
@@ -25,7 +25,7 @@ export class Generator extends GeneratorAbstract {
component = 'software.application'
technology = 'terraform'
artifact = 'zip.archive'
- hosting = ['*', 'virtual.machine']
+ hosting = ['*', 'remote.machine']
weight = 0
reason = 'Ansible is more specialized. Also using provisioners is a "last resort".'
details = '"file" provisioner to upload artifacts and scripts and "remote-exec" to execute scripts'