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