blob: fd162f1fff20988735286725a99a18de7cb5db0d [file] [log] [blame]
import (
"encoding/base64"
)
input: {
network: #Network @name(Network)
repoAddr: string @name(Repository Address)
sshPrivateKey: string @name(SSH Private Key)
authGroups: string @name(Allowed Groups)
}
name: "App Manager"
namespace: "appmanager"
icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M19 6h-2c0-2.8-2.2-5-5-5S7 3.2 7 6H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-7-3c1.7 0 3 1.3 3 3H9c0-1.7 1.3-3 3-3m7 17H5V8h14zm-7-8c-1.7 0-3-1.3-3-3H7c0 2.8 2.2 5 5 5s5-2.2 5-5h-2c0 1.7-1.3 3-3 3'/></svg>"
_subdomain: "apps"
_httpPortName: "http"
_domain: "\(_subdomain).\(input.network.domain)"
url: "https://\(_domain)"
ingress: {
appmanager: {
auth: {
enabled: true
groups: input.authGroups
}
network: input.network
subdomain: _subdomain
service: {
name: "appmanager"
port: name: _httpPortName
}
}
}
images: {
appmanager: {
repository: "giolekva"
name: "pcloud-installer"
tag: "latest"
pullPolicy: "Always"
}
}
charts: {
appmanager: {
kind: "GitRepository"
address: "https://github.com/giolekva/pcloud.git"
branch: "main"
path: "charts/appmanager"
}
}
helm: {
appmanager: {
chart: charts.appmanager
values: {
repoAddr: input.repoAddr
sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
ingress: {
className: input.network.ingressClass
domain: _domain
certificateIssuer: ""
}
clusterRoleName: "\(global.id)-appmanager"
portName: _httpPortName
image: {
repository: images.appmanager.fullName
tag: images.appmanager.tag
pullPolicy: images.appmanager.pullPolicy
}
}
}
}