Skip to content

DRAFT: Deployment Technology Rules Specification 1.0 Release Candidate

Hidden Information

The document does not specify quality assignments at this stage.

Quick Tip #1

Elements in graphs can be clicked to open their type definition!

Quick Tip #2

You can query technology rules for your deployment scenario using vintner utils scenarios!

This document specifies the deployment technology rules. The specification is under active development and is not backwards compatible with any previous versions.

Deployment Technologies

Technology rules are defined in the context of the following deployment technologies.

Ansible

Ansible is an automation tool primarily used for configuration management, application deployment, and task automation. It allows system administrators and DevOps teams to manage software on servers using SSH, without the need for agents on target nodes. Ansible uses simple, human-readable YAML files called playbooks to define tasks and configurations, enabling consistent management of IT environments across multiple servers. Find out more.

Terraform

Terraform is an infrastructure as code (IaC) tool that allows users to define, provision, and manage cloud infrastructure in a consistent, automated, and reproducible way. Using a declarative configuration language called HashiCorp Configuration Language (HCL), Terraform enables users to define infrastructure components such as virtual machines, networks, and storage in human-readable configuration files. It supports a wide range of cloud providers, including AWS, Azure, Google Cloud, and many others, allowing for seamless multi-cloud management. By applying these configurations, Terraform creates and manages the defined resources through APIs. Find out more.

Kubernetes

Kubernetes is a system for automating the deployment, scaling, and management of containerized applications, offering production-grade container orchestration. It provides a platform for running and managing applications in clusters of servers, ensuring high availability, scalability, and efficient resource utilization. Kubernetes allows users to define the desired state of their applications using declarative manifests, which specify the configuration, deployment, and management of containerized workloads. By continuously monitoring and adjusting the cluster to match these desired states, Kubernetes simplifies the application deployment process, supports automated rollouts and rollbacks, and ensures the self-healing of applications. Find out more.

Docker Compose

Docker Compose is a tool that enables the definition and running of multi-container applications on a Docker Engine, using a single YAML configuration file. It allows the management of services, networks, and volumes, in a declarative manner. Compose is particularly suited for single-host deployments, providing a consistent environment across various stages of the application lifecycle. However, it is limited to working within the Docker ecosystem. Find out more.

Component "docker.engine"

The following scenarios deploy a node template of node type docker.engine with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type docker.engine is deployed. The node template is hosted on the node template "host 1" of node type local.machine.

component(docker.engine)host 1(local.machine)host

Scenario #2

In this scenario, the node template "component" of node type docker.engine is deployed. The node template is hosted on the node template "host 1" of node type remote.machine.

component(docker.engine)host 1(remote.machine)host

Component "gcp.service"

The following scenarios deploy a node template of node type gcp.service with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type gcp.service is deployed. The scenario does not require a specific hosting.

component(gcp.service)

Component "ingress"

The following scenarios deploy a node template of node type ingress with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type ingress is deployed. The node template is hosted on the node template "host 1" of node type kubernetes.cluster.

component(ingress)host 1(kubernetes.cluster)host

Scenario #2

In this scenario, the node template "component" of node type ingress is deployed. The node template is hosted on the node template "host 1" of node type local.machine.

component(ingress)host 1(local.machine)host

Scenario #3

In this scenario, the node template "component" of node type ingress is deployed. The node template is hosted on the node template "host 1" of node type remote.machine.

component(ingress)host 1(remote.machine)host

Component "mysql.database"

The following scenarios deploy a node template of node type mysql.database with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type docker.engine, which is hosted on the node template "host 3" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Scenario #2

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type docker.engine, which is hosted on the node template "host 3" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Scenario #3

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type gcp.cloudsql.

component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost

Scenario #4

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type kubernetes.cluster.

component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Scenario #5

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type local.machine.

component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost

Scenario #6

In this scenario, the node template "component" of node type mysql.database is deployed. The node template is hosted on the node template "host 1" of node type mysql.dbms, which is hosted on the node template "host 2" of node type remote.machine.

component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost

Component "mysql.dbms"

The following scenarios deploy a node template of node type mysql.dbms with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Scenario #2

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Scenario #3

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type gcp.cloudsql.

component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host

Scenario #4

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type kubernetes.cluster.

component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Scenario #5

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type local.machine.

component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host

Scenario #6

In this scenario, the node template "component" of node type mysql.dbms is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type dbms.image. The node template is hosted on the node template "host 1" of node type remote.machine.

component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host

Component "object.storage"

The following scenarios deploy a node template of node type object.storage with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type object.storage is deployed. The node template is hosted on the node template "host 1" of node type gcp.cloudstorage.

component(object.storage)host 1(gcp.cloudstorage)host

Scenario #2

In this scenario, the node template "component" of node type object.storage is deployed. The node template is hosted on the node template "host 1" of node type minio.server, which is hosted on the node template "host 2" of node type docker.engine, which is hosted on the node template "host 3" of node type local.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Scenario #3

In this scenario, the node template "component" of node type object.storage is deployed. The node template is hosted on the node template "host 1" of node type minio.server, which is hosted on the node template "host 2" of node type docker.engine, which is hosted on the node template "host 3" of node type remote.machine.

component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Scenario #4

In this scenario, the node template "component" of node type object.storage is deployed. The node template is hosted on the node template "host 1" of node type minio.server, which is hosted on the node template "host 2" of node type kubernetes.cluster.

component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Component "redis.server"

The following scenarios deploy a node template of node type redis.server with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type redis.server is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type cache.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type local.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Scenario #2

In this scenario, the node template "component" of node type redis.server is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type cache.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type remote.machine.

component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Scenario #3

In this scenario, the node template "component" of node type redis.server is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type cache.image. The node template is hosted on the node template "host 1" of node type gcp.memorystore.

component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host

Scenario #4

In this scenario, the node template "component" of node type redis.server is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type cache.image. The node template is hosted on the node template "host 1" of node type kubernetes.cluster.

component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Component "service.application"

The following scenarios deploy a node template of node type service.application with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type docker.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type local.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Scenario #2

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type docker.image. The node template is hosted on the node template "host 1" of node type docker.engine, which is hosted on the node template "host 2" of node type remote.machine.

component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Scenario #3

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type docker.image. The node template is hosted on the node template "host 1" of node type gcp.cloudrun.

component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host

Scenario #4

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type docker.image. The node template is hosted on the node template "host 1" of node type kubernetes.cluster.

component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Scenario #5

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type local.machine.

component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost

Scenario #6

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type remote.machine.

component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Scenario #7

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type local.machine.

component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost

Scenario #8

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type remote.machine.

component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Scenario #9

In this scenario, the node template "component" of node type service.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type zip.archive. The node template is hosted on the node template "host 1" of node type gcp.appengine.

component(service.application)artifact(zip.archive)host 1(gcp.appengine)host

Component "software.application"

The following scenarios deploy a node template of node type software.application with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type local.machine.

component(software.application)artifact(apt.package)...host 2(local.machine)hosthost

Scenario #2

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type apt.package. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type remote.machine.

component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost

Scenario #3

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type local.machine.

component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost

Scenario #4

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type tar.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type remote.machine.

component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Scenario #5

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type local.machine.

component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost

Scenario #6

In this scenario, the node template "component" of node type software.application is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type zip.archive. The node template is hosted on an arbitrary hosting stack of arbitrary length, which is hosted on the node template "host 2" of node type remote.machine.

component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Component "virtual.machine"

The following scenarios deploy a node template of node type virtual.machine with various hosting stacks, artifacts, deployment technologies, and qualities.

Scenario #1

In this scenario, the node template "component" of node type virtual.machine is deployed. This node template is implemented by its deployment artifact "artifact" of artifact type machine.image. The node template is hosted on the node template "host 1" of node type openstack.provider.

component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host

Appendix A "Rules"

This appendix contains the deployment technology rules.

Rule #1

Attribute Value
Identifier docker.engine::ansible@local.machine
Component docker.engine
Technology ansible
Hosting local.machine
Graph
component(docker.engine)host 1(local.machine)host

Rule #2

Attribute Value
Identifier docker.engine::terraform@local.machine
Component docker.engine
Technology terraform
Hosting local.machine
Graph
component(docker.engine)host 1(local.machine)host

Rule #3

Attribute Value
Identifier docker.engine::ansible@remote.machine
Component docker.engine
Technology ansible
Hosting remote.machine
Graph
component(docker.engine)host 1(remote.machine)host

Rule #4

Attribute Value
Identifier docker.engine::terraform@remote.machine
Component docker.engine
Technology terraform
Hosting remote.machine
Graph
component(docker.engine)host 1(remote.machine)host

Rule #5

Attribute Value
Identifier gcp.service::ansible
Component gcp.service
Technology ansible
Graph
component(gcp.service)

Rule #6

Attribute Value
Identifier gcp.service::terraform
Component gcp.service
Technology terraform
Graph
component(gcp.service)

Rule #7

Attribute Value
Identifier ingress::ansible@kubernetes.cluster
Component ingress
Technology ansible
Hosting kubernetes.cluster
Graph
component(ingress)host 1(kubernetes.cluster)host

Rule #8

Attribute Value
Identifier ingress::kubernetes@kubernetes.cluster
Component ingress
Technology kubernetes
Hosting kubernetes.cluster
Graph
component(ingress)host 1(kubernetes.cluster)host

Rule #9

Attribute Value
Identifier ingress::terraform@kubernetes.cluster
Component ingress
Technology terraform
Hosting kubernetes.cluster
Graph
component(ingress)host 1(kubernetes.cluster)host

Rule #10

Attribute Value
Identifier ingress::ansible@local.machine
Component ingress
Technology ansible
Hosting local.machine
Graph
component(ingress)host 1(local.machine)host

Rule #11

Attribute Value
Identifier ingress::terraform@local.machine
Component ingress
Technology terraform
Hosting local.machine
Graph
component(ingress)host 1(local.machine)host

Rule #12

Attribute Value
Identifier ingress::ansible@remote.machine
Component ingress
Technology ansible
Hosting remote.machine
Graph
component(ingress)host 1(remote.machine)host

Rule #13

Attribute Value
Identifier ingress::terraform@remote.machine
Component ingress
Technology terraform
Hosting remote.machine
Graph
component(ingress)host 1(remote.machine)host

Rule #14

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->docker.engine->local.machine
Component mysql.database
Technology ansible
Hosting mysql.dbms -> docker.engine -> local.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #15

Attribute Value
Identifier mysql.database::compose@mysql.dbms->docker.engine->local.machine
Component mysql.database
Technology compose
Hosting mysql.dbms -> docker.engine -> local.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #16

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->docker.engine->local.machine
Component mysql.database
Technology terraform
Hosting mysql.dbms -> docker.engine -> local.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #17

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->docker.engine->remote.machine
Component mysql.database
Technology ansible
Hosting mysql.dbms -> docker.engine -> remote.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #18

Attribute Value
Identifier mysql.database::compose@mysql.dbms->docker.engine->remote.machine
Component mysql.database
Technology compose
Hosting mysql.dbms -> docker.engine -> remote.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #19

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->docker.engine->remote.machine
Component mysql.database
Technology terraform
Hosting mysql.dbms -> docker.engine -> remote.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #20

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->gcp.cloudsql
Component mysql.database
Technology ansible
Hosting mysql.dbms -> gcp.cloudsql
Graph
component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost

Rule #21

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->gcp.cloudsql
Component mysql.database
Technology terraform
Hosting mysql.dbms -> gcp.cloudsql
Graph
component(mysql.database)host 1(mysql.dbms)host 2(gcp.cloudsql)hosthost

Rule #22

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->kubernetes.cluster
Component mysql.database
Technology ansible
Hosting mysql.dbms -> kubernetes.cluster
Graph
component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Rule #23

Attribute Value
Identifier mysql.database::kubernetes@mysql.dbms->kubernetes.cluster
Component mysql.database
Technology kubernetes
Hosting mysql.dbms -> kubernetes.cluster
Graph
component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Rule #24

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->kubernetes.cluster
Component mysql.database
Technology terraform
Hosting mysql.dbms -> kubernetes.cluster
Graph
component(mysql.database)host 1(mysql.dbms)host 2(kubernetes.cluster)hosthost

Rule #25

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->local.machine
Component mysql.database
Technology ansible
Hosting mysql.dbms -> local.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost

Rule #26

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->local.machine
Component mysql.database
Technology terraform
Hosting mysql.dbms -> local.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(local.machine)hosthost

Rule #27

Attribute Value
Identifier mysql.database::ansible@mysql.dbms->remote.machine
Component mysql.database
Technology ansible
Hosting mysql.dbms -> remote.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost

Rule #28

Attribute Value
Identifier mysql.database::terraform@mysql.dbms->remote.machine
Component mysql.database
Technology terraform
Hosting mysql.dbms -> remote.machine
Graph
component(mysql.database)host 1(mysql.dbms)host 2(remote.machine)hosthost

Rule #29

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@docker.engine->local.machine
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting docker.engine -> local.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #30

Attribute Value
Identifier mysql.dbms#dbms.image::compose@docker.engine->local.machine
Component mysql.dbms
Artifact dbms.image
Technology compose
Hosting docker.engine -> local.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #31

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@docker.engine->local.machine
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting docker.engine -> local.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #32

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@docker.engine->remote.machine
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting docker.engine -> remote.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #33

Attribute Value
Identifier mysql.dbms#dbms.image::compose@docker.engine->remote.machine
Component mysql.dbms
Artifact dbms.image
Technology compose
Hosting docker.engine -> remote.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #34

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@docker.engine->remote.machine
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting docker.engine -> remote.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #35

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@gcp.cloudsql
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting gcp.cloudsql
Graph
component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host

Rule #36

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@gcp.cloudsql
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting gcp.cloudsql
Graph
component(mysql.dbms)artifact(dbms.image)host 1(gcp.cloudsql)host

Rule #37

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@kubernetes.cluster
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting kubernetes.cluster
Graph
component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Rule #38

Attribute Value
Identifier mysql.dbms#dbms.image::kubernetes@kubernetes.cluster
Component mysql.dbms
Artifact dbms.image
Technology kubernetes
Hosting kubernetes.cluster
Graph
component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Rule #39

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@kubernetes.cluster
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting kubernetes.cluster
Graph
component(mysql.dbms)artifact(dbms.image)host 1(kubernetes.cluster)host

Rule #40

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@local.machine
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting local.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host

Rule #41

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@local.machine
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting local.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(local.machine)host

Rule #42

Attribute Value
Identifier mysql.dbms#dbms.image::ansible@remote.machine
Component mysql.dbms
Artifact dbms.image
Technology ansible
Hosting remote.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host

Rule #43

Attribute Value
Identifier mysql.dbms#dbms.image::terraform@remote.machine
Component mysql.dbms
Artifact dbms.image
Technology terraform
Hosting remote.machine
Graph
component(mysql.dbms)artifact(dbms.image)host 1(remote.machine)host

Rule #44

Attribute Value
Identifier object.storage::ansible@gcp.cloudstorage
Component object.storage
Technology ansible
Hosting gcp.cloudstorage
Graph
component(object.storage)host 1(gcp.cloudstorage)host

Rule #45

Attribute Value
Identifier object.storage::terraform@gcp.cloudstorage
Component object.storage
Technology terraform
Hosting gcp.cloudstorage
Graph
component(object.storage)host 1(gcp.cloudstorage)host

Rule #46

Attribute Value
Identifier object.storage::ansible@minio.server->docker.engine->local.machine
Component object.storage
Technology ansible
Hosting minio.server -> docker.engine -> local.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #47

Attribute Value
Identifier object.storage::compose@minio.server->docker.engine->local.machine
Component object.storage
Technology compose
Hosting minio.server -> docker.engine -> local.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #48

Attribute Value
Identifier object.storage::terraform@minio.server->docker.engine->local.machine
Component object.storage
Technology terraform
Hosting minio.server -> docker.engine -> local.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(local.machine)hosthosthost

Rule #49

Attribute Value
Identifier object.storage::ansible@minio.server->docker.engine->remote.machine
Component object.storage
Technology ansible
Hosting minio.server -> docker.engine -> remote.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #50

Attribute Value
Identifier object.storage::compose@minio.server->docker.engine->remote.machine
Component object.storage
Technology compose
Hosting minio.server -> docker.engine -> remote.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #51

Attribute Value
Identifier object.storage::terraform@minio.server->docker.engine->remote.machine
Component object.storage
Technology terraform
Hosting minio.server -> docker.engine -> remote.machine
Graph
component(object.storage)host 1(minio.server)host 2(docker.engine)host 3(remote.machine)hosthosthost

Rule #52

Attribute Value
Identifier object.storage::ansible@minio.server->kubernetes.cluster
Component object.storage
Technology ansible
Hosting minio.server -> kubernetes.cluster
Graph
component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Rule #53

Attribute Value
Identifier object.storage::kubernetes@minio.server->kubernetes.cluster
Component object.storage
Technology kubernetes
Hosting minio.server -> kubernetes.cluster
Graph
component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Rule #54

Attribute Value
Identifier object.storage::terraform@minio.server->kubernetes.cluster
Component object.storage
Technology terraform
Hosting minio.server -> kubernetes.cluster
Graph
component(object.storage)host 1(minio.server)host 2(kubernetes.cluster)hosthost

Rule #55

Attribute Value
Identifier redis.server#cache.image::ansible@docker.engine->local.machine
Component redis.server
Artifact cache.image
Technology ansible
Hosting docker.engine -> local.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #56

Attribute Value
Identifier redis.server#cache.image::compose@docker.engine->local.machine
Component redis.server
Artifact cache.image
Technology compose
Hosting docker.engine -> local.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #57

Attribute Value
Identifier redis.server#cache.image::terraform@docker.engine->local.machine
Component redis.server
Artifact cache.image
Technology terraform
Hosting docker.engine -> local.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #58

Attribute Value
Identifier redis.server#cache.image::ansible@docker.engine->remote.machine
Component redis.server
Artifact cache.image
Technology ansible
Hosting docker.engine -> remote.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #59

Attribute Value
Identifier redis.server#cache.image::compose@docker.engine->remote.machine
Component redis.server
Artifact cache.image
Technology compose
Hosting docker.engine -> remote.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #60

Attribute Value
Identifier redis.server#cache.image::terraform@docker.engine->remote.machine
Component redis.server
Artifact cache.image
Technology terraform
Hosting docker.engine -> remote.machine
Graph
component(redis.server)artifact(cache.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #61

Attribute Value
Identifier redis.server#cache.image::ansible@gcp.memorystore
Component redis.server
Artifact cache.image
Technology ansible
Hosting gcp.memorystore
Graph
component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host

Rule #62

Attribute Value
Identifier redis.server#cache.image::terraform@gcp.memorystore
Component redis.server
Artifact cache.image
Technology terraform
Hosting gcp.memorystore
Graph
component(redis.server)artifact(cache.image)host 1(gcp.memorystore)host

Rule #63

Attribute Value
Identifier redis.server#cache.image::ansible@kubernetes.cluster
Component redis.server
Artifact cache.image
Technology ansible
Hosting kubernetes.cluster
Graph
component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Rule #64

Attribute Value
Identifier redis.server#cache.image::kubernetes@kubernetes.cluster
Component redis.server
Artifact cache.image
Technology kubernetes
Hosting kubernetes.cluster
Graph
component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Rule #65

Attribute Value
Identifier redis.server#cache.image::terraform@kubernetes.cluster
Component redis.server
Artifact cache.image
Technology terraform
Hosting kubernetes.cluster
Graph
component(redis.server)artifact(cache.image)host 1(kubernetes.cluster)host

Rule #66

Attribute Value
Identifier service.application#docker.image::ansible@docker.engine->local.machine
Component service.application
Artifact docker.image
Technology ansible
Hosting docker.engine -> local.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #67

Attribute Value
Identifier service.application#docker.image::compose@docker.engine->local.machine
Component service.application
Artifact docker.image
Technology compose
Hosting docker.engine -> local.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #68

Attribute Value
Identifier service.application#docker.image::terraform@docker.engine->local.machine
Component service.application
Artifact docker.image
Technology terraform
Hosting docker.engine -> local.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(local.machine)hosthost

Rule #69

Attribute Value
Identifier service.application#docker.image::ansible@docker.engine->remote.machine
Component service.application
Artifact docker.image
Technology ansible
Hosting docker.engine -> remote.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #70

Attribute Value
Identifier service.application#docker.image::compose@docker.engine->remote.machine
Component service.application
Artifact docker.image
Technology compose
Hosting docker.engine -> remote.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #71

Attribute Value
Identifier service.application#docker.image::terraform@docker.engine->remote.machine
Component service.application
Artifact docker.image
Technology terraform
Hosting docker.engine -> remote.machine
Graph
component(service.application)artifact(docker.image)host 1(docker.engine)host 2(remote.machine)hosthost

Rule #72

Attribute Value
Identifier service.application#docker.image::ansible@gcp.cloudrun
Component service.application
Artifact docker.image
Technology ansible
Hosting gcp.cloudrun
Graph
component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host

Rule #73

Attribute Value
Identifier service.application#docker.image::terraform@gcp.cloudrun
Component service.application
Artifact docker.image
Technology terraform
Hosting gcp.cloudrun
Graph
component(service.application)artifact(docker.image)host 1(gcp.cloudrun)host

Rule #74

Attribute Value
Identifier service.application#docker.image::ansible@kubernetes.cluster
Component service.application
Artifact docker.image
Technology ansible
Hosting kubernetes.cluster
Graph
component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Rule #75

Attribute Value
Identifier service.application#docker.image::kubernetes@kubernetes.cluster
Component service.application
Artifact docker.image
Technology kubernetes
Hosting kubernetes.cluster
Graph
component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Rule #76

Attribute Value
Identifier service.application#docker.image::terraform@kubernetes.cluster
Component service.application
Artifact docker.image
Technology terraform
Hosting kubernetes.cluster
Graph
component(service.application)artifact(docker.image)host 1(kubernetes.cluster)host

Rule #77

Attribute Value
Identifier service.application#tar.archive::ansible@*->local.machine
Component service.application
Artifact tar.archive
Technology ansible
Hosting * -> local.machine
Graph
component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost

Rule #78

Attribute Value
Identifier service.application#tar.archive::terraform@*->local.machine
Component service.application
Artifact tar.archive
Technology terraform
Hosting * -> local.machine
Graph
component(service.application)artifact(tar.archive)...host 2(local.machine)hosthost

Rule #79

Attribute Value
Identifier service.application#tar.archive::ansible@*->remote.machine
Component service.application
Artifact tar.archive
Technology ansible
Hosting * -> remote.machine
Graph
component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Rule #80

Attribute Value
Identifier service.application#tar.archive::terraform@*->remote.machine
Component service.application
Artifact tar.archive
Technology terraform
Hosting * -> remote.machine
Graph
component(service.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Rule #81

Attribute Value
Identifier service.application#zip.archive::ansible@*->local.machine
Component service.application
Artifact zip.archive
Technology ansible
Hosting * -> local.machine
Graph
component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost

Rule #82

Attribute Value
Identifier service.application#zip.archive::terraform@*->local.machine
Component service.application
Artifact zip.archive
Technology terraform
Hosting * -> local.machine
Graph
component(service.application)artifact(zip.archive)...host 2(local.machine)hosthost

Rule #83

Attribute Value
Identifier service.application#zip.archive::ansible@*->remote.machine
Component service.application
Artifact zip.archive
Technology ansible
Hosting * -> remote.machine
Graph
component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Rule #84

Attribute Value
Identifier service.application#zip.archive::terraform@*->remote.machine
Component service.application
Artifact zip.archive
Technology terraform
Hosting * -> remote.machine
Graph
component(service.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Rule #85

Attribute Value
Identifier service.application#zip.archive::ansible@gcp.appengine
Component service.application
Artifact zip.archive
Technology ansible
Hosting gcp.appengine
Graph
component(service.application)artifact(zip.archive)host 1(gcp.appengine)host

Rule #86

Attribute Value
Identifier service.application#zip.archive::terraform@gcp.appengine
Component service.application
Artifact zip.archive
Technology terraform
Hosting gcp.appengine
Graph
component(service.application)artifact(zip.archive)host 1(gcp.appengine)host

Rule #87

Attribute Value
Identifier software.application#apt.package::ansible@*->local.machine
Component software.application
Artifact apt.package
Technology ansible
Hosting * -> local.machine
Graph
component(software.application)artifact(apt.package)...host 2(local.machine)hosthost

Rule #88

Attribute Value
Identifier software.application#apt.package::terraform@*->local.machine
Component software.application
Artifact apt.package
Technology terraform
Hosting * -> local.machine
Graph
component(software.application)artifact(apt.package)...host 2(local.machine)hosthost

Rule #89

Attribute Value
Identifier software.application#apt.package::ansible@*->remote.machine
Component software.application
Artifact apt.package
Technology ansible
Hosting * -> remote.machine
Graph
component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost

Rule #90

Attribute Value
Identifier software.application#apt.package::terraform@*->remote.machine
Component software.application
Artifact apt.package
Technology terraform
Hosting * -> remote.machine
Graph
component(software.application)artifact(apt.package)...host 2(remote.machine)hosthost

Rule #91

Attribute Value
Identifier software.application#tar.archive::ansible@*->local.machine
Component software.application
Artifact tar.archive
Technology ansible
Hosting * -> local.machine
Graph
component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost

Rule #92

Attribute Value
Identifier software.application#tar.archive::terraform@*->local.machine
Component software.application
Artifact tar.archive
Technology terraform
Hosting * -> local.machine
Graph
component(software.application)artifact(tar.archive)...host 2(local.machine)hosthost

Rule #93

Attribute Value
Identifier software.application#tar.archive::ansible@*->remote.machine
Component software.application
Artifact tar.archive
Technology ansible
Hosting * -> remote.machine
Graph
component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Rule #94

Attribute Value
Identifier software.application#tar.archive::terraform@*->remote.machine
Component software.application
Artifact tar.archive
Technology terraform
Hosting * -> remote.machine
Graph
component(software.application)artifact(tar.archive)...host 2(remote.machine)hosthost

Rule #95

Attribute Value
Identifier software.application#zip.archive::ansible@*->local.machine
Component software.application
Artifact zip.archive
Technology ansible
Hosting * -> local.machine
Graph
component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost

Rule #96

Attribute Value
Identifier software.application#zip.archive::terraform@*->local.machine
Component software.application
Artifact zip.archive
Technology terraform
Hosting * -> local.machine
Graph
component(software.application)artifact(zip.archive)...host 2(local.machine)hosthost

Rule #97

Attribute Value
Identifier software.application#zip.archive::ansible@*->remote.machine
Component software.application
Artifact zip.archive
Technology ansible
Hosting * -> remote.machine
Graph
component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Rule #98

Attribute Value
Identifier software.application#zip.archive::terraform@*->remote.machine
Component software.application
Artifact zip.archive
Technology terraform
Hosting * -> remote.machine
Graph
component(software.application)artifact(zip.archive)...host 2(remote.machine)hosthost

Rule #99

Attribute Value
Identifier virtual.machine#machine.image::ansible@openstack.provider
Component virtual.machine
Artifact machine.image
Technology ansible
Hosting openstack.provider
Graph
component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host

Rule #100

Attribute Value
Identifier virtual.machine#machine.image::terraform@openstack.provider
Component virtual.machine
Artifact machine.image
Technology terraform
Hosting openstack.provider
Graph
component(virtual.machine)artifact(machine.image)host 1(openstack.provider)host

Reference Implementation

We provide a reference implementation for this specification as part of OpenTOSCA Vintner. OpenTOSCA Vintner is a TOSCA preprocessing and management layer. The project is open-source, licensed under Apache-2.0, and publicly available at GitHub.

Acknowledgments

This specification is developed for the purpose of research by the Institute of Software Engineering (ISTE) and the Institute of Architecture of Application Systems (IAAS) of the University of Stuttgart, Germany. The development is partially funded by the German Federal Ministry for Economic Affairs and Climate Action (BMWK) as part of the Software-Defined Car (SofDCar) project (19S21002).

Correspondence

Please address all correspondence concerning this specification to Miles Stötzner <miles.stoetzner@iste.uni-stuttgart.de, https://miles.stoetzner.de>.

Disclaimer of Warranty

Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.


Last update: October 1, 2024