Skip to content

Commit

Permalink
added docs for hauler release
Browse files Browse the repository at this point in the history
  • Loading branch information
zackbradys committed Nov 7, 2023
1 parent 2497e4e commit f6674ef
Show file tree
Hide file tree
Showing 48 changed files with 1,247 additions and 209 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ description: Airgap Workflow Documentation for Hauler
sidebar_label: Airgap Workflow
---

airgap workflow here

## Workflow Diagram
![hauler-workflow-diagram](/img/hauler-workflow-diagram.png)

Airgap Workflow Documentation pending a future release!
53 changes: 53 additions & 0 deletions docs/core-concepts.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: Core Concepts
description: Core Concepts Documentation for Hauler
sidebar_label: Core Concepts
---

![hauler-diagram](/img/hauler-diagram.png)

## Haul

:::tip TLDR:

`Hauls` are Compressed Archive (Tarball) of Hauler Collections and Content.

:::

At the heart of Hauler lies the concept of a `Haul`. A `Haul` is a compressed archive, often in the form of a tarball, containing Hauler collections and content. It serves as a container for grouping and transporting various data types, making it a fundamental element in the Hauler ecosystem.

## Collections

:::tip TLDR:

`Collections` are Grouping of one or more Hauler Contents.

:::

`Collections` are the building blocks of Hauler. These are groupings of one or more Hauler `contents`. Think of `collections` as organized sets of data that collectively represent something desirable.

### Community Collections

While `collections` (and `contents`) are built into Hauler, our goal is to empower users to define their own `collections`. This way, you can tailor Hauler to your unique requirements and take full control of your artifacts.

### RGS Carbide Collections

`Hauler` provides the ability to import `collections` for the Rancher products, making it seamless for RGS Supported Customers to airgap any of the Rancher products or projects. If you haven't heard of Rancher Government Carbide, check it out [here](https://ranchergovernment.com/carbide)!

## Content

:::tip TLDR:

`Contents` are Artifacts such as Images, Charts, or Files.

:::

In Hauler's terminology, `content` refers to artifacts such as images, charts, or files. These are the fundamental types of resources that Hauler understands and manages. To understand the term better, let's break it down:

* `Content`: The fundamental type of artifacts that Hauler recognizes (images, charts, and files).
* `Artifact`: Anything that can be represented as an OCI (Open Container Initiative) artifact.
* OCI Artifacts provide a standardized way to store arbitrary files, making it easier to manage content efficiently.

### Declaritive Content

While manually adding content to `Hauler` is a straightforward way to get started, we recommend a much more sustainable approach. `Hauler` provides a declaritive approach for each `content` type, allowing you to define all the `content` within a manifest. This approach ensures a more reproducable workflow for managing the lifecycle of your `hauls`.
9 changes: 0 additions & 9 deletions docs/getting-started/core-concepts.md

This file was deleted.

7 changes: 0 additions & 7 deletions docs/getting-started/installation.md

This file was deleted.

7 changes: 0 additions & 7 deletions docs/getting-started/intro.md

This file was deleted.

66 changes: 66 additions & 0 deletions docs/guides-references/cluster-images.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: Fetching Cluster Images
description: Fetching Images on a Cluster Documentation
sidebar_label: Fetch Cluster Images
---

It may be difficult to understand exactly what `content` is actively within your environment. Below is a simple way to generate a list of all images running in your environment, store it as an environment variable, and show the list by echoing the environment variable.

```bash
export IMAGE_LIST=$(kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |tr -s '[[:space:]]' '\n' |sort |uniq -c | cut -c 9-)
echo "$IMAGE_LIST"
```

### Example Output

```yaml
index.docker.io/rancher/hardened-etcd:v3.5.1-k3s1-build20220112
index.docker.io/rancher/hardened-kubernetes:v1.23.5-rke2r1-build20220316
index.docker.io/rancher/rke2-cloud-provider:v0.0.3-build20211118
rancher/hardened-calico:v3.21.4-build20220228
rancher/hardened-cluster-autoscaler:v1.8.5-build20211119
rancher/hardened-coredns:v1.9.1-build20220318
rancher/hardened-flannel:v0.17.0-build20220317
rancher/hardened-k8s-metrics-server:v0.5.0-build20211119
rancher/klipper-helm:v0.7.0-build20220315
rancher/nginx-ingress-controller:nginx-1.0.2-hardened4
```

### Hauler Manifest using the Images

```yaml
IMAGE_LIST_MODIFIED=$(cat "$IMAGE_LIST" | sed 's/^/ - name: /')
# sed, stream editor, appends 2 spaces of indentation denotes
# an entry in a list, then adds name: to match expected syntax
```

```yaml title="hauler-manfiest.yaml"
apiVersion: content.hauler.cattle.io/v1alpha1
kind: Images
metadata:
name: hauler-cluster-images-example
spec:
images:
$IMAGE_LIST_MODIFIED
```

### Resulting Hauler Manifest

```yaml title="hauler-manfiest.yaml"
apiVersion: content.hauler.cattle.io/v1alpha1
kind: Images
metadata:
name: hauler-cluster-images-example
spec:
images:
- name: index.docker.io/rancher/hardened-etcd:v3.5.1-k3s1-build20220112
- name: index.docker.io/rancher/hardened-kubernetes:v1.23.5-rke2r1-build20220316
- name: index.docker.io/rancher/rke2-cloud-provider:v0.0.3-build20211118
- name: rancher/hardened-calico:v3.21.4-build20220228
- name: rancher/hardened-cluster-autoscaler:v1.8.5-build20211119
- name: rancher/hardened-coredns:v1.9.1-build20220318
- name: rancher/hardened-flannel:v0.17.0-build20220317
- name: rancher/hardened-k8s-metrics-server:v0.5.0-build20211119
- name: rancher/klipper-helm:v0.7.0-build20220315
- name: rancher/nginx-ingress-controller:nginx-1.0.2-hardened4
```
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Hauler Completion
title: Hauler Completion (Command)
description: Hauler CLI Reference for hauler completion
sidebar_label: Hauler Completion
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Hauler Store
title: Hauler Store (Command)
description: Hauler CLI Reference for hauler store
sidebar_label: Hauler Store
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Hauler Version
title: Hauler Version (Command)
description: Hauler CLI Reference for hauler version
sidebar_label: Hauler Version
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Hauler
title: Hauler (Command)
description: Hauler CLI Reference for hauler
sidebar_label: Hauler
---
Expand Down
8 changes: 8 additions & 0 deletions docs/guides-references/hauler-collections/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Overview of Hauler Collections
description: Hauler Collections Documentation
sidebar_label: Overview
---


Hauler Collections Overview Documentation pending a future release!
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Charts
title: Charts (Content Type)
description: Hauler "Charts" Content Documentation
sidebar_label: Charts
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Files
title: Files (Content Type)
description: Hauler "Files" Content Documentation
sidebar_label: Files
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Images
title: Images (Content Type)
description: Hauler "Images" Content Documentation
sidebar_label: Images
---
Expand Down
7 changes: 7 additions & 0 deletions docs/guides-references/hauler-content/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Overview of Hauler Content
description: Hauler Content Documentation
sidebar_label: Overview
---

Hauler Content Overview Documentation pending a future release!
14 changes: 14 additions & 0 deletions docs/guides-references/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
title: Introduction
description: Reference Guides Intro Documentation for Hauler
sidebar_label: Introduction
---

## Hauler Guides & Reference Documentation

| Guide or Reference Documentation | Description |
| :-----------------------------------------------------------------------: | :----------------------------------------------------: |
| [Cluster Images](/docs/guides-references/cluster-images) | Fetch Images on a Cluster and add to the Hauler Store |
| [Hauler Collections](/docs/guides-references/hauler-collections/overview) | Detailed Overview of Hauler Collections |
| [Hauler Content](/docs/guides-references/hauler-content/overview) | Detailed Overview of Hauler Content |
| [Hauler Command Line](/docs/guides-references/command-line/hauler) | Detailed Overview of the Hauler Command Line Interface |
2 changes: 1 addition & 1 deletion docs/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ sidebar_label: Introduction

:::caution

**Hauler and it's documentation are currently in active development and *not Generally Available (GA)* at this time.**
**Note: Hauler and it's documentation are in active development and *not Generally Available (GA)*.**

Most of the core functionality and features are ready for use, but may have breaking changes in future releases. Please help us by submitting any issues via **[GitHub Issues](https://github.com/rancherfederal/hauler-docs/issues)** and make sure to review the **[Known Issues and Limitations](/docs/known-limits)**!

Expand Down
34 changes: 34 additions & 0 deletions docs/introduction/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: Installation
description: Installation Documentation for Hauler
sidebar_label: Installation
---

## Overview

Hauler is a purpose built to be a single binary with no specific prerequistes or depedencies. It's installation is very simple and easy to follow. To view the latest release, please view our [GitHub Release](https://github.com/rancherfederal/hauler/releases) page.

## Supported Architectures

| Base Platfor | Architecture | Latest Release |
| :----------: | :-----------------: | :-----------------------------------------------: |
| Linux | `amd64` and `arm64` | https://github.com/rancherfederal/hauler/releases |
| Darwin | `amd64` and `arm64` | https://github.com/rancherfederal/hauler/releases |
| Windows | `amd64` and `arm64` | https://github.com/rancherfederal/hauler/releases |

## Installation Steps

```bash
# set the hauler version (i.e. "0.4.0")
export vHauler=HAULER_VERSION

# set the specific platform (i.e. "linux")
export platform=PLATFORM

# set the specific arch (i.e. "amd64")
export arch=ARCH

curl -#OL https://github.com/rancherfederal/hauler/releases/download/v${vHauler}/hauler_${vHauler}_${platform}_${arch}.tar.gz
tar -xf hauler_${vHauler}_${platform}_${arch}.tar.gz
sudo mv hauler /usr/bin/hauler
```
Loading

0 comments on commit f6674ef

Please sign in to comment.