Skip to content

Deployer CLI Reference

The common syntax is:

/opt/ybd/yb-install [command] [flags]

Many of the commands consume a JSON Configuration file documented here. The easiest way to obtain a configuration file is to run through the installer web application, fill out all the fields for an installation, then choose to export the configuration file at the end without proceeding with the installation.

Flags

  • --allow/-a a.b.c.d/32 (Optional) When performing an install, uninstall, or interactive operation, allow the supplied CIDR network a.b.c.d/32 access to service endpoints during the operation.
  • --log-file/-l (Optional) File path to which this CLI redirects its logs, defaults to /tmp/install.log.
  • --verbose/-v (Optional) Enables Verbose log (interactive command is always verbose).
  • --help/-h Shows the help text
  • --version Shows the version

Commands

interactive

This launches the web application server UI.

Usage

./yb-install interactive [--port=<PORT> --key==<key>]

Additional Flags

  • --port/-p (Optional) Port on which the web server runs. Defaults to 8443
  • --key/-k (Optional) Deployer Access Key that protects the installation. By Default, it is auto generated, and is logged on the console. See cloud deployer access key.

validate

Validates a given configuration to ensure that it is good for proceeding and shows any errors.

Usage

./yb-install validate --config-path=<path-to-configuration-file>
Additional Flags
  • --config-path/-c: (Required) Path to config for installing Yellowbrick Data Warehouse instance

install

Initiates the installation of infrastructure and yellowbrick software. This subcommand will also run the validate/plan subcommand before starting the installation.

Note: At the end of the install, the final configuration used is saved as a Kubernetes Secret in the cluster created during the installation. The secret name is yb-install-config and it is present in the same namespace as the Yellowbrick Operator.

Usage

./yb-install install --config-path=<path-to-configuration-file>
Flags
  • --config-path/-c: (Required) Path to config for installing Yellowbrick Data Warehouse instance
  • --encryption-key-id/-e: (Optional) Full ID of the encryption key in the cloud provider KMS
  • --tags/-t: (Optional) A comma separated list of additional tags to set on cloud resources, example: key1=value1,key2=value2

manifest

Display a JSON manifest of the different cloud resources that would be created by the install command.

Usage

./yb-install manifest --config-path=<path-to-configuration-file>

This does not create any resource, but only shows what would be created with the current configuration.

Additional Flags
  • --config-path/-c: (Required) Path to config for installing Yellowbrick Data Warehouse instance

upgrade

Upgrades the Yellowbrick Operator and Yellowbrick Manager a prior installation of Yellowbrick software. This will also push assets before it intiates the upgrade. The flags are used to load the configuration you used during the installation.

Usage

./yb-install upgrade --provider=<cloud_provider> --cluster=<cluster-id> --namespace=<namespace>
Additional Flags
  • --provider/-p: (Required) Path to file for provider config
  • --cluster/-c: (Required) Kubernetes cluster name for your existing Installation(AKS, EKS or GKE name).
  • --namespace/-n: (Required) Kubernetes namespace in which the yellowbrick software was installed.

uninstall

Uninstalls a prior installation of yellowbrick software. This subcommand, unless disabled, invokes a confirmation prompt before intiating the uninstall, which includes typing the name of database instance.

THIS IS A DESTRUCIVE AND IRREVERSIABLE OPERATION AND WILL LEAD TO DATA LOSS

Usage

./yb-install uninstall --provider=<cloud_provider> --cluster-id=<cluster-id> --namespace=<namespace> [--skip-prompt]

OR

./yb-install uninstall  --config-path=<path-to-configuration-file> [--skip-prompt]

This command has two possible of flag sets/usage.

  • Use the first set of flags if the installation, even if partial, was able to reach the point where it created a Kubernetes Cluster.
  • Use the second flag only if the installation was partial, and failed even before it could create a Kubernetes Cluster.
Additional Flags
  • --provider/-p: Path to file for provider config
  • --cluster/-c: Kubernetes cluster name for your existing Installation(AKS, EKS or GKE name).
  • --namespace/-n: Kubernetes namespace in which the yellowbrick software was installed.
  • --config-path: Path to the configuration file used while installing Yellowbrick Data Warehouse instance. (Fail safe)
  • --skip-prompt/-s: Boolean, Skips prompt confirmation before uninstall

JSON Configuration File

At the top level, the configuration model has the following structure.

{
    "provider": {},
    "instance": {},
    "kubernetes": {},
    "network": {},
    "access": {},
    "operator": {},
    "account": {},
    "registry": {},
    "dependencies": {}
}

provider model

This block of the configuration defines the Cloud provider information.

{
    "type": "Required, has to be one of `aws`, `azure` or `gcp`",
    "region": "Required, cloud specific region code",
    "gcpProjectId": "Required if type is `gcp`, the project id where the install will occur"
    "azureSubscriptionId": "Required if type is `azure`. The azure subscription ID",
    "azureResourceGroupName": "Required if type is `azure`. The resource group in which you want to install in",
    "azureLogAnalyticsWorkspaceId": "Optional, if type is `azure`. The id of an existing log analytics workspace."
}

instance model

This block is some basic info about your instance.

{
    "name": "Required, the name of your Instance`",
    "namespace": "Required, the kubernetes namespace in which the instance is created."
    "timeout": "Optional, string representation of the timeout for all instance and manager operations"
}

kubernetes model

This block of the configuration defines parameters related to the kubernetes cluster which will be created during the install.

{
    "name": "Defaults to the `instance.name` property of the config. Not overridable yet.",
    "kmsKeyId": "Optional, Full ID of the encryption key in the cloud provider KMS"
    "timeout": "Optional, string representation of the timeout for all kubernetes operations"
}

network model

This block of the configuration defines parameters related to the kubernetes cluster which will be created during the install.

{
    "cidr": "IPv4 range for the VPC/Network",
    "id": "ID associated with an existing network",
    "subnets": [], # Required, list of subnets, see more info below. AWS requires minimum 2 subnets across two different availability zones.
    "timeout": "Optional, string representation of the timeout for all network operations"
}

subnet model

{
	"cidr": "IPv4 range for the Subnet, container within the network.cidr configuration",
    "id": "ID associated with an existing subnet",
	"zone": "The availability zone for the given subnet."
}

access model

This defines the restriction to your database instance. Applied to Yellowbrick Manadger, Instance and Kubernets cluster

{
    "type": "Type of access for your environment, one of `public` or `private",
    "restrict": [] # List of Restrictions you want to add, see below
}

restrict model

{
    "type": "Type of restriction, one of `ip` or `cidr`",
    "ip": "IPv4 address if type specified as `ip`",
    "address": "IPv4 cidr range if type specified as `cidr`"
}

operator model

{
    "namespace": "Required, the kubernetes namespace in which the Yellowbrick Operator/Manager are created."
    "timeout": "Optional, string representation of the timeout for all operator operations"
}

account model

{
    "instanceAccountName": "Username for the default Instance admin user.",
    "instanceAccountPassword": "Password for the default Instance admin user."
}

registry model

{
    "timeout": "Optional, string representation of the timeout for all registry operations"
}

dependencies model

{
    "timeout": "Optional, string representation of the timeout for all third party operations"
}