Skip to main content

terrajinja-sbp-vcd

This is an extension to the vault provider for the following modules. The original documentation can be found here

SBP Specific implementations

Here is a list of supported resources and their modifications

sbp.vcd.network_routed_v2

Original provider: vcd.network_routed_v2

This custom provider adds the following:

  • simplified and generic input for a network subnet
old parameter new parameter description
static_ip_pool
gateway
prefix_length
cidr the cidr parameter calculates and fills in the 3 replaced values.
dns1
dns2
dns dns is an array of dns servers, and automticly fills dns1 and dns2

terrajinja-cli example

Click to expand

the following is a code snipet you can used in a terrajinja-cli template file. This reads the VCD group and Edge name and creates a network named mynetwork with the given parameters.

terraform:
  resources:
    - task: read-virtual-datacenter-group
      module: vcd.data_vcd_vdc_group
      parameters:
        name: my_vdc

    - task: read-edge-gateway
      module: vcd.data_vcd_nsxt_edgegateway
      parameters:
        name: my_vdc_edge
        owner_id: $read-virtual-datacenter-group.id

    - task: my-network-backend
      module: sbp.vcd.network_routed_v2
      parameters:
        edge_gateway_id: $read-edge-gateway.id
        name: mynetwork
        cidr: 10.10.10.0/28
        dns: ["10.10.20.2", "10.10.20.3"]
        dns_suffix: my_domain.local

sbp.vcd.vm_internal_disk

Original provider: vcd.vm_internal_disk

This custom provider adds the following:

  • human readable input for size
  • defaults for sbp.cloud disk settings
  • optional delay in provisioning (required for vm boot delay)
old parameter new parameter description
- delay_in_seconds(int) the delay in seconds before attaching the disk
bus_type bus_type default is set to "paravirtual"
storage_profile storage_profile default is set to "generic"
iops iops default is set to "5000"
size(int) size(str) input of size is no longer in mb, but in human readable format.
e.g. 1GB / 5TB / 3500MB

terrajinja-cli example

Click to expand

the following is a code snipet you can used in a terrajinja-cli template file.

terraform:
  resources:
    - task: vm-internal-disk
      module: sbp.vcd.vm_internal_disk
      parameters:
        vapp_name: "my_vapp_name"
        vm_name: "my_vm"
        vdc: "my_vdc
        size: "120GB"
        delay_in_seconds: 60

sbp.vcd.vm

Original provider: vcd.vm

This custom provider adds the following:

  • optional chef support, by bootstrapping and adding a run list
  • optional vault support, automatic token generation for host
  • optional automatic disk attachment
  • automatic vm access control
  • create multiple vm's based on count and naming scheme
  • support for vm naming scheme (free format)
  • support for vm distributuin scheme (which zone)

main changes:

old parameter new parameter description
- name(str) main name of the vm's to be created
- count(int) the amount of vm's to create
memory(int) memory(int|str) now accepts human readable input e.g. 1GB, 4GB, 1,5TB
network_name(dict) network_name(str) now network only requires a name, the rest is pre-filled
- ip_addresses(list) one IP for each vm
- disks(list[dict]) internal disks adds additional internal disks (default: None)
- template_name(str) name of the template (e.g. "Debian_12-latest")
- catalog_organization(str) location of the template (default: NLCP-Templates)
- catalog_name(str) location of the template (default: NLCP-Templates)
- placement_strategy(str) placement strategy, see below (default: one_per_zone)
- placements(list) zones where a vm can be placed
- naming_format(str) naming format of the vm name and numbering
- first_digit(int) number to start the vm name counter
- depends_on_primary(bool) the remaining nodes are created once the first node has been deployed (used for cluster creation)
- shared_with_everyone(bool) sets the default permission in vcloud for the vm's (default: True)
- everyone_access_level(str) sets the default permission in vcloud for the vm's (default: "Change")

optional for cloud-init:

old parameter new parameter description
- cloud_config_file(str) path to the cloud-init file for the vm
- vcd_urn(str) required for cloud-init template
- dns_hosts(list) required for cloud-init template, default name servers for the vm
- proxy_url(str) required for cloud-init template, default proxy to configure for a vm (default: '' e.g. no proxy)

optional for chef:

old parameter new parameter description
- chef_run_list(list) required for cloud-init template, vm's initial chef run list
- chef_client_version required for cloud-init template, chef client version to install
- chef_encrypted_databag_secret(str) required for cloud-init template, (default: None)
- chef_server_url(str) required for cloud-init template, (default: None)
- chef_environment(str) required for cloud-init template, (default: None)
- chef_validator_name(str) required for cloud-init template, (default: None)
- chef_validator_pem(str) required for cloud-init template, (default: None)

optional for vault:

old parameter new parameter description
- vault_policies(list) vault policy to attach to vm set
- vault_token_period(int) how long the vm's vault token is valid (default: 604800,)
- vault_orphan(bool) vault setting (default: True)
- vault_renewable(bool) vault setting (default: True
- vault_renew_min_lease(int) vault setting (default: 86400)
- vault_renew_increment(int) vault setting (default:604800)

placement strategies

A placement strategy defines on which zones the vm's are deployed.

optional strategies:

  • one_per_zone: spread vm's evenly across the provided zones
  • tbd: more strategies to be added in the future

naming format

The format in which to generate the name for each vm in count the details consist of an array that consists of a printf string, followed by its values. e.g.:

  naming_format: ["%s%d%02d", "name", "zone_id", "nr_per_zone"]

the first entry must be a string that supports printf the remaining items are the values applied to the string

available options are:

  • name (name of the vm)
  • zone_id (numeric id of the zone)
  • nr_per_zone (the number of the vm in the perticular zone)
  • nr (the number of the vm)
  • zone_name (name of the zone)

internal disks

to add additional disks, provide an array of disks in the following format:

  disk:
    - size: 10GB
      unit: 1
    - size: 10GB
      unit: 2

terrajinja-cli example

Click to expand

the following is a code snipet you can used in a terrajinja-cli template file.

terraform:
  resources:
    - task: privoxy-vm
      module: sbp.vcd.vm
      parameters:
        name: tla-env-prx
        count: 2
        ip_addresses: [10.10.10.5, 10.10.10.6]
        cpus: 2
        memory: 4096
        network_name: dmz
        placement_strategy: one_per_zone
        first_digit: 1
        template_name: "Debian_12-latest"
        catalog_organization: NLCP-Templates
        catalog_name: NLCP-Templates
        cloud_config_file: "{{ config_directory }}/templates/cloud-config/debian_12.yaml"
        naming_format: [ "%s%d%02d", "name", "zone_id", "nr_per_zone" ]
        chef_server_url: http://chef.io/org
        chef_encrypted_databag_secret: {{ env['CHEF_ENCRYPTED_DATABAG_SECRET']  }}
        chef_validator_name: ofd-validator
        chef_validator_pem: |
{{ env['CHEF_VALIDATOR_PEM'] | indent( width=8, first=True) }}
        chef_client_version: 18
        dns_hosts: [ "8.8.8.8", "1.1.1.1" ]
        chef_environment: tlat
        chef_run_list: [ baseline_role, proxy_role ]
        vault_policies: [ proxy-policy ]
        vdc_urn: urn://1234:5678:9101
        vdc: my_vcd
        placements:
          - zone: 1
            name: "NLCP1 Non-Windows"
          - zone: 2
            name: "NLCP2 Non-Windows"        
        depends_on:
          - '$network-dmz'

sbp.vcd.rde

Original provider: vcd.rde

This custom provider adds the following:

  • simplified and generic input for a tanzu
old parameter new parameter description
input_entity - generated inside the resource based on the new parameters
rde_type_id - generaeted inside the resource based on the new parameters
- config_file_json main json config file to provision tanzu
- config_file_yaml kubernetes template file embedded in json config
- bearer base64 encoded credentials, used inside the yaml for access to vcloud
- vendor default: vmware
- nss default: capvcdCluster
- resolve default: true
- cap_vcd_cluster_version default: 1.2.0

terrajinja-cli example

Click to expand

the following is a code snipet you can used in a terrajinja-cli template file. This creates a tanzu kubernetes deployment with the given parameters.

    - task: create-tanzu
      module: sbp.vcd.rde
      parameters:
        org: tla
        cap_vcd_cluster_version: "1.2.0"
        name: my-cluster-001
        config_file_json: "{{ config_directory }}/templates/kubernetes/tanzu.json"
        config_file_yaml: "{{ config_directory }}/templates/kubernetes/tanzu.yaml"
        bearer: {{ env['BEARER_B64'] }}

sbp.vcd.nsxt_nat_rule

Original provider: vcd.nsxt_nat_rule

TODO: write doc

sbp.vcd.nsxt_ip_set

Original provider: vcd.nsxt_ip_set

TODO: write doc

sbp.vcd.nsxt_firewall

Original provider: vcd.nsxt_firewall

TODO: write doc

sbp.vcd.nsxt_distributed_firewall

Original provider: vcd.nsxt_distributed_firewall

TODO: write doc

sbp.vcd.nsxt_app_port_profile

Original provider: vcd.nsxt_app_port_profile

TODO: write doc

sbp.vcd.nsxt_alb_virtual_service

Original provider: vcd.nsxt_alb_virtual_service

TODO: write doc

sbp.vcd.nsxt_alb_pool

Original provider: vcd.nsxt_alb_pool

TODO: write doc

sbp.vcd.data_vcd_vm_placement_policy

Original provider: vcd.data_vcd_vm_placement_policy

TODO: write doc

sbp.vcd.data_vcd_nsxt_alb_edgegateway_service_engine_group

Original provider: vcd.data_vcd_nsxt_alb_edgegateway_service_engine_group

TODO: write doc

sbp.vcd.data_vcd_catalog_vapp_template

Original provider: vcd.data_vcd_catalog_vapp_template

TODO: write doc

History

0.0.1 (14-03-2024)

  • First code creation

Metadata

Release files for terrajinja-sbp-vcd 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for terrajinja-sbp-vcd 0.12.0
File Size Uploaded Provenance Actions
terrajinja_sbp_vcd-0.12.0.tar.gz 99.7 kB Without provenance Details for terrajinja_sbp_vcd-0.12.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for terrajinja-sbp-vcd 0.12.0
File Interpreter ABI Platform Actions
terrajinja_sbp_vcd-0.12.0-py3-none-any.whl Python 3 none any Details for terrajinja_sbp_vcd-0.12.0-py3-none-any.whl

Total release size: 197.9 kB

Release files / terrajinja_sbp_vcd-0.12.0.tar.gz

Download URL terrajinja_sbp_vcd-0.12.0.tar.gz
Size 99.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d901e7c4f353b910b1934f462ffc4d9b6c30b3d96785b95f569a528c91e718dd
BLAKE2b-256 checksum
How to use checksums
9dce8f70b8663dc65ff3a289618dad85cad753ddb3f98690dfa52ecbb653371f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.5

Release files / terrajinja_sbp_vcd-0.12.0-py3-none-any.whl

Download URL terrajinja_sbp_vcd-0.12.0-py3-none-any.whl
Size 98.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25b6b424d5a7d4bdf7fdf109e9453ebef5733a89099aa3efce1713d0ae201b64
BLAKE2b-256 checksum
How to use checksums
37b9a953cf46969ce92aca599a117a4ddef0b77136f90472a04d9372e95fa9ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.5

Security for terrajinja-sbp-vcd 0.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.12.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page