Skip to content

Commit

Permalink
Merge pull request #513 from HoomanDgtl/sub-modules
Browse files Browse the repository at this point in the history
feat: GH that updates aep automatically (checks for update every 6 hrs)
  • Loading branch information
HoomanDgtl authored Jan 22, 2025
2 parents e4d3464 + 5c599d7 commit ea1c0bb
Show file tree
Hide file tree
Showing 9 changed files with 319 additions and 82 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/akash-aep-spec.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Update AEP Specs

on:
schedule:
- cron: "0 */6 * * *" # Check every 6 hours
workflow_dispatch:

jobs:
update-specs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Clone and Update Specs
run: |
# Remove existing specs
rm -rf src/content/aeps
# Clone only the necessary files
git clone --depth 1 --filter=blob:none https://github.com/akash-network/AEP.git temp_aep
# Create target directory and copy only spec folder
mkdir -p src/content/aeps
cp -r temp_aep/spec/* src/content/aeps/
rm -rf temp_aep
# Check for changes
if [[ -n $(git status --porcelain) ]]; then
echo "Changes detected in specs"
git config --global user.name 'GitHub Action'
git config --global user.email '[email protected]'
git add src/content/aeps
git commit -m "chore: update AEP specs"
git push
else
echo "No changes in specs"
fi
- name: Trigger Build
if: success()
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
event-type: spec-update
2 changes: 1 addition & 1 deletion src/content/aeps/aep-2/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ resolution: https://github.com/akash-network/node/releases/tag/v0.3.0

## Summary

Decentralized cloud computing exchange connects those who need computing resources with those that have computing capacity to lease providers. Based on the [Akash Network Whitepaper](/roadmap/aep-2/whitepaper.pdf).
Decentralized cloud computing exchange connects those who need computing resources with those that have computing capacity to lease providers. Based on the [Akash Network Whitepaper](https://github.com/akash-network/AEP/blob/main/spec/aep-2/whitepaper.pdf).

## Specification

Expand Down
Binary file added src/content/aeps/aep-2/whitepaper.pdf
Binary file not shown.
137 changes: 67 additions & 70 deletions src/content/aeps/aep-3/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,62 +17,61 @@ Stack Definition Language

## Specification

Deployment services, datacenters, pricing, etc.. are described by a [YAML](http://www.yaml.org/start.html) configuration file. Configuration files may end in `.yml` or `.yaml`.
Deployment services, datacenters, pricing, etc.. are described by a [YAML](http://www.yaml.org/start.html) configuration file. Configuration files may end in `.yml` or `.yaml`.

A complete deployment has the following sections:

* [version](#version)
* [services](#services)
* [profiles](#profiles)
* [deployment](#deployment)
- [version](#version)
- [services](#services)
- [profiles](#profiles)
- [deployment](#deployment)

A full example deployment configuration can be found [here](deployment.yml).

### version

Indicates version of Akash configuration file. Currently only `"1.0"` is accepted.
Indicates version of Akash configuration file. Currently only `"1.0"` is accepted.

### services

The top-level `services` entry contains a map of workloads to be ran on the Akash deployment. Each key is a service name; values are a map containing the following keys:
The top-level `services` entry contains a map of workloads to be ran on the Akash deployment. Each key is a service name; values are a map containing the following keys:

| Name | Required | Meaning |
| --- | --- | --- |
| `image` | Yes | Docker image of the container |
| `depends-on` | No | List of services which must be brought up before the current service |
| `args` | No | Arguments to use when executing the container |
| `env` | No | Environment variables to set in running container |
| `expose` | No | Entities allowed to connec to to the services. See [services.expose](#servicesexpose). |
| Name | Required | Meaning |
| ------------ | -------- | -------------------------------------------------------------------------------------- |
| `image` | Yes | Docker image of the container |
| `depends-on` | No | List of services which must be brought up before the current service |
| `args` | No | Arguments to use when executing the container |
| `env` | No | Environment variables to set in running container |
| `expose` | No | Entities allowed to connec to to the services. See [services.expose](#servicesexpose). |

#### services.expose

`expose` is a list describing what can connect to the service. Each entry is a map containing one or more of the following fields:
`expose` is a list describing what can connect to the service. Each entry is a map containing one or more of the following fields:

| Name | Required | Meaning |
|--- | --- | --- |
| `port` | Yes | Container port to expose |
| `as` | No | Port number to expose the container port as |
| `accept` | No | List of hosts to accept connections for |
| `proto` | No | Protocol type (`tcp`,`http`, or `https`) |
| `to` | No | List of entities allowed to connect. See [services.expose.to](#servicesexposeto) |
| Name | Required | Meaning |
| -------- | -------- | -------------------------------------------------------------------------------- |
| `port` | Yes | Container port to expose |
| `as` | No | Port number to expose the container port as |
| `accept` | No | List of hosts to accept connections for |
| `proto` | No | Protocol type (`tcp`,`http`, or `https`) |
| `to` | No | List of entities allowed to connect. See [services.expose.to](#servicesexposeto) |

The `port` value governs the default `proto` value as follows:

| `port` | `proto` default |
| --- | --- |
| 80 | http |
| 443 | https |
| all others | tcp |
| `port` | `proto` default |
| ---------- | --------------- |
| 80 | http |
| 443 | https |
| all others | tcp |

#### services.expose.to

`expose.to` is a list of clients to accept connections from. Each item is a map with one or more of the following entries:

| Name | Value | Default | Description |
| --- | --- | --- | --- |
| `service` | A service in this deployment | | Allow the given service to connect |
| `global` | `true` or `false` | `false` | If true, allow connections from outside of the datacenter |
`expose.to` is a list of clients to accept connections from. Each item is a map with one or more of the following entries:

| Name | Value | Default | Description |
| --------- | ---------------------------- | ------- | --------------------------------------------------------- |
| `service` | A service in this deployment | | Allow the given service to connect |
| `global` | `true` or `false` | `false` | If true, allow connections from outside of the datacenter |

If no service is given and `global` is true, any client can connect from anywhere (web servers typically want this).

Expand All @@ -87,53 +86,52 @@ The `profiles` section contains named compute and placement profiles to be used

#### profiles.compute

`profiles.compute` is map of named compute profiles. Each profile specifies compute resources to be leased for each service instance
`profiles.compute` is map of named compute profiles. Each profile specifies compute resources to be leased for each service instance
uses uses the profile.

Example:

This defines a profile named `web` having resource requirements of 2 vCPUs, 2 gigabytes of memory, and 5 gigabytes of storage space available.


```yaml
web:
cpu: 2
memory: "2Gi"
storage: "5Gi"
```
`cpu` units represent a vCPU share and can be fractional. When no suffix is present the value represents
a fraction of a whole CPU share. With a `m` suffix, the value represnts the number of milli-CPU shares (1/1000 of a CPU share).
`cpu` units represent a vCPU share and can be fractional. When no suffix is present the value represents
a fraction of a whole CPU share. With a `m` suffix, the value represnts the number of milli-CPU shares (1/1000 of a CPU share).

Example:

| Value | CPU-Share |
| --- | --- |
| `1` | 1 |
| `0.5` | 1/2 |
| `"100m"` | 1/10 |
| `"50m"` | 1/20 |

`memory`, `storage` units are described in bytes. The following suffixes are allowed for simplification:

| Suffix | Value |
| --- | --- |
| `k` | 1000 |
| `Ki` | 1024 |
| `M` | 1000^2 |
| `Mi` | 1024^2 |
| `G` | 1000^3 |
| `Gi` | 1024^3 |
| `T` | 1000^4 |
| `Ti` | 1024^4 |
| `P` | 1000^5 |
| `Pi` | 1024^5 |
| `E` | 1000^6 |
| `Ei` | 1024^6 |
| Value | CPU-Share |
| -------- | --------- |
| `1` | 1 |
| `0.5` | 1/2 |
| `"100m"` | 1/10 |
| `"50m"` | 1/20 |

`memory`, `storage` units are described in bytes. The following suffixes are allowed for simplification:

| Suffix | Value |
| ------ | ------ |
| `k` | 1000 |
| `Ki` | 1024 |
| `M` | 1000^2 |
| `Mi` | 1024^2 |
| `G` | 1000^3 |
| `Gi` | 1024^3 |
| `T` | 1000^4 |
| `Ti` | 1024^4 |
| `P` | 1000^5 |
| `Pi` | 1024^5 |
| `E` | 1000^6 |
| `Ei` | 1024^6 |

#### profiles.placement

`profiles.placement` is map of named datacenter profiles. Each profile specifies required datacenter attributes and pricing
`profiles.placement` is map of named datacenter profiles. Each profile specifies required datacenter attributes and pricing
configuration for each [compute profile](#profilescompute) that will be used within the datacenter.

Example:
Expand All @@ -154,17 +152,17 @@ Pricing may be expressed in decimal or scientific notation for Akash units, or m

Examples:

| Value | Micro Akash Tokens |
| --- | --- |
| `1` | 1000000 |
| `1e-4` | 100 |
| `20u` | 20 |
| Value | Micro Akash Tokens |
| ------ | ------------------ |
| `1` | 1000000 |
| `1e-4` | 100 |
| `20u` | 20 |

### deployment

The `deployment` section defines how to deploy the services. It is a mapping of service name to deployment configuration.
The `deployment` section defines how to deploy the services. It is a mapping of service name to deployment configuration.

Each service to be deployed has an entry in the `deployment`. This entry is maps [datacenter profiles](#profilesplacement) to
Each service to be deployed has an entry in the `deployment`. This entry is maps [datacenter profiles](#profilesplacement) to
[compute profiles](#profilescompute) to create a final desired configuration for the resources required for the service.

Example:
Expand All @@ -176,10 +174,9 @@ web:
count: 20
```

This says that the 20 instances of the `web` service should be deployed to a datacenter matching the `westcoast` [datacenter profile](#profilesplacement). Each instance will have
This says that the 20 instances of the `web` service should be deployed to a datacenter matching the `westcoast` [datacenter profile](#profilesplacement). Each instance will have
the resources defined in the `web` [compute profile](#profilescompute) available to it.


## Copyright

All content herein is licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).
8 changes: 4 additions & 4 deletions src/content/aeps/aep-4/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ Decentralized Computing is a novel concept that mandates user behavior change to

- Codename: Alpha
- Includes DCSs:
- [AEP-2: Decentralized Cloud Exchange](/roadmap/2018/aep-2)
- [AEP-3: Stack Definition Language](/roadmap/2018/aep-3)
- [AEP-2: Decentralized Cloud Exchange](/spec/aep-2)
- [AEP-3: Stack Definition Language](/spec/aep-3)
- Token Allocation: 2,000,000 AKT
- Limit: 100 Members
- Program(s): Akash Founder Member Rewards
Expand All @@ -45,8 +45,8 @@ Decentralized Computing is a novel concept that mandates user behavior change to

## Outcome

- Completed Deployments: 1802. [Proof](/roadmap/aep-4/orders.json).
- Active Deployments: 399. [Proof](/roadmap/aep-4/fulfillments.json).
- Completed Deployments: 1802. [Proof](https://github.com/akash-network/AEP/blob/main/assets/aep-4/orders.json).
- Active Deployments: 399. [Proof](https://github.com/akash-network/AEP/blob/main/assets/aep-4/fulfillments.json).
- Developers: 68. [Proof](https://github.com/ovrclk/ecosystem/graphs/contributors).
- Providers: 144. [Proof](https://akash.vitwit.com).

Expand Down
2 changes: 1 addition & 1 deletion src/content/aeps/aep-5/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Akash is a marketplace for cloud compute resources which is designed to reduce w

## Detailed Proposal

Detailed proposal is publised in the [paper](/roadmap/aep-5/economics.pdf)
Detailed proposal is publised in the [paper](https://github.com/akash-network/AEP/blob/main/spec/aep-2/economics.pdf)

## References

Expand Down
Binary file added src/content/aeps/aep-5/economics.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion src/content/aeps/aep-8/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ We propose launching Mainnet with 64 validators to establish economic value and

## Genesis Configuration and Token Distribution

Token distribution is critical to the success of Akash, propose the [genesis.json](/roadmap/aep-8/genesis.json) to bootstrap the network. Chain identifier will be `akashnet-1`.
Token distribution is critical to the success of Akash, propose the [genesis.json](https://github.com/akash-network/AEP/blob/main/assets/aep-8/genesis.json) to bootstrap the network. Chain identifier will be `akashnet-1`.

## Liquidity

Expand Down
Loading

0 comments on commit ea1c0bb

Please sign in to comment.