Merge pull request #374 from samalba/jamstack-inputs
examples/jamstack: use a inputs.yaml instead of cue code
This commit is contained in:
commit
d44a03c635
@ -93,30 +93,30 @@ This app assumes the following infrastructure is available:
|
|||||||
- AWS RDS Instance (MySQL or PostgreSQL)
|
- AWS RDS Instance (MySQL or PostgreSQL)
|
||||||
- AWS ECR repository
|
- AWS ECR repository
|
||||||
|
|
||||||
1. Prepare the app configuration
|
1. Create a new deployment from the plan
|
||||||
|
|
||||||
Edit the file `./examples/jamstack/app_config.cue` and review all values to match to your own needs.
|
|
||||||
|
|
||||||
2. Login your local docker daemon to ECR
|
|
||||||
|
|
||||||
_This step is temporary and will be removed soon (gh issue #301)._
|
|
||||||
|
|
||||||
```sh
|
|
||||||
AWS_REGION="<REPLACE_WITH_AWS_REGION>"
|
|
||||||
AWS_ID="<REPLACE_WITH_AWS_ACCOUNT_ID>"
|
|
||||||
aws ecr get-login-password --region "$AWS_REGION" | docker login --username AWS --password-stdin "${AWS_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com"
|
|
||||||
```
|
|
||||||
|
|
||||||
3. Deploy!
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd ./examples/jamstack
|
cd ./examples/jamstack
|
||||||
dagger new
|
dagger new
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Edit the inputs
|
||||||
|
|
||||||
|
Edit the file `inputs.yaml` and review all values to match to your infrastructure.
|
||||||
|
|
||||||
|
Add the inputs to the deployment:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
dagger input yaml "" -f ./inputs.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
1. Deploy!
|
||||||
|
|
||||||
|
```sh
|
||||||
dagger up
|
dagger up
|
||||||
```
|
```
|
||||||
|
|
||||||
The example `app_config.cue` from the `./examples/jamstack` directory takes the source code from a remote git repository,
|
The example `inputs.yaml` from the `./examples/jamstack` directory takes the source code from a remote git repository, but you can remove this from the file and instead points to a local source code:
|
||||||
but you can remove this from the file and instead points to a local source code:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
dagger input dir backend.source ./my/local/backend/code
|
dagger input dir backend.source ./my/local/backend/code
|
||||||
|
@ -1,58 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"dagger.io/git"
|
|
||||||
)
|
|
||||||
|
|
||||||
name: "my-app"
|
|
||||||
|
|
||||||
// DISCLAIMER: all values below are fake and are provided as examples
|
|
||||||
|
|
||||||
infra: {
|
|
||||||
awsConfig: {
|
|
||||||
accessKey: "<REPLACE WITH AWS ACCESS KEY>"
|
|
||||||
secretKey: "<REPLACE WITH AWS SECRET KEY>"
|
|
||||||
region: "us-east-1"
|
|
||||||
}
|
|
||||||
vpcId: "vpc-020ctgv0bcde4242"
|
|
||||||
ecrRepository: "8563296674124.dkr.ecr.us-east-1.amazonaws.com/apps"
|
|
||||||
ecsClusterName: "bl-ecs-acme-764-ECSCluster-lRIVVg09G4HX"
|
|
||||||
elbListenerArn: "arn:aws:elasticloadbalancing:us-east-1:8563296674124:listener/app/bl-ec-ECSAL-OSYI03K07BCO/3c2d3e78347bde5b/d02ac88cc007e24e"
|
|
||||||
rdsAdminSecretArn: "arn:aws:secretsmanager:us-east-1:8563296674124:secret:AdminPassword-NQbBi7oU4CYS9-IGgS3B"
|
|
||||||
rdsInstanceArn: "arn:aws:rds:us-east-1:8563296674124:cluster:bl-rds-acme-764-rdscluster-8eg3xbfjggkfdg"
|
|
||||||
netlifyAccount: token: "<REPLACE WITH NETLIFY TOKEN>"
|
|
||||||
}
|
|
||||||
|
|
||||||
database: dbType: "mysql"
|
|
||||||
|
|
||||||
backend: {
|
|
||||||
source: git.#Repository & {
|
|
||||||
remote: "https://github.com/blocklayerhq/acme-clothing.git"
|
|
||||||
ref: "HEAD"
|
|
||||||
subdir: "./crate/code/api"
|
|
||||||
}
|
|
||||||
|
|
||||||
// DNS needs to be already configured to the ALB load-balancer
|
|
||||||
// and a valid certificate needs to be configured for that listener
|
|
||||||
hostname: "\(name).acme-764-api.microstaging.io"
|
|
||||||
|
|
||||||
container: {
|
|
||||||
healthCheckPath: "/health-check"
|
|
||||||
healthCheckTimeout: 40
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
frontend: {
|
|
||||||
source: git.#Repository & {
|
|
||||||
remote: "https://github.com/blocklayerhq/acme-clothing.git"
|
|
||||||
ref: "HEAD"
|
|
||||||
subdir: "./crate/code/web"
|
|
||||||
}
|
|
||||||
|
|
||||||
writeEnvFile: ".env"
|
|
||||||
|
|
||||||
yarn: {
|
|
||||||
buildDir: "public"
|
|
||||||
script: "build:client"
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,12 +3,13 @@ package main
|
|||||||
import (
|
import (
|
||||||
"dagger.io/dagger"
|
"dagger.io/dagger"
|
||||||
"dagger.io/aws/ecs"
|
"dagger.io/aws/ecs"
|
||||||
|
"dagger.io/git"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Backend configuration
|
// Backend configuration
|
||||||
backend: {
|
backend: {
|
||||||
// Source code to build this container
|
// Source code to build this container
|
||||||
source: dagger.#Artifact
|
source: git.#Repository | dagger.#Artifact
|
||||||
|
|
||||||
// Container environment variables
|
// Container environment variables
|
||||||
environment: [string]: string
|
environment: [string]: string
|
||||||
|
@ -4,11 +4,12 @@ import (
|
|||||||
"dagger.io/dagger"
|
"dagger.io/dagger"
|
||||||
"dagger.io/netlify"
|
"dagger.io/netlify"
|
||||||
"dagger.io/js/react"
|
"dagger.io/js/react"
|
||||||
|
"dagger.io/git"
|
||||||
)
|
)
|
||||||
|
|
||||||
frontend: {
|
frontend: {
|
||||||
// Source code to build the app
|
// Source code to build the app
|
||||||
source: dagger.#Artifact
|
source: git.#Repository | dagger.#Artifact
|
||||||
|
|
||||||
writeEnvFile?: string
|
writeEnvFile?: string
|
||||||
|
|
||||||
|
34
examples/jamstack/inputs.yaml
Normal file
34
examples/jamstack/inputs.yaml
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
name: my-app
|
||||||
|
infra:
|
||||||
|
awsConfig:
|
||||||
|
accessKey: <REPLACE WITH AWS ACCESS KEY>
|
||||||
|
secretKey: <REPLACE WITH AWS SECRET KEY>
|
||||||
|
region: us-east-1
|
||||||
|
vpcId: vpc-020ctgv0bcde4242
|
||||||
|
ecrRepository: 8563296674124.dkr.ecr.us-east-1.amazonaws.com/apps
|
||||||
|
ecsClusterName: bl-ecs-acme-764-ECSCluster-lRIVVg09G4HX
|
||||||
|
elbListenerArn: arn:aws:elasticloadbalancing:us-east-1:8563296674124:listener/app/bl-ec-ECSAL-OSYI03K07BCO/3c2d3e78347bde5b/d02ac88cc007e24e
|
||||||
|
rdsAdminSecretArn: arn:aws:secretsmanager:us-east-1:8563296674124:secret:AdminPassword-NQbBi7oU4CYS9-IGgS3B
|
||||||
|
rdsInstanceArn: arn:aws:rds:us-east-1:8563296674124:cluster:bl-rds-acme-764-rdscluster-8eg3xbfjggkfdg
|
||||||
|
netlifyAccount:
|
||||||
|
token: <REPLACE WITH NETLIFY TOKEN>
|
||||||
|
database:
|
||||||
|
dbType: mysql
|
||||||
|
backend:
|
||||||
|
source:
|
||||||
|
remote: https://github.com/blocklayerhq/acme-clothing.git
|
||||||
|
ref: HEAD
|
||||||
|
subdir: ./crate/code/api
|
||||||
|
hostname: my-app.acme-764-api.microstaging.io
|
||||||
|
container:
|
||||||
|
healthCheckPath: /health-check
|
||||||
|
healthCheckTimeout: 40
|
||||||
|
frontend:
|
||||||
|
source:
|
||||||
|
remote: https://github.com/blocklayerhq/acme-clothing.git
|
||||||
|
ref: HEAD
|
||||||
|
subdir: ./crate/code/web
|
||||||
|
writeEnvFile: .env
|
||||||
|
yarn:
|
||||||
|
buildDir: public
|
||||||
|
script: build:client
|
Reference in New Issue
Block a user