Skip to content

Instructions: Self-Managed Install

PREVIEW FEATURE

This is a preview feature that may have incomplete functionality.

A Self-Managed Install requires extensive end-user customization and advanced knowledge of Kubernetes.

A Yellowbrick self-managed installation is one where the installation of each component is managed by the user. This installation method provides control of every aspect of the installation process. Once installed, the user assumes full lifecycle management of the kubernetes cluster and installed components.

The self-managed installation process involves:

  • Using the Yellowbrick Deployer to push assets to your private registry
  • Create cloud infrastructure
  • Install Helm charts
  • Create a Yellowbrick Instance

INFO

Yellowbrick workloads are compatible upto Kuberentes version 1.30.

Yellowbrick maintained Kubernetes Node AMI for Kubernetes include Kubelet version 1.30.

Pushing Assets

Installation assets include Helm charts and container images. These assets are pushed into private registries by the user with the Yellowbrick Deployer. Follow the instructions to create the Deployer in your respective environment:

To push assets with the Deployer: - Gain access to the Deployer instance via SSH - Use /opt/ybd/yb-install push to copy Helm charts and container images - See the CLI reference for details on the push subcommand.

If you choose to not use the Deployer to push assets, you must ensure those components are available to the installation process described below.

Deploying

To quickly get started using Terraform in a self-managed installation, see the Terraform reference architecture.

To cover other deployment methods, please see the following section that lists individual components for each cloud provider environment. The components listed are required deployment dependencies unless stated as optional. Some of these may already be deployed in your environment. Review each to ensure they meet the requirements to perform a successful deployment.

AWS Install Instructions

When installing into an AWS cloud environment, the following components are required:

AWS Add-ons

Infra

A reference Node Group is required for the Yellowbrick Operator to function, instructions can be found below.

Helm Charts

The following Helm charts are required. In each section, there may be instructions for installing Helm chart, creating cloud insfrastructure, or both.

Authenticating with ECR

You will need to authenticate helm with ECR to be able to install the helm charts. Replace {account_id} with your AWS account ID and {region} with the AWS region.

bash
aws ecr get-login-password --region {region} | helm registry login --username AWS --password-stdin {account_id}.dkr.ecr.{region}.amazonaws.com

Create Yellowbrick Instance

Upon deploying all the required components, the final step is to create a YBInstance Custom Resource in Kubernetes. This will instruct the Yellowbrick Operator to proceed to create your first instance.

This example uses kubectl to create a YBInstance of version 7.2.0-68613.33955ce9. Refer to YBInstance CRD Spec for more customizations.

bash
# Setup Initial Admin Password, secret name must be of pattern ybinst-{instance_name}-intial-admin
cat <<EOF >secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: ybinst-firstinstance-initial-admin 
  namespace: yb-firstinstance
type: Opaque
stringData:
  username: myuser
  password: mypassword
EOF

kubectl apply -f secret.yaml

# Create YBInstance
cat <<EOF >instance.yaml
apiVersion: cluster.yellowbrick.io/v1
kind: YBInstance
metadata:
  name: firstinstance
  namespace: yb-firstinstance
spec:
  requestedState: Running
  sharedServicesType: standard
  storageManaged: true
  version: 7.2.0-68613.33955ce9
EOF

kubectl apply -f instance.yml

You can then login to Yellowbrick Manager using the credentials as setup in the secret. The URL may be found using the following command:

bash
kubectl get service -n {namespace} yb-manager-service \
  -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'

INFO

In case the credentials are not setup properly, you can run the following command to shell into the database pod and reset the password using ALTER ROLE/USER command. If the intial user itself is not set, assume the first user to be ybdadmin.

bash
kubectl exec -it -n {namespace} ybinst-{instance_name}-0 ybinst-pg -- ybsql yellowbrick --command="ALTER ROLE ybdadmin with password '{password}';"