Skip to content

Conversation

@naskio
Copy link
Contributor

@naskio naskio commented Jul 30, 2025

What type of PR is this?

Feature - New documentation website

What this PR does / why we need it:

This PR adds a modern documentation website for Armada using Next.js and Fumadocs. It replaces the current docs with a better user experience.

What's included:

  • Modern website with search, dark/light themes, and mobile support
  • "Edit on GitHub" buttons and automatic "last updated" dates
  • Automated CI/CD pipeline that builds and deploys to GitHub Pages
  • Content validation and code quality checks

Content status:

  • Table of Contents structure
  • Overview
  • 🚧 Getting Started
  • Understanding Armada
  • Operator Guide
  • User Guide
  • Developer Guide
  • Contributing
  • Community & Support
  • FAQ & Troubleshooting

CI/CD features:

  • Runs on pushes to master and PRs affecting website files
  • Validates content, formatting, and code quality
  • Auto-deploys to GitHub Pages on master branch
  • Works with repository forks
  • Uses caching for faster builds

Preview: https://naskio.github.io/armada/

Which issue(s) this PR fixes:

Addresses need for improved documentation.

Special notes for your reviewer:

This is a work-in-progress PR to get early feedback on:

  1. Website structure and design
  2. CI/CD setup and deployment process
  3. Content direction and completeness

The remaining content will be added based on feedback. The goal is to establish a solid foundation before completing all sections.

Please test the preview site and let me know if you have concerns about the technical approach or content structure.

naskio added 30 commits June 18, 2025 06:46
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
another iteration on the Website
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
feat(website): add preview command with GitHub Pages basePath support
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
Signed-off-by: Mehdi Nassim KHODJA <[email protected]>
**High Throughput Processing**

- Handle millions of queued jobs simultaneously
- Specialized storage layer optimized for batch workloads
Copy link
Member

Choose a reason for hiding this comment

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

I am not sure about this part, it isn't intuitive to me what is Specialized storage layer

Copy link
Contributor Author

@naskio naskio Aug 14, 2025

Choose a reason for hiding this comment

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

Removed, is there anything special about the storage layer, or do we need to remove it from other sections as well ?

**Client libraries and SDKs for different languages.**

- Python
- Java/Scala
Copy link
Member

Choose a reason for hiding this comment

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

Go and .NET

Copy link
Contributor Author

@naskio naskio Aug 14, 2025

Choose a reason for hiding this comment

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

Added, but I am unable to find the Go client under clients/, could you please provide a reference ? is it the same as the armadactl source code ?!


## 2.2 Run More Jobs

### Python Job Example
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here I added a very basic example, feel free to suggest something more suitable according to Armada usage

Comment on lines +100 to +103
## 5.2 API Reference

- REST and gRPC APIs
- OpenAPI Spec (auto-generated)
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Mention that it's designed to be used only with Lookout UI

- Airflow Operator
- MetaFlow Integration
- Jenkins Integration
- Spark Integration
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Under development


- Airflow Operator
- MetaFlow Integration
- Jenkins Integration
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure if useful for anyone

Copy link
Contributor

Choose a reason for hiding this comment

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

Jenkins is still used in some places, but I don't know how it would link into armada.


## 5.1 CLI Reference

- Installing `armadactl`
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor

@jayofdoom jayofdoom left a comment

Choose a reason for hiding this comment

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

This orphans a large number of existing links; including:

  • /design
  • /quickstart
  • /creating_and_submitting_jobs
  • /client_libraries
  • /contribute

This is not a complete list; but every top-level menu link from the old website is 404'ing in this new version. Orphaning links is annoying to users and hurts SEO performance. We should strive to ensure redirects exist for all existing links -- or at least the top level ones.

I am going to review this separately now for the content that exists.

Copy link
Contributor

@jayofdoom jayofdoom left a comment

Choose a reason for hiding this comment

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

Reviewed at the request of Dave; consider most of my content items here as suggestions. Let me know if you have any questions or want me to take another look.


1. **Single Cluster Scaling Limits**: Scaling a single Kubernetes cluster beyond a certain size is [challenging](https://openai.com/blog/scaling-kubernetes-to-7500-nodes/), typically maxing out around 5,000-15,000 nodes depending on configuration.

2. **Storage Backend Constraints**: Achieving very high throughput using etcd, Kubernetes' in-cluster storage backend, is [challenging](https://etcd.io/docs/v3.5/op-guide/performance/) and can become a bottleneck for job queuing.
Copy link
Contributor

Choose a reason for hiding this comment

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

"challenging" used and highlighted in two sequential items. it looks a little strange rendered.

## Getting Started

> [!WARNING]
> TODO: add links
Copy link
Contributor

Choose a reason for hiding this comment

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

throughout: please resolve todos


Ready to explore Armada? Here are your next steps:

1. **Quick Start**: Try the local installation guide to get Armada running with Kind
Copy link
Contributor

Choose a reason for hiding this comment

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

The way this is worded, they imply they should be linked to something but are not.


- Airflow Operator
- MetaFlow Integration
- Jenkins Integration
Copy link
Contributor

Choose a reason for hiding this comment

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

Jenkins is still used in some places, but I don't know how it would link into armada.

<path d='M413.56,360.63l-47,44.74s19.17,37.64,47,50.88c27.79-13.24,47-50.88,47-50.88Z' />
</g>
</g>
</svg>
Copy link
Contributor

Choose a reason for hiding this comment

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

This seems very wacky to me -- why aren't SVGs split out into their own files? While I know it's not what's happening; inlining images/filetypes is a common technique for obfuscation and my preference would be that we don't do it.

Copy link
Collaborator

@mauriceyap mauriceyap left a comment

Choose a reason for hiding this comment

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

Generally looks good from a website infrastructure POV

Comment on lines +23 to +25
# misc
.DS_Store
*.pem
Copy link
Collaborator

Choose a reason for hiding this comment

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

Please could you move these to the root .gitignore if they aren't there already? This .gitignore should be specific to this directory only,

Comment on lines +50 to +57
# JetBrains IDEs
.idea/

# Temporary files
tmp/
*.tmp
tmp.*
*.tmp.*
Copy link
Collaborator

Choose a reason for hiding this comment

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

These should also be moved to the root .gitignore if they aren't already there.

#### 1. Create a queue

```bash
armadactl create queue example
Copy link
Collaborator

Choose a reason for hiding this comment

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

tiny nit - please could you rename example to example-queue to make it clear in subsequent commands that it refers to a queue?

import markdown from '@eslint/markdown';
import gitignore from 'eslint-config-flat-gitignore';
import { defineConfig } from 'eslint/config';

Copy link
Collaborator

Choose a reason for hiding this comment

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

I have found it useful to add a spell checker to the linter in other projects, and am considering adding one to the Lookout UI too.

I think it would add value to this site given it's content-heavy, Please could you look into adding cspell or something like it?

"name": "armada-website",
"description": "Armada documentation website",
"version": "0.1.0",
"private": false,
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
"private": false,
"private": true,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants