Adding support for azure and create a resource group
Signed-off-by: Sujay Pillai <sujayopillai@gmail.com>
This commit is contained in:
44
stdlib/azure/azure.cue
Normal file
44
stdlib/azure/azure.cue
Normal file
@@ -0,0 +1,44 @@
|
||||
// Azure base package
|
||||
package azure
|
||||
|
||||
import (
|
||||
"alpha.dagger.io/dagger"
|
||||
"alpha.dagger.io/dagger/op"
|
||||
)
|
||||
|
||||
//Azure Config shared by all Azure packages
|
||||
#Config: {
|
||||
// AZURE tenant id
|
||||
tenantId: dagger.#Secret @dagger(input)
|
||||
// AZURE subscription id
|
||||
subscriptionId: dagger.#Secret @dagger(input)
|
||||
// AZURE app id for the service principal used
|
||||
appId: dagger.#Secret @dagger(input)
|
||||
// AZURE password for the service principal used
|
||||
password: dagger.#Secret @dagger(input)
|
||||
}
|
||||
|
||||
// Azure Cli to be used by all Azure packages
|
||||
#CLI: {
|
||||
// Azure Config
|
||||
config: #Config
|
||||
|
||||
#up: [
|
||||
op.#FetchContainer & {
|
||||
ref: "mcr.microsoft.com/azure-cli"
|
||||
},
|
||||
|
||||
op.#Exec & {
|
||||
args: ["sh", "-c",
|
||||
#"""
|
||||
az login --service-principal -u "$(cat /run/secrets/appId)" -p "$(cat /run/secrets/password)" -t "$(cat /run/secrets/tenantId)"
|
||||
az account set -s "$(cat /run/secrets/subscriptionId)"
|
||||
"""#,
|
||||
]
|
||||
mount: "/run/secrets/appId": secret: config.appId
|
||||
mount: "/run/secrets/password": secret: config.password
|
||||
mount: "/run/secrets/tenantId": secret: config.tenantId
|
||||
mount: "/run/secrets/subscriptionId": secret: config.subscriptionId
|
||||
},
|
||||
]
|
||||
}
|
42
stdlib/azure/resourcegroup/rg.cue
Normal file
42
stdlib/azure/resourcegroup/rg.cue
Normal file
@@ -0,0 +1,42 @@
|
||||
package resourcegroup
|
||||
|
||||
import (
|
||||
"alpha.dagger.io/os"
|
||||
"alpha.dagger.io/azure"
|
||||
)
|
||||
|
||||
// Create a resource group
|
||||
#ResourceGroup: {
|
||||
// Azure Config
|
||||
config: azure.#Config
|
||||
|
||||
// ResourceGroup name
|
||||
rgName: string @dagger(input)
|
||||
|
||||
// ResourceGroup location
|
||||
rgLocation: string @dagger(input)
|
||||
|
||||
// Container image
|
||||
ctr: os.#Container & {
|
||||
image: azure.#CLI & {
|
||||
"config": config
|
||||
}
|
||||
// Path of the shell to execute
|
||||
shell: path: "/bin/bash"
|
||||
|
||||
always: true
|
||||
|
||||
command: """
|
||||
az group create -l "\(rgLocation)" -n "\(rgName)"
|
||||
az group show -n "\(rgName)" --query "id" -o json | jq -r . | tr -d "\n" > /resourceGroupId
|
||||
"""
|
||||
}
|
||||
|
||||
// Resource Id
|
||||
id: {
|
||||
os.#File & {
|
||||
from: ctr
|
||||
path: "/resourceGroupId"
|
||||
}
|
||||
}.contents @dagger(output)
|
||||
}
|
17
stdlib/azure/resourcegroup/tests/rg.cue
Normal file
17
stdlib/azure/resourcegroup/tests/rg.cue
Normal file
@@ -0,0 +1,17 @@
|
||||
package resourcegroup
|
||||
|
||||
import (
|
||||
"alpha.dagger.io/azure"
|
||||
"alpha.dagger.io/azure/resourcegroup"
|
||||
"alpha.dagger.io/random"
|
||||
)
|
||||
|
||||
suffix: random.#String & {
|
||||
seed: "azrg"
|
||||
}
|
||||
|
||||
rg: resourcegroup.#ResourceGroup & {
|
||||
config: azure.#Config
|
||||
rgName: "rg-test-\(suffix.out)"
|
||||
rgLocation: "eastus2"
|
||||
}
|
Reference in New Issue
Block a user