Skip to content

Commit b79b36f

Browse files
Fix: Route to website links instead of ./docs (#4575)
<!-- Thanks for sending a pull request! Here are some tips for you: --> #### What type of PR is this? Fix #### What this PR does / why we need it There are dead-links on Readme, and reported by armadactl. Co-authored-by: Dave Gantenbein <dave@gr-oss.io>
1 parent d772082 commit b79b36f

File tree

4 files changed

+60
-42
lines changed

4 files changed

+60
-42
lines changed

README.md

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@
33
<p>
44
<a href="https://circleci.com/gh/armadaproject/armada"><img src="https://circleci.com/gh/helm/helm.svg?style=shield" alt="CircleCI"></a>
55
<a href="https://goreportcard.com/report/github.com/armadaproject/armada"><img src="https://goreportcard.com/badge/github.com/armadaproject/armada" alt="Go Report Card"></a>
6-
<a href="https://artifacthub.io/packages/helm/gresearch/armada" title="Go to Artifact Hub"><img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/armada" alt="Artifact Hub"></a>
6+
<a href="https://artifacthub.io/packages/helm/gresearch/armada" title="Go to Artifact Hub"><img src="https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/armada" alt="Artifact Hub"></a>
77
<a href="https://insights.linuxfoundation.org/project/armada" title="Click to view project insights and health checks"><img src="https://insights.linuxfoundation.org/api/badge/health-score?project=armada" alt="LFX Health Score"></a>
88
</p>
99
</div>
1010

1111
# Armada
1212

13-
Armada is a system built on top of [Kubernetes](https://kubernetes.io/docs/concepts/overview/) for running batch workloads. With Armada as middleware for batch, Kubernetes can be a common substrate for batch and service workloads. Armada is used in production and can run millions of jobs per day across tens of thousands of nodes.
13+
Armada is a system built on top of [Kubernetes](https://kubernetes.io/docs/concepts/overview/) for running batch workloads. With Armada as middleware for batch, Kubernetes can be a common substrate for batch and service workloads. Armada is used in production and can run millions of jobs per day across tens of thousands of nodes.
1414

1515
Armada addresses the following limitations of Kubernetes:
1616

1717
1. Scaling a single Kubernetes cluster beyond a certain size is [challenging](https://openai.com/blog/scaling-kubernetes-to-7500-nodes/). Hence, Armada is designed to effectively schedule jobs across many Kubernetes clusters. Many thousands of nodes can be managed by Armada in this way.
1818
2. Achieving very high throughput using the in-cluster storage backend, etcd, is [challenging](https://etcd.io/docs/v3.5/op-guide/performance/). Hence, Armada performs queueing and scheduling out-of-cluster using a specialized storage layer. This allows Armada to maintain queues composed of millions of jobs.
1919
3. The default [kube-scheduler](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/) is not suitable for batch. Instead, Armada includes a novel multi-Kubernetes cluster scheduler with support for important batch scheduling features, such as:
20-
* Fair queuing and scheduling across multiple users. Based on dominant resource fairness.
21-
* Resource and job scheduling rate limits.
22-
* Gang-scheduling, i.e., atomically scheduling sets of related jobs.
23-
* Job preemption, both to run urgent jobs in a timely fashion and to balance resource allocation between users.
20+
- Fair queuing and scheduling across multiple users. Based on dominant resource fairness.
21+
- Resource and job scheduling rate limits.
22+
- Gang-scheduling, i.e., atomically scheduling sets of related jobs.
23+
- Job preemption, both to run urgent jobs in a timely fashion and to balance resource allocation between users.
2424

2525
Armada also provides features to help manage large compute clusters effectively, including:
2626

27-
* Detailed analytics exposed via [Prometheus](https://prometheus.io/) showing how the system behaves and how resources are allocated.
28-
* Automatically removing nodes exhibiting high failure rates from consideration for scheduling.
29-
* A mechanism to earmark nodes for a particular set of jobs, but allowing them to be used by other jobs when not used for their primary purpose.
27+
- Detailed analytics exposed via [Prometheus](https://prometheus.io/) showing how the system behaves and how resources are allocated.
28+
- Automatically removing nodes exhibiting high failure rates from consideration for scheduling.
29+
- A mechanism to earmark nodes for a particular set of jobs, but allowing them to be used by other jobs when not used for their primary purpose.
3030

3131
Armada is designed with the enterprise in mind; all components are secure and highly available.
3232

@@ -53,6 +53,7 @@ Alternatively, you can install Armada manually by using the Helm charts defined
5353
Armada also provides a command-line interface, `armadactl`, which can be used to interact with the Armada system.
5454

5555
To install `armadactl`, run the following script:
56+
5657
```bash
5758
scripts/get-armadactl.sh
5859
```
@@ -69,20 +70,28 @@ allowing you to run multiple processes with a single command.
6970
Goreman will build the components from source and run them locally, making it easy to test changes quickly.
7071

7172
1. Install `goreman`:
73+
7274
```shell
7375
go install github.com/mattn/goreman@latest
7476
```
77+
7578
2. Start dependencies:
79+
7680
```shell
7781
docker-compose -f _local/docker-compose-deps.yaml up -d
7882
```
79-
- **Note**: Images can be overridden using environment variables:
80-
`REDIS_IMAGE`, `POSTGRES_IMAGE`, `PULSAR_IMAGE`, `KEYCLOAK_IMAGE`
83+
84+
- **Note**: Images can be overridden using environment variables:
85+
`REDIS_IMAGE`, `POSTGRES_IMAGE`, `PULSAR_IMAGE`, `KEYCLOAK_IMAGE`
86+
8187
3. Initialize databases and Kubernetes resources:
88+
8289
```shell
8390
scripts/localdev-init.sh
8491
```
92+
8593
4. Start Armada components:
94+
8695
```shell
8796
goreman -f _local/procfiles/no-auth.Procfile start
8897
```
@@ -92,30 +101,36 @@ Goreman will build the components from source and run them locally, making it ea
92101
To run Armada with OIDC authentication enabled using Keycloak:
93102

94103
1. Start dependencies with the auth profile:
104+
95105
```shell
96106
docker-compose -f _local/docker-compose-deps.yaml --profile auth up -d
97107
```
98-
This starts Redis, PostgreSQL, Pulsar, and Keycloak with a pre-configured realm.
108+
109+
This starts Redis, PostgreSQL, Pulsar, and Keycloak with a pre-configured realm.
99110

100111
2. Initialize databases and Kubernetes resources:
112+
101113
```shell
102114
scripts/localdev-init.sh
103115
```
104116

105117
3. Start Armada components with auth configuration:
118+
106119
```shell
107120
goreman -f _local/procfiles/auth.Procfile start
108121
```
109122

110123
4. Use armadactl with OIDC authentication:
124+
111125
```shell
112126
armadactl --config _local/.armadactl.yaml --context auth-oidc get queues
113127
```
114128

115129
#### Authentication Configuration
116130

117131
The auth profile configures:
118-
- **Keycloak**: OIDC provider running on http://localhost:8180 with pre-configured realm, users, and clients
132+
133+
- **Keycloak**: OIDC provider running on <http://localhost:8180> with pre-configured realm, users, and clients
119134
- **Users**: `admin/admin` (admin group), `user/password` (users group) for both OIDC and basic auth
120135
- **Service accounts**: Executor and Scheduler use OIDC Client Credentials flow for service-to-service authentication
121136
- **APIs**: Server, Lookout, and Binoculars APIs are secured with OIDC and basic auth
@@ -133,11 +148,13 @@ goreman -f _local/procfiles/fake-executor.Procfile start
133148
```
134149

135150
The fake executor simulates:
151+
136152
- 2 virtual nodes with 8 CPUs and 32Gi memory each
137153
- Pod lifecycle management without actual container execution
138154
- Resource allocation and job state transitions
139155

140156
This is useful for:
157+
141158
- Testing Armada's scheduling logic
142159
- Development when Kubernetes is not available
143160
- Integration testing of job flows
@@ -147,7 +164,7 @@ This is useful for:
147164
All Procfiles are located in `_local/procfiles/`:
148165
149166
| Procfile | Description |
150-
|--------------------------|---------------------------------------------------|
167+
| ------------------------ | ------------------------------------------------- |
151168
| `no-auth.Procfile` | Standard setup without authentication |
152169
| `auth.Procfile` | Standard setup with OIDC authentication |
153170
| `fake-executor.Procfile` | Uses fake executor for testing without Kubernetes |
@@ -157,6 +174,7 @@ Restart individual processes with `goreman restart <component>` (e.g., `goreman
157174
### Service Ports
158175
159176
Run `goreman run status` to check the status of the processes (running processes are prefixed with `*`):
177+
160178
```shell
161179
$ goreman run status
162180
*server
@@ -173,7 +191,7 @@ $ goreman run status
173191
Goreman exposes services on the following ports:
174192
175193
| Service | Port | Description |
176-
|----------------------------|-------|---------------------|
194+
| -------------------------- | ----- | ------------------- |
177195
| Server gRPC | 50051 | Armada gRPC API |
178196
| Server HTTP | 8081 | REST API & Health |
179197
| Server Metrics | 9000 | Prometheus metrics |
@@ -197,12 +215,13 @@ Goreman exposes services on the following ports:
197215
198216
For documentation, see the following:
199217
200-
- [System overview](./docs/system_overview.md)
201-
- [Scheduler](./docs/scheduler.md)
202-
- [User guide](./docs/user.md)
203-
- [Development guide](./docs/developer.md)
218+
- [Overview](https://armadaproject.io/)
219+
- [Getting Started](https://armadaproject.io/getting-started)
220+
- [Architecture](https://armadaproject.io/understanding-armada/architecture)
221+
- [User guide](https://armadaproject.io/user-guide)
222+
- [Development guide](https://armadaproject.io/developer-guide)
204223
- [Release notes/Version history](https://github.com/armadaproject/armada/releases)
205-
- [API Documentation](./docs/developer/api.md)
224+
- [API Documentation](https://armadaproject.io/user-guide/api)
206225
207226
We expect readers of the documentation to have a basic understanding of Docker and Kubernetes; see, e.g., the following links:
208227
@@ -219,5 +238,4 @@ For more information about contributing to Armada see [CONTRIBUTING.md](https://
219238

220239
## Discussion
221240

222-
If you are interested in discussing Armada you can find us on [![slack](https://img.shields.io/badge/slack-armada-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/?redir=%2Farchives%2FC03T9CBCEMC)
223-
241+
If you are interested in discussing Armada you can find us on [![slack](https://img.shields.io/badge/slack-armada-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/?redir=%2Farchives%2FC03T9CBCEMC)

internal/lookoutui/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ real-time. This serves the web app on
5454
[http://localhost:3000](http://localhost:3000). It proxies API requests to the
5555
target defined by your `PROXY_TARGET` environment variable, or otherwise your
5656
locally-running instance of the Lookout server at `http://localhost:10000`
57-
(please see [the main developer docs](../../docs/developer/ui.md) for details
57+
(please see [the main developer docs](https://armadaproject.io/developer-guide) for details
5858
of how to set this up).
5959

6060
```bash

pkg/client/command_line.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ func ExtractCommandlineArmadaApiConnectionDetails() (*ApiConnectionDetails, erro
202202

203203
} else {
204204
fmt.Print("No context defined. This method of providing connection details will soon be deprecated, " +
205-
"the new configuration format is explained here: github.com/armadaproject/armada/blob/master/docs/demo.md#armadactl-configuration\n")
205+
"the new configuration format is explained here: https://armadaproject.io/user-guide/cli#configuration\n")
206206
err = viper.Unmarshal(apiConnectionDetails)
207207
}
208208

scripts/get-armadactl.sh

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,26 @@ fi
1212

1313
# Determine architecture
1414
get_arch() {
15-
case $(uname -m) in
16-
"x86_64" | "amd64" ) echo "amd64" ;;
17-
"i386" | "i486" | "i586") echo "386" ;;
18-
"aarch64" | "arm64" | "arm") echo "arm64" ;;
19-
"mips64el") echo "mips64el" ;;
20-
"mips64") echo "mips64" ;;
21-
"mips") echo "mips" ;;
22-
*) echo "unknown" ;;
23-
esac
15+
case $(uname -m) in
16+
"x86_64" | "amd64") echo "amd64" ;;
17+
"i386" | "i486" | "i586") echo "386" ;;
18+
"aarch64" | "arm64" | "arm") echo "arm64" ;;
19+
"mips64el") echo "mips64el" ;;
20+
"mips64") echo "mips64" ;;
21+
"mips") echo "mips" ;;
22+
*) echo "unknown" ;;
23+
esac
2424
}
2525

2626
ARCH=$(get_arch)
2727
if [ "$SYSTEM" = "darwin" ]; then
28-
ARCH="all"
28+
ARCH="all"
2929
fi
3030

3131
# Get latest release
3232
get_latest_release() {
33-
curl --silent "https://api.github.com/repos/armadaproject/armada/releases/latest" | \
34-
grep '"tag_name":' | \
33+
curl --silent "https://api.github.com/repos/armadaproject/armada/releases/latest" |
34+
grep '"tag_name":' |
3535
sed -E 's/.*"([^"]+)".*/\1/'
3636
}
3737

@@ -44,8 +44,8 @@ ARMADACTL_URL="https://github.com/armadaproject/armada/releases/download/$VERSIO
4444
echo "Downloading armadactl $VERSION for $SYSTEM/$ARCH"
4545

4646
# Download and untar/unzip armadactl
47-
if curl -sL $ARMADACTL_URL | sh -c "$UNARCHIVE" ; then
48-
echo "armadactl downloaded successfully"
47+
if curl -sL "$ARMADACTL_URL" | sh -c "$UNARCHIVE"; then
48+
echo "armadactl downloaded successfully"
4949

5050
# Move armadactl binary to a directory in user's PATH
5151
TARGET_DIR="$HOME/bin" # Change this to the desired target directory in your user's home
@@ -56,8 +56,8 @@ if curl -sL $ARMADACTL_URL | sh -c "$UNARCHIVE" ; then
5656
echo "armadactl is now available on your PATH"
5757

5858
else
59-
echo "Something is amiss!"
60-
echo "Please visit:"
61-
echo " - https://github.com/armadaproject/armada/releases/latest"
62-
echo "to find the latest armadactl binary for your platform"
59+
echo "Something is amiss!"
60+
echo "Please visit:"
61+
echo " - https://github.com/armadaproject/armada/releases/latest"
62+
echo "to find the latest armadactl binary for your platform"
6363
fi

0 commit comments

Comments
 (0)