forked from cerc-io/stack-orchestrator
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b485a3b8d8 | ||
|
|
72dbee88d4 | ||
|
|
33e443f41f |
@@ -49,6 +49,11 @@ Verify operation (your version will probably be different, just check here that
|
||||
laconic-so version
|
||||
Version: 1.1.0-7a607c2-202304260513
|
||||
```
|
||||
Save the distribution url to `~/.laconic-so/config.yml`:
|
||||
```bash
|
||||
mkdir ~/.laconic-so
|
||||
echo "distribution-url: https://github.com/cerc-io/stack-orchestrator/releases/latest/download/laconic-so" > ~/.laconic-so/config.yml"
|
||||
```
|
||||
|
||||
### Update
|
||||
If Stack Orchestrator was installed using the process described above, it is able to subsequently self-update to the current latest version by running:
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Stack Orchestrator
|
||||
|
||||
Here you will find information about the design of stack orchestrator, contributing to it, and deploying services/applications that combine two or more "stacks".
|
||||
|
||||
Most "stacks" contain their own README which has plenty of information on deploying, but stacks can be combined in a variety of ways which are document here, for example:
|
||||
|
||||
- [Gitea with Laconicd Fixturenet](./gitea-with-laconicd-fixturenet.md)
|
||||
- [Laconicd Registry with Console](./laconicd-with-console.md)
|
||||
@@ -0,0 +1,71 @@
|
||||
# Adding a new stack
|
||||
|
||||
See [this PR](https://github.com/cerc-io/stack-orchestrator/pull/434) for an example of how to currently add a minimal stack to stack orchestrator. The [reth stack](https://github.com/cerc-io/stack-orchestrator/pull/435) is another good example.
|
||||
|
||||
For external developers, we recommend forking this repo and adding your stack directly to your fork. This initially requires running in "developer mode" as described [here](/docs/CONTRIBUTING.md). Check out the [Namada stack](https://github.com/vknowable/stack-orchestrator/blob/main/app/data/stacks/public-namada/digitalocean_quickstart.md) from Knowable to see how that is done.
|
||||
|
||||
Core to the feature completeness of stack orchestrator is to [decouple the tool functionality from payload](https://github.com/cerc-io/stack-orchestrator/issues/315) which will no longer require forking to add a stack.
|
||||
|
||||
## Example
|
||||
|
||||
- in `app/data/stacks/my-new-stack/stack.yml` add:
|
||||
|
||||
```yaml
|
||||
version: "0.1"
|
||||
name: my-new-stack
|
||||
repos:
|
||||
- github.com/my-org/my-new-stack
|
||||
containers:
|
||||
- cerc/my-new-stack
|
||||
pods:
|
||||
- my-new-stack
|
||||
```
|
||||
|
||||
- in `app/data/container-build/cerc-my-new-stack/build.sh` add:
|
||||
|
||||
```yaml
|
||||
#!/usr/bin/env bash
|
||||
# Build the my-new-stack image
|
||||
source ${CERC_CONTAINER_BASE_DIR}/build-base.sh
|
||||
docker build -t cerc/my-new-stack:local -f ${CERC_REPO_BASE_DIR}/my-new-stack/Dockerfile ${build_command_args} ${CERC_REPO_BASE_DIR}/my-new-stack
|
||||
```
|
||||
|
||||
- in `app/data/compose/docker-compose-my-new-stack.yml` add:
|
||||
|
||||
```yaml
|
||||
version: "3.2"
|
||||
|
||||
services:
|
||||
my-new-stack:
|
||||
image: cerc/my-new-stack:local
|
||||
restart: always
|
||||
ports:
|
||||
- "0.0.0.0:3000:3000"
|
||||
```
|
||||
|
||||
- in `app/data/repository-list.txt` add:
|
||||
|
||||
```bash
|
||||
github.com/my-org/my-new-stack
|
||||
```
|
||||
whereby that repository contains your source code and a `Dockerfile`, and matches the `repos:` field in the `stack.yml`.
|
||||
|
||||
- in `app/data/container-image-list.txt` add:
|
||||
|
||||
```bash
|
||||
cerc/my-new-stack
|
||||
```
|
||||
|
||||
- in `app/data/pod-list.txt` add:
|
||||
|
||||
```bash
|
||||
my-new-stack
|
||||
```
|
||||
|
||||
Now, the following commands will fetch, build, and deploy you app:
|
||||
|
||||
```bash
|
||||
laconic-so --stack my-new-stack setup-repositories
|
||||
laconic-so --stack my-new-stack build-containers
|
||||
laconic-so --stack my-new-stack deploy-system up
|
||||
```
|
||||
+1
-1
@@ -6,7 +6,7 @@ Sub-commands and flags
|
||||
|
||||
Clone a single repository:
|
||||
```
|
||||
$ laconic-so setup-repositories --include cerc-io/go-ethereum
|
||||
$ laconic-so setup-repositories --include github.com/cerc-io/go-ethereum
|
||||
```
|
||||
Clone the repositories for a stack:
|
||||
```
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
# Gitea x NPMs X Laconicd
|
||||
|
||||
Deploy a local Gitea server, publish NPM packages to it, then use those packages to build a Laconicd fixturenet. Demonstrates several components of the Laconic stack
|
||||
|
||||
### Build and Deploy Gitea
|
||||
|
||||
```bash
|
||||
laconic-so --stack build-support build-containers
|
||||
laconic-so --stack package-registry setup-repositories
|
||||
laconic-so --stack package-registry build-containers
|
||||
laconic-so --stack package-registry deploy up
|
||||
```
|
||||
|
||||
These commands can take awhile. Eventually, some instructions and a token will output. Set `CERC_NPM_AUTH_TOKEN`:
|
||||
|
||||
```bash
|
||||
export CERC_NPM_AUTH_TOKEN=<your-token>
|
||||
```
|
||||
|
||||
### Configure the hostname gitea.local
|
||||
|
||||
How to do this depends on your operating system but usually involves editing a `hosts` file. For example, on Linux add this line to the file `/etc/hosts` (needs sudo):
|
||||
|
||||
```bash
|
||||
127.0.0.1 gitea.local
|
||||
```
|
||||
|
||||
Test with:
|
||||
|
||||
```bash
|
||||
ping gitea.local
|
||||
```
|
||||
|
||||
```bash
|
||||
PING gitea.local (127.0.0.1) 56(84) bytes of data.
|
||||
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.147 ms
|
||||
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.033 ms
|
||||
```
|
||||
|
||||
Although not necessary in order to build and publish packages, you can now access the Gitea web interface at: [http://gitea.local:3000](http://gitea.local:3000) using these credentials: `gitea_admin/admin1234` (Note: please properly secure Gitea if public internet access is allowed).
|
||||
|
||||
### Build npm Packages
|
||||
|
||||
Clone the required repositories:
|
||||
|
||||
```bash
|
||||
laconic-so --stack fixturenet-laconicd setup-repositories
|
||||
```
|
||||
|
||||
Build and publish the npm packages:
|
||||
|
||||
```bash
|
||||
laconic-so --stack fixturenet-laconicd build-npms
|
||||
```
|
||||
|
||||
Navigate to the Gitea console and switch to the `cerc-io` user then find the `Packages` tab to confirm that these two npm packages have been published:
|
||||
|
||||
- `@cerc-io/laconic-registry-cli`
|
||||
- `@cerc-io/laconic-sdk`
|
||||
|
||||
### Build and deploy fixturenet containers
|
||||
|
||||
```bash
|
||||
laconic-so --stack fixturenet-laconicd build-containers
|
||||
laconic-so --stack fixturenet-laconicd deploy up
|
||||
```
|
||||
|
||||
Check the logs:
|
||||
|
||||
```bash
|
||||
laconic-so --stack fixturenet-laconicd deploy logs
|
||||
```
|
||||
|
||||
### Test with the registry CLI
|
||||
|
||||
```bash
|
||||
laconic-so --stack fixturenet-laconicd deploy exec cli "laconic cns status"
|
||||
```
|
||||
|
||||
Try additional CLI commands, documented [here](https://github.com/cerc-io/laconic-registry-cli#operations).
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
# Specification
|
||||
|
||||
(note this page is out of date)
|
||||
|
||||
Note: this page is out of date (but still useful) - it will no longer be useful once stacks are [decoupled from the tool functionality](https://github.com/cerc-io/stack-orchestrator/issues/315).
|
||||
|
||||
## Implementation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user