UNCLASSIFIED - NO CUI

Skip to content
Snippets Groups Projects
Verified Commit a2fa1b73 authored by Andrew Kesterson's avatar Andrew Kesterson
Browse files
#2591: Quickstart does not accurately set expectations regarding which applications will be ready when big bang is deployed
#2591: Disambiguate the quickstart as to where commands should be executed
#2592: Fix k3d-dev reference to hardcoded ubuntu username
#2593 : Quickstart ignores user arguments and always assumes it is destroying a cloud instance
parent 87fd8ead
No related branches found
No related tags found
No related merge requests found
Pipeline #4058024 passed
......@@ -526,7 +526,7 @@ function install_docker {
run_batch_add 'echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null'
run_batch_add "sudo DEBIAN_FRONTEND=noninteractive apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"
# Add your base user to the Docker group so that you do not need sudo to run docker commands
run_batch_add "sudo usermod -aG docker ubuntu"
run_batch_add "sudo usermod -aG docker ${SSHUSER}"
run_batch_execute
}
......
......@@ -60,19 +60,7 @@ function checkout_pipeline_templates {
git checkout ${arg_pipeline_templates_version}
}
function destroy_k3d_cluster {
if [[ "${arg_cloud_provider}" != "" ]]; then
arg_cloud="-c ${arg_cloud_provider}"
fi
${BIG_BANG_REPO}/docs/assets/scripts/developer/k3d-dev.sh \
-t quickstart \
${arg_cloud} \
-d
}
function build_k3d_cluster {
args=""
function build_k3d_arguments {
if [[ "${arg_privateip}" != "" ]]; then
args="${args} -P ${arg_privateip}"
fi
......@@ -97,12 +85,22 @@ function build_k3d_cluster {
if [[ "${arg_recreate_cloud}" == "true" ]]; then
args="${args} -R"
fi
echo "${args}"
}
function destroy_k3d_cluster {
${BIG_BANG_REPO}/docs/assets/scripts/developer/k3d-dev.sh \
-t quickstart \
$(build_k3d_arguments) \
-d
}
function build_k3d_cluster {
${BIG_BANG_REPO}/docs/assets/scripts/developer/k3d-dev.sh \
-t quickstart \
-T \
-q \
${args} \
$(build_k3d_arguments) \
$@
}
......
......@@ -4,24 +4,40 @@
## Big Bang in 1 hour
An SRE with a reasonable amount of experience operating in a command line environment, equipped with a fast internet connection and a workstation they can install software on, should be able to complete this process and have an operational Big Bang dev environment in 1 hour or less.
An SRE with a reasonable amount of experience operating in a command line environment, equipped with a fast internet connection and a workstation they can install software on, should be able to complete this process and have an operational [Big Bang](https://repo1.dso.mil/big-bang/bigbang) dev environment in 1 hour or less.
### What You Will Get
When you come out the other side of this process, you will have a k3d kubernetes cluster, running 3 virtualized kubernetes nodes on a single compute instance, with a fully functioning Big Bang installation, consisting of the following components:
* [Istio](https://docs-bigbang.dso.mil/latest/packages/istio-operator/) service mesh
* [Kiali](https://docs-bigbang.dso.mil/latest/packages/kiali/) service mesh observability tool
* [Kyverno](https://docs-bigbang.dso.mil/latest/packages/kyverno/) policy engine
* [Loki](https://docs-bigbang.dso.mil/latest/packages/loki/) log aggregation via [Promtail](https://docs-bigbang.dso.mil/latest/packages/promtail/)
* [metrics-server](https://docs-bigbang.dso.mil/latest/packages/metrics-server/) metrics collector
* [Tempo](https://docs-bigbang.dso.mil/latest/packages/tempo/) trace collector for Grafana
* [Grafana](https://docs-bigbang.dso.mil/latest/packages/grafana/) dashboards
* [Neuvector](https://docs-bigbang.dso.mil/latest/packages/grafana/) container lifecycle security management
It is important to remember that Big Bang is capable of deploying [many other packages](https://docs-bigbang.dso.mil/latest/packages/), but each of those packages requires additional configuration on the part of the user. Big Bang, in its default state, is a cohesive platform upon which other packages may be deployed. The goal of the quickstart is to bring that platform up quickly. The procedure for bringing up any specific package (such as mattermost) or for modeling any specific use case (such as Party Bus) is beyond the scope of the quickstart. Refer to individual package documentation for more information.
### Satisfy the Prerequisites
1. Ensure your workstation has a functional GNU environment with `git`. Mac OS and Linux should be good to go out of the box. For Windows, the **only** supported method for this guide is to install WSL and run a WSL bash terminal, following the rest of the guide as a Linux user inside WSL.
1. Install [jq](https://jqlang.github.io/jq/download/).
1. Install [yq](https://github.com/mikefarah/yq/#install). yq needs to be available in your system path PATH as `yq`, so we recommend not using a dockerized installation.
1. Install kubectl. Follow the instructions for [windows](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/), [macos](https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/) or [linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/). (If you are running on WSL in Windows, you should install kubectl using the package manager inside of WSL to install kubectl.)
1. Install [sshuttle](https://sshuttle.readthedocs.io/en/stable/installation.html)
1. [Install helm](https://helm.sh/docs/intro/install/).
1. [Install the Flux CLI](https://fluxcd.io/flux/installation/).
1. Ensure you have bash version 4 installed. Linux and Windows with WSL users probably don't need to worry about this. For Mac OS users, install bash4 with homebrew or a similar package manager, as the bash that ships with Mac OS is hopelessly old. Mac OS users will use `/opt/homebrew/bin/bash` whenever `bash` is mentioned in this guide.
1. Install [jq](https://jqlang.github.io/jq/download/) on your workstation.
1. Install [yq](https://github.com/mikefarah/yq/#install) on your workstation (version `>= 4.45.1`). yq needs to be available in your system path PATH as `yq`, so we recommend not using a dockerized installation.
1. Install kubectl on your workstation. Follow the instructions for [windows](https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/), [macos](https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/) or [linux](https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/). (If you are running on WSL in Windows, you should install kubectl using the package manager inside of WSL to install kubectl.)
1. Install [sshuttle](https://sshuttle.readthedocs.io/en/stable/installation.html) on your workstation
1. [Install helm](https://helm.sh/docs/intro/install/) on your workstation.
1. [Install the Flux CLI](https://fluxcd.io/flux/installation/) on your workstation.
1. Ensure you have bash version 4 installed on your workstation. Linux and Windows with WSL users probably don't need to worry about this. For Mac OS users, install bash4 with homebrew or a similar package manager, as the bash that ships with Mac OS is hopelessly old. Mac OS users will use `/opt/homebrew/bin/bash` whenever `bash` is mentioned in this guide.
1. Ensure you have an account on [PlatformOne RegistryOne](https://registry1.dso.mil). You will need your username and access token ("CLI Secret") for this process. (To retrieve your token, login to registry1, click your name in the top right, and copy the "CLI Secret" field.)
1. If you do not plan to deploy the bigbang quickstart cluster onto your own VM, and want the quickstart script to provision an AWS VM for you, you need to install and configure [the AWS cli](https://aws.amazon.com/cli/) for your AWS account.
1. If you do not plan to deploy the bigbang quickstart cluster onto your own VM, and want the quickstart script to provision an AWS VM for you, you need to install and configure [the AWS cli](https://aws.amazon.com/cli/) on your workstation for your AWS account.
1. Select a location on your workstation for the quickstart script to check out the bigbang code from repo1. The quickstart will check out [a copy of the big-bang code](https://repo1.dso.mil/big-bang/bigbang) and some helper scripts into a location you provide on your workstation.
### Download the Quickstart Script
Run the following commands in your terminal to download the quickstart script, which you will use in the next step:
Run the following commands in your workstation's terminal to download the quickstart script, which you will use in the next step:
```
export REGISTRY1_USERNAME=YOUR_REGISTRY1_USERNAME
......@@ -36,7 +52,7 @@ curl --output quickstart.sh https://repo1.dso.mil/big-bang/bigbang/-/raw/master/
#### Using a VM or other hardware you built yourself
1. Spin up an Ubuntu VM somewhere with 8 CPUs and 32gB of RAM. Make sure you can SSH to it. It doesn't matter what cloud provider you're using, it can even be on your local system if you have enough horsepower for it.
1. Run the following command in your command terminal:
1. Run the following command in your workstation's terminal:
```
bash quickstart.sh
......@@ -49,7 +65,7 @@ bash quickstart.sh
1. If your system is already configured to use AWS via the `aws-cli` and you don't want to go to the trouble of building your own VM, the quickstart can attempt to do it for you; simply run the quickstart with no arguments. Pay attention to the script output; the IP addresses of the created AWS EC2 instance will be printed after the cluster is built and before big bang is deployed. You may need these later.
1. The quickstart is only so smart, and AWS environments can vary greatly. If the quickstart is not able to build an EC2 instance in AWS for you, please go build an EC2 instance suitable for your use case, then come back and follow the instructions for "Using a VM or other hardware you built yourself".
1. Run the following commands in your command terminal:
1. Run the following commands in your workstation's terminal:
```
bash quickstart.sh
......@@ -121,7 +137,7 @@ The quickstart.sh script performs several actions:
### Fix DNS to access the services in your browser
You can now access your bigbang kubernetes cluster from the command line using `kubectl`, but you will need to perform one extra step to easily access bigbang services in your web browser (or from the command line using utilities like `curl`). You will need to manually override some DNS settings to send specific website requests to your kubernetes cluster. This was included in the final message of the quickstart, but here are the instructions again.
You can now access your bigbang kubernetes cluster from your workstation's command line using `kubectl`, but you will need to perform one extra step to easily access bigbang services in your web browser (or from the command line using utilities like `curl`). You will need to manually override some DNS settings to send specific website requests to your kubernetes cluster. This was included in the final message of the quickstart, but here are the instructions again.
**Remember to un-do this step when you are done experimenting with the bigbang quickstart.**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment