Skip to content

Commit

Permalink
kubectl port-forward (#393)
Browse files Browse the repository at this point in the history
  • Loading branch information
milesstoetzner authored Sep 3, 2024
1 parent c7bfae9 commit a860787
Show file tree
Hide file tree
Showing 51 changed files with 2,616 additions and 1,873 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ ansible:
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
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ TEMPLATE_NAME="technology-gcp"
#VINTNER="node ../../../build/cli/index.js"
VINTNER="../../../task vintner"
ORCHESTRATOR="unfurl"
VARIANT="gcp"
VARIANT="os-medium"
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ cd "$(dirname "$0")"
source configuration.sh

$VINTNER template pull --dir ${TEMPLATE_DIR}
$VINTNER template implement --dir ${TEMPLATE_DIR}
$VINTNER template implement --dir ${TEMPLATE_DIR} --experimental
$VINTNER templates import --template ${TEMPLATE_NAME} --path ${TEMPLATE_DIR}
$VINTNER instances init --instance ${TEMPLATE_NAME} --template ${TEMPLATE_NAME}
$VINTNER instances resolve --instance ${TEMPLATE_NAME} --inputs ${TEMPLATE_DIR}/tests/${VARIANT}/inputs.yaml
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@
###################################################

ansible:
- component: gcp.service
weight: 1
reason: Ansible provides a declarative module
details: '"google.cloud.gcp_serviceusage_service" task'
- component: docker.engine
hosting:
- virtual.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'
- component: gcp.service
hosting: []
weight: 1
reason: Ansible provides a declarative module
details: '"google.cloud.gcp_serviceusage_service" task'
- component: ingress
hosting:
- kubernetes.cluster
Expand All @@ -27,37 +28,19 @@ ansible:
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'
- component: mysql.dbms
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
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: mysql.dbms
- component: mysql.database
hosting:
- mysql.dbms
- docker.engine
- virtual.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'
- component: virtual.machine
artifact: machine.image
hosting:
- openstack.provider
weight: 0.5
reason: Terraform is more specialized.
details: '"openstack.cloud.security_group", "openstack.cloud.security_group_rule" and "openstack.cloud.server" tasks'
- 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
Expand All @@ -75,44 +58,48 @@ ansible:
- docker.engine
- virtual.machine
weight: 0.5
reason: Docker is more specialized
reason: Docker Compose is more specialized
details: '"community.docker.docker_container" task'
- component: service.application
artifact: docker.image
- component: mysql.dbms
hosting:
- gcp.cloudrun
weight: 0
reason: Custom module with imperative parts, while Terraform provides a declarative module.
details: '"ansible.builtin.shell", "ansible.builtin.tempfile", and "ansible.builtin.copy" tasks '
- component: service.application
artifact: docker.image
- 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
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: service.application
artifact: zip.archive
hosting:
- gcp.appengine
weight: 0
reason: Custom module with imperative parts, while Terraform provides a declarative module.
details: '"ansible.builtin.shell", "ansible.builtin.tempfile", "ansible.builtin.unarchive", and "ansible.builtin.copy" tasks'
- component: mysql.database
- component: mysql.dbms
hosting:
- mysql.dbms
- docker.engine
- virtual.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'
- component: service.application
artifact: docker.image
hosting:
- docker.engine
- virtual.machine
weight: 0.5
reason: Docker is more specialized.
reason: Docker Compose is more specialized.
details: '"community.docker.docker_container" task'
- component: service.application
artifact: docker.image
hosting:
- gcp.cloudrun
weight: 0
reason: Custom module with imperative parts, while Terraform provides a declarative module.
details: '"ansible.builtin.shell", "ansible.builtin.tempfile", and "ansible.builtin.copy" tasks '
- component: service.application
artifact: docker.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes.core.k8s" tasks'
- component: service.application
artifact: tar.archive
hosting:
Expand All @@ -129,6 +116,13 @@ ansible:
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'
- component: service.application
artifact: zip.archive
hosting:
- gcp.appengine
weight: 0
reason: Custom module with imperative parts, while Terraform provides a declarative module.
details: '"ansible.builtin.shell", "ansible.builtin.tempfile", "ansible.builtin.unarchive", and "ansible.builtin.copy" tasks'
- component: software.application
artifact: apt.package
hosting:
Expand All @@ -153,17 +147,25 @@ ansible:
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'
- component: virtual.machine
artifact: machine.image
hosting:
- openstack.provider
weight: 0.5
reason: Terraform is more specialized.
details: '"openstack.cloud.security_group", "openstack.cloud.security_group_rule" and "openstack.cloud.server" tasks'
terraform:
- component: gcp.service
weight: 1
reason: Terraform provides a declarative module.
details: '"google_project_service" resource'
- component: docker.engine
hosting:
- virtual.machine
weight: 0
reason: Ansible is more specialized. Also using provisioners is a "last resort".
details: '"remote-exec" provider'
- component: gcp.service
hosting: []
weight: 1
reason: Terraform provides a declarative module.
details: '"google_project_service" resource'
- component: ingress
hosting:
- kubernetes.cluster
Expand All @@ -176,31 +178,13 @@ terraform:
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'
- component: mysql.dbms
hosting:
- gcp.cloudsql
weight: 1
reason: Terraform provides a declarative module.
details: '"google_sql_database_instance" and "google_sql_user" resources'
- component: mysql.dbms
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: mysql.dbms
- component: mysql.database
hosting:
- mysql.dbms
- docker.engine
- virtual.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'
- component: virtual.machine
artifact: machine.image
hosting:
- openstack.provider
weight: 1
reason: Terraform provides a declarative module.
details: '"openstack_compute_instance_v2", "openstack_networking_secgroup_rule_v2" and "openstack_networking_secgroup_v2" resources'
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
- component: mysql.database
hosting:
- mysql.dbms
Expand All @@ -224,44 +208,48 @@ terraform:
- docker.engine
- virtual.machine
weight: 0.5
reason: Docker is more specialized.
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
- component: service.application
artifact: docker.image
- component: mysql.dbms
hosting:
- gcp.cloudrun
- gcp.cloudsql
weight: 1
reason: Terraform provides a declarative module.
details: '"google_cloud_run_v2_service" and "google_cloud_run_service_iam_binding" resources'
- component: service.application
artifact: docker.image
details: '"google_sql_database_instance" and "google_sql_user" resources'
- component: mysql.dbms
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: service.application
artifact: zip.archive
hosting:
- gcp.appengine
weight: 1
reason: Terraform provides a declarative module.
details: '"google_app_engine_standard_app_version", "google_project_iam_member", "google_service_account", "google_storage_bucket", and "google_storage_bucket_object" resources'
- component: mysql.database
- component: mysql.dbms
hosting:
- mysql.dbms
- docker.engine
- virtual.machine
weight: 0.5
reason: Terraform provides a declarative module. However, Terraform requires an SSH workaround. Ansible is more specialized.
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'
- component: service.application
artifact: docker.image
hosting:
- docker.engine
- virtual.machine
weight: 0.5
reason: Docker is more specialized.
reason: Docker Compose is more specialized.
details: '"docker_container" and "docker_image" resources'
- component: service.application
artifact: docker.image
hosting:
- gcp.cloudrun
weight: 1
reason: Terraform provides a declarative module.
details: '"google_cloud_run_v2_service" and "google_cloud_run_service_iam_binding" resources'
- component: service.application
artifact: docker.image
hosting:
- kubernetes.cluster
weight: 0.5
reason: Kubernetes is more specialized.
details: '"kubernetes_deployment_v1" and "kubernetes_service_v1" resources'
- component: service.application
artifact: tar.archive
hosting:
Expand All @@ -278,6 +266,13 @@ terraform:
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'
- component: service.application
artifact: zip.archive
hosting:
- gcp.appengine
weight: 1
reason: Terraform provides a declarative module.
details: '"google_app_engine_standard_app_version", "google_project_iam_member", "google_service_account", "google_storage_bucket", and "google_storage_bucket_object" resources'
- component: software.application
artifact: apt.archive
hosting:
Expand All @@ -302,14 +297,15 @@ terraform:
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'
kubernetes:
- component: ingress
- component: virtual.machine
artifact: machine.image
hosting:
- kubernetes.cluster
- openstack.provider
weight: 1
reason: Kubernetes is the underlying technology.
details: Kubernetes manifest generated and applied
- component: mysql.dbms
reason: Terraform provides a declarative module.
details: '"openstack_compute_instance_v2", "openstack_networking_secgroup_rule_v2" and "openstack_networking_secgroup_v2" resources'
kubernetes:
- component: ingress
hosting:
- kubernetes.cluster
weight: 1
Expand All @@ -321,6 +317,12 @@ kubernetes:
- kubernetes.cluster
weight: 0
reason: Kubernetes Job with imperative parts, while declarative other technologies provide declarative modules.
- component: mysql.dbms
hosting:
- kubernetes.cluster
weight: 1
reason: Kubernetes is the underlying technology.
details: Kubernetes manifest generated and applied
- component: service.application
artifact: docker.image
hosting:
Expand All @@ -329,20 +331,20 @@ kubernetes:
reason: Kubernetes is the underlying technology.
details: Kubernetes manifest generated and applied
compose:
- component: mysql.database
hosting:
- mysql.dbms
- docker.engine
- virtual.machine
weight: 0
reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while other technologies provide declarative modules.
- component: mysql.dbms
hosting:
- docker.engine
- virtual.machine
weight: 1
reason: Docker is the underlying technology.
details: docker-compose manifest generated and applied
- component: mysql.database
hosting:
- mysql.dbms
- docker.engine
- virtual.machine
weight: 0
reason: One-time use docker container ("fake Kubernetes job") with imperative parts, while declarative other technologies provide declarative modules.
- component: service.application
artifact: docker.image
hosting:
Expand Down
Loading

0 comments on commit a860787

Please sign in to comment.