0fe8b14e78
Signed-off-by: Tom Chauveau <tom.chauveau@epitech.eu>
62 lines
1.2 KiB
CUE
62 lines
1.2 KiB
CUE
package argocd
|
|
|
|
import (
|
|
"alpha.dagger.io/dagger"
|
|
"alpha.dagger.io/dagger/op"
|
|
)
|
|
|
|
// Get application's status
|
|
#Status: {
|
|
// ArgoCD configuration
|
|
config: #Config
|
|
|
|
// ArgoCD application
|
|
name: dagger.#Input & {string}
|
|
|
|
// ArgoCD CLI output
|
|
outputs: {
|
|
// Application health
|
|
health: dagger.#Output & {string}
|
|
|
|
// Application sync state
|
|
sync: dagger.#Output & {string}
|
|
|
|
// Namespace
|
|
namespace: dagger.#Output & {string}
|
|
|
|
// Server
|
|
server: dagger.#Output & {string}
|
|
|
|
// Comma separated list of application URLs
|
|
urls: dagger.#Output & {string}
|
|
|
|
// Last operation state message
|
|
state: dagger.#Output & {string}
|
|
}
|
|
|
|
outputs: #up: [
|
|
op.#Load & {
|
|
from: #CLI & {
|
|
"config": config
|
|
}
|
|
},
|
|
|
|
op.#Exec & {
|
|
args: ["sh", "-c",
|
|
#"""
|
|
// FIXME JQ failed
|
|
argocd app get "$APPLICATION" --output json | jq '{health:.status.health.status,sync:.status.sync.status,namespace:.spec.destination.namespace,server:.spec.destination.server,urls:.status.summary.externalURLs|join(","),state:.status.operationState.message}' > /output.json
|
|
"""#,
|
|
]
|
|
env: {
|
|
APPLICATION: name
|
|
}
|
|
},
|
|
|
|
op.#Export & {
|
|
source: "/output.json"
|
|
format: "json"
|
|
},
|
|
]
|
|
}
|