Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 84 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,74 @@

- [Table of Contents](#table-of-contents)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit pick probably don't need a link to the table of contents in the table of contents.

- [Introduction](#introduction)
- [Prerequisites](#prerequisites)
- [Configuration](#configuration)
- [Installation](#installation)
- [Manual Installation](#manual-installation)
- [Prerequisites](#prerequisites)
- [Configuration](#configuration)
- [Installation](#installation)

### Introduction

Juno Bootstrap is a collection of Helm charts that deploys the required services to run Juno on Kubernetes.
The preferred method of deploying is via the one-click installer which walks you through the installation
process and allows you to select from predefined Juno deployment configurations.

```shell
curl -s https://raw.githubusercontent.com/juno-fx/Juno-Bootstrap/refs/heads/main/bootstrap.sh | bash -
```

```shell
===============================================
🚀 Official Juno Innovations One Click Orion Installer
===============================================

❓ Checking available host resources...
✅ Host meets minimum installed Memory
✅ Host meets minimum CPU core count
🏆 All resource requirements met!
🌐 Enter the server's public DNS hostname [aurora]:
📧 Enter the owner email: blah@email.com
🔑 Enter the temporary password for the owner:
🔐 Confirm password for the owner:
👤 Enter the username (letters only): blah
🆔 Enter the UID for that user: 1005

===============================================
✅ Collected Installation Information
-----------------------------------------------
Hostname: aurora
Owner Email: blah@email.com
Owner Password: [hidden]
Username: blah
UID: 1005
===============================================

❓ Is this information correct? [y/N]: y
👍 Proceeding...
📦 Is this an offline installation? [y/N]: n
📝 Writing final .values.yaml...
✅ .values.yaml has been created with your configuration.

===============================================
🌐 Choose Deployment Target
===============================================
1) Existing Cluster
2) On Prem K3s
```

1. Selecting "Existing Cluster" will handle the full helm install for you based on the answers you provided.
2. Selecting "On Prem K3s" will install K3s on your machine and then handle the helm install for you based on the answers you provided.

## Manual Installation

Advanced users may choose to bypass the one-click installer and deploy Juno manually using Helm.
This method requires more familiarity with Kubernetes and Helm, but allows for more customization
and control over the deployment process.

### Prerequisites

- [Helm](https://helm.sh/docs/intro/install/)
- [Kubectl](https://kubernetes.io/docs/tasks/tools/)
- A Kubernetes cluster (can be local or cloud-based) with access to the cluster context configured in `kubectl`.

## Configuration

Expand All @@ -34,11 +89,30 @@ file that contains the required fields that are needed to deploy a Juno ready cl
commented out. We recommend copying the default `values.yaml` file to `.values.yaml` and editing it to set the desired
configuration for your deployment.

1. Copy the default `values.yaml` file to `.values.yaml`:
1. Clone the Juno Bootstrap repository:
```bash
git clone https://github.com/juno-fx/Juno-Bootstrap.git
cd Juno-Bootstrap
```
2. Copy the default `values.yaml` file to `.values.yaml`:
```bash
cp values.yaml .values.yaml
```
2. Edit the `.values.yaml` file to set the desired configuration for your deployment. All fields that are required are commented with `(REQUIRED)`.
3. Edit the `.values.yaml` file to set the desired configuration for your deployment.
```yaml
genesis:
url: "https://github.com/juno-fx/Genesis-Deployment.git"
version: "v3.0.0-beta.1"
config:
host: my-genesis.example.com
env:
BASIC_AUTH_EMAIL: "your-email@example.com"
BASIC_AUTH_PASSWORD: "your-password"
titan:
owner: my-username
uid: 1050
email: your-email@example.com
```

## Installation

Expand All @@ -50,17 +124,8 @@ configuration for your deployment.
```bash
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
```
3. Configure your deployment using the predefined [Juno Deployment Configurations](/deployments/README.md) (optional, but recommended).
4. Install Juno:
1. If you are using the predefined Juno deployment configurations, run the following command (replace the `<predefined deployment>` with the path to the predefined Juno deployment configuration):
```bash
helm install juno ./chart/ \
-f <predefined deployment> \
-f <predefined deployment> \
-f ./.values.yaml
```
2. If you are using your own configuration, run the following command:
```bash
helm install juno ./chart/ \
-f ./.values.yaml
```
3. Install Juno using Helm:
```bash
helm install juno ./chart/ \
-f ./.values.yaml
```
3 changes: 3 additions & 0 deletions bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

curl -sL "$(curl -s https://api.github.com/repos/juno-fx/Juno-Bootstrap/releases/latest | grep browser_download_url | grep orion-install-helper | cut -d '"' -f 4)" | bash -
2 changes: 1 addition & 1 deletion test.values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ genesis:
### Genesis Helm repo (REQUIRED)
url: "https://github.com/juno-fx/Genesis-Deployment.git"
### Genesis Helm repo branch to deploy (REQUIRED)
version: "v2.0.2"
version: "v3.0.0-beta.1"
config:
### Container registry containing the Juno images (REQUIRED)
registry: junoinnovations
Expand Down