-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add cluster support, different software provisioning (#16)
* Adding clustering support in Custom VPC on AWS (#15) * Adding custom VPC for cluster interface * Adding cluster auto configuration * Adding variables in the virl2-base-config * fixing formatting * Adding support for compute nodes creation * fix for the ubuntu user ssh keys * fix for the image copy * adding dynamic hostnames for compute nodes * Adding fix for dynamic interfaces * adding interface sorting based on the netplan route-metric * Moving computes behind the NAT GW * Fixing formatting * resetting config.yml to defaults and importing updated node definitions --------- Co-authored-by: amieczko <[email protected]> Co-authored-by: Ralph Schmieder <[email protected]> * Fix Azure and consistency changes - resource names use underscores, not commas - whitespace / eol - use proper main function in interface_fix.py * Change to more unified package handling Software packages (.deb) are not installed individually anymore but by providing the .pkg file as it is available from CCO. This way, all the CML relevant Debian packages (CML, PaTTY, IOL tools) will be pulled from the software distribution package. The only downside right now is that the package stored in cloud storage is slightly bigger than the sum of the actually required Debian packages as the .pkg usually includes additional packages for upgrades (like a new kernel and sucht). In addition: - remove patty and iol customization scripts - fix customize script so that it works witch changed hostnames - change config vars in common and app section of config.yml - provide common.enable_patty boolean flag - rename app.deb to app.software - remove unused / commented-out code blocks * Documentation updates, some refactor - documentation updates, also fix some image paths - upload script changes to match move from .deb to .pkg - add flavor_compute option to specify flavor for cluster computes - wait for service availability in some more places - ensure PaTTY restarts with virl2 target - sign the commit * Update / fix documentation * added Andrzej's comment * add is_controller function and refactor - add common.sh with is_controller() function to ensure that controller-only functionality is not installed on computes - do not stop/start CML target for post-processing in cml.sh - add service restarts in post-process patch scripts, where needed - remove bridge0 and prevent re-creation of bridge0 during service restarts - update documentation * Improve network configuration - move network configuration changes from postprocess into cml_configure - remove the 00-cml-base.yaml Netplan configuarion, as not needed for cloud - select correct gw device for PaTTY if multiple default routes are present * Support an external secrets manager (#19) * Support an external secrets manager * Add support for CyberArk Conjur * Add support for Hashicorp Vault * Dummy secrets manager creates random passwords if undefined * Update prepare scripts to allow user to turn on/off secrets manager * Change secrets generation to use random_password * Change secrets generation to use random_password * Change the ordering of .envrc.example to make more sense * Fix bug with keys that have a null value in the config * Create a sensitive output variable that contains the generated/retrieved secrets * Update documentation * Fix bracket placement * Track changes to modules/secrets/{vault,conjur}.tf * Since these files are already tracked, .gitignore doesn't do anything to stop changes from these files being checked in. This is inline with already existing behavior for AWS and AZ deploy modules. * Update documentation - fix formatting / white space throughout - change some of the secret manager section in the top level README - unset all but the license token secret to force random secrets by default * Fix minor things - typo in README - restart target instead of controller in 00-patch_vmx.sh - move root password change (for AWS) before compute/controller check - white space corrections * Format all shell code with shfmt - using "shfmt -ci -i 4 -" - move root password change fragment to beginning of cml.sh (as early as possible - wait between retries when updating the domain name (letsencrypt.sh) * wip * Add better dependencies - controller on compute depend on their subnets - reboot at end of cloud-init via power-state - update docs - ready for skip bridge creation flag in 2.7.1 * Make AWS resource names consistent * Allow to specify existing VPC - add new AWS option to specify existing VPC ID. By default it's an empty string. In this case a custom VPC resource will be created. If a valid VPC ID is provided then this VPC is used instead - updated documentation. - removed the root password for console access (added for troubleshooting) * Make gateway ID a configurable option * Documentation and cluster compute calculation * Fix typo in var name * Only reboot after provision success * Make the user provision work (again) * Add documentation changes and minor tweaks - change "experimental" to "beta" in README - small changes in cml.sh * some final touches on CHANGELOG --------- Co-authored-by: Andrzej Mieczkowski <[email protected]> Co-authored-by: amieczko <[email protected]> Co-authored-by: Chris McCoy <[email protected]>
- Loading branch information
1 parent
4ad91f5
commit a908806
Showing
55 changed files
with
1,652 additions
and
376 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# | ||
# This file is part of Cisco Modeling Labs | ||
# Copyright (c) 2024, Cisco Systems, Inc. | ||
# All rights reserved. | ||
# | ||
|
||
######### | ||
# Configs | ||
######### | ||
#export TF_VAR_cfg_file="" | ||
#export TF_VAR_cfg_extra_vars="" | ||
|
||
######## | ||
# Clouds | ||
######## | ||
|
||
# | ||
# AWS | ||
# | ||
|
||
#export TF_VAR_aws_access_key="" | ||
#export TF_VAR_aws_secret_key="" | ||
|
||
# | ||
# Azure | ||
# | ||
|
||
#export TF_VAR_subscription_id="" | ||
#export TF_VAR_tenant_id="" | ||
|
||
######### | ||
# Secrets | ||
######### | ||
|
||
# | ||
# Conjur | ||
# | ||
|
||
#export CONJUR_APPLIANCE_URL="https://conjur-server.example.com" | ||
#export CONJUR_ACCOUNT="example" | ||
## Initialize Conjur, saving the Certificate to the user's home in | ||
## ~/conjur-server.pem | ||
# conjur init --url "$CONJUR_APPLIANCE_URL" --account "$CONJUR_ACCOUNT" --force | ||
## Log in with a Host API Key. The user's short hostname is used to identify | ||
## the host. These would be set up ahead of time in Conjur. This only needs | ||
## to be performed once. | ||
# conjur login --id "host/org/tenant/$(hostname -s)" | ||
# conjur whoami | ||
## Once you are logged in with the Conjur CLI, you can use the macOS Keychain | ||
## to access the required credentials to set up the environment variables. | ||
#export CONJUR_AUTHN_LOGIN="$(security find-generic-password -s ${CONJUR_APPLIANCE_URL}/authn -a login -w | cut -d ':' -f 2 | base64 -d -i -)" | ||
#export CONJUR_AUTHN_API_KEY="$(security find-generic-password -s ${CONJUR_APPLIANCE_URL}/authn -a password -w | cut -d ':' -f 2 | base64 -d -i -)" | ||
## Or, change for other OSes | ||
#export CONJUR_AUTHN_LOGIN="" | ||
#export CONJUR_AUTHN_API_KEY="" | ||
#export CONJUR_CERT_FILE="/etc/conjur.pem" | ||
# -or for Windows- | ||
#set CONJUR_APPLIANCE_URL=https://conjur-server.example.com | ||
#set CONJUR_ACCOUNT=example | ||
#set CONJUR_AUTHN_LOGIN="" | ||
#set CONJUR_AUTHN_API_KEY="" | ||
#set CONJUR_CERT_FILE=C:\conjur-server.pem | ||
|
||
# | ||
# Hashicorp Vault | ||
# | ||
|
||
#export VAULT_ADDR="https://vault-server.example.com:8200" | ||
## This logs into the Vault CLI and refreshes the users' token. | ||
# vault login #-method=ldap | ||
# -or for Windows- | ||
#set VAULT_ADDR=https://vault-server.example.com:8200 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,3 +3,4 @@ | |
.terraform | ||
.terraform.lock.hcl | ||
terraform.tfstate* | ||
.terraform.tfstate.lock.info |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.