stdlib: added @dagger(input) and @dagger(output) attributes
Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
parent
42e91c0a30
commit
7009d01835
@ -14,22 +14,22 @@ import (
|
||||
config: aws.#Config
|
||||
|
||||
// Source is the Cloudformation template (JSON/YAML string)
|
||||
source: string
|
||||
source: string @dagger(input)
|
||||
|
||||
// Stackname is the cloudformation stack
|
||||
stackName: string
|
||||
stackName: string @dagger(input)
|
||||
|
||||
// Stack parameters
|
||||
parameters: [string]: _
|
||||
parameters: [string]: _ @dagger(input)
|
||||
|
||||
// Behavior when failure to create/update the Stack
|
||||
onFailure: *"DO_NOTHING" | "ROLLBACK" | "DELETE"
|
||||
onFailure: *"DO_NOTHING" | "ROLLBACK" | "DELETE" @dagger(input)
|
||||
|
||||
// Timeout for waiting for the stack to be created/updated (in minutes)
|
||||
timeout: *10 | uint
|
||||
timeout: *10 | uint @dagger(input)
|
||||
|
||||
// Never update the stack if already exists
|
||||
neverUpdate: *false | bool
|
||||
neverUpdate: *false | bool @dagger(input)
|
||||
|
||||
#files: {
|
||||
"/entrypoint.sh": #Code
|
||||
@ -44,7 +44,7 @@ import (
|
||||
}
|
||||
}
|
||||
|
||||
outputs: [string]: string
|
||||
outputs: [string]: string @dagger(output)
|
||||
|
||||
outputs: #up: [
|
||||
op.#Load & {
|
||||
|
@ -15,7 +15,7 @@ import (
|
||||
// ECR credentials
|
||||
username: "AWS"
|
||||
|
||||
secret: out
|
||||
secret: out @dagger(output)
|
||||
|
||||
aws.#Script & {
|
||||
always: true
|
||||
|
@ -11,22 +11,22 @@ import (
|
||||
config: aws.#Config
|
||||
|
||||
// ECS cluster name
|
||||
cluster: string
|
||||
cluster: string @dagger(input)
|
||||
|
||||
// Arn of the task to run
|
||||
taskArn: string
|
||||
taskArn: string @dagger(input)
|
||||
|
||||
// Environment variables of the task
|
||||
containerEnvironment: [string]: string
|
||||
containerEnvironment: [string]: string @dagger(input)
|
||||
|
||||
// Container name
|
||||
containerName: string
|
||||
containerName: string @dagger(input)
|
||||
|
||||
// Container command to give
|
||||
containerCommand: [...string]
|
||||
containerCommand: [...string] @dagger(input)
|
||||
|
||||
// Task role ARN
|
||||
roleArn: string | *""
|
||||
roleArn: string | *"" @dagger(input)
|
||||
|
||||
containerOverrides: {
|
||||
containerOverrides: [{
|
||||
|
@ -11,15 +11,15 @@ import (
|
||||
config: aws.#Config
|
||||
|
||||
// EKS cluster name
|
||||
clusterName: string
|
||||
clusterName: string @dagger(input)
|
||||
|
||||
// Kubectl version
|
||||
version: *"v1.19.9" | string
|
||||
version: *"v1.19.9" | string @dagger(input)
|
||||
|
||||
// kubeconfig is the generated kube configuration file
|
||||
kubeconfig: {
|
||||
// FIXME There is a problem with dagger.#Secret type
|
||||
string
|
||||
string @dagger(output)
|
||||
|
||||
#up: [
|
||||
op.#Load & {
|
||||
|
@ -10,12 +10,14 @@ import (
|
||||
config: aws.#Config
|
||||
|
||||
// ListenerArn
|
||||
listenerArn: string
|
||||
listenerArn: string @dagger(input)
|
||||
|
||||
// Optional vhost for reusing priorities
|
||||
vhost?: string
|
||||
vhost?: string @dagger(input)
|
||||
|
||||
// exported priority
|
||||
priority: out @dagger(output)
|
||||
|
||||
out: string
|
||||
|
||||
aws.#Script & {
|
||||
|
@ -11,18 +11,18 @@ import (
|
||||
config: aws.#Config
|
||||
|
||||
// DB name
|
||||
name: string
|
||||
name: string @dagger(input)
|
||||
|
||||
// ARN of the database instance
|
||||
dbArn: string
|
||||
dbArn: string @dagger(input)
|
||||
|
||||
// ARN of the database secret (for connecting via rds api)
|
||||
secretArn: string
|
||||
secretArn: string @dagger(input)
|
||||
|
||||
dbType: "mysql" | "postgres"
|
||||
dbType: "mysql" | "postgres" @dagger(input)
|
||||
|
||||
// Name of the DB created
|
||||
out: string
|
||||
out: string @dagger(output)
|
||||
|
||||
aws.#Script & {
|
||||
"config": config
|
||||
|
@ -7,7 +7,7 @@ import (
|
||||
|
||||
// Build a Docker image from source, using included Dockerfile
|
||||
#Build: {
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#DockerBuild & {
|
||||
@ -20,7 +20,7 @@ import (
|
||||
// Pull a docker container
|
||||
#Pull: {
|
||||
// Remote ref (example: "index.docker.io/alpine:latest")
|
||||
from: string
|
||||
from: string @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#FetchContainer & {ref: from},
|
||||
@ -30,10 +30,10 @@ import (
|
||||
// Push a docker image
|
||||
#Push: {
|
||||
// Remote ref (example: "index.docker.io/alpine:latest")
|
||||
ref: string
|
||||
ref: string @dagger(input)
|
||||
|
||||
// Image
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#Load & {from: source},
|
||||
@ -46,8 +46,8 @@ import (
|
||||
// Build a Docker image from the provided Dockerfile contents
|
||||
// FIXME: incorporate into #Build
|
||||
#ImageFromDockerfile: {
|
||||
dockerfile: string
|
||||
context: dagger.#Artifact
|
||||
dockerfile: string @dagger(input)
|
||||
context: dagger.#Artifact @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#DockerBuild & {
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
)
|
||||
|
||||
#Create: {
|
||||
filename: !=""
|
||||
permissions: int | *0o644
|
||||
contents: string | bytes
|
||||
filename: !="" @dagger(input)
|
||||
permissions: int | *0o644 @dagger(input)
|
||||
contents: string | bytes @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#WriteFile & {dest: filename, content: contents, mode: permissions},
|
||||
@ -17,12 +17,12 @@ import (
|
||||
}
|
||||
|
||||
#Append: {
|
||||
filename: !=""
|
||||
permissions: int | *0o644
|
||||
contents: string | bytes
|
||||
from: dagger.#Artifact
|
||||
filename: !="" @dagger(input)
|
||||
permissions: int | *0o644 @dagger(input)
|
||||
contents: string | bytes @dagger(input)
|
||||
from: dagger.#Artifact @dagger(input)
|
||||
|
||||
orig: (#read & {path: filename, "from": from}).data
|
||||
orig: (#read & {path: filename, "from": from}).data @dagger(output)
|
||||
|
||||
#up: [
|
||||
op.#WriteFile & {dest: filename, content: "\(orig)\(contents)", mode: permissions},
|
||||
@ -30,16 +30,16 @@ import (
|
||||
}
|
||||
|
||||
#Read: {
|
||||
filename: !=""
|
||||
from: dagger.#Artifact
|
||||
contents: (#read & {path: filename, "from": from}).data
|
||||
filename: !="" @dagger(input)
|
||||
from: dagger.#Artifact @dagger(input)
|
||||
contents: (#read & {path: filename, "from": from}).data @dagger(output)
|
||||
}
|
||||
|
||||
#read: {
|
||||
path: !=""
|
||||
from: dagger.#Artifact
|
||||
path: !="" @dagger(input)
|
||||
from: dagger.#Artifact @dagger(input)
|
||||
data: {
|
||||
string
|
||||
string @dagger(output)
|
||||
#up: [
|
||||
op.#Load & {"from": from},
|
||||
op.#Export & {source: path},
|
||||
@ -48,12 +48,12 @@ import (
|
||||
}
|
||||
|
||||
#Glob: {
|
||||
glob: !=""
|
||||
filenames: [...string]
|
||||
from: dagger.#Artifact
|
||||
files: (_#glob & {"glob": glob, "from": from}).data
|
||||
glob: !="" @dagger(input)
|
||||
filenames: [...string] @dagger(input)
|
||||
from: dagger.#Artifact @dagger(input)
|
||||
files: (_#glob & {"glob": glob, "from": from}).data @dagger(output)
|
||||
// trim suffix because ls always ends with newline
|
||||
filenames: strings.Split(strings.TrimSuffix(files, "\n"), "\n")
|
||||
filenames: strings.Split(strings.TrimSuffix(files, "\n"), "\n") @dagger(output)
|
||||
}
|
||||
|
||||
_#glob: {
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
// Base Google Cloud Config
|
||||
#Config: {
|
||||
// GCP region
|
||||
region: string
|
||||
region: string @dagger(input)
|
||||
// GCP projcet
|
||||
project: string
|
||||
project: string @dagger(input)
|
||||
// GCP service key
|
||||
serviceKey: dagger.#Secret
|
||||
serviceKey: dagger.#Secret @dagger(input)
|
||||
}
|
||||
|
@ -13,7 +13,7 @@ import (
|
||||
// GCR credentials
|
||||
username: "oauth2accesstoken"
|
||||
secret: {
|
||||
string
|
||||
string @dagger(output)
|
||||
|
||||
#up: [
|
||||
op.#Load & {
|
||||
|
@ -11,15 +11,15 @@ import (
|
||||
config: gcp.#Config
|
||||
|
||||
// GKE cluster name
|
||||
clusterName: string
|
||||
clusterName: string @dagger(input)
|
||||
|
||||
// Kubectl version
|
||||
version: *"v1.19.9" | string
|
||||
version: *"v1.19.9" | string @dagger(input)
|
||||
|
||||
// kubeconfig is the generated kube configuration file
|
||||
kubeconfig: {
|
||||
// FIXME There is a problem with dagger.#Secret type
|
||||
string
|
||||
string @dagger(output)
|
||||
|
||||
#up: [
|
||||
op.#Load & {
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
// A git repository
|
||||
#Repository: {
|
||||
|
||||
remote: string
|
||||
ref: string
|
||||
subdir: string | *""
|
||||
remote: string @dagger(input)
|
||||
ref: string @dagger(input)
|
||||
subdir: string | *"" @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#FetchGit & {
|
||||
|
@ -11,8 +11,8 @@ import (
|
||||
// A standalone go environment
|
||||
#Container: {
|
||||
// Go version to use
|
||||
version: *"1.16" | string
|
||||
source: dagger.#Artifact
|
||||
version: *"1.16" | string @dagger(input)
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
os.#Container & {
|
||||
env: CGO_ENABLED: "0"
|
||||
@ -38,16 +38,16 @@ import (
|
||||
|
||||
#Go: {
|
||||
// Go version to use
|
||||
version: *"1.16" | string
|
||||
version: *"1.16" | string @dagger(input)
|
||||
|
||||
// Arguments to the Go binary
|
||||
args: [...string]
|
||||
args: [...string] @dagger(input)
|
||||
|
||||
// Source Directory to build
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Environment variables
|
||||
env: [string]: string
|
||||
env: [string]: string @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#FetchContainer & {
|
||||
@ -70,30 +70,30 @@ import (
|
||||
|
||||
#Build: {
|
||||
// Go version to use
|
||||
version: *#Go.version | string
|
||||
version: *#Go.version | string @dagger(input)
|
||||
|
||||
// Source Directory to build
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Packages to build
|
||||
packages: *"." | string
|
||||
packages: *"." | string @dagger(input)
|
||||
|
||||
// Target architecture
|
||||
arch: *"amd64" | string
|
||||
arch: *"amd64" | string @dagger(input)
|
||||
|
||||
// Target OS
|
||||
os: *"linux" | string
|
||||
os: *"linux" | string @dagger(input)
|
||||
|
||||
// Build tags to use for building
|
||||
tags: *"" | string
|
||||
tags: *"" | string @dagger(input)
|
||||
|
||||
// LDFLAGS to use for linking
|
||||
ldflags: *"" | string
|
||||
ldflags: *"" | string @dagger(input)
|
||||
|
||||
// Specify the targeted binary name
|
||||
output: string
|
||||
output: string @dagger(output)
|
||||
|
||||
env: [string]: string
|
||||
env: [string]: string @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#Copy & {
|
||||
@ -111,13 +111,13 @@ import (
|
||||
|
||||
#Test: {
|
||||
// Go version to use
|
||||
version: *#Go.version | string
|
||||
version: *#Go.version | string @dagger(input)
|
||||
|
||||
// Source Directory to build
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Packages to test
|
||||
packages: *"." | string
|
||||
packages: *"." | string @dagger(input)
|
||||
|
||||
#Go & {
|
||||
"version": version
|
||||
|
@ -13,26 +13,26 @@ import (
|
||||
// A Yarn package.
|
||||
#Package: {
|
||||
// Application source code
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Environment variables
|
||||
env: [string]: string
|
||||
env: [string]: string @dagger(input)
|
||||
|
||||
// Write the contents of `environment` to this file,
|
||||
// in the "envfile" format.
|
||||
writeEnvFile: string | *""
|
||||
writeEnvFile: string | *"" @dagger(input)
|
||||
|
||||
// Read build output from this directory
|
||||
// (path must be relative to working directory).
|
||||
buildDir: string | *"build"
|
||||
buildDir: string | *"build" @dagger(input)
|
||||
|
||||
// Run this yarn script
|
||||
script: string | *"build"
|
||||
script: string | *"build" @dagger(input)
|
||||
|
||||
build: os.#Dir & {
|
||||
from: ctr
|
||||
path: "/build"
|
||||
}
|
||||
} @dagger(output)
|
||||
|
||||
ctr: os.#Container & {
|
||||
image: alpine.#Image & {
|
||||
|
@ -11,47 +11,47 @@ import (
|
||||
// Install a Helm chart
|
||||
#Chart: {
|
||||
// Helm deployment name
|
||||
name: string
|
||||
name: string @dagger(input)
|
||||
|
||||
// Helm chart to install from source
|
||||
chartSource: dagger.#Artifact
|
||||
chartSource: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Helm chart to install from repository
|
||||
chart?: string
|
||||
chart?: string @dagger(input)
|
||||
|
||||
// Helm chart repository (defaults to stable)
|
||||
repository: *"https://charts.helm.sh/stable" | string
|
||||
repository: *"https://charts.helm.sh/stable" | string @dagger(input)
|
||||
|
||||
// Helm values (either a YAML string or a Cue structure)
|
||||
values?: string
|
||||
values?: string @dagger(input)
|
||||
|
||||
// Kubernetes Namespace to deploy to
|
||||
namespace: string
|
||||
namespace: string @dagger(input)
|
||||
|
||||
// Helm action to apply
|
||||
action: *"installOrUpgrade" | "install" | "upgrade"
|
||||
action: *"installOrUpgrade" | "install" | "upgrade" @dagger(input)
|
||||
|
||||
// time to wait for any individual Kubernetes operation (like Jobs for hooks)
|
||||
timeout: string | *"5m"
|
||||
timeout: string | *"5m" @dagger(input)
|
||||
|
||||
// if set, will wait until all Pods, PVCs, Services, and minimum number of
|
||||
// Pods of a Deployment, StatefulSet, or ReplicaSet are in a ready state
|
||||
// before marking the release as successful.
|
||||
// It will wait for as long as timeout
|
||||
wait: *true | bool
|
||||
wait: *true | bool @dagger(input)
|
||||
|
||||
// if set, installation process purges chart on fail.
|
||||
// The wait option will be set automatically if atomic is used
|
||||
atomic: *true | bool
|
||||
atomic: *true | bool @dagger(input)
|
||||
|
||||
// Kube config file
|
||||
kubeconfig: dagger.#Secret
|
||||
kubeconfig: dagger.#Secret @dagger(input)
|
||||
|
||||
// Helm version
|
||||
version: *"3.5.2" | string
|
||||
version: *"3.5.2" | string @dagger(input)
|
||||
|
||||
// Kubectl version
|
||||
kubectlVersion: *"v1.19.9" | string
|
||||
kubectlVersion: *"v1.19.9" | string @dagger(input)
|
||||
|
||||
#up: [
|
||||
op.#Load & {
|
||||
|
@ -47,19 +47,19 @@ import (
|
||||
#Apply: {
|
||||
|
||||
// Kubernetes config to deploy
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Kubernetes config to deploy inlined in a string
|
||||
sourceInline?: string
|
||||
sourceInline?: string @dagger(input)
|
||||
|
||||
// Kubernetes Namespace to deploy to
|
||||
namespace: string
|
||||
namespace: string @dagger(input)
|
||||
|
||||
// Version of kubectl client
|
||||
version: *"v1.19.9" | string
|
||||
version: *"v1.19.9" | string @dagger(input)
|
||||
|
||||
// Kube config file
|
||||
kubeconfig: dagger.#Secret
|
||||
kubeconfig: dagger.#Secret @dagger(input)
|
||||
|
||||
#code: #"""
|
||||
kubectl create namespace "$KUBE_NAMESPACE" || true
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
|
||||
#Kustomization: {
|
||||
// Kustomize binary version
|
||||
version: *"v3.8.7" | string
|
||||
version: *"v3.8.7" | string @dagger(input)
|
||||
|
||||
#code: #"""
|
||||
[ -e /usr/local/bin/kubectl ] || {
|
||||
@ -46,13 +46,13 @@ import (
|
||||
// Apply a Kubernetes Kustomize folder
|
||||
#Kustomize: {
|
||||
// Kubernetes source
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Optional Kustomization file
|
||||
kustomization: string
|
||||
kustomization: string @dagger(input)
|
||||
|
||||
// Kustomize binary version
|
||||
version: *"v3.8.7" | string
|
||||
version: *"v3.8.7" | string @dagger(input)
|
||||
|
||||
#code: #"""
|
||||
cp /kustomization.yaml /source | true
|
||||
|
@ -10,10 +10,10 @@ import (
|
||||
#Account: {
|
||||
// Use this Netlify account name
|
||||
// (also referred to as "team" in the Netlify docs)
|
||||
name: string | *""
|
||||
name: string | *"" @dagger(input)
|
||||
|
||||
// Netlify authentication token
|
||||
token: dagger.#Secret
|
||||
token: dagger.#Secret @dagger(input)
|
||||
}
|
||||
|
||||
// A Netlify site
|
||||
@ -22,16 +22,16 @@ import (
|
||||
account: #Account
|
||||
|
||||
// Contents of the application to deploy
|
||||
contents: dagger.#Artifact
|
||||
contents: dagger.#Artifact @dagger(input)
|
||||
|
||||
// Deploy to this Netlify site
|
||||
name: string
|
||||
name: string @dagger(input)
|
||||
|
||||
// Host the site at this address
|
||||
customDomain?: string
|
||||
customDomain?: string @dagger(input)
|
||||
|
||||
// Create the Netlify site if it doesn't exist?
|
||||
create: bool | *true
|
||||
create: bool | *true @dagger(input)
|
||||
|
||||
// Website url
|
||||
url: {
|
||||
@ -39,7 +39,7 @@ import (
|
||||
from: ctr
|
||||
path: "/netlify/url"
|
||||
}
|
||||
}.read.data
|
||||
}.read.data @dagger(output)
|
||||
|
||||
// Unique Deploy URL
|
||||
deployUrl: {
|
||||
@ -47,7 +47,7 @@ import (
|
||||
from: ctr
|
||||
path: "/netlify/deployUrl"
|
||||
}
|
||||
}.read.data
|
||||
}.read.data @dagger(output)
|
||||
|
||||
// Logs URL for this deployment
|
||||
logsUrl: {
|
||||
@ -55,7 +55,7 @@ import (
|
||||
from: ctr
|
||||
path: "/netlify/logsUrl"
|
||||
}
|
||||
}.read.data
|
||||
}.read.data @dagger(output)
|
||||
|
||||
ctr: os.#Container & {
|
||||
image: alpine.#Image & {
|
||||
|
@ -8,13 +8,13 @@ import (
|
||||
)
|
||||
|
||||
#Configuration: {
|
||||
version: string | *"latest"
|
||||
version: string | *"latest" @dagger(input)
|
||||
|
||||
source: dagger.#Artifact
|
||||
source: dagger.#Artifact @dagger(input)
|
||||
|
||||
tfvars?: [string]: _
|
||||
tfvars?: [string]: _ @dagger(input)
|
||||
|
||||
env: [string]: string
|
||||
env: [string]: string @dagger(input)
|
||||
|
||||
state: #up: [
|
||||
op.#FetchContainer & {
|
||||
@ -61,5 +61,5 @@ import (
|
||||
},
|
||||
]
|
||||
...
|
||||
}
|
||||
} @dagger(output)
|
||||
}
|
||||
|
Reference in New Issue
Block a user