qenvs

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 27, 2022 License: Apache-2.0

README

qenvs

automation for qe environments using pulumi

Container Repository on Quay

Environment

Create a composable environment with different qe target machines aggregated on different topologies and with specific setups (like vpns, proxys, airgaps,...)

Current available features allow to create supported hosts on AWS using cmd qenvs host create current supported hosts:

  • RHEL v8 (host id ol-rhel)
  • MacOS M1 v12 (host id g-macos-m1)

Environment

Spot price use case

This module allows to check for best bid price on all regions, to request instances at lower price to reduce costs. To calculate the best option, it is also required to:

  • reduce interruptions
  • ensure capacity

to check those requisites the module make use of spot placement scores based on machine requirements. Then best scores are crossed with lowers price from spot price history to pick the most valuable option.

Current use case is working on one machine but it will be exteded to analyze any required environment offered by qenvs (checking with all the machines included on a specific environment).

Current information about supported machines can be checked at support-matrix

Build and usage

qenvs can be build as container

make container-build

An usage sample for container

# state and connection outputs will be created in this folder
mkdir -p output

# Create rhel host
# Recommended this region us-east-1
# https://github.com/adrianriobo/qenvs/issues/24
podman run -d --name qenvs-rhel \
        -v $PWD/output:/data/qenvs:Z \
        -e AWS_ACCESS_KEY_ID=XXX \
        -e AWS_SECRET_ACCESS_KEY=XXX \
        -e AWS_DEFAULT_REGION=us-east-1 \
        -e PROJECT_NAME=qenvs-rhel \
        -e BACKED_URL=file:///data/qenvs \
        -e CONNECTION_OUTPUT=/data/qenvs \
        -e OPERATION=create \
        -e SUPPORTED_HOST_ID=ol-rhel \
        quay.io/ariobolo/qenvs:0.0.1

# state should be passed to container for destroy
# project name should be the same
podman run -d --name qenvs-rhel \
        -v $PWD/output:/data/qenvs:Z \
        -e AWS_ACCESS_KEY_ID=XXX \
        -e AWS_SECRET_ACCESS_KEY=XXX \
        # Recommended this region 
        # https://github.com/adrianriobo/qenvs/issues/24
        -e AWS_DEFAULT_REGION=us-east-1 \
        -e PROJECT_NAME=qenvs-rhel \
        -e BACKED_URL=file:///data/qenvs \
        -e OPERATION=destroy \
        quay.io/ariobolo/qenvs:0.0.1

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL