doc on how to add a stack (#552)
* doc on how to add a stack * commands to run + nits
This commit is contained in:
		
							parent
							
								
									72dbee88d4
								
							
						
					
					
						commit
						b485a3b8d8
					
				
							
								
								
									
										71
									
								
								docs/adding-a-new-stack.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								docs/adding-a-new-stack.md
									
									
									
									
									
										Normal file
									
								
							| @ -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 | ||||
| ``` | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user