282759c0e5
In preparation for Europa, we will vendor multiple CUE modules: - `pkg/alpha.dagger.io`: legacy non-europa packages - `pkg/dagger.io`: core Europa packages - `pkg/universe.dagger.io`: Europa universe Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
42 lines
687 B
CUE
42 lines
687 B
CUE
package argocd
|
|
|
|
import (
|
|
"alpha.dagger.io/dagger"
|
|
"alpha.dagger.io/os"
|
|
)
|
|
|
|
// Sync an application to its targer state
|
|
#Sync: {
|
|
// ArgoCD configuration
|
|
config: #Config
|
|
|
|
// ArgoCD application
|
|
application: dagger.#Input & {string}
|
|
|
|
// Wait the application to sync correctly
|
|
wait: dagger.#Input & {*false | bool}
|
|
|
|
ctr: os.#Container & {
|
|
image: #CLI & {
|
|
"config": config
|
|
}
|
|
command: #"""
|
|
argocd app sync "$APPLICATION"
|
|
|
|
if [ -n "$WAIT_FLAG" ]; then
|
|
argocd app wait "$APPLICATION"
|
|
fi
|
|
"""#
|
|
always: true
|
|
env: APPLICATION: application
|
|
if wait {
|
|
env: WAIT_FLAG: "wait"
|
|
}
|
|
}
|
|
|
|
status: #Status & {
|
|
config: ctr.image.config
|
|
name: application
|
|
}
|
|
}
|