AppManager: Format cue files
Change-Id: Ia37908797b0227ab3b66e0faab08dcc2379e5282
diff --git a/core/installer/app_configs/app_base.cue b/core/installer/app_configs/app_base.cue
index 0724f73..4cf3336 100644
--- a/core/installer/app_configs/app_base.cue
+++ b/core/installer/app_configs/app_base.cue
@@ -9,16 +9,16 @@
cluster?: #Cluster @name(Cluster)
}
-name: string | *""
+name: string | *""
description: string | *""
-readme: string | *""
-icon: string | *""
-namespace: string | *""
+readme: string | *""
+icon: string | *""
+namespace: string | *""
help: [...#HelpDocument] | *[]
#HelpDocument: {
- title: string
+ title: string
contents: string
children: [...#HelpDocument] | *[]
}
@@ -26,7 +26,7 @@
url: string | *""
#Namespace: {
- name: string
+ name: string
kubeconfig?: string
}
@@ -34,38 +34,38 @@
#Protocol: "TCP" | "UDP"
-#PortValue: int & > 0 & < 65536
+#PortValue: int & >0 & <65536
#Port: {
- name: string
- value: #PortValue
+ name: string
+ value: #PortValue
protocol: #Protocol | *"TCP"
}
#AppType: "infra" | "env"
-appType: #AppType | *"env"
+appType: #AppType | *"env"
#Auth: {
enabled: bool | *false // TODO(gio): enabled by default?
- groups: string | *"" // TODO(gio): []string
+ groups: string | *"" // TODO(gio): []string
noAuthPathPatterns: [...string] | *[]
}
#Image: {
- registry: string | *release.imageRegistry
- repository: string
- name: string
- tag: string
- pullPolicy: string | *"IfNotPresent"
- imageName: "\(repository)/\(name)"
- fullName: "\(registry)/\(imageName)"
+ registry: string | *release.imageRegistry
+ repository: string
+ name: string
+ tag: string
+ pullPolicy: string | *"IfNotPresent"
+ imageName: "\(repository)/\(name)"
+ fullName: "\(registry)/\(imageName)"
fullNameWithTag: "\(fullName):\(tag)"
}
#VolumeInput: {
- cluster?: #Cluster
- name: string
- size: string
+ cluster?: #Cluster
+ name: string
+ size: string
accessMode: "ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany" | "ReadWriteOncePod" | *"ReadWriteOnce"
}
@@ -76,58 +76,58 @@
#Chart: #GitRepositoryRef | #HelmRepositoryRef
#GitRepositoryRef: {
- name: string
- kind: "GitRepository"
- address: string
- branch: string
- path: string
+ name: string
+ kind: "GitRepository"
+ address: string
+ branch: string
+ path: string
}
#HelmRepositoryRef: {
- name: string
- kind: "HelmRepository"
- repository: string
- name: string
- tag: string
+ name: string
+ kind: "HelmRepository"
+ repository: string
+ name: string
+ tag: string
}
#EnvNetwork: {
- dns: net.IPv4
+ dns: net.IPv4
dnsInClusterIP: net.IPv4
- ingress: net.IPv4
- headscale: net.IPv4
- servicesFrom: net.IPv4
- servicesTo: net.IPv4
+ ingress: net.IPv4
+ headscale: net.IPv4
+ servicesFrom: net.IPv4
+ servicesTo: net.IPv4
}
#Release: {
appInstanceId: string
- namespace: string
- repoAddr: string
- appDir: string
+ namespace: string
+ repoAddr: string
+ appDir: string
imageRegistry: string | *"docker.io"
}
#PortForward: {
- name: string
- network: #Network
+ name: string
+ network: #Network
clusterName?: string | null
- port: int
+ port: int
service: close({
- name: string
+ name: string
namespace: string | *""
- port: #PortValue
+ port: #PortValue
})
protocol: "TCP" | "UDP" | *"TCP"
- allocator: network.allocatePortAddr
- reservator: network.reservePortAddr
+ allocator: network.allocatePortAddr
+ reservator: network.reservePortAddr
deallocator: network.deallocatePortAddr
}
#Cluster: {
- name: string
- kubeconfig: string
+ name: string
+ kubeconfig: string
ingressClassName: string
}
@@ -138,15 +138,15 @@
}
}
-global: #Global
+global: #Global
release: #Release
#WriteFile: {
- path: string
- content: string
- owner: string
+ path: string
+ content: string
+ owner: string
permissions: string
- defer: bool | *true
+ defer: bool | *true
}
#CloudInit: {
@@ -159,22 +159,22 @@
}
#VPNEnabled: {
- enabled: true
+ enabled: true
loginServer: string
- authKey: string
+ authKey: string
}
#VPN: #VPNEnabled | #VPNDisabled
#VirtualMachine: #WithOut & {
cluster?: #Cluster
- name: string
+ name: string
username: string
- domain: string
- vpn: #VPN | *{ enabled: false }
+ domain: string
+ vpn: #VPN | *{enabled: false}
codeServerEnabled: bool | *false
- cpuCores: int
- memory: string
+ cpuCores: int
+ memory: string
sshKnownHosts: [...string] | *[]
sshAuthorizedKeys: [...string] | *[]
cloudInit: #CloudInit
@@ -182,11 +182,11 @@
configFiles: {...} | *{}
ports: [...#Port]
- _name: name
- _username: username
- _cpuCores: cpuCores
- _memory: memory
- _ports: ports
+ _name: name
+ _username: username
+ _cpuCores: cpuCores
+ _memory: memory
+ _ports: ports
_configFiles: configFiles
_codeServerPort: 9090
@@ -200,7 +200,7 @@
["sh", "-c", "sed -i -e 's/127.0.0.1:8080/0.0.0.0:\(_codeServerPort)/g' /home/\(username)/.config/code-server/config.yaml"],
["sh", "-c", "sed -i -e 's/auth: password/auth: none/g' /home/\(username)/.config/code-server/config.yaml"],
["sh", "-c", "systemctl restart --now code-server@\(username)"],
- ]
+ ]
}
_vpnCmd: [...[...string]] | *[]
@@ -209,16 +209,16 @@
["sh", "-c", "curl -fsSL https://tailscale.com/install.sh | sh"],
// TODO(gio): (maybe) enable tailscale ssh
["sh", "-c", "tailscale up --login-server=\(vpn.loginServer) --auth-key=\(vpn.authKey)"],
- ]
+ ]
}
images: {}
charts: {
virtualMachine: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/virtual-machine"
+ branch: "main"
+ path: "charts/virtual-machine"
}
}
charts: {
@@ -231,38 +231,38 @@
helm: {
"\(_name)-virtual-machine": {
chart: charts.virtualMachine
- info: "Creating \(_name) virtual machine"
+ info: "Creating \(_name) virtual machine"
annotations: {
- "dodo.cloud/resource-type": "virtual-machine"
- "dodo.cloud/resource.virtual-machine.name": _name
- "dodo.cloud/resource.virtual-machine.user": _username
+ "dodo.cloud/resource-type": "virtual-machine"
+ "dodo.cloud/resource.virtual-machine.name": _name
+ "dodo.cloud/resource.virtual-machine.user": _username
"dodo.cloud/resource.virtual-machine.cpu-cores": "\(_cpuCores)"
- "dodo.cloud/resource.virtual-machine.memory": _memory
+ "dodo.cloud/resource.virtual-machine.memory": _memory
}
values: {
- name: _name
+ name: _name
username: _username
cpuCores: _cpuCores
- memory: _memory
+ memory: _memory
disk: {
source: "https://cloud.debian.org/images/cloud/bookworm-backports/latest/debian-12-backports-generic-amd64.qcow2"
- size: "64Gi"
+ size: "64Gi"
}
ports: [{
- name: "ssh"
- value: 22
+ name: "ssh"
+ value: 22
protocol: "TCP"
},
- if codeServerEnabled {
- name: _codeServerPortName
- value: _codeServerPort
- protocol: "TCP"
- }
- for p in _ports {
- name: p.name
- value: p.value
- protocol: p.protocol
- }]
+ if codeServerEnabled {
+ name: _codeServerPortName
+ value: _codeServerPort
+ protocol: "TCP"
+ },
+ for p in _ports {
+ name: p.name
+ value: p.value
+ protocol: p.protocol
+ }]
cloudInit: {
userData: _cloudInitUserData
networkData: {
@@ -279,21 +279,21 @@
_cloudInitUserData: {
system_info: {
default_user: {
- name: username
+ name: username
homedir: "/home/\(username)"
- sudo: "ALL=(ALL) NOPASSWD:ALL"
- groups: "users, admin"
+ sudo: "ALL=(ALL) NOPASSWD:ALL"
+ groups: "users, admin"
}
}
password: "dodo" // TODO(gio): remove if possible
chpasswd: {
expire: false
}
- hostname: _name
- ssh_pwauth: true
+ hostname: _name
+ ssh_pwauth: true
disable_root: false
ssh_authorized_keys: list.Concat([[
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOa7FUrmXzdY3no8qNGUk7OPaRcIUi8G7MVbLlff9eB/ lekva@gl-mbp-m1-max.local"
+ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOa7FUrmXzdY3no8qNGUk7OPaRcIUi8G7MVbLlff9eB/ lekva@gl-mbp-m1-max.local",
], sshAuthorizedKeys])
packages: [
"curl",
@@ -302,14 +302,14 @@
"openssh-client",
]
write_files: list.Concat([[{
- path: "/home/\(username)/.gitconfig"
- content: """
+ path: "/home/\(username)/.gitconfig"
+ content: """
[user]
name = \(username)
email = \(username)@\(domain)
"""
- owner: "\(username):\(username)"
+ owner: "\(username):\(username)"
permissions: "0644"
}], cloudInit.writeFiles])
runcmd: list.Concat([
@@ -321,14 +321,13 @@
// TODO(gio): implement post app delete webhook to remove ssh key from memberships
// TODO(gio): make memberships-api addr configurable
["sh", "-c", "PUBKEY=$(cat /home/\(username)/.ssh/id_ed25519.pub) && curl --request POST --data \"{\\\"user\\\":\\\"\(username)\\\",\\\"publicKey\\\":\\\"${PUBKEY}\\\"}\" http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local/api/users/\(username)/keys"],
- ],
+ ],
_vpnCmd,
_codeServerCmd,
- [
- // TODO(gio): this waits for user keys are synced from memberships service back to the dodo-app.
- // We should inject this key into the dodo-app directly as well.
- // ["sh", "-c", "sleep 20"],
- ],
+ [],
+ // TODO(gio): this waits for user keys are synced from memberships service back to the dodo-app.
+ // We should inject this key into the dodo-app directly as well.
+ // ["sh", "-c", "sleep 20"],
cloudInit.runCmd])
}
}
@@ -336,20 +335,20 @@
}
#Domain: {
- network: string
+ network: string
subdomain: string
}
#PortDomain: {
#Domain
- port: { name: string } | { value: #PortValue }
+ port: {name: string} | {value: #PortValue}
}
#MongoDBInput: {
cluster?: #Cluster
- name: string
- version: "8.0.1"
- size: string | *"1Gi"
+ name: string
+ version: "8.0.1"
+ size: string | *"1Gi"
initdbScripts: {...}
expose: [...#Domain] | *[]
...
@@ -357,22 +356,22 @@
#MongoDB: #WithOut & #MongoDBInput & {
cluster?: #Cluster
- name: string
- version: "8.0.1"
- size: string | *"1Gi"
+ name: string
+ version: "8.0.1"
+ size: string | *"1Gi"
initdbScripts: {...}
expose: [...#Domain] | *[]
- _cluster: cluster
- _name: name
- _size: size
+ _cluster: cluster
+ _name: name
+ _size: size
_volumeClaimName: "\(name)-mongodb"
- _initdbScripts: initdbScripts
+ _initdbScripts: initdbScripts
openPort: [for i, e in expose {
- name: "port_mongodb_\(_name)_\(i)"
- network: networks[strings.ToLower(e.network)]
- port: input[name]
+ name: "port_mongodb_\(_name)_\(i)"
+ network: networks[strings.ToLower(e.network)]
+ port: input[name]
protocol: "TCP"
service: {
name: "mongodb-\(_name)"
@@ -382,19 +381,19 @@
images: {
mongodb: {
- registry: "docker.io"
+ registry: "docker.io"
repository: "bitnami"
- name: "mongodb"
- tag: version
+ name: "mongodb"
+ tag: version
pullPolicy: "IfNotPresent"
}
}
charts: {
mongodb: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/mongodb"
+ branch: "main"
+ path: "charts/mongodb"
}
}
volume: {
@@ -412,24 +411,24 @@
cluster: _cluster
}
annotations: {
- "dodo.cloud/resource-type": "mongodb"
- "dodo.cloud/resource.mongodb.name": name
+ "dodo.cloud/resource-type": "mongodb"
+ "dodo.cloud/resource.mongodb.name": name
"dodo.cloud/resource.mongodb.version": version
- "dodo.cloud/resource.mongodb.volume": _volumeClaimName
+ "dodo.cloud/resource.mongodb.volume": _volumeClaimName
}
values: {
fullnameOverride: "mongodb-\(name)"
image: {
- registry: images.mongodb.registry
+ registry: images.mongodb.registry
repository: images.mongodb.imageName
- tag: images.mongodb.tag
+ tag: images.mongodb.tag
pullPolicy: images.mongodb.pullPolicy
}
- architecture: "standalone"
+ architecture: "standalone"
useStatefulSet: false
auth: {
- enabled: true
- rootUser: "root"
+ enabled: true
+ rootUser: "root"
rootPassword: "root"
usernames: ["mongo"]
passwords: ["mongo"]
@@ -437,19 +436,19 @@
}
tls: enabled: false
disableJavascript: false
- enableJournal: true
- initdbScripts: _initdbScripts
+ enableJournal: true
+ initdbScripts: _initdbScripts
service: {
- type: "ClusterIP"
+ type: "ClusterIP"
portName: "mongodb"
ports: mongodb: 27017
}
arbiter: enabled: false
- hidden: enabled: false
+ hidden: enabled: false
persistence: {
- enabled: true
+ enabled: true
existingClaim: _volumeClaimName
- mountPath: "/bitnami/mongodb"
+ mountPath: "/bitnami/mongodb"
}
volumePermissions: securityContext: runAsUser: 0
}
@@ -471,7 +470,7 @@
}
...
}
- openPortMap: {
+ openPortMap: {
for k, v in mongodb {
"mongodb-\(k)": v.openPortMap
}
@@ -504,31 +503,31 @@
#PostgreSQLInput: {
cluster?: #Cluster
- name: string
- version: "15.3"
- initSQL: string | *""
- size: string | *"1Gi"
+ name: string
+ version: "15.3"
+ initSQL: string | *""
+ size: string | *"1Gi"
expose: [...#Domain] | *[]
...
}
#PostgreSQL: #WithOut & #PostgreSQLInput & {
cluster?: #Cluster
- name: string
- version: "15.3"
- initSQL: string | *""
- size: string | *"1Gi"
+ name: string
+ version: "15.3"
+ initSQL: string | *""
+ size: string | *"1Gi"
expose: [...#Domain] | *[]
- _cluster: cluster
- _size: size
+ _cluster: cluster
+ _size: size
_volumeClaimName: "\(name)-postgresql"
- _name: name
+ _name: name
openPort: [for i, e in expose {
- name: "port_postgresql_\(_name)_\(i)"
- network: networks[strings.ToLower(e.network)]
- port: input[name]
+ name: "port_postgresql_\(_name)_\(i)"
+ network: networks[strings.ToLower(e.network)]
+ port: input[name]
protocol: "TCP"
service: {
name: "postgres-\(_name)"
@@ -539,17 +538,17 @@
images: {
postgres: {
repository: "library"
- name: "postgres"
- tag: version
+ name: "postgres"
+ tag: version
pullPolicy: "IfNotPresent"
}
}
charts: {
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
}
volume: {
@@ -567,24 +566,24 @@
cluster: _cluster
}
annotations: {
- "dodo.cloud/resource-type": "postgresql"
- "dodo.cloud/resource.postgresql.name": name
+ "dodo.cloud/resource-type": "postgresql"
+ "dodo.cloud/resource.postgresql.name": name
"dodo.cloud/resource.postgresql.version": version
- "dodo.cloud/resource.postgresql.volume": _volumeClaimName
+ "dodo.cloud/resource.postgresql.volume": _volumeClaimName
}
values: {
fullnameOverride: "postgres-\(name)"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
auth: {
postgresPassword: "postgres"
- username: "postgres"
- password: "postgres"
- database: "postgres"
+ username: "postgres"
+ password: "postgres"
+ database: "postgres"
}
service: {
type: "ClusterIP"
@@ -594,9 +593,9 @@
postgresql: {
auth: {
postgresPassword: "postgres"
- username: "postgres"
- password: "postgres"
- database: "postgres"
+ username: "postgres"
+ password: "postgres"
+ database: "postgres"
}
}
}
@@ -610,7 +609,7 @@
fsGroup: 0
}
containerSecurityContext: {
- enabled: true
+ enabled: true
runAsUser: 0
}
}
@@ -624,8 +623,8 @@
_localCharts: localCharts
#ResourceReference: {
- name: string
- namespace: string
+ name: string
+ namespace: string
}
#Helm: {
@@ -633,33 +632,33 @@
dependsOn: [...#ResourceReference] | *[]
info: string | *""
annotations: {...} | *{}
- cluster?: #Cluster | null
+ cluster?: #Cluster | null
targetNamespace?: string
...
}
#HelmRelease: {
- _name: string
- _chart: _
+ _name: string
+ _chart: _
_values: _
_dependencies: [...#ResourceReference] | *[]
_info: string | *""
_annotations: {...} | *{}
- _cluster?: #Cluster | null
- _namespace: string
+ _cluster?: #Cluster | null
+ _namespace: string
_targetNamespace?: string
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
- kind: "HelmRelease"
+ kind: "HelmRelease"
metadata: {
- name: _name
- namespace: _namespace
- annotations: _annotations & {
- "dodo.cloud/installer-info": _info
- }
+ name: _name
+ namespace: _namespace
+ annotations: _annotations & {
+ "dodo.cloud/installer-info": _info
+ }
}
spec: {
- interval: "1m0s"
+ interval: "1m0s"
dependsOn: _dependencies
chart: spec: _chart
if _targetNamespace != _|_ {
@@ -669,7 +668,7 @@
if _cluster != null {
kubeConfig: secretRef: {
name: "cluster-kubeconfig"
- key: "kubeconfig"
+ key: "kubeconfig"
}
}
}
@@ -690,10 +689,10 @@
}
}
openPort: [...#PortForward] | *[]
- openPort: list.FlattenN([for i in _op { i }], -1)
+ openPort: list.FlattenN([for i in _op {i}], -1)
for _, out in outs {
- images: out.images
- charts: out.charts
+ images: out.images
+ charts: out.charts
clusterProxy: out.clusterProxy
_lc: _localCharts & {
for k, v in out.charts {
@@ -705,13 +704,13 @@
helm: {
for name, r in out.helmR {
"\(name)": #HelmRelease & {
- _name: name
- _chart: _lc[r.chart.name]
- _values: r.values
+ _name: name
+ _chart: _lc[r.chart.name]
+ _values: r.values
_dependencies: r.dependsOn
- _info: r.info
- _annotations: r.annotations
- _namespace: release.namespace
+ _info: r.info
+ _annotations: r.annotations
+ _namespace: release.namespace
if r.cluster != _|_ {
_cluster: r.cluster
}
@@ -725,14 +724,14 @@
}
#SSHKey: {
- public: string
+ public: string
private: string
}
#HelpDocument: {
- title: string
- contents: string
- children: [...#HelpDocument]
+ title: string
+ contents: string
+ children: [...#HelpDocument]
}
help: [...#HelpDocument] | *[]
@@ -759,22 +758,22 @@
[{
name: "\(e.name)_cluster"
network: #Network & {
- name: "cluster_\(cluster.name)"
- ingressClass: "default"
- domain: ""
- allocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/allocate"
- reservePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/reserve"
+ name: "cluster_\(cluster.name)"
+ ingressClass: "default"
+ domain: ""
+ allocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/allocate"
+ reservePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/reserve"
deallocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/remmove"
}
- port: input[name]
+ port: input[name]
protocol: e.protocol
- service: e.service
+ service: e.service
}, {
- name: e.name
+ name: e.name
clusterName: _cluster.name
- network: e.network
- port: input[e.name]
- protocol: e.protocol
+ network: e.network
+ port: input[e.name]
+ protocol: e.protocol
service: {
name: "ingress-\(strings.ToLower(e.protocol)).\(clusterName).cluster.\(global.privateDomain)"
port: input["\(e.name)_cluster"]
@@ -785,35 +784,35 @@
[{
name: "\(e.name)_cluster"
network: #Network & {
- name: "cluster_\(cluster.name)"
- ingressClass: "default"
- domain: ""
- allocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/allocate"
- reservePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/reserve"
+ name: "cluster_\(cluster.name)"
+ ingressClass: "default"
+ domain: ""
+ allocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/allocate"
+ reservePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/reserve"
deallocatePortAddr: "http://port-allocator.\(global.id)-cluster-\(cluster.name)-network.svc.cluster.local/api/remmove"
}
- port: input[name]
+ port: input[name]
protocol: "TCP"
- service: e.service
+ service: e.service
}, {
- name: "\(e.name)_private"
- network: networks.private // TODO(gio): take corresponding private network
+ name: "\(e.name)_private"
+ network: networks.private // TODO(gio): take corresponding private network
clusterName: _cluster.name
- port: input[name]
- protocol: "TCP"
+ port: input[name]
+ protocol: "TCP"
service: {
name: "ingress-\(strings.ToLower(e.protocol)).\(clusterName).cluster.\(global.privateDomain)"
port: input["\(e.name)_cluster"]
}
}, {
- name: e.name
- network: e.network
- port: input[name]
+ name: e.name
+ network: e.network
+ port: input[name]
protocol: "TCP"
service: {
- name: "proxy-backend-service"
+ name: "proxy-backend-service"
namespace: "\(global.namespacePrefix)ingress-private"
- port: input["\(e.name)_private"]
+ port: input["\(e.name)_private"]
}
}]
}
@@ -864,28 +863,28 @@
}
if out.cluster != _|_ {
outs: kout: #WithOut & {
- cluster: out.cluster
- clusterName: cluster.name
+ cluster: out.cluster
+ clusterName: cluster.name
clusterKubeconfig: cluster.kubeconfig
charts: {
secret: {
- name: "secret"
- kind: "GitRepository"
+ name: "secret"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/secret"
+ branch: "main"
+ path: "charts/secret"
}
- }
+ }
helm: {
"cluster-kubeconfig": {
- chart: charts.secret
+ chart: charts.secret
cluster: null
- info: "Connecting to \(clusterName) cluster"
+ info: "Connecting to \(clusterName) cluster"
values: {
- name: "cluster-kubeconfig"
- key: "kubeconfig"
+ name: "cluster-kubeconfig"
+ key: "kubeconfig"
value: base64.Encode(null, clusterKubeconfig)
- keep: true
+ keep: true
}
}
}
@@ -897,16 +896,16 @@
_cluster: cluster
charts: {
volume: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/volumes"
+ branch: "main"
+ path: "charts/volumes"
}
secret: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/secret"
+ branch: "main"
+ path: "charts/secret"
}
...
}
@@ -925,9 +924,9 @@
for k, v in volume {
"\(k)-volume": {
chart: charts.volume
- info: "Creating disk for \(k)"
+ info: "Creating disk for \(k)"
annotations: {
- "dodo.cloud/resource-type": "volume"
+ "dodo.cloud/resource-type": "volume"
"dodo.cloud/resource.volume.name": v.name
"dodo.cloud/resource.volume.size": v.size
}
@@ -1029,17 +1028,17 @@
_codeServerPortName: "code-server"
-resources: { ... }
+resources: {...}
#ClusterProxy: {
from: string
- to: string
+ to: string
}
// TODO(gio): Move this inside #WithOut definition
if out.cluster != _|_ {
namespaces: [{
- name: release.namespace
+ name: release.namespace
kubeconfig: out.cluster.kubeconfig
}]
}
diff --git a/core/installer/app_configs/app_global_env.cue b/core/installer/app_configs/app_global_env.cue
index 7c90d95..10d716a 100644
--- a/core/installer/app_configs/app_global_env.cue
+++ b/core/installer/app_configs/app_global_env.cue
@@ -3,25 +3,25 @@
)
#Global: {
- id: string | *""
- pcloudEnvName: string | *""
- domain: string | *""
- privateDomain: string | *""
- contactEmail: string | *""
- adminPublicKey: string | *""
- publicIP: [...string] | *[]
- nameserverIP: [...string] | *[]
+ id: string | *""
+ pcloudEnvName: string | *""
+ domain: string | *""
+ privateDomain: string | *""
+ contactEmail: string | *""
+ adminPublicKey: string | *""
+ publicIP: [...string] | *[]
+ nameserverIP: [...string] | *[]
namespacePrefix: string | *""
- network: #EnvNetwork
+ network: #EnvNetwork
}
#Network: {
- name: string
- ingressClass: string
- certificateIssuer: string | *""
- domain: string
- allocatePortAddr: string
- reservePortAddr: string
+ name: string
+ ingressClass: string
+ certificateIssuer: string | *""
+ domain: string
+ allocatePortAddr: string
+ reservePortAddr: string
deallocatePortAddr: string
}
@@ -32,75 +32,75 @@
networks: #Networks
#Ingress: #WithOut & {
- name: string
- auth: #Auth
- network: #Network
+ name: string
+ auth: #Auth
+ network: #Network
subdomain: string
- home: string | *""
- label: string | *name
- appRoot: string | *""
+ home: string | *""
+ label: string | *name
+ appRoot: string | *""
service: close({
name: string
- port: close({ name: string }) | close({ number: int & > 0 })
+ port: close({name: string}) | close({number: int & >0})
})
cluster?: #Cluster
_cluster: cluster
- g?: #Global
+ g?: #Global
- _domain: "\(subdomain).\(network.domain)"
- _appRoot: appRoot
- _authProxyName: "\(name)-auth-proxy"
- _authProxyHTTPPortName: "http"
+ _domain: "\(subdomain).\(network.domain)"
+ _appRoot: appRoot
+ _authProxyName: "\(name)-auth-proxy"
+ _authProxyHTTPPortName: "http"
if _cluster != _|_ {
clusterProxy: {
"\(name)": {
_sanitizedDomain: strings.Replace(_domain, ".", "-", -1)
- from: _domain
- to: "\(_sanitizedDomain).\(_cluster.name).cluster.\(global.privateDomain)"
+ from: _domain
+ to: "\(_sanitizedDomain).\(_cluster.name).cluster.\(global.privateDomain)"
}
}
}
images: {
authProxy: {
repository: "giolekva"
- name: "auth-proxy"
- tag: "latest"
+ name: "auth-proxy"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
ingress: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/ingress"
+ branch: "main"
+ path: "charts/ingress"
}
authProxy: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/auth-proxy"
+ branch: "main"
+ path: "charts/auth-proxy"
}
}
helm: {
if auth.enabled {
"\(name)-auth-proxy": {
chart: charts.authProxy
- info: "Installing authentication proxy"
+ info: "Installing authentication proxy"
// NOTE(gio): Force to install in default cluster.
cluster: null
- _name: name
+ _name: name
values: {
name: _authProxyName
image: {
repository: images.authProxy.fullName
- tag: images.authProxy.tag
+ tag: images.authProxy.tag
pullPolicy: images.authProxy.pullPolicy
}
- upstream: "\(service.name).\(release.namespace).svc.cluster.local"
- whoAmIAddr: "https://accounts.\(g.domain)/sessions/whoami"
- loginAddr: "https://accounts-ui.\(g.domain)/login"
+ upstream: "\(service.name).\(release.namespace).svc.cluster.local"
+ whoAmIAddr: "https://accounts.\(g.domain)/sessions/whoami"
+ loginAddr: "https://accounts-ui.\(g.domain)/login"
membershipAddr: "http://memberships-api.\(g.namespacePrefix)core-auth-memberships.svc.cluster.local/api/user"
if g.privateDomain == "" {
membershipPublicAddr: "https://memberships.\(g.domain)"
@@ -108,33 +108,33 @@
if g.privateDomain != "" {
membershipPublicAddr: "https://memberships.\(g.privateDomain)"
}
- groups: auth.groups
+ groups: auth.groups
noAuthPathPatterns: strings.Join(auth.noAuthPathPatterns, ",")
- portName: _authProxyHTTPPortName
+ portName: _authProxyHTTPPortName
}
}
}
if _cluster != _|_ {
"\(name)-ingress-\(_cluster.name)": {
- chart: charts.ingress
- cluster: _cluster
- _service: service
+ chart: charts.ingress
+ cluster: _cluster
+ _service: service
_sanitizedDomain: strings.Replace(_domain, ".", "-", -1)
- _clusterDomain: "\(_sanitizedDomain).\(cluster.name).cluster.\(global.privateDomain)"
- info: "Configuring secure route to \(cluster.name) cluster"
+ _clusterDomain: "\(_sanitizedDomain).\(cluster.name).cluster.\(global.privateDomain)"
+ info: "Configuring secure route to \(cluster.name) cluster"
annotations: {
// TODO(gio): Change type to cluster-gateway or sth similar.
- "dodo.cloud/resource-type": "ingress"
+ "dodo.cloud/resource-type": "ingress"
"dodo.cloud/resource.ingress.host": "https://\(_clusterDomain)"
- "dodo.cloud/internal": "true"
+ "dodo.cloud/internal": "true"
}
values: {
- domain: _clusterDomain
- ingressClassName: cluster.ingressClassName
+ domain: _clusterDomain
+ ingressClassName: cluster.ingressClassName
certificateIssuer: ""
annotations: {
"nginx.ingress.kubernetes.io/force-ssl-redirect": "false"
- "nginx.ingress.kubernetes.io/ssl-redirect": "false"
+ "nginx.ingress.kubernetes.io/ssl-redirect": "false"
}
service: {
name: _service.name
@@ -153,18 +153,18 @@
cluster: null
// TODO(gio): take it from input.network.namespace
targetNamespace: "\(global.namespacePrefix)ingress-private"
- _service: service
- info: "Generating TLS certificate for https://\(_domain)"
+ _service: service
+ info: "Generating TLS certificate for https://\(_domain)"
annotations: {
- "dodo.cloud/resource-type": "ingress"
+ "dodo.cloud/resource-type": "ingress"
"dodo.cloud/resource.ingress.host": "https://\(_domain)"
"dodo.cloud/resource.ingress.home": home
"dodo.cloud/resource.ingress.name": label
}
values: {
- domain: _domain
- appRoot: _appRoot
- ingressClassName: network.ingressClass
+ domain: _domain
+ appRoot: _appRoot
+ ingressClassName: network.ingressClass
certificateIssuer: network.certificateIssuer
service: {
if auth.enabled {
@@ -184,19 +184,19 @@
"\(name)-ingress": {
chart: charts.ingress
// NOTE(gio): Force to install in default cluster.
- cluster: null
+ cluster: null
_service: service
- info: "Generating TLS certificate for https://\(_domain)"
+ info: "Generating TLS certificate for https://\(_domain)"
annotations: {
- "dodo.cloud/resource-type": "ingress"
+ "dodo.cloud/resource-type": "ingress"
"dodo.cloud/resource.ingress.host": "https://\(_domain)"
"dodo.cloud/resource.ingress.home": home
"dodo.cloud/resource.ingress.name": label
}
values: {
- domain: _domain
- appRoot: _appRoot
- ingressClassName: network.ingressClass
+ domain: _domain
+ appRoot: _appRoot
+ ingressClassName: network.ingressClass
certificateIssuer: network.certificateIssuer
service: {
if auth.enabled {
@@ -227,7 +227,7 @@
for k, v in ingress {
"\(k)": #Ingress & v & {
name: k
- g: global
+ g: global
if _cluster != _|_ {
cluster: _cluster
}
diff --git a/core/installer/app_configs/app_global_infra.cue b/core/installer/app_configs/app_global_infra.cue
index b3069d0..a6696fa 100644
--- a/core/installer/app_configs/app_global_infra.cue
+++ b/core/installer/app_configs/app_global_infra.cue
@@ -1,16 +1,16 @@
#Global: {
pcloudEnvName: string | *""
- publicIP: [...string] | *[]
- namespacePrefix: string | *""
- infraAdminPublicKey: string | *""
+ publicIP: [...string] | *[]
+ namespacePrefix: string | *""
+ infraAdminPublicKey: string | *""
}
#Network: {
- name: string
- ingressClass: string
- certificateIssuer: string | *""
- allocatePortAddr: string
- reservePortAddr: string
+ name: string
+ ingressClass: string
+ certificateIssuer: string | *""
+ allocatePortAddr: string
+ reservePortAddr: string
deallocatePortAddr: string
}
diff --git a/core/installer/app_configs/dodo_app.cue b/core/installer/app_configs/dodo_app.cue
index 6e18feb..56dbdfc 100644
--- a/core/installer/app_configs/dodo_app.cue
+++ b/core/installer/app_configs/dodo_app.cue
@@ -13,8 +13,8 @@
// app-runner registers itself as worker, which later is used by dodo-app server
// to ping runners on git push.
// TODO(gio): Rethink these variables together with flags in app-runner
- managerAddr: string | *""
- appId: string | *""
+ managerAddr: string | *""
+ appId: string | *""
sshPrivateKey: string
// TODO(gio): this should not be necessary as app.dev.username is autogenerated
username?: string
@@ -58,8 +58,8 @@
for svc in service {
if svc.dev.enabled {
- username: string | *svc.dev.username
- vpnAuthKey: string @role(VPNAuthKey) @usernameField(username)
+ username: string | *svc.dev.username
+ vpnAuthKey: string @role(VPNAuthKey) @usernameField(username)
}
}
}
@@ -70,30 +70,30 @@
postgresql: [...#PostgreSQLInput] | *[]
mongodb: [...#MongoDBInput] | *[]
-_volume: volume
+_volume: volume
_postgresql: postgresql
-_mongodb: mongodb
+_mongodb: mongodb
envVars: [
for v in _volume {
"DODO_VOLUME_\(strings.ToUpper(v.name))=/dodo/volume/\(v.name)"
- }
+ },
for p in _postgresql {
"DODO_POSTGRESQL_\(strings.ToUpper(p.name))_URL=postgresql://postgres:postgres@postgres-\(p.name).\(release.namespace).svc.cluster.local/postgres"
- }
+ },
for m in _mongodb {
"DODO_MONGODB_\(strings.ToUpper(m.name))_URL=mongodb://mongo:mongo@mongodb-\(m.name).\(release.namespace).svc.cluster.local/mongo"
- }
+ },
]
#AppIngress: {
- network: string
+ network: string
subdomain: string
- auth: #Auth | *{ enabled: false }
- port: { name: string } | { value: number } | *{ name: "web" }
+ auth: #Auth | *{enabled: false}
+ port: {name: string} | {value: number} | *{name: "web"}
_network: networks[strings.ToLower(network)]
- baseURL: "https://\(subdomain).\(_network.domain)"
+ baseURL: "https://\(subdomain).\(_network.domain)"
}
#Command: {
@@ -107,7 +107,7 @@
}
#DevEnabled: {
- enabled: true
+ enabled: true
username: string
}
@@ -126,15 +126,15 @@
rootDir: string
runConfiguration: [...#Command]
volume: [...string] | *[]
- dev: #Dev | *{ enabled: false }
+ dev: #Dev | *{enabled: false}
vm: #VMCustomization
// TODO(gio): check for duplicate values
apiPort: #PortValue | *3000
ports: [...#Port]
source: close({
repository: string
- branch: string | *"master"
- rootDir: string | *"/"
+ branch: string | *"master"
+ rootDir: string | *"/"
})
lastCmdEnv: list.Concat([
@@ -142,9 +142,9 @@
[
for p in ports {
"DODO_PORT_\(strings.ToUpper(p.name))=\(p.value)"
- }
- ]
- ])
+ },
+ ],
+ ])
...
}
@@ -157,9 +157,9 @@
#GoAppTmpl: #AppTmpl & {
type: _goVer1200 | _goVer1220 | _goVer1240
- run: string | *"main.go"
+ run: string | *"main.go"
ports: [...#Port] | *[{
- name: "web"
+ name: "web"
value: 8080
}]
rootDir: _appDir
@@ -167,13 +167,13 @@
lastCmdEnv: [...string]
runConfiguration: [{
- bin: "/usr/local/go/bin/go",
+ bin: "/usr/local/go/bin/go"
args: ["mod", "tidy"]
}, {
- bin: "/usr/local/go/bin/go",
+ bin: "/usr/local/go/bin/go"
args: ["build", "-o", ".app", run]
}, {
- bin: ".app",
+ bin: ".app"
env: lastCmdEnv
}]
}
@@ -182,13 +182,13 @@
type: _goVer1200
vm: {
env: [
- "export PATH=$PATH:/usr/local/go/bin"
- ]
+ "export PATH=$PATH:/usr/local/go/bin",
+ ]
cloudInit: runCmd: [
["sh", "-c", "wget https://go.dev/dl/go1.20.linux-amd64.tar.gz -O /tmp/go.tar.gz"],
["sh", "-c", "rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go.tar.gz"],
["sh", "-c", "rm /tmp/go.tar.gz"],
- ]
+ ]
}
}
@@ -196,13 +196,13 @@
type: _goVer1220
vm: {
env: [
- "export PATH=$PATH:/usr/local/go/bin"
- ]
+ "export PATH=$PATH:/usr/local/go/bin",
+ ]
cloudInit: runCmd: [
["sh", "-c", "wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz -O /tmp/go.tar.gz"],
["sh", "-c", "rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go.tar.gz"],
["sh", "-c", "rm /tmp/go.tar.gz"],
- ]
+ ]
}
}
@@ -210,13 +210,13 @@
type: _goVer1240
vm: {
env: [
- "export PATH=$PATH:/usr/local/go/bin"
- ]
+ "export PATH=$PATH:/usr/local/go/bin",
+ ]
cloudInit: runCmd: [
["sh", "-c", "wget https://go.dev/dl/go1.24.0.linux-amd64.tar.gz -O /tmp/go.tar.gz"],
["sh", "-c", "rm -rf /usr/local/go && tar -C /usr/local -xzf /tmp/go.tar.gz"],
["sh", "-c", "rm /tmp/go.tar.gz"],
- ]
+ ]
}
}
@@ -230,7 +230,7 @@
type: _hugoLatest
ingress: [#AppIngress, ...#AppIngress]
ports: [...#Port] | *[{
- name: "web"
+ name: "web"
value: 1313
}]
rootDir: _appDir
@@ -238,9 +238,9 @@
lastCmdEnv: [...string]
runConfiguration: [{
- bin: "/usr/bin/hugo",
+ bin: "/usr/bin/hugo"
}, {
- bin: "/usr/bin/hugo",
+ bin: "/usr/bin/hugo"
args: [
"server",
"--watch=false",
@@ -248,7 +248,7 @@
"--port=1313",
"--baseURL=\(ingress[0].baseURL)",
"--appendPort=false",
- ]
+ ]
env: lastCmdEnv
}]
}
@@ -260,7 +260,7 @@
#PHPAppTmpl: #AppTmpl & {
type: "php:8.2-apache"
ports: [...#Port] | *[{
- name: "web"
+ name: "web"
value: 80
}]
rootDir: "/var/www/html"
@@ -268,7 +268,7 @@
lastCmdEnv: [...string]
runConfiguration: [{
- bin: "/usr/local/bin/apache2-foreground",
+ bin: "/usr/local/bin/apache2-foreground"
env: lastCmdEnv
}]
}
@@ -278,10 +278,10 @@
// Nextjs with Deno2
#NextjsDeno2AppTmpl: #AppTmpl & {
- type: "nextjs:deno-2.0.0"
+ type: "nextjs:deno-2.0.0"
apiPort: 2000
ports: [...#Port] | *[{
- name: "web"
+ name: "web"
value: 3000
}]
rootDir: _appDir
@@ -290,34 +290,34 @@
lastCmdEnv: [...string]
runConfiguration: [{
- bin: "/usr/bin/npm",
+ bin: "/usr/bin/npm"
args: ["install"]
},
- for c in preBuildCommands {
+ for c in preBuildCommands {
+ {
+ bin: c.bin
+ args: c.args
+ env: list.Concat([lastCmdEnv, c.env])
+ }
+ },
{
- bin: c.bin
- args: c.args
- env: list.Concat([lastCmdEnv, c.env])
- }
- }
- {
- bin: "/usr/bin/deno",
- args: ["task", "build"]
- env: lastCmdEnv
- }, {
- bin: "/usr/bin/deno",
- args: ["task", "start"]
- env: lastCmdEnv
- }]
+ bin: "/usr/bin/deno"
+ args: ["task", "build"]
+ env: lastCmdEnv
+ }, {
+ bin: "/usr/bin/deno"
+ args: ["task", "start"]
+ env: lastCmdEnv
+ }]
vm: {
env: [
- "export PATH=$PATH:/usr/local/deno/bin"
- ]
+ "export PATH=$PATH:/usr/local/deno/bin",
+ ]
cloudInit: runCmd: [
["sh", "-c", "apt-get install -y npm unzip"],
["sh", "-c", "curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local/deno sh -s -- -y --no-modify-path"],
- ]
+ ]
}
}
@@ -327,9 +327,9 @@
#NodeJSAppTmpl: #AppTmpl & {
buildPath: string | *"dist"
- apiPort: 2000
+ apiPort: 2000
ports: [...#Port] | *[{
- name: "web"
+ name: "web"
value: 3000
}]
rootDir: _appDir
@@ -338,34 +338,34 @@
lastCmdEnv: [...string]
runConfiguration: [{
- bin: "/usr/local/bin/npm",
+ bin: "/usr/local/bin/npm"
args: ["install"]
},
- {
- bin: "/usr/local/bin/npm",
- args: ["ci"]
- },
- for c in preBuildCommands {
{
- bin: c.bin
- args: c.args
- env: list.Concat([lastCmdEnv, c.env])
- }
- }
- {
- bin: "/usr/local/bin/npm",
- args: ["run", "build"]
- env: lastCmdEnv
- }, {
- bin: "/usr/local/bin/node",
- args: ["./\(buildPath)/index.js"]
- env: lastCmdEnv
- }]
+ bin: "/usr/local/bin/npm"
+ args: ["ci"]
+ },
+ for c in preBuildCommands {
+ {
+ bin: c.bin
+ args: c.args
+ env: list.Concat([lastCmdEnv, c.env])
+ }
+ },
+ {
+ bin: "/usr/local/bin/npm"
+ args: ["run", "build"]
+ env: lastCmdEnv
+ }, {
+ bin: "/usr/local/bin/node"
+ args: ["./\(buildPath)/index.js"]
+ env: lastCmdEnv
+ }]
vm: {
cloudInit: runCmd: [
["sh", "-c", "apt-get install -y npm nodejs"],
- ]
+ ]
}
}
@@ -383,46 +383,46 @@
for svc in service {
"service_\(svc.name)": #WithOut & {
envProfile: strings.Join(list.Concat([
- svc.vm.env,
- [for e in svc.lastCmdEnv { "export \(e)" }]
- ]), "\n")
+ svc.vm.env,
+ [for e in svc.lastCmdEnv {"export \(e)"}],
+ ]), "\n")
if !svc.dev.enabled {
{
- // TODO(gio): support vm open ports
- openPort: list.Concat([
- [for i, e in svc.expose if e.port.name != _|_ {
- for p in svc.ports if e.port.name == p.name {
- name: "port_service_\(svc.name)_\(i)"
- network: networks[strings.ToLower(e.network)]
- port: input[name]
- protocol: p.protocol
- service: {
- name: "app-app"
- port: p.value
- }
+ // TODO(gio): support vm open ports
+ openPort: list.Concat([
+ [for i, e in svc.expose if e.port.name != _|_ {
+ for p in svc.ports if e.port.name == p.name {
+ name: "port_service_\(svc.name)_\(i)"
+ network: networks[strings.ToLower(e.network)]
+ port: input[name]
+ protocol: p.protocol
+ service: {
+ name: "app-app"
+ port: p.value
}
- }],
- [for i, e in svc.expose if e.port.value != _|_ {
- for p in svc.ports if e.port.value == p.value {
- name: "port_service_\(svc.name)_\(i)"
- network: networks[strings.ToLower(e.network)]
- port: input[name]
- protocol: p.protocol
- service: {
- name: "app-app"
- port: p.value
- }
+ }
+ }],
+ [for i, e in svc.expose if e.port.value != _|_ {
+ for p in svc.ports if e.port.value == p.value {
+ name: "port_service_\(svc.name)_\(i)"
+ network: networks[strings.ToLower(e.network)]
+ port: input[name]
+ protocol: p.protocol
+ service: {
+ name: "app-app"
+ port: p.value
}
- }]
- ])
+ }
+ }],
+ ])
ingress: {
if svc.ingress != _|_ {
{for i, ingress in svc.ingress {
"\(svc.name)-\(i)": {
- label: svc.name
- network: networks[strings.ToLower(ingress.network)]
+ label: svc.name
+ network: networks[strings.ToLower(ingress.network)]
subdomain: ingress.subdomain
- auth: ingress.auth
+ auth: ingress.auth
if input.cluster != _|_ {
cluster: input.cluster
}
@@ -440,162 +440,162 @@
}
}
images: {
- app: {
- repository: "giolekva"
- name: "app-runner"
- tag: strings.Replace(svc.type, ":", "-", -1)
- pullPolicy: "Always"
- }
- "tailscale-proxy": {
- repository: "tailscale"
- name: "tailscale"
- tag: "v1.82.0"
- pullPolicy: "IfNotPresent"
- }
+ app: {
+ repository: "giolekva"
+ name: "app-runner"
+ tag: strings.Replace(svc.type, ":", "-", -1)
+ pullPolicy: "Always"
}
- charts: {
- "access-secrets": {
- kind: "GitRepository"
- address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/access-secrets"
- }
- app: {
- kind: "GitRepository"
- address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/app-runner"
- }
+ "tailscale-proxy": {
+ repository: "tailscale"
+ name: "tailscale"
+ tag: "v1.82.0"
+ pullPolicy: "IfNotPresent"
}
- helm: {
- if input.cluster != _|_ {
- {
+ }
+ charts: {
+ "access-secrets": {
+ kind: "GitRepository"
+ address: "https://code.v1.dodo.cloud/helm-charts"
+ branch: "main"
+ path: "charts/access-secrets"
+ }
+ app: {
+ kind: "GitRepository"
+ address: "https://code.v1.dodo.cloud/helm-charts"
+ branch: "main"
+ path: "charts/app-runner"
+ }
+ }
+ helm: {
+ if input.cluster != _|_ {
+ {
"access-secrets": {
chart: charts["access-secrets"]
values: {
serviceAccountName: "default"
}
}
- }
}
- "\(svc.name)": {
- chart: charts.app
- values: {
- image: {
- repository: images.app.fullName
- tag: images.app.tag
- pullPolicy: images.app.pullPolicy
- }
- // TODO(gio): install gvisor runtime during new remote cluster init
- if input.cluster == _|_ {
- runtimeClassName: "untrusted-external" // TODO(gio): make this part of the infra config
- }
- name: svc.name
- apiPort: svc.apiPort
- appPorts: [for p in svc.ports {
- name: p.name
- containerPort: p.value
- protocol: p.protocol
- }]
- appDir: svc.rootDir
- appId: input.appId
- repoAddr: svc.source.repository
- branch: svc.source.branch
- rootDir: svc.source.rootDir
- if input.sshPrivateKey != "" {
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
- }
- runCfg: base64.Encode(null, json.Marshal(svc.runConfiguration))
- managerAddr: input.managerAddr
- volumes: [
- for v in svc.volume {
- name: v.name
- mountPath: "/dodo/volume/\(v)"
- }
- ]
+ }
+ "\(svc.name)": {
+ chart: charts.app
+ values: {
+ image: {
+ repository: images.app.fullName
+ tag: images.app.tag
+ pullPolicy: images.app.pullPolicy
}
+ // TODO(gio): install gvisor runtime during new remote cluster init
+ if input.cluster == _|_ {
+ runtimeClassName: "untrusted-external" // TODO(gio): make this part of the infra config
+ }
+ name: svc.name
+ apiPort: svc.apiPort
+ appPorts: [for p in svc.ports {
+ name: p.name
+ containerPort: p.value
+ protocol: p.protocol
+ }]
+ appDir: svc.rootDir
+ appId: input.appId
+ repoAddr: svc.source.repository
+ branch: svc.source.branch
+ rootDir: svc.source.rootDir
+ if input.sshPrivateKey != "" {
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ }
+ runCfg: base64.Encode(null, json.Marshal(svc.runConfiguration))
+ managerAddr: input.managerAddr
+ volumes: [
+ for v in svc.volume {
+ name: v.name
+ mountPath: "/dodo/volume/\(v)"
+ },
+ ]
}
}
}
}
}
+ }
if svc.dev.enabled {
// TODO(gio): reuse envProfile from above
_envProfile: strings.Join(list.Concat([
- svc.vm.env,
- [for e in svc.lastCmdEnv { "export \(e)" }]
- ]), "\n")
+ svc.vm.env,
+ [for e in svc.lastCmdEnv {"export \(e)"}],
+ ]), "\n")
{
- "\(svc.name)": #WithOut & {
- ingress: {
- if svc.ingress != _|_ {
- {for i, ingress in svc.ingress {
- "\(svc.name)-\(i)": {
- label: svc.name
- network: networks[strings.ToLower(ingress.network)]
- subdomain: ingress.subdomain
- auth: ingress.auth
- service: {
- name: svc.name
- if ingress.port.name != _|_ {
- port: name: ingress.port.name
- }
- if ingress.port.value != _|_ {
- port: number: ingress.port.value
- }
+ "\(svc.name)": #WithOut & {
+ ingress: {
+ if svc.ingress != _|_ {
+ {for i, ingress in svc.ingress {
+ "\(svc.name)-\(i)": {
+ label: svc.name
+ network: networks[strings.ToLower(ingress.network)]
+ subdomain: ingress.subdomain
+ auth: ingress.auth
+ service: {
+ name: svc.name
+ if ingress.port.name != _|_ {
+ port: name: ingress.port.name
+ }
+ if ingress.port.value != _|_ {
+ port: number: ingress.port.value
}
}
- // TODO(gio): code should work even without svc ingress
- "\(svc.name)-\(i)-code": {
- label: "VS Code"
- home: "/?folder=/home/\(svc.dev.username)/code"
- network: networks[strings.ToLower(ingress.network)]
- subdomain: "code-\(ingress.subdomain)"
- auth: enabled: false
- service: {
- name: svc.name
- port: name: _codeServerPortName
- }
+ }
+ // TODO(gio): code should work even without svc ingress
+ "\(svc.name)-\(i)-code": {
+ label: "VS Code"
+ home: "/?folder=/home/\(svc.dev.username)/code"
+ network: networks[strings.ToLower(ingress.network)]
+ subdomain: "code-\(ingress.subdomain)"
+ auth: enabled: false
+ service: {
+ name: svc.name
+ port: name: _codeServerPortName
}
- }}
- }
+ }
+ }}
}
- vm: {
- "\(svc.name)": {
- username: svc.dev.username
- domain: global.domain
- vpn: {
- enabled: true
- loginServer: "https://headscale.\(global.domain)"
- authKey: input.vpnAuthKey
- }
- codeServerEnabled: true
- cpuCores: 2
- memory: "3Gi"
- ports: svc.ports
- configFiles: {
- "env.sh": _envProfile
- }
- cloudInit: {
- writeFiles: [{
- path: "/home/\(username)/.bash_profile"
- content: "source /home/\(username)/.dodo/env.sh"
- owner: "\(username):\(username)"
- permissions: "0700"
- }]
- runCmd: list.Concat([[
- ["sh", "-c", "chown \(username):\(username) /home/\(username)/.cache"],
- ["sh", "-c", "GIT_SSH_COMMAND='ssh -i /home/\(username)/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new' git clone --branch \(svc.source.branch) \(svc.source.repository) /home/\(username)/code"],
- ["sh", "-c", "chown -R \(username):\(username) /home/\(username)/code"],
- ["sh", "-c", "chown -R \(username):\(username) /home/\(username)"],
- ], svc.vm.cloudInit.runCmd])
- }
+ }
+ vm: {
+ "\(svc.name)": {
+ username: svc.dev.username
+ domain: global.domain
+ vpn: {
+ enabled: true
+ loginServer: "https://headscale.\(global.domain)"
+ authKey: input.vpnAuthKey
+ }
+ codeServerEnabled: true
+ cpuCores: 2
+ memory: "3Gi"
+ ports: svc.ports
+ configFiles: {
+ "env.sh": _envProfile
+ }
+ cloudInit: {
+ writeFiles: [{
+ path: "/home/\(username)/.bash_profile"
+ content: "source /home/\(username)/.dodo/env.sh"
+ owner: "\(username):\(username)"
+ permissions: "0700"
+ }]
+ runCmd: list.Concat([[
+ ["sh", "-c", "chown \(username):\(username) /home/\(username)/.cache"],
+ ["sh", "-c", "GIT_SSH_COMMAND='ssh -i /home/\(username)/.ssh/id_ed25519 -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new' git clone --branch \(svc.source.branch) \(svc.source.repository) /home/\(username)/code"],
+ ["sh", "-c", "chown -R \(username):\(username) /home/\(username)/code"],
+ ["sh", "-c", "chown -R \(username):\(username) /home/\(username)"],
+ ], svc.vm.cloudInit.runCmd])
}
}
}
}
}
+ }
}
}
diff --git a/core/installer/values-tmpl/appmanager.cue b/core/installer/values-tmpl/appmanager.cue
index 1cd7dbf..499794a 100644
--- a/core/installer/values-tmpl/appmanager.cue
+++ b/core/installer/values-tmpl/appmanager.cue
@@ -3,40 +3,40 @@
)
input: {
- network: #Network @name(Network)
- repoAddr: string @name(Repository Address)
- sshPrivateKey: string @name(SSH Private Key)
- authGroups: string @name(Allowed Groups)
+ network: #Network @name(Network)
+ repoAddr: string @name(Repository Address)
+ sshPrivateKey: string @name(SSH Private Key)
+ authGroups: string @name(Allowed Groups)
}
-name: "App Manager"
+name: "App Manager"
namespace: "appmanager"
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33.66287237 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
- </style>
- </defs>
- <path class='cls-1' d='m2.77885812,10.03744798c-1.53217449,0-2.77885812,1.24698542-2.77885812,2.77885812v24.08987515c0,1.5318727,1.24668363,2.77885812,2.77885812,2.77885812h28.10515613c1.53217449,0,2.77885812-1.24698542,2.77885812-2.77885812V12.8163061c0-1.5318727-1.24668363-2.77885812-2.77885812-2.77885812h-5.25110027v-1.23612107c0-4.9348271-3.86589623-8.80132691-8.80132691-8.80132691s-8.80162869,3.86649981-8.80162869,8.80132691v1.23612107H2.77885812Zm29.34127721,28.10485435H1.54273704V11.58018502h30.57739828v26.5621173ZM8.11234634,16.05991677c.58426035,4.33004521,4.20419987,7.56520583,8.71924074,7.56520583,4.51473908,0,8.1346786-3.23516062,8.71893895-7.56520583h-1.56084429c-.57067992,3.46210473-3.51008892,6.02246879-7.15809467,6.02246879s-6.58771654-2.56036406-7.15839646-6.02246879h-1.56084429Zm15.9778306-6.02246879h-14.51748151v-1.23612107c0-4.07050807,3.18838358-7.25858986,7.25889165-7.25858986,4.07020628,0,7.25858986,3.18808179,7.25858986,7.25858986v1.23612107Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33.66287237 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+ </style>
+ </defs>
+ <path class='cls-1' d='m2.77885812,10.03744798c-1.53217449,0-2.77885812,1.24698542-2.77885812,2.77885812v24.08987515c0,1.5318727,1.24668363,2.77885812,2.77885812,2.77885812h28.10515613c1.53217449,0,2.77885812-1.24698542,2.77885812-2.77885812V12.8163061c0-1.5318727-1.24668363-2.77885812-2.77885812-2.77885812h-5.25110027v-1.23612107c0-4.9348271-3.86589623-8.80132691-8.80132691-8.80132691s-8.80162869,3.86649981-8.80162869,8.80132691v1.23612107H2.77885812Zm29.34127721,28.10485435H1.54273704V11.58018502h30.57739828v26.5621173ZM8.11234634,16.05991677c.58426035,4.33004521,4.20419987,7.56520583,8.71924074,7.56520583,4.51473908,0,8.1346786-3.23516062,8.71893895-7.56520583h-1.56084429c-.57067992,3.46210473-3.51008892,6.02246879-7.15809467,6.02246879s-6.58771654-2.56036406-7.15839646-6.02246879h-1.56084429Zm15.9778306-6.02246879h-14.51748151v-1.23612107c0-4.07050807,3.18838358-7.25858986,7.25889165-7.25858986,4.07020628,0,7.25858986,3.18808179,7.25858986,7.25858986v1.23612107Z'/>
+ </svg>"""
-_subdomain: "apps"
+_subdomain: "apps"
_httpPortName: "http"
_domain: "\(_subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
out: {
ingress: {
appmanager: {
auth: {
enabled: true
- groups: input.authGroups
+ groups: input.authGroups
}
- network: input.network
+ network: input.network
subdomain: _subdomain
service: {
name: "appmanager"
@@ -48,18 +48,18 @@
images: {
appmanager: {
repository: "giolekva"
- name: "pcloud-installer"
- tag: "latest"
+ name: "pcloud-installer"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
appmanager: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/appmanager"
+ branch: "main"
+ path: "charts/appmanager"
}
}
@@ -67,22 +67,22 @@
appmanager: {
chart: charts.appmanager
values: {
- repoAddr: input.repoAddr
+ repoAddr: input.repoAddr
sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
// TODO(gio): de-hardcode these variables
- headscaleAPIAddr: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local"
- dnsAPIAddr: "http://dns-api.\(global.namespacePrefix)dns.svc.cluster.local"
+ headscaleAPIAddr: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local"
+ dnsAPIAddr: "http://dns-api.\(global.namespacePrefix)dns.svc.cluster.local"
clusterProxyConfigPath: "/apps/private-network/resources/proxy-backend-config.yaml"
ingress: {
- className: input.network.ingressClass
- domain: _domain
+ className: input.network.ingressClass
+ domain: _domain
certificateIssuer: ""
}
clusterRoleName: "\(global.id)-appmanager"
- portName: _httpPortName
+ portName: _httpPortName
image: {
repository: images.appmanager.fullName
- tag: images.appmanager.tag
+ tag: images.appmanager.tag
pullPolicy: images.appmanager.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/cert-manager.cue b/core/installer/values-tmpl/cert-manager.cue
index 66e21af..c7c3878 100644
--- a/core/installer/values-tmpl/cert-manager.cue
+++ b/core/installer/values-tmpl/cert-manager.cue
@@ -1,51 +1,51 @@
input: {}
-name: "cert-manager"
+name: "cert-manager"
namespace: "cert-manager"
out: {
images: {
certManager: {
- registry: "quay.io"
+ registry: "quay.io"
repository: "jetstack"
- name: "cert-manager-controller"
- tag: "v1.12.2"
+ name: "cert-manager-controller"
+ tag: "v1.12.2"
pullPolicy: "IfNotPresent"
}
cainjector: {
- registry: "quay.io"
+ registry: "quay.io"
repository: "jetstack"
- name: "cert-manager-cainjector"
- tag: "v1.12.2"
+ name: "cert-manager-cainjector"
+ tag: "v1.12.2"
pullPolicy: "IfNotPresent"
}
webhook: {
- registry: "quay.io"
+ registry: "quay.io"
repository: "jetstack"
- name: "cert-manager-webhook"
- tag: "v1.12.2"
+ name: "cert-manager-webhook"
+ tag: "v1.12.2"
pullPolicy: "IfNotPresent"
}
dnsChallengeSolver: {
repository: "giolekva"
- name: "dns-challenge-solver"
- tag: "latest"
+ name: "dns-challenge-solver"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
certManager: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/cert-manager"
+ branch: "main"
+ path: "charts/cert-manager"
}
dnsChallengeSolver: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/cert-manager-webhook-pcloud"
+ branch: "main"
+ path: "charts/cert-manager-webhook-pcloud"
}
}
@@ -53,30 +53,30 @@
"cert-manager": {
chart: charts.certManager
dependsOn: [{
- name: "ingress-public"
+ name: "ingress-public"
namespace: "\(global.pcloudEnvName)-ingress-public"
}]
values: {
- fullnameOverride: "\(global.pcloudEnvName)-cert-manager"
- installCRDs: true
+ fullnameOverride: "\(global.pcloudEnvName)-cert-manager"
+ installCRDs: true
dns01RecursiveNameserversOnly: true
- dns01RecursiveNameservers: "1.1.1.1:53,8.8.8.8:53"
+ dns01RecursiveNameservers: "1.1.1.1:53,8.8.8.8:53"
image: {
repository: images.certManager.fullName
- tag: images.certManager.tag
+ tag: images.certManager.tag
pullPolicy: images.certManager.pullPolicy
}
cainjector: {
image: {
repository: images.cainjector.fullName
- tag: images.cainjector.tag
+ tag: images.cainjector.tag
pullPolicy: images.cainjector.pullPolicy
}
}
webhook: {
image: {
repository: images.webhook.fullName
- tag: images.webhook.tag
+ tag: images.webhook.tag
pullPolicy: images.webhook.pullPolicy
}
}
@@ -85,21 +85,21 @@
"cert-manager-webhook-pcloud": {
chart: charts.dnsChallengeSolver
dependsOn: [{
- name: "cert-manager"
+ name: "cert-manager"
namespace: release.namespace
}]
values: {
fullnameOverride: "\(global.pcloudEnvName)-cert-manager-webhook-pcloud"
certManager: {
- name: "\(global.pcloudEnvName)-cert-manager"
+ name: "\(global.pcloudEnvName)-cert-manager"
namespace: "\(global.pcloudEnvName)-cert-manager"
}
image: {
repository: images.dnsChallengeSolver.fullName
- tag: images.dnsChallengeSolver.tag
+ tag: images.dnsChallengeSolver.tag
pullPolicy: images.dnsChallengeSolver.pullPolicy
}
- logLevel: 2
+ logLevel: 2
apiGroupName: "dodo.cloud"
resolverName: "dns-resolver-pcloud"
}
diff --git a/core/installer/values-tmpl/certificate-issuer-custom.cue b/core/installer/values-tmpl/certificate-issuer-custom.cue
index 469382d..6b8894a 100644
--- a/core/installer/values-tmpl/certificate-issuer-custom.cue
+++ b/core/installer/values-tmpl/certificate-issuer-custom.cue
@@ -3,60 +3,60 @@
)
input: {
- name: string
+ name: string
domain: string
}
-name: "Network"
-namespace: "ingress-custom"
-readme: "Configure custom public domain"
+name: "Network"
+namespace: "ingress-custom"
+readme: "Configure custom public domain"
description: readme
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 35.84897203'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-11.89242392' width='59.63381987' height='59.63381987'/>
- <g>
- <path class='cls-1' d='m8.33392163,35.84897203H.66139092c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h7.67253071c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283H1.32278184v6.34935283Zm18.51973785-6.34935283c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-14.68367051H4.49765628c-.36534918,0-.66139092-.29623977-.66139092-.66139092V.66139092c0-.36515115.29604174-.66139092.66139092-.66139092h30.68972682c.36534918,0,.66139092.29623977.66139092.66139092v11.50899409c0,.36515115-.29604174.66139092-.66139092.66139092h-14.68347249v14.68367051c0,.36515115-.29604174.66139092-.66139092.66139092Zm0-16.66784327h14.68347249V1.32278184H5.1590472v10.18621225h14.68347249Z'/>
- <path class='cls-1' d='m39.02364845,35.84897203h-7.67253071c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h3.17487444v-6.35014492H5.1590472v7.01153584c0,.36515115-.29604174.66139092-.66139092.66139092s-.66139092-.29623977-.66139092-.66139092v-7.67292676c0-.36515115.29604174-.66139092.66139092-.66139092h30.68972682c.36534918,0,.66139092.29623977.66139092.66139092v7.01153584h3.17487444c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283h-6.34974887v6.34935283Zm-8.33372361,1.32278184h-7.67253071c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h7.67253071c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283h-6.34974887v6.34935283ZM12.16998897,7.07727889h-1.91803367c-.36534918,0-.66139092-.29623977-.66139092-.66139092s.29604174-.66139092.66139092-.66139092h1.91803367c.36534918,0,.66139092.29623977.66139092.66139092s-.29604174.66139092-.66139092.66139092Z'/>
- </g>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 35.84897203'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-11.89242392' width='59.63381987' height='59.63381987'/>
+ <g>
+ <path class='cls-1' d='m8.33392163,35.84897203H.66139092c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h7.67253071c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283H1.32278184v6.34935283Zm18.51973785-6.34935283c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-14.68367051H4.49765628c-.36534918,0-.66139092-.29623977-.66139092-.66139092V.66139092c0-.36515115.29604174-.66139092.66139092-.66139092h30.68972682c.36534918,0,.66139092.29623977.66139092.66139092v11.50899409c0,.36515115-.29604174.66139092-.66139092.66139092h-14.68347249v14.68367051c0,.36515115-.29604174.66139092-.66139092.66139092Zm0-16.66784327h14.68347249V1.32278184H5.1590472v10.18621225h14.68347249Z'/>
+ <path class='cls-1' d='m39.02364845,35.84897203h-7.67253071c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h3.17487444v-6.35014492H5.1590472v7.01153584c0,.36515115-.29604174.66139092-.66139092.66139092s-.66139092-.29623977-.66139092-.66139092v-7.67292676c0-.36515115.29604174-.66139092.66139092-.66139092h30.68972682c.36534918,0,.66139092.29623977.66139092.66139092v7.01153584h3.17487444c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283h-6.34974887v6.34935283Zm-8.33372361,1.32278184h-7.67253071c-.36534918,0-.66139092-.29623977-.66139092-.66139092v-7.67213467c0-.36515115.29604174-.66139092.66139092-.66139092h7.67253071c.36534918,0,.66139092.29623977.66139092.66139092v7.67213467c0,.36515115-.29604174.66139092-.66139092.66139092Zm-7.01113979-1.32278184h6.34974887v-6.34935283h-6.34974887v6.34935283ZM12.16998897,7.07727889h-1.91803367c-.36534918,0-.66139092-.29623977-.66139092-.66139092s.29604174-.66139092.66139092-.66139092h1.91803367c.36534918,0,.66139092.29623977.66139092.66139092s-.29604174.66139092-.66139092.66139092Z'/>
+ </g>
+ </svg>"""
out: {
charts: {
"certificate-issuer": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/certificate-issuer-public"
+ branch: "main"
+ path: "charts/certificate-issuer-public"
}
}
helm: {
"certificate-issuer": {
chart: charts["certificate-issuer"]
- Info: "Configuring SSL certificate issuer for \(input.domain)"
+ Info: "Configuring SSL certificate issuer for \(input.domain)"
dependsOn: [{
- name: "ingress-nginx"
+ name: "ingress-nginx"
namespace: "\(global.namespacePrefix)ingress-private"
}]
values: {
issuer: {
- name: input.name
- server: "https://acme-v02.api.letsencrypt.org/directory"
- domain: input.domain
+ name: input.name
+ server: "https://acme-v02.api.letsencrypt.org/directory"
+ domain: input.domain
contactEmail: global.contactEmail
ingressClass: networks.public.ingressClass
}
@@ -67,9 +67,9 @@
help: [{
title: "DNS"
- _records: [for ip in global.nameserverIP { "* 10800 IN A \(ip)" }]
+ _records: [for ip in global.nameserverIP {"* 10800 IN A \(ip)"}]
_allRecords: strings.Join(_records, "<br>")
- contents: """
+ contents: """
Publish following DNS records using \(input.domain) Domain Name Registrar<br><br>
\(_allRecords)
"""
diff --git a/core/installer/values-tmpl/certificate-issuer-private.cue b/core/installer/values-tmpl/certificate-issuer-private.cue
index 66dc53c..dfd3c9d 100644
--- a/core/installer/values-tmpl/certificate-issuer-private.cue
+++ b/core/installer/values-tmpl/certificate-issuer-private.cue
@@ -1,15 +1,15 @@
input: {}
-name: "certificate-issuer-private"
+name: "certificate-issuer-private"
namespace: "ingress-private"
out: {
charts: {
"certificate-issuer-private": {
- path: "charts/certificate-issuer-private"
- kind: "GitRepository"
+ path: "charts/certificate-issuer-private"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
+ branch: "main"
}
}
@@ -17,14 +17,14 @@
"certificate-issuer-private": {
chart: charts["certificate-issuer-private"]
dependsOn: [{
- name: "ingress-nginx"
+ name: "ingress-nginx"
namespace: "\(global.namespacePrefix)ingress-private"
}]
values: {
issuer: {
- name: "\(global.id)-private"
- server: "https://acme-v02.api.letsencrypt.org/directory"
- domain: global.privateDomain
+ name: "\(global.id)-private"
+ server: "https://acme-v02.api.letsencrypt.org/directory"
+ domain: global.privateDomain
contactEmail: global.contactEmail
}
config: {
diff --git a/core/installer/values-tmpl/certificate-issuer-public.cue b/core/installer/values-tmpl/certificate-issuer-public.cue
index 04a6e50..59ee8eb 100644
--- a/core/installer/values-tmpl/certificate-issuer-public.cue
+++ b/core/installer/values-tmpl/certificate-issuer-public.cue
@@ -2,16 +2,16 @@
network: #Network
}
-name: "certificate-issuer-public"
+name: "certificate-issuer-public"
namespace: "ingress-private"
out: {
charts: {
"certificate-issuer-public": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/certificate-issuer-public"
+ branch: "main"
+ path: "charts/certificate-issuer-public"
}
}
@@ -20,9 +20,9 @@
chart: charts["certificate-issuer-public"]
values: {
issuer: {
- name: input.network.certificateIssuer
- server: "https://acme-v02.api.letsencrypt.org/directory"
- domain: input.network.domain
+ name: input.network.certificateIssuer
+ server: "https://acme-v02.api.letsencrypt.org/directory"
+ domain: input.network.domain
contactEmail: global.contactEmail
ingressClass: input.network.ingressClass
}
diff --git a/core/installer/values-tmpl/cluster-network.cue b/core/installer/values-tmpl/cluster-network.cue
index 85551e6..d1ae878 100644
--- a/core/installer/values-tmpl/cluster-network.cue
+++ b/core/installer/values-tmpl/cluster-network.cue
@@ -3,63 +3,63 @@
)
input: {
- cluster: #Cluster
- vpnUser: string
+ cluster: #Cluster
+ vpnUser: string
vpnProxyHostname: string
- vpnAuthKey: string @role(VPNAuthKey) @usernameField(vpnUser)
- sshPrivateKey: string
+ vpnAuthKey: string @role(VPNAuthKey) @usernameField(vpnUser)
+ sshPrivateKey: string
}
-name: "Cluster Network"
+name: "Cluster Network"
namespace: "cluster-network"
out: {
images: {
"ingress-nginx": {
- registry: "registry.k8s.io"
+ registry: "registry.k8s.io"
repository: "ingress-nginx"
- name: "controller"
- tag: "v1.8.0"
+ name: "controller"
+ tag: "v1.8.0"
pullPolicy: "IfNotPresent"
}
"tailscale-proxy": {
repository: "tailscale"
- name: "tailscale"
- tag: "v1.82.0"
+ name: "tailscale"
+ tag: "v1.82.0"
pullPolicy: "IfNotPresent"
}
portAllocator: {
repository: "giolekva"
- name: "port-allocator"
- tag: "latest"
+ name: "port-allocator"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
"access-secrets": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/access-secrets"
+ branch: "main"
+ path: "charts/access-secrets"
}
"ingress-nginx": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/ingress-nginx"
+ branch: "main"
+ path: "charts/ingress-nginx"
}
"tailscale-proxy": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/tailscale-proxy"
+ branch: "main"
+ path: "charts/tailscale-proxy"
}
portAllocator: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/port-allocator"
+ branch: "main"
+ path: "charts/port-allocator"
}
}
@@ -74,7 +74,7 @@
"ingress-nginx": {
chart: charts["ingress-nginx"]
dependsOn: [{
- name: "access-secrets"
+ name: "access-secrets"
namespace: release.namespace
}]
values: {
@@ -83,13 +83,13 @@
service: enabled: false
ingressClassByName: true
ingressClassResource: {
- name: input.cluster.ingressClassName
- enabled: true
- default: false
+ name: input.cluster.ingressClassName
+ enabled: true
+ default: false
controllerValue: "k8s.io/\(input.cluster.name)"
}
config: {
- "proxy-body-size": "200M" // TODO(giolekva): configurable
+ "proxy-body-size": "200M" // TODO(giolekva): configurable
"force-ssl-redirect": "true"
"server-snippet": """
more_clear_headers "X-Frame-Options";
@@ -99,40 +99,40 @@
enabled: false
}
image: {
- registry: images["ingress-nginx"].registry
- image: images["ingress-nginx"].imageName
- tag: images["ingress-nginx"].tag
+ registry: images["ingress-nginx"].registry
+ image: images["ingress-nginx"].imageName
+ tag: images["ingress-nginx"].tag
pullPolicy: images["ingress-nginx"].pullPolicy
}
extraContainers: [{
- name: "proxy"
+ name: "proxy"
image: images["tailscale-proxy"].fullNameWithTag
env: [{
- name: "TS_AUTHKEY"
+ name: "TS_AUTHKEY"
value: input.vpnAuthKey
- }, {
- name: "TS_HOSTNAME"
+ }, {
+ name: "TS_HOSTNAME"
value: input.vpnProxyHostname
}, {
- name: "TS_EXTRA_ARGS"
+ name: "TS_EXTRA_ARGS"
value: "--login-server=https://headscale.\(global.domain)"
}]
- }]
+ }]
}
tcp: {}
udp: {}
}
}
"port-allocator": {
- chart: charts.portAllocator
+ chart: charts.portAllocator
cluster: null
values: {
- repoAddr: release.repoAddr
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ repoAddr: release.repoAddr
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
ingressNginxPath: "\(release.appDir)/resources/ingress-nginx.yaml"
image: {
repository: images.portAllocator.fullName
- tag: "amd64" // TODO(gio): images.portAllocator.tag
+ tag: "amd64" // TODO(gio): images.portAllocator.tag
pullPolicy: images.portAllocator.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/coder.cue b/core/installer/values-tmpl/coder.cue
index 4365830..4d8faa5 100644
--- a/core/installer/values-tmpl/coder.cue
+++ b/core/installer/values-tmpl/coder.cue
@@ -1,22 +1,22 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Coder"
-namespace: "app-coder"
-readme: "VSCode in the browser"
+name: "Coder"
+namespace: "app-coder"
+readme: "VSCode in the browser"
description: readme
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50px' height='50px' viewBox='0 0 16 16'><path fill='currentColor' fill-rule='evenodd' d='M11.573.275a1.203 1.203 0 0 0-.191.073c-.039.021-1.383 1.172-2.986 2.558C6.792 4.291 5.462 5.424 5.44 5.424c-.022 0-.664-.468-1.427-1.04c-.762-.571-1.428-1.057-1.48-1.078c-.15-.063-.468-.05-.613.024C1.754 3.416.189 4.975.094 5.15a.741.741 0 0 0 .04.766c.041.057.575.557 1.185 1.11c.611.553 1.107 1.015 1.102 1.026c-.004.012-.495.442-1.091.957c-.596.514-1.122.981-1.168 1.036a.746.746 0 0 0-.069.804c.096.175 1.659 1.734 1.827 1.821c.166.087.497.089.653.005c.059-.031.7-.502 1.424-1.046l1.318-.988l.109.1l2.73 2.473c1.846 1.671 2.666 2.396 2.772 2.453l.15.08h1.348l1.631-.814c1.5-.748 1.64-.823 1.748-.942c.213-.237.197.241.197-5.738c0-5.821.009-5.468-.151-5.699c-.058-.084-.41-.331-1.634-1.148c-.857-.572-1.613-1.065-1.68-1.095c-.1-.045-.187-.056-.482-.063c-.237-.005-.401.004-.48.027m1.699 2.305l1.233.82l.001 4.82l.001 4.82l-1.205.6l-1.204.6h-.569L8.66 11.644c-1.578-1.428-2.912-2.616-2.963-2.641c-.199-.094-.5-.101-.661-.014c-.034.018-.651.475-1.372 1.015c-.721.541-1.322.983-1.335.983c-.03 0-.477-.448-.461-.462c.673-.577 2.078-1.794 2.182-1.891c.086-.081.169-.192.21-.28c.057-.127.065-.174.054-.343c-.01-.158-.028-.223-.091-.324c-.053-.086-.454-.466-1.229-1.167l-1.15-1.04l.231-.233a1.83 1.83 0 0 1 .256-.234c.013 0 .644.465 1.4 1.033c1.496 1.123 1.537 1.148 1.81 1.116a.968.968 0 0 0 .253-.069c.062-.029.503-.39.979-.802L7.96 5.265a5929.2 5929.2 0 0 0 2.187-1.89a191.687 191.687 0 0 1 1.879-1.614c.008-.001.568.368 1.246.819M11.64 4.257a1.5 1.5 0 0 0-.16.051c-.059.021-1.079.738-2.267 1.593C6.867 7.59 6.92 7.547 6.851 7.854a.556.556 0 0 0 0 .292c.068.307.017.264 2.362 1.953c1.188.855 2.214 1.576 2.28 1.601c.347.133.743-.029.929-.38l.071-.133V4.813l-.071-.133a.76.76 0 0 0-.369-.356c-.127-.056-.324-.088-.413-.067m-.66 4.5l-.007.757l-1.046-.75A41.313 41.313 0 0 1 8.881 8c0-.007.471-.351 1.046-.764l1.046-.75l.007.757a95.51 95.51 0 0 1 0 1.514'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50px' height='50px' viewBox='0 0 16 16'><path fill='currentColor' fill-rule='evenodd' d='M11.573.275a1.203 1.203 0 0 0-.191.073c-.039.021-1.383 1.172-2.986 2.558C6.792 4.291 5.462 5.424 5.44 5.424c-.022 0-.664-.468-1.427-1.04c-.762-.571-1.428-1.057-1.48-1.078c-.15-.063-.468-.05-.613.024C1.754 3.416.189 4.975.094 5.15a.741.741 0 0 0 .04.766c.041.057.575.557 1.185 1.11c.611.553 1.107 1.015 1.102 1.026c-.004.012-.495.442-1.091.957c-.596.514-1.122.981-1.168 1.036a.746.746 0 0 0-.069.804c.096.175 1.659 1.734 1.827 1.821c.166.087.497.089.653.005c.059-.031.7-.502 1.424-1.046l1.318-.988l.109.1l2.73 2.473c1.846 1.671 2.666 2.396 2.772 2.453l.15.08h1.348l1.631-.814c1.5-.748 1.64-.823 1.748-.942c.213-.237.197.241.197-5.738c0-5.821.009-5.468-.151-5.699c-.058-.084-.41-.331-1.634-1.148c-.857-.572-1.613-1.065-1.68-1.095c-.1-.045-.187-.056-.482-.063c-.237-.005-.401.004-.48.027m1.699 2.305l1.233.82l.001 4.82l.001 4.82l-1.205.6l-1.204.6h-.569L8.66 11.644c-1.578-1.428-2.912-2.616-2.963-2.641c-.199-.094-.5-.101-.661-.014c-.034.018-.651.475-1.372 1.015c-.721.541-1.322.983-1.335.983c-.03 0-.477-.448-.461-.462c.673-.577 2.078-1.794 2.182-1.891c.086-.081.169-.192.21-.28c.057-.127.065-.174.054-.343c-.01-.158-.028-.223-.091-.324c-.053-.086-.454-.466-1.229-1.167l-1.15-1.04l.231-.233a1.83 1.83 0 0 1 .256-.234c.013 0 .644.465 1.4 1.033c1.496 1.123 1.537 1.148 1.81 1.116a.968.968 0 0 0 .253-.069c.062-.029.503-.39.979-.802L7.96 5.265a5929.2 5929.2 0 0 0 2.187-1.89a191.687 191.687 0 0 1 1.879-1.614c.008-.001.568.368 1.246.819M11.64 4.257a1.5 1.5 0 0 0-.16.051c-.059.021-1.079.738-2.267 1.593C6.867 7.59 6.92 7.547 6.851 7.854a.556.556 0 0 0 0 .292c.068.307.017.264 2.362 1.953c1.188.855 2.214 1.576 2.28 1.601c.347.133.743-.029.929-.38l.071-.133V4.813l-.071-.133a.76.76 0 0 0-.369-.356c-.127-.056-.324-.088-.413-.067m-.66 4.5l-.007.757l-1.046-.75A41.313 41.313 0 0 1 8.881 8c0-.007.471-.351 1.046-.764l1.046-.75l.007.757a95.51 95.51 0 0 1 0 1.514'/></svg>"
out: {
ingress: {
coder: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "coder"
@@ -28,37 +28,37 @@
images: {
postgres: {
repository: "library"
- name: "postgres"
- tag: "15.3"
+ name: "postgres"
+ tag: "15.3"
pullPolicy: "IfNotPresent"
}
coder: {
- registry: "ghcr.io"
+ registry: "ghcr.io"
repository: "coder"
- name: "coder"
- tag: "latest"
+ name: "coder"
+ tag: "latest"
pullPolicy: "IfNotPresent"
}
}
charts: {
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
coder: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/coder"
+ branch: "main"
+ path: "charts/coder"
}
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
}
@@ -68,7 +68,7 @@
"oauth2-client": {
chart: charts.oauth2Client
values: {
- name: "\(release.namespace)-coder"
+ name: "\(release.namespace)-coder"
secretName: _oauth2ClientSecretName
grantTypes: ["authorization_code"]
responseTypes: ["code"]
@@ -82,9 +82,9 @@
values: {
fullnameOverride: "postgres"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
auth: {
@@ -98,29 +98,29 @@
chart: charts.coder
values: coder: {
image: {
- repo: images.coder.fullName
- tag: images.coder.tag
+ repo: images.coder.fullName
+ tag: images.coder.tag
pullPolicy: images.coder.pullPolicy
}
envUseClusterAccessURL: false
env: [{
- name: "CODER_ACCESS_URL"
+ name: "CODER_ACCESS_URL"
value: url
}, {
- name: "CODER_PG_CONNECTION_URL"
+ name: "CODER_PG_CONNECTION_URL"
value: "postgres://coder:coder@postgres.\(release.namespace).svc.cluster.local:5432/coder?sslmode=disable"
}, {
- name: "CODER_OIDC_ISSUER_URL"
+ name: "CODER_OIDC_ISSUER_URL"
value: "https://hydra.\(networks.public.domain)"
}, {
- name: "CODER_OIDC_EMAIL_DOMAIN"
+ name: "CODER_OIDC_EMAIL_DOMAIN"
value: networks.public.domain
}, {
name: "CODER_OIDC_CLIENT_ID"
valueFrom: {
secretKeyRef: {
name: _oauth2ClientSecretName
- key: "client_id"
+ key: "client_id"
}
}
}, {
@@ -128,7 +128,7 @@
valueFrom: {
secretKeyRef: {
name: _oauth2ClientSecretName
- key: "client_secret"
+ key: "client_secret"
}
}
}]
diff --git a/core/installer/values-tmpl/config-repo.cue b/core/installer/values-tmpl/config-repo.cue
index 384ee3f..c3f67a6 100644
--- a/core/installer/values-tmpl/config-repo.cue
+++ b/core/installer/values-tmpl/config-repo.cue
@@ -1,28 +1,28 @@
input: {
privateKey: string
- publicKey: string
- adminKey: string
+ publicKey: string
+ adminKey: string
}
-name: "config-repo"
+name: "config-repo"
namespace: "config-repo"
out: {
images: {
softserve: {
repository: "charmcli"
- name: "soft-serve"
- tag: "v0.7.1"
+ name: "soft-serve"
+ tag: "v0.7.1"
pullPolicy: "IfNotPresent"
}
}
charts: {
softserve: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/soft-serve"
+ branch: "main"
+ path: "charts/soft-serve"
}
}
@@ -34,13 +34,13 @@
values: {
serviceType: "ClusterIP"
addressPool: ""
- reservedIP: ""
- adminKey: input.adminKey
- privateKey: input.privateKey
- publicKey: input.publicKey
+ reservedIP: ""
+ adminKey: input.adminKey
+ privateKey: input.privateKey
+ publicKey: input.publicKey
image: {
repository: images.softserve.fullName
- tag: images.softserve.tag
+ tag: images.softserve.tag
pullPolicy: images.softserve.pullPolicy
}
persistentVolumeClaimName: volume.data.name
diff --git a/core/installer/values-tmpl/core-auth.cue b/core/installer/values-tmpl/core-auth.cue
index b3146f8..7765622 100644
--- a/core/installer/values-tmpl/core-auth.cue
+++ b/core/installer/values-tmpl/core-auth.cue
@@ -1,81 +1,81 @@
input: {
- network: #Network
+ network: #Network
subdomain: string
}
-name: "core-auth"
+name: "core-auth"
namespace: "core-auth"
_userSchema: ###"""
-{
- "$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "User",
- "type": "object",
- "properties": {
- "traits": {
+ {
+ "$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "title": "User",
"type": "object",
"properties": {
- "username": {
- "type": "string",
- "format": "username",
- "title": "Username",
- "minLength": 3,
- "ory.sh/kratos": {
- "credentials": {
- "password": {
- "identifier": true
+ "traits": {
+ "type": "object",
+ "properties": {
+ "username": {
+ "type": "string",
+ "format": "username",
+ "title": "Username",
+ "minLength": 3,
+ "ory.sh/kratos": {
+ "credentials": {
+ "password": {
+ "identifier": true
+ }
+ }
}
}
- }
+ },
+ "additionalProperties": false
}
- },
- "additionalProperties": false
+ }
}
- }
-}
-"""###
+ """###
out: {
images: {
kratos: {
repository: "oryd"
- name: "kratos"
- tag: "v1.1.0-distroless"
+ name: "kratos"
+ tag: "v1.1.0-distroless"
pullPolicy: "IfNotPresent"
}
hydra: {
repository: "oryd"
- name: "hydra"
- tag: "v2.2.0-distroless"
+ name: "hydra"
+ tag: "v2.2.0-distroless"
pullPolicy: "IfNotPresent"
}
ui: {
repository: "giolekva"
- name: "auth-ui"
- tag: "latest"
+ name: "auth-ui"
+ tag: "latest"
pullPolicy: "Always"
}
postgres: {
repository: "library"
- name: "postgres"
- tag: "15.3"
+ name: "postgres"
+ tag: "15.3"
pullPolicy: "IfNotPresent"
}
}
charts: {
auth: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/auth"
+ branch: "main"
+ path: "charts/auth"
}
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
}
@@ -85,9 +85,9 @@
values: {
fullnameOverride: "postgres"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
service: {
@@ -113,7 +113,7 @@
fsGroup: 0
}
containerSecurityContext: {
- enabled: true
+ enabled: true
runAsUser: 0
}
}
@@ -127,7 +127,7 @@
auth: {
chart: charts.auth
dependsOn: [{
- name: "postgres"
+ name: "postgres"
namespace: release.namespace
}]
values: {
@@ -135,36 +135,36 @@
fullnameOverride: "kratos"
image: {
repository: images.kratos.fullName
- tag: images.kratos.tag
+ tag: images.kratos.tag
pullPolicy: images.kratos.pullPolicy
}
service: {
admin: {
enabled: true
- type: "ClusterIP"
- port: 80
- name: "http"
+ type: "ClusterIP"
+ port: 80
+ name: "http"
}
public: {
enabled: true
- type: "ClusterIP"
- port: 80
- name: "http"
+ type: "ClusterIP"
+ port: 80
+ name: "http"
}
}
ingress: {
admin: enabled: false
public: {
- enabled: true
+ enabled: true
className: input.network.ingressClass
annotations: {
"acme.cert-manager.io/http01-edit-in-place": "true"
- "cert-manager.io/cluster-issuer": input.network.certificateIssuer
+ "cert-manager.io/cluster-issuer": input.network.certificateIssuer
}
hosts: [{
host: "accounts.\(input.network.domain)"
paths: [{
- path: "/"
+ path: "/"
pathType: "Prefix"
}]
}]
@@ -187,18 +187,18 @@
}
config: {
version: "v0.7.1-alpha.1"
- dsn: "postgres://kratos:kratos@postgres.\(global.namespacePrefix)core-auth.svc:5432/kratos?sslmode=disable&max_conns=20&max_idle_conns=4"
+ dsn: "postgres://kratos:kratos@postgres.\(global.namespacePrefix)core-auth.svc:5432/kratos?sslmode=disable&max_conns=20&max_idle_conns=4"
serve: {
public: {
base_url: "https://accounts.\(input.network.domain)"
cors: {
- enabled: true
- debug: false
+ enabled: true
+ debug: false
allow_credentials: true
allowed_origins: [
"https://\(input.network.domain)",
"https://*.\(input.network.domain)",
- ]
+ ]
}
}
admin: {
@@ -222,7 +222,7 @@
ui_url: "https://accounts-ui.\(input.network.domain)/error"
}
settings: {
- ui_url: "https://accounts-ui.\(input.network.domain)/settings"
+ ui_url: "https://accounts-ui.\(input.network.domain)/settings"
privileged_session_max_age: "15m"
}
recovery: {
@@ -237,7 +237,7 @@
}
}
login: {
- ui_url: "https://accounts-ui.\(input.network.domain)/login"
+ ui_url: "https://accounts-ui.\(input.network.domain)/login"
lifespan: "10m"
after: {
password: {
@@ -247,7 +247,7 @@
}
registration: {
lifespan: "10m"
- ui_url: "https://accounts-ui.\(input.network.domain)/register"
+ ui_url: "https://accounts-ui.\(input.network.domain)/register"
after: {
password: {
hooks: [{
@@ -260,14 +260,14 @@
}
}
log: {
- level: "debug"
- format: "text"
+ level: "debug"
+ format: "text"
leak_sensitive_values: true
}
cookies: {
- path: "/"
+ path: "/"
same_site: "None"
- domain: input.network.domain
+ domain: input.network.domain
}
secrets: {
cookie: ["PLEASE-CHANGE-ME-I-AM-VERY-INSECURE"]
@@ -275,15 +275,15 @@
hashers: {
argon2: {
parallelism: 1
- memory: "128MB"
- iterations: 2
+ memory: "128MB"
+ iterations: 2
salt_length: 16
- key_length: 16
- }
+ key_length: 16
+ }
}
identity: {
schemas: [{
- id: "user"
+ id: "user"
url: "file:///etc/config/identity.schema.json"
}]
default_schema_id: "user"
@@ -303,36 +303,36 @@
fullnameOverride: "hydra"
image: {
repository: images.hydra.fullName
- tag: images.hydra.tag
+ tag: images.hydra.tag
pullPolicy: images.hydra.pullPolicy
}
service: {
admin: {
enabled: true
- type: "ClusterIP"
- port: 80
- name: "http"
+ type: "ClusterIP"
+ port: 80
+ name: "http"
}
public: {
enabled: true
- type: "ClusterIP"
- port: 80
- name: "http"
+ type: "ClusterIP"
+ port: 80
+ name: "http"
}
}
ingress: {
admin: enabled: false
public: {
- enabled: true
+ enabled: true
className: input.network.ingressClass
annotations: {
"acme.cert-manager.io/http01-edit-in-place": "true"
- "cert-manager.io/cluster-issuer": input.network.certificateIssuer
+ "cert-manager.io/cluster-issuer": input.network.certificateIssuer
}
hosts: [{
host: "hydra.\(input.network.domain)"
paths: [{
- path: "/"
+ path: "/"
pathType: "Prefix"
}]
}]
@@ -354,34 +354,34 @@
}
config: {
version: "v1.10.6"
- dsn: "postgres://hydra:hydra@postgres.\(global.namespacePrefix)core-auth.svc:5432/hydra?sslmode=disable&max_conns=20&max_idle_conns=4"
+ dsn: "postgres://hydra:hydra@postgres.\(global.namespacePrefix)core-auth.svc:5432/hydra?sslmode=disable&max_conns=20&max_idle_conns=4"
serve: {
cookies: {
same_site_mode: "None"
}
public: {
cors: {
- enabled: true
- debug: false
+ enabled: true
+ debug: false
allow_credentials: true
allowed_origins: [
"https://\(input.network.domain)",
- "https://*.\(input.network.domain)"
- ]
+ "https://*.\(input.network.domain)",
+ ]
}
}
admin: {
cors: {
allowed_origins: [
- "https://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
- ]
+ "https://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local",
+ ]
}
tls: {
allow_termination_from: [
"0.0.0.0/0",
"10.42.0.0/16",
"10.43.0.0/16",
- ]
+ ]
}
}
tls: {
@@ -389,7 +389,7 @@
"0.0.0.0/0",
"10.42.0.0/16",
"10.43.0.0/16",
- ]
+ ]
}
}
urls: {
@@ -398,8 +398,8 @@
issuer: "https://hydra.\(input.network.domain)"
}
consent: "https://accounts-ui.\(input.network.domain)/consent"
- login: "https://accounts-ui.\(input.network.domain)/login"
- logout: "https://accounts-ui.\(input.network.domain)/logout"
+ login: "https://accounts-ui.\(input.network.domain)/login"
+ logout: "https://accounts-ui.\(input.network.domain)/logout"
}
secrets: {
system: ["youReallyNeedToChangeThis"]
@@ -409,29 +409,29 @@
supported_types: [
"pairwise",
"public",
- ]
+ ]
pairwise: {
salt: "youReallyNeedToChangeThis"
}
}
}
log: {
- level: "trace"
+ level: "trace"
leak_sensitive_values: false
}
}
}
}
ui: {
- certificateIssuer: input.network.certificateIssuer
- ingressClassName: input.network.ingressClass
- domain: input.network.domain
- hydra: "hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
+ certificateIssuer: input.network.certificateIssuer
+ ingressClassName: input.network.ingressClass
+ domain: input.network.domain
+ hydra: "hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
enableRegistration: false
- defaultReturnTo: "https://launcher.\(global.domain)"
+ defaultReturnTo: "https://launcher.\(global.domain)"
image: {
repository: images.ui.fullName
- tag: images.ui.tag
+ tag: images.ui.tag
pullPolicy: images.ui.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/csi-driver-smb.cue b/core/installer/values-tmpl/csi-driver-smb.cue
index 4627b3b..037f4fe 100644
--- a/core/installer/values-tmpl/csi-driver-smb.cue
+++ b/core/installer/values-tmpl/csi-driver-smb.cue
@@ -1,10 +1,10 @@
input: {}
-name: "csi-driver-smb"
+name: "csi-driver-smb"
namespace: "csi-driver-smb"
_baseImage: {
- registry: "registry.k8s.io"
+ registry: "registry.k8s.io"
repository: "sig-storage"
pullPolicy: "IfNotPresent"
}
@@ -13,28 +13,28 @@
images: {
smb: _baseImage & {
name: "smbplugin"
- tag: "v1.11.0"
+ tag: "v1.11.0"
}
csiProvisioner: _baseImage & {
name: "csi-provisioner"
- tag: "v3.5.0"
+ tag: "v3.5.0"
}
livenessProbe: _baseImage & {
name: "livenessprobe"
- tag: "v2.10.0"
+ tag: "v2.10.0"
}
nodeDriverRegistrar: _baseImage & {
name: "csi-node-driver-registrar"
- tag: "v2.8.0"
+ tag: "v2.8.0"
}
}
charts: {
csiDriverSMB: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/csi-driver-smb"
+ branch: "main"
+ path: "charts/csi-driver-smb"
}
}
@@ -45,22 +45,22 @@
image: {
smb: {
repository: images.smb.fullName
- tag: images.smb.tag
+ tag: images.smb.tag
pullPolicy: images.smb.pullPolicy
}
csiProvisioner: {
repository: images.csiProvisioner.fullName
- tag: images.csiProvisioner.tag
+ tag: images.csiProvisioner.tag
pullPolicy: images.csiProvisioner.pullPolicy
}
livenessProbe: {
repository: images.livenessProbe.fullName
- tag: images.livenessProbe.tag
+ tag: images.livenessProbe.tag
pullPolicy: images.livenessProbe.pullPolicy
}
nodeDriverRegistrar: {
repository: images.nodeDriverRegistrar.fullName
- tag: images.nodeDriverRegistrar.tag
+ tag: images.nodeDriverRegistrar.tag
pullPolicy: images.nodeDriverRegistrar.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/dns-gateway.cue b/core/installer/values-tmpl/dns-gateway.cue
index bca02df..b1db8bc 100644
--- a/core/installer/values-tmpl/dns-gateway.cue
+++ b/core/installer/values-tmpl/dns-gateway.cue
@@ -3,29 +3,29 @@
}
#Server: {
- zone: string
+ zone: string
address: string
}
-name: "dns-gateway"
+name: "dns-gateway"
namespace: "dns-gateway"
out: {
images: {
coredns: {
repository: "coredns"
- name: "coredns"
- tag: "1.11.1"
+ name: "coredns"
+ tag: "1.11.1"
pullPolicy: "IfNotPresent"
}
}
charts: {
coredns: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/coredns"
+ branch: "main"
+ path: "charts/coredns"
}
}
@@ -35,30 +35,30 @@
values: {
image: {
repository: images.coredns.fullName
- tag: images.coredns.tag
+ tag: images.coredns.tag
pullPolicy: images.coredns.pullPolicy
}
replicaCount: 1
resources: {
limits: {
- cpu: "100m"
+ cpu: "100m"
memory: "128Mi"
}
requests: {
- cpu: "100m"
+ cpu: "100m"
memory: "128Mi"
}
}
rollingUpdate: {
maxUnavailable: 1
- maxSurge: "25%"
+ maxSurge: "25%"
}
terminationGracePeriodSeconds: 30
- serviceType: "ClusterIP"
- service: name: "coredns"
+ serviceType: "ClusterIP"
+ service: name: "coredns"
serviceAccount: create: false
rbac: {
- create: false
+ create: false
pspEnable: false
}
isClusterService: false
@@ -72,15 +72,15 @@
plugins: [{
name: "log"
}, {
- name: "forward"
+ name: "forward"
parameters: ". \(s.address)"
}, {
- name: "health"
+ name: "health"
configBlock: "lameduck 5s"
}, {
name: "ready"
}]
- }
+ },
]
}
if len(input.servers) == 0 {
@@ -95,23 +95,23 @@
}]
}
livenessProbe: {
- enabled: true
+ enabled: true
initialDelaySeconds: 60
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 5
- successThreshold: 1
+ periodSeconds: 10
+ timeoutSeconds: 5
+ failureThreshold: 5
+ successThreshold: 1
}
readinessProbe: {
- enabled: true
+ enabled: true
initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 5
- successThreshold: 1
+ periodSeconds: 10
+ timeoutSeconds: 5
+ failureThreshold: 5
+ successThreshold: 1
}
zoneFiles: []
- hpa: enabled: false
+ hpa: enabled: false
autoscaler: enabled: false
deployment: enabled: true
}
diff --git a/core/installer/values-tmpl/dodo-app-instance-status.cue b/core/installer/values-tmpl/dodo-app-instance-status.cue
index b72a272..f8d6d75 100644
--- a/core/installer/values-tmpl/dodo-app-instance-status.cue
+++ b/core/installer/values-tmpl/dodo-app-instance-status.cue
@@ -1,6 +1,6 @@
input: {
- appName: string
- network: #Network
+ appName: string
+ network: #Network
appSubdomain: string
}
@@ -12,9 +12,9 @@
ingress: {
"status-\(input.appName)": {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: _subdomain
- appRoot: "/\(input.appName)"
+ appRoot: "/\(input.appName)"
service: {
name: "web"
port: name: "http"
diff --git a/core/installer/values-tmpl/dodo-app-instance.cue b/core/installer/values-tmpl/dodo-app-instance.cue
index ad20ac7..7255852 100644
--- a/core/installer/values-tmpl/dodo-app-instance.cue
+++ b/core/installer/values-tmpl/dodo-app-instance.cue
@@ -3,34 +3,34 @@
)
input: {
- repoAddr: string
- repoHost: string
- branch: string
+ repoAddr: string
+ repoHost: string
+ branch: string
gitRepoPublicKey: string
// TODO(gio): auto generate
fluxKeys: #SSHKey
}
-name: "Dodo App Instance"
-namespace: "dodo-app-instance"
-readme: "Deploy app by pushing to Git repository"
+name: "Dodo App Instance"
+namespace: "dodo-app-instance"
+readme: "Deploy app by pushing to Git repository"
description: "Deploy app by pushing to Git repository"
-icon: ""
+icon: ""
resources: {
"config-kustomization": {
apiVersion: "kustomize.toolkit.fluxcd.io/v1"
- kind: "Kustomization"
+ kind: "Kustomization"
metadata: {
- name: "app"
+ name: "app"
namespace: release.namespace
}
spec: {
interval: "1m"
- path: "./"
+ path: "./"
sourceRef: {
- kind: "GitRepository"
- name: "app"
+ kind: "GitRepository"
+ name: "app"
namespace: release.namespace
}
prune: true
@@ -38,31 +38,31 @@
}
"config-secret": {
apiVersion: "v1"
- kind: "Secret"
- type: "Opaque"
+ kind: "Secret"
+ type: "Opaque"
metadata: {
- name: "app"
+ name: "app"
namespace: release.namespace
}
data: {
- identity: base64.Encode(null, input.fluxKeys.private)
+ identity: base64.Encode(null, input.fluxKeys.private)
"identity.pub": base64.Encode(null, input.fluxKeys.public)
- known_hosts: base64.Encode(null, "\(input.repoHost) \(input.gitRepoPublicKey)")
+ known_hosts: base64.Encode(null, "\(input.repoHost) \(input.gitRepoPublicKey)")
}
}
"config-source": {
apiVersion: "source.toolkit.fluxcd.io/v1"
- kind: "GitRepository"
+ kind: "GitRepository"
metadata: {
- name: "app"
+ name: "app"
namespace: release.namespace
}
spec: {
interval: "1m0s"
- ref: branch: input.branch
+ ref: branch: input.branch
secretRef: name: "app"
timeout: "60s"
- url: input.repoAddr
+ url: input.repoAddr
}
}
}
diff --git a/core/installer/values-tmpl/dodo-app.cue b/core/installer/values-tmpl/dodo-app.cue
index 5b0f865..4d3a2a3 100644
--- a/core/installer/values-tmpl/dodo-app.cue
+++ b/core/installer/values-tmpl/dodo-app.cue
@@ -5,87 +5,87 @@
)
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- sshPort: int @name(SSH Port) @role(port)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ sshPort: int @name(SSH Port) @role(port)
allowedNetworks: [...#Network] | *[] @name(Allowed Networks)
external: bool | *false @name(External)
// TODO(gio): auto generate
- ssKeys: #SSHKey
+ ssKeys: #SSHKey
fluxKeys: #SSHKey
dAppKeys: #SSHKey
}
-name: "Dodo App"
-namespace: "dodo-app"
-readme: "Deploy app by pushing to Git repository"
+name: "Dodo App"
+namespace: "dodo-app"
+readme: "Deploy app by pushing to Git repository"
description: "Deploy app by pushing to Git repository"
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <g>
- <path class='cls-1' d='m4.14612077,30.30093685c-.14455793,0-.27755122-.09490976-.31962256-.24086342-.0510439-.17705854.05064512-.36129513.22730488-.41233903,1.25755428-.36368781,2.55678112-.58301708,3.86179028-.65400001.18343903-.00159512.34035915.13159756.35052805.31423903.00977012.18423659-.13099939.34055854-.31463781.35092683-1.25456343.06779268-2.50374331.27914634-3.71264637.62847805-.03090549.00877317-.06201037.01355854-.09271646.01355854Zm4.93770004-4.95923419c-2.75357929,0-6.44887871-.96664391-8.31317751-2.32568783-.14874512-.10767073-.18144512-.31583415-.07317622-.46497805.10846829-.14834634.31703049-.18264147.46517744-.07257805,2.42179392,1.76340733,7.41831409,2.59446588,9.65766594,2.01304392.55071586-.14276342.90842196-.36289025,1.0342372-.63485854.62189818-1.34787806.53257135-6.24250981.37904086-9.06587569-.38601952.18583171-.93175062.37644878-1.39573172.25681464-.28692256-.07337561-.51243293-.25442195-.6520061-.52559269-.22411464-.43467074-.22411464-.93872928-.00019939-1.41886099.19600061-.42031464.54433537-.79197806.99834696-1.08149269-.2881189-.08294634-.50984086-.20497317-.66875488-.36767561-.18443598-.18742683-.2759561-.42190976-.26439147-.67792684.00957073-.21693659.15831586-.68590244.65519635-1.06713659.32460732-.24804147.85717867-.49448781,1.69222501-.49448781.01774573,0,.03549146,0,.05363598.00079756-.22610854-.33577317-.30287378-.70265123-.17865366-1.01768781.15093842-.38282927.67613232-.89805367,2.46546039-.50166586-.02292988-.10208781-.03110488-.20736586-.02352805-.31264391.02711707-.37724634.25920732-.68510488.60574757-.80553659.27495915-.0941122.80314391-.13478781,1.53071892.45859756.10288537-.20258049.27635488-.35411708.50764757-.42988537.68989025-.22650732,1.75044697.31663171,2.44292929,1.79371465.07816098.16589268.00638049.36448537-.16011037.44264635-.16589268.07816098-.36488415.00717805-.44284574-.16030976-.54892135-1.17002196-1.29822989-1.55444636-1.63260733-1.44358538-.18523354.06061463-.16848476.29509756-.14216525.42908781.02911098.14675122-.04326768.29509756-.17665976.36209269-.13379085.06699512-.29549634.03668781-.39618842-.07337561-.61571708-.67553415-1.09106342-.82547562-1.31278538-.74970732-.12780915.04466342-.15472683.1595122-.1595122.22411464-.01176402.1635.08733293.39638781.400575.55829269.15392927.0797561.22112378.26399269.15432805.42430244-.06639695.16030976-.24385427.24405366-.40954756.18822439-1.96160124-.63326342-2.56495612-.33019025-2.63195124-.1595122-.07616707.19300976.19520305.66676098.77802074.9403244.15372988.07257805.22850122.24883903.17346951.40914878-.05503171.16110732-.22291829.25442195-.38761464.21693659-1.29743233-.28712195-1.98512929-.04147317-2.33326465.22012683-.318825.23767317-.40336647.52000976-.40735427.57743415-.00299085.06859024.02073659.1268122.07457195.1818439.09770122.09889756.44324452.32380976,1.55085733.29988293.16868415.01595122.31782805.12122927.33896342.29110976s-.089925.32859512-.25701403.36608049c-.86635062.1962-1.56920123.67074879-1.83399148,1.23861221-.09550793.20497317-.17506464.51602196-.01176402.83345123.05263902.10208781.12202683.15871464.2249122.18503415.41233903.10687317,1.12755184-.29270488,1.34588416-.44025366.09889756-.0654.22610854-.07337561.3331811-.02312927.10727195.05263902.17805549.15871464.18563232.27834878.02033781.32460732.49089878,7.97082446-.40815183,9.91846838-.21514208.46577561-.71022805.80314391-1.47130062,1.00093903-.53895183.13957317-1.18996099.20497317-1.90397746.20497317Z'/>
- <path class='cls-1' d='m11.94387449,37.48137838c-.10607561,0-.21035671-.0510439-.27495915-.1451561-.10388232-.15153659-.06520061-.35890244.08653537-.46258537,3.14278905-2.15261709,6.70589274-5.42341468,6.36054884-11.66512693-.17346951-3.13600978-.52678903-4.53572931-.71640915-5.28703175-.02372744-.0941122-.0450622-.18024878-.0634061-.26000488-.00179451-.00558293-.00358902-.01116585-.00518415-.01674878-.25422256-.91958781-.7134183-1.78095367-1.19953172-2.69256588-.56287866-1.05597074-1.1446994-2.14703417-1.45395367-3.42233418-.63745062-2.62796344.96245672-3.85301711,3.5609104-4.88266834,2.02819758-.80473903,3.08975125.58301708,3.86478113,1.59512197.20876159.27356342.40615793.53117561.59817074.71940001.77542867.76007562,1.70578355,1.03682928,4.64140614.4354683,2.94599088-.60215854,4.46275248-.07736342,6.00882444,2.08402685.90682684,1.26971708,1.3287366,3.12723661.9811994,4.3211854-.14276342.4905-.41253842.82866586-.77961586.9770122-.70444574.28393171-1.04261159-.17067805-1.31398172-.5375561-.34235305-.46178781-.76825062-1.03603172-2.06029941-1.25855123-1.37260245-.15552439-2.77830368-.21374634-4.17722565-.16988049.68550366.86296098,1.88942197,2.65986588,1.86768843,4.61389028-.00159512.13797805-.08813049.26080244-.21793354.3086561-.1288061.04625854-.27495915.01036829-.36608049-.0941122-2.19907502-2.52109027-5.16181468-3.43110735-7.20117811-3.44147564-1.06255062-.00558293-1.6639116.24166098-1.85353172.4538122q-.36169391.40595854-.18543293,1.1038244c.19520305.77363415.55869147,2.21402929.73575001,5.41384395.36767561,6.64767079-3.61873357,10.17528302-6.64906652,12.25053669-.05762378.03987805-.12302378.05901951-.188025.05901951Zm8.10561227-19.94700017h.03808354c1.98173965.01036829,4.77380126.8095244,7.0257147,2.96373661-.40456281-2.02181709-2.03158721-3.73737076-2.05052929-3.75730979-.09012439-.09331463-.11744085-.23129268-.0695872-.35252195.04765427-.12122927.1615061-.20337805.29150854-.2105561,1.65812928-.09092195,3.33679576-.04147317,4.98834517.14675122,1.5739866.27037317,2.13188051,1.02327074,2.50115124,1.52094879.29410061.39718537.32181586.40117317.5293811.31663171.21633842-.08773171.33138659-.34534391.38980793-.54632927.24963659-.85737806-.01714756-2.5346488-.88369757-3.7469415-1.39134513-1.9460488-2.63753417-2.37035124-5.33329029-1.8192366-2.85486954.58540976-4.17762443.43148049-5.241172-.61252683-.22590915-.22092439-.43726281-.49767805-.66097866-.78958537-.7522994-.98339269-1.52912379-2.00108051-3.09034942-1.38137562-2.79884088,1.10940733-3.62551284,2.18451953-3.15913905,4.10743906.28931525,1.19235367.85119696,2.24593173,1.39433599,3.26521466.31443842.58939757.61791037,1.15885611.86814513,1.74426587.04366646-.05423415.09211829-.11165854.14615305-.17227317.38362683-.43068293,1.22664879-.67633171,2.31611709-.67633171Z'/>
- <path class='cls-1' d='m16.5348349,14.71739281c-.16270244,0-.30506708-.11963415-.3291933-.28552683-.07078354-.48810732.01774573-.87253171.2635939-1.14370245.38123415-.42031464,1.02506525-.45301464,1.60608843-.4211122.18363842.00877317.32560427.16429756.3168311.34853415-.00877317.18343903-.15771768.3230122-.34833476.31663171-.3700683-.01914146-.88250123-.01515366-1.0812933.20417561-.10587622.1164439-.13877561.31822683-.09770122.59976586.02631951.1818439-.09969512.35092683-.28173842.37724634-.01615061.00239268-.03230122.0039878-.04825244.0039878Z'/>
- <path class='cls-1' d='m24.36488985,16.85485624c-4.86452382,0-6.3264531-1.01050976-7.78040678-3.28754637-.09889756-.15552439-.05343659-.36129513.10148964-.46019269.15572378-.09730244.36089634-.05263902.4599933.10129024,1.46691404,2.29777319,2.91827564,3.09054881,8.14907934,2.96931954.18642988-.02392683.33637134.14116829.34075793.32460732.0041872.18423659-.14136768.33657073-.32520549.34055854-.32879452.00797561-.64403049.01196341-.94570794.01196341Z'/>
- <path class='cls-1' d='m25.03045449,29.77614172c-.15891403,0-.29968354-.11484878-.32779756-.27675366-.03130427-.18104634.09012439-.35331952.27137012-.38442439,2.01942441-.35092683,6.08299761-1.05597074,7.44722567-4.46713906-3.95051894,1.92690733-9.43075984,3.9144293-14.09968183,1.53849514-.16389878-.08294634-.22929878-.28393171-.14595366-.44743171.08354451-.1635.28472927-.2289.44783049-.14595366,4.68786407,2.38311222,10.35433546.0614122,14.20934647-1.89340977.1164439-.05981707.25701403-.04386585.35910183.03668781.10188842.08214878.14655183.21613903.11385183.34295122-1.14848781,4.46554394-5.92328603,5.29341224-8.21806836,5.69139517-.01914146.0039878-.03828293.00558293-.057225.00558293Zm-.15353049-12.92447572c-.0225311,0-.0450622-.00239268-.06799207-.00717805-.18004939-.03748537-.29569573-.21374634-.25840976-.39399513.21932927-1.05916098,1.07052623-4.01093418,2.35798904-4.93610492.1491439-.10846829.35730732-.07337561.46477866.07576829.10727195.14994146.07337561.35730732-.07596768.46497805-.93713415.67314147-1.78912867,3.05465856-2.09479392,4.53094394-.03250061.15711951-.17107683.26558781-.32560427.26558781Zm-5.16021956-4.10424882c-.26498964,0-.68650062-.13638293-.98638355-.89167318-.06799207-.17067805.01575183-.36448537.18662927-.43227805.17007988-.06699512.36448537.01515366.43227805.18662927.13399025.3373683.29110976.49289269.37724634.47056098.07078354-.00638049.14655183-.09171951.15911342-.15711951.12541646-.57504147-.23468232-1.13732196-.80095062-1.26094391-.08075305-.01674878-.1615061-.02073659-.24086342-.02392683-.16130671.0183439-.33597256-.14116829-.34035915-.32540488-.0039878-.18343903.14176646-.33577317.32560427-.33976098.12940427-.00797561.26299573.00957073.39618842.03828293.92676586.20258049,1.5147677,1.11977562,1.31278538,2.04494636-.06759329.35411708-.39020671.65320244-.74871037.68749757-.0225311.00159512-.04685671.00319024-.07257805.00319024Z'/>
- <path class='cls-1' d='m24.39001302,31.87372711c-.1736689,0-.32002134-.13478781-.33178537-.31104878-.0123622-.18343903.12641342-.34215366.30985244-.35491464,4.62764821-.31104878,6.81156957-1.74187319,6.67638298-4.37462199-.00937134-.18343903.13179695-.33976098.31543537-.34933171.18702805-.00638049.34015976.13239512.34973049.31583415.15552439,3.02993417-2.29936831,4.73671468-7.29688543,5.07328541-.00757683,0-.01515366.00079756-.02273049.00079756Z'/>
- <path class='cls-1' d='m22.10460202,34.88053201c-1.87067928,0-3.83866101-.55111464-5.75300676-1.63579758-.16011037-.09012439-.21633842-.29350244-.12561585-.4538122.09052317-.15871464.29350244-.21613903.4538122-.12521707,2.81140246,1.59193172,5.72828237,1.97236831,8.21388117,1.06952928,1.73589148-.63007318,3.08396893-1.8375805,3.60617198-3.22932442.06480183-.17227317.25601708-.25920732.42888842-.19460488.17207378.06460244.25940671.25681464.19480427.42908781-.58979635,1.57119514-2.08622014,2.92465612-4.00275918,3.62092686-.95727257.34693903-1.97157075.5192122-3.01617625.5192122Z'/>
- <path class='cls-1' d='m19.84251969,39.68503937C8.90137874,39.68503937,0,30.78346124,0,19.84251969S8.90137874,0,19.84251969,0s19.84251969,8.90157813,19.84251969,19.84251969-8.90137874,19.84251969-19.84251969,19.84251969Zm0-38.35311253C9.63573301,1.33192684,1.33192684,9.63613179,1.33192684,19.84251969s8.30380617,18.51059284,18.51059284,18.51059284,18.51059284-8.30420495,18.51059284-18.51059284S30.04930636,1.33192684,19.84251969,1.33192684Z'/>
- </g>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <g>
+ <path class='cls-1' d='m4.14612077,30.30093685c-.14455793,0-.27755122-.09490976-.31962256-.24086342-.0510439-.17705854.05064512-.36129513.22730488-.41233903,1.25755428-.36368781,2.55678112-.58301708,3.86179028-.65400001.18343903-.00159512.34035915.13159756.35052805.31423903.00977012.18423659-.13099939.34055854-.31463781.35092683-1.25456343.06779268-2.50374331.27914634-3.71264637.62847805-.03090549.00877317-.06201037.01355854-.09271646.01355854Zm4.93770004-4.95923419c-2.75357929,0-6.44887871-.96664391-8.31317751-2.32568783-.14874512-.10767073-.18144512-.31583415-.07317622-.46497805.10846829-.14834634.31703049-.18264147.46517744-.07257805,2.42179392,1.76340733,7.41831409,2.59446588,9.65766594,2.01304392.55071586-.14276342.90842196-.36289025,1.0342372-.63485854.62189818-1.34787806.53257135-6.24250981.37904086-9.06587569-.38601952.18583171-.93175062.37644878-1.39573172.25681464-.28692256-.07337561-.51243293-.25442195-.6520061-.52559269-.22411464-.43467074-.22411464-.93872928-.00019939-1.41886099.19600061-.42031464.54433537-.79197806.99834696-1.08149269-.2881189-.08294634-.50984086-.20497317-.66875488-.36767561-.18443598-.18742683-.2759561-.42190976-.26439147-.67792684.00957073-.21693659.15831586-.68590244.65519635-1.06713659.32460732-.24804147.85717867-.49448781,1.69222501-.49448781.01774573,0,.03549146,0,.05363598.00079756-.22610854-.33577317-.30287378-.70265123-.17865366-1.01768781.15093842-.38282927.67613232-.89805367,2.46546039-.50166586-.02292988-.10208781-.03110488-.20736586-.02352805-.31264391.02711707-.37724634.25920732-.68510488.60574757-.80553659.27495915-.0941122.80314391-.13478781,1.53071892.45859756.10288537-.20258049.27635488-.35411708.50764757-.42988537.68989025-.22650732,1.75044697.31663171,2.44292929,1.79371465.07816098.16589268.00638049.36448537-.16011037.44264635-.16589268.07816098-.36488415.00717805-.44284574-.16030976-.54892135-1.17002196-1.29822989-1.55444636-1.63260733-1.44358538-.18523354.06061463-.16848476.29509756-.14216525.42908781.02911098.14675122-.04326768.29509756-.17665976.36209269-.13379085.06699512-.29549634.03668781-.39618842-.07337561-.61571708-.67553415-1.09106342-.82547562-1.31278538-.74970732-.12780915.04466342-.15472683.1595122-.1595122.22411464-.01176402.1635.08733293.39638781.400575.55829269.15392927.0797561.22112378.26399269.15432805.42430244-.06639695.16030976-.24385427.24405366-.40954756.18822439-1.96160124-.63326342-2.56495612-.33019025-2.63195124-.1595122-.07616707.19300976.19520305.66676098.77802074.9403244.15372988.07257805.22850122.24883903.17346951.40914878-.05503171.16110732-.22291829.25442195-.38761464.21693659-1.29743233-.28712195-1.98512929-.04147317-2.33326465.22012683-.318825.23767317-.40336647.52000976-.40735427.57743415-.00299085.06859024.02073659.1268122.07457195.1818439.09770122.09889756.44324452.32380976,1.55085733.29988293.16868415.01595122.31782805.12122927.33896342.29110976s-.089925.32859512-.25701403.36608049c-.86635062.1962-1.56920123.67074879-1.83399148,1.23861221-.09550793.20497317-.17506464.51602196-.01176402.83345123.05263902.10208781.12202683.15871464.2249122.18503415.41233903.10687317,1.12755184-.29270488,1.34588416-.44025366.09889756-.0654.22610854-.07337561.3331811-.02312927.10727195.05263902.17805549.15871464.18563232.27834878.02033781.32460732.49089878,7.97082446-.40815183,9.91846838-.21514208.46577561-.71022805.80314391-1.47130062,1.00093903-.53895183.13957317-1.18996099.20497317-1.90397746.20497317Z'/>
+ <path class='cls-1' d='m11.94387449,37.48137838c-.10607561,0-.21035671-.0510439-.27495915-.1451561-.10388232-.15153659-.06520061-.35890244.08653537-.46258537,3.14278905-2.15261709,6.70589274-5.42341468,6.36054884-11.66512693-.17346951-3.13600978-.52678903-4.53572931-.71640915-5.28703175-.02372744-.0941122-.0450622-.18024878-.0634061-.26000488-.00179451-.00558293-.00358902-.01116585-.00518415-.01674878-.25422256-.91958781-.7134183-1.78095367-1.19953172-2.69256588-.56287866-1.05597074-1.1446994-2.14703417-1.45395367-3.42233418-.63745062-2.62796344.96245672-3.85301711,3.5609104-4.88266834,2.02819758-.80473903,3.08975125.58301708,3.86478113,1.59512197.20876159.27356342.40615793.53117561.59817074.71940001.77542867.76007562,1.70578355,1.03682928,4.64140614.4354683,2.94599088-.60215854,4.46275248-.07736342,6.00882444,2.08402685.90682684,1.26971708,1.3287366,3.12723661.9811994,4.3211854-.14276342.4905-.41253842.82866586-.77961586.9770122-.70444574.28393171-1.04261159-.17067805-1.31398172-.5375561-.34235305-.46178781-.76825062-1.03603172-2.06029941-1.25855123-1.37260245-.15552439-2.77830368-.21374634-4.17722565-.16988049.68550366.86296098,1.88942197,2.65986588,1.86768843,4.61389028-.00159512.13797805-.08813049.26080244-.21793354.3086561-.1288061.04625854-.27495915.01036829-.36608049-.0941122-2.19907502-2.52109027-5.16181468-3.43110735-7.20117811-3.44147564-1.06255062-.00558293-1.6639116.24166098-1.85353172.4538122q-.36169391.40595854-.18543293,1.1038244c.19520305.77363415.55869147,2.21402929.73575001,5.41384395.36767561,6.64767079-3.61873357,10.17528302-6.64906652,12.25053669-.05762378.03987805-.12302378.05901951-.188025.05901951Zm8.10561227-19.94700017h.03808354c1.98173965.01036829,4.77380126.8095244,7.0257147,2.96373661-.40456281-2.02181709-2.03158721-3.73737076-2.05052929-3.75730979-.09012439-.09331463-.11744085-.23129268-.0695872-.35252195.04765427-.12122927.1615061-.20337805.29150854-.2105561,1.65812928-.09092195,3.33679576-.04147317,4.98834517.14675122,1.5739866.27037317,2.13188051,1.02327074,2.50115124,1.52094879.29410061.39718537.32181586.40117317.5293811.31663171.21633842-.08773171.33138659-.34534391.38980793-.54632927.24963659-.85737806-.01714756-2.5346488-.88369757-3.7469415-1.39134513-1.9460488-2.63753417-2.37035124-5.33329029-1.8192366-2.85486954.58540976-4.17762443.43148049-5.241172-.61252683-.22590915-.22092439-.43726281-.49767805-.66097866-.78958537-.7522994-.98339269-1.52912379-2.00108051-3.09034942-1.38137562-2.79884088,1.10940733-3.62551284,2.18451953-3.15913905,4.10743906.28931525,1.19235367.85119696,2.24593173,1.39433599,3.26521466.31443842.58939757.61791037,1.15885611.86814513,1.74426587.04366646-.05423415.09211829-.11165854.14615305-.17227317.38362683-.43068293,1.22664879-.67633171,2.31611709-.67633171Z'/>
+ <path class='cls-1' d='m16.5348349,14.71739281c-.16270244,0-.30506708-.11963415-.3291933-.28552683-.07078354-.48810732.01774573-.87253171.2635939-1.14370245.38123415-.42031464,1.02506525-.45301464,1.60608843-.4211122.18363842.00877317.32560427.16429756.3168311.34853415-.00877317.18343903-.15771768.3230122-.34833476.31663171-.3700683-.01914146-.88250123-.01515366-1.0812933.20417561-.10587622.1164439-.13877561.31822683-.09770122.59976586.02631951.1818439-.09969512.35092683-.28173842.37724634-.01615061.00239268-.03230122.0039878-.04825244.0039878Z'/>
+ <path class='cls-1' d='m24.36488985,16.85485624c-4.86452382,0-6.3264531-1.01050976-7.78040678-3.28754637-.09889756-.15552439-.05343659-.36129513.10148964-.46019269.15572378-.09730244.36089634-.05263902.4599933.10129024,1.46691404,2.29777319,2.91827564,3.09054881,8.14907934,2.96931954.18642988-.02392683.33637134.14116829.34075793.32460732.0041872.18423659-.14136768.33657073-.32520549.34055854-.32879452.00797561-.64403049.01196341-.94570794.01196341Z'/>
+ <path class='cls-1' d='m25.03045449,29.77614172c-.15891403,0-.29968354-.11484878-.32779756-.27675366-.03130427-.18104634.09012439-.35331952.27137012-.38442439,2.01942441-.35092683,6.08299761-1.05597074,7.44722567-4.46713906-3.95051894,1.92690733-9.43075984,3.9144293-14.09968183,1.53849514-.16389878-.08294634-.22929878-.28393171-.14595366-.44743171.08354451-.1635.28472927-.2289.44783049-.14595366,4.68786407,2.38311222,10.35433546.0614122,14.20934647-1.89340977.1164439-.05981707.25701403-.04386585.35910183.03668781.10188842.08214878.14655183.21613903.11385183.34295122-1.14848781,4.46554394-5.92328603,5.29341224-8.21806836,5.69139517-.01914146.0039878-.03828293.00558293-.057225.00558293Zm-.15353049-12.92447572c-.0225311,0-.0450622-.00239268-.06799207-.00717805-.18004939-.03748537-.29569573-.21374634-.25840976-.39399513.21932927-1.05916098,1.07052623-4.01093418,2.35798904-4.93610492.1491439-.10846829.35730732-.07337561.46477866.07576829.10727195.14994146.07337561.35730732-.07596768.46497805-.93713415.67314147-1.78912867,3.05465856-2.09479392,4.53094394-.03250061.15711951-.17107683.26558781-.32560427.26558781Zm-5.16021956-4.10424882c-.26498964,0-.68650062-.13638293-.98638355-.89167318-.06799207-.17067805.01575183-.36448537.18662927-.43227805.17007988-.06699512.36448537.01515366.43227805.18662927.13399025.3373683.29110976.49289269.37724634.47056098.07078354-.00638049.14655183-.09171951.15911342-.15711951.12541646-.57504147-.23468232-1.13732196-.80095062-1.26094391-.08075305-.01674878-.1615061-.02073659-.24086342-.02392683-.16130671.0183439-.33597256-.14116829-.34035915-.32540488-.0039878-.18343903.14176646-.33577317.32560427-.33976098.12940427-.00797561.26299573.00957073.39618842.03828293.92676586.20258049,1.5147677,1.11977562,1.31278538,2.04494636-.06759329.35411708-.39020671.65320244-.74871037.68749757-.0225311.00159512-.04685671.00319024-.07257805.00319024Z'/>
+ <path class='cls-1' d='m24.39001302,31.87372711c-.1736689,0-.32002134-.13478781-.33178537-.31104878-.0123622-.18343903.12641342-.34215366.30985244-.35491464,4.62764821-.31104878,6.81156957-1.74187319,6.67638298-4.37462199-.00937134-.18343903.13179695-.33976098.31543537-.34933171.18702805-.00638049.34015976.13239512.34973049.31583415.15552439,3.02993417-2.29936831,4.73671468-7.29688543,5.07328541-.00757683,0-.01515366.00079756-.02273049.00079756Z'/>
+ <path class='cls-1' d='m22.10460202,34.88053201c-1.87067928,0-3.83866101-.55111464-5.75300676-1.63579758-.16011037-.09012439-.21633842-.29350244-.12561585-.4538122.09052317-.15871464.29350244-.21613903.4538122-.12521707,2.81140246,1.59193172,5.72828237,1.97236831,8.21388117,1.06952928,1.73589148-.63007318,3.08396893-1.8375805,3.60617198-3.22932442.06480183-.17227317.25601708-.25920732.42888842-.19460488.17207378.06460244.25940671.25681464.19480427.42908781-.58979635,1.57119514-2.08622014,2.92465612-4.00275918,3.62092686-.95727257.34693903-1.97157075.5192122-3.01617625.5192122Z'/>
+ <path class='cls-1' d='m19.84251969,39.68503937C8.90137874,39.68503937,0,30.78346124,0,19.84251969S8.90137874,0,19.84251969,0s19.84251969,8.90157813,19.84251969,19.84251969-8.90137874,19.84251969-19.84251969,19.84251969Zm0-38.35311253C9.63573301,1.33192684,1.33192684,9.63613179,1.33192684,19.84251969s8.30380617,18.51059284,18.51059284,18.51059284,18.51059284-8.30420495,18.51059284-18.51059284S30.04930636,1.33192684,19.84251969,1.33192684Z'/>
+ </g>
+ </svg>"""
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
out: {
images: {
softserve: {
repository: "charmcli"
- name: "soft-serve"
- tag: "v0.7.1"
+ name: "soft-serve"
+ tag: "v0.7.1"
pullPolicy: "IfNotPresent"
}
dodoApp: {
repository: "giolekva"
- name: "pcloud-installer"
- tag: "latest"
+ name: "pcloud-installer"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
softserve: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/soft-serve"
+ branch: "main"
+ path: "charts/soft-serve"
}
dodoApp: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/dodo-app"
+ branch: "main"
+ path: "charts/dodo-app"
}
}
volume: {
"config-repo": size: "10Gi"
- db: size: "10Gi"
+ db: size: "10Gi"
}
ingress: {
@@ -100,10 +100,10 @@
"^/static\/.*$",
"^/schemas\/.*$",
"^/api/public-data$",
- ]
+ ]
}
}
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "web"
@@ -113,9 +113,9 @@
}
openPort: [{
- name: "ssh"
+ name: "ssh"
network: input.network
- port: input.sshPort
+ port: input.sshPort
service: {
name: "soft-serve"
port: 22
@@ -125,17 +125,17 @@
helm: {
softserve: {
chart: charts.softserve
- info: "Installing Git server"
+ info: "Installing Git server"
values: {
serviceType: "ClusterIP"
addressPool: ""
- reservedIP: ""
+ reservedIP: ""
adminKey: strings.Join([input.fluxKeys.public, input.dAppKeys.public], "\n")
privateKey: input.ssKeys.private
- publicKey: input.ssKeys.public
+ publicKey: input.ssKeys.public
image: {
repository: images.softserve.fullName
- tag: images.softserve.tag
+ tag: images.softserve.tag
pullPolicy: images.softserve.pullPolicy
}
persistentVolumeClaimName: volume["config-repo"].name
@@ -143,29 +143,29 @@
}
"dodo-app": {
chart: charts.dodoApp
- info: "Installing supervisor"
+ info: "Installing supervisor"
values: {
image: {
repository: images.dodoApp.fullName
- tag: images.dodoApp.tag
+ tag: images.dodoApp.tag
pullPolicy: images.dodoApp.pullPolicy
}
- clusterRoleName: "\(release.namespace)-dodo-app"
- port: 8080
- apiPort: 8081
- repoAddr: "soft-serve.\(release.namespace).svc.cluster.local:22"
- sshPrivateKey: base64.Encode(null, input.dAppKeys.private)
- self: "api.\(release.namespace).svc.cluster.local"
- selfPublic: url
- repoPublicAddr: "ssh://\(_domain):\(input.sshPort)"
- namespace: release.namespace
- envAppManagerAddr: "http://appmanager.\(global.namespacePrefix)appmanager.svc.cluster.local"
- envConfig: base64.Encode(null, json.Marshal(global))
- gitRepoPublicKey: input.ssKeys.public
+ clusterRoleName: "\(release.namespace)-dodo-app"
+ port: 8080
+ apiPort: 8081
+ repoAddr: "soft-serve.\(release.namespace).svc.cluster.local:22"
+ sshPrivateKey: base64.Encode(null, input.dAppKeys.private)
+ self: "api.\(release.namespace).svc.cluster.local"
+ selfPublic: url
+ repoPublicAddr: "ssh://\(_domain):\(input.sshPort)"
+ namespace: release.namespace
+ envAppManagerAddr: "http://appmanager.\(global.namespacePrefix)appmanager.svc.cluster.local"
+ envConfig: base64.Encode(null, json.Marshal(global))
+ gitRepoPublicKey: input.ssKeys.public
persistentVolumeClaimName: volume.db.name
- allowedNetworks: strings.Join([for n in input.allowedNetworks { n.name }], ",")
- external: input.external
- fetchUsersAddr: "http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local/api/users"
+ allowedNetworks: strings.Join([for n in input.allowedNetworks {n.name}], ",")
+ external: input.external
+ fetchUsersAddr: "http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local/api/users"
headscaleAPIAddr: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc"
}
}
@@ -175,17 +175,17 @@
resources: {
"config-kustomization": {
apiVersion: "kustomize.toolkit.fluxcd.io/v1"
- kind: "Kustomization"
+ kind: "Kustomization"
metadata: {
- name: "config"
+ name: "config"
namespace: release.namespace
}
spec: {
interval: "1m"
- path: "./"
+ path: "./"
sourceRef: {
- kind: "GitRepository"
- name: "config"
+ kind: "GitRepository"
+ name: "config"
namespace: release.namespace
}
prune: true
@@ -193,31 +193,31 @@
}
"config-secret": {
apiVersion: "v1"
- kind: "Secret"
- type: "Opaque"
+ kind: "Secret"
+ type: "Opaque"
metadata: {
- name: "config"
+ name: "config"
namespace: release.namespace
}
data: {
- identity: base64.Encode(null, input.fluxKeys.private)
+ identity: base64.Encode(null, input.fluxKeys.private)
"identity.pub": base64.Encode(null, input.fluxKeys.public)
- known_hosts: base64.Encode(null, "soft-serve.\(release.namespace).svc.cluster.local \(input.ssKeys.public)")
+ known_hosts: base64.Encode(null, "soft-serve.\(release.namespace).svc.cluster.local \(input.ssKeys.public)")
}
}
"config-source": {
apiVersion: "source.toolkit.fluxcd.io/v1"
- kind: "GitRepository"
+ kind: "GitRepository"
metadata: {
- name: "config"
+ name: "config"
namespace: release.namespace
}
spec: {
interval: "1m0s"
- ref: branch: "master"
+ ref: branch: "master"
secretRef: name: "config"
timeout: "60s"
- url: "ssh://soft-serve.\(release.namespace).svc.cluster.local:22/config"
+ url: "ssh://soft-serve.\(release.namespace).svc.cluster.local:22/config"
}
}
}
diff --git a/core/installer/values-tmpl/env-dns.cue b/core/installer/values-tmpl/env-dns.cue
index f5b8ac2..d24a679 100644
--- a/core/installer/values-tmpl/env-dns.cue
+++ b/core/installer/values-tmpl/env-dns.cue
@@ -4,58 +4,58 @@
input: {}
-name: "env-dns"
-namespace: "dns"
-readme: "env-dns"
+name: "env-dns"
+namespace: "dns"
+readme: "env-dns"
description: "Environment local DNS manager"
-icon: ""
+icon: ""
out: {
images: {
coredns: {
repository: "coredns"
- name: "coredns"
- tag: "1.11.1"
+ name: "coredns"
+ tag: "1.11.1"
pullPolicy: "IfNotPresent"
}
api: {
repository: "giolekva"
- name: "dns-api"
- tag: "latest"
+ name: "dns-api"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
coredns: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/coredns"
+ branch: "main"
+ path: "charts/coredns"
}
api: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/dns-api"
+ branch: "main"
+ path: "charts/dns-api"
}
service: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/service"
+ branch: "main"
+ path: "charts/service"
}
ipAddressPool: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/metallb-ipaddresspool"
+ branch: "main"
+ path: "charts/metallb-ipaddresspool"
}
}
volume: data: {
accessMode: "ReadWriteMany"
- size: "5Gi"
+ size: "5Gi"
}
_volume: volume
@@ -65,26 +65,26 @@
values: {
image: {
repository: images.coredns.fullName
- tag: images.coredns.tag
+ tag: images.coredns.tag
pullPolicy: images.coredns.pullPolicy
}
replicaCount: 1
resources: {
limits: {
- cpu: "100m"
+ cpu: "100m"
memory: "128Mi"
}
requests: {
- cpu: "100m"
+ cpu: "100m"
memory: "128Mi"
}
}
rollingUpdate: {
maxUnavailable: 1
- maxSurge: "25%"
+ maxSurge: "25%"
}
terminationGracePeriodSeconds: 30
- serviceType: "LoadBalancer"
+ serviceType: "LoadBalancer"
service: {
name: "coredns"
annotations: {
@@ -93,7 +93,7 @@
}
serviceAccount: create: false
rbac: {
- create: false
+ create: false
pspEnable: false
}
isClusterService: false
@@ -107,12 +107,12 @@
name: "log"
},
{
- name: "health"
+ name: "health"
configBlock: "lameduck 5s"
},
{
name: "ready"
- }
+ },
]
}]
extraConfig: import: parameters: "\(_mountPath)/coredns.conf"
@@ -121,27 +121,27 @@
persistentVolumeClaim: claimName: volume.data.name
}]
extraVolumeMounts: [{
- name: volume.data.name
+ name: volume.data.name
mountPath: _mountPath
}]
livenessProbe: {
- enabled: true
+ enabled: true
initialDelaySeconds: 60
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 5
- successThreshold: 1
+ periodSeconds: 10
+ timeoutSeconds: 5
+ failureThreshold: 5
+ successThreshold: 1
}
readinessProbe: {
- enabled: true
+ enabled: true
initialDelaySeconds: 30
- periodSeconds: 10
- timeoutSeconds: 5
- failureThreshold: 5
- successThreshold: 1
+ periodSeconds: 10
+ timeoutSeconds: 5
+ failureThreshold: 5
+ successThreshold: 1
}
zoneFiles: []
- hpa: enabled: false
+ hpa: enabled: false
autoscaler: enabled: false
deployment: enabled: true
}
@@ -151,14 +151,14 @@
values: {
image: {
repository: images.api.fullName
- tag: images.api.tag
+ tag: images.api.tag
pullPolicy: images.api.pullPolicy
}
- config: "coredns.conf"
- db: "records.db"
- zone: networks.public.domain
- publicIP: strings.Join(global.publicIP, ",")
- privateIP: global.network.ingress
+ config: "coredns.conf"
+ db: "records.db"
+ zone: networks.public.domain
+ publicIP: strings.Join(global.publicIP, ",")
+ privateIP: global.network.ingress
nameserverIP: strings.Join(global.nameserverIP, ",")
service: type: "ClusterIP"
volume: {
@@ -170,19 +170,19 @@
"coredns-svc-cluster": {
chart: charts.service
values: {
- name: "dns"
- type: "LoadBalancer"
+ name: "dns"
+ type: "LoadBalancer"
protocol: "TCP"
ports: [{
- name: "udp-53"
- port: 53
- protocol: "UDP"
+ name: "udp-53"
+ port: 53
+ protocol: "UDP"
targetPort: 53
}]
targetPort: "http"
- selector:{
+ selector: {
"app.kubernetes.io/instance": "coredns"
- "app.kubernetes.io/name": "coredns"
+ "app.kubernetes.io/name": "coredns"
}
annotations: {
"metallb.universe.tf/loadBalancerIPs": global.network.dnsInClusterIP
@@ -192,21 +192,21 @@
"ipaddresspool-dns": {
chart: charts.ipAddressPool
values: {
- name: "\(global.id)-dns"
+ name: "\(global.id)-dns"
autoAssign: false
- from: global.network.dns
- to: global.network.dns
- namespace: "metallb-system"
+ from: global.network.dns
+ to: global.network.dns
+ namespace: "metallb-system"
}
}
"ipaddresspool-dns-in-cluster": {
chart: charts.ipAddressPool
values: {
- name: "\(global.id)-dns-in-cluster"
+ name: "\(global.id)-dns-in-cluster"
autoAssign: false
- from: global.network.dnsInClusterIP
- to: global.network.dnsInClusterIP
- namespace: "metallb-system"
+ from: global.network.dnsInClusterIP
+ to: global.network.dnsInClusterIP
+ namespace: "metallb-system"
}
}
}
diff --git a/core/installer/values-tmpl/env-manager.cue b/core/installer/values-tmpl/env-manager.cue
index dbde7de..78f99e6 100644
--- a/core/installer/values-tmpl/env-manager.cue
+++ b/core/installer/values-tmpl/env-manager.cue
@@ -3,31 +3,31 @@
)
input: {
- repoIP: string
- repoPort: number
- repoName: string
+ repoIP: string
+ repoPort: number
+ repoName: string
sshPrivateKey: string
}
-name: "env-manager"
+name: "env-manager"
namespace: "env-manager"
out: {
images: {
envManager: {
repository: "giolekva"
- name: "pcloud-installer"
- tag: "latest"
+ name: "pcloud-installer"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
envManager: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/env-manager"
+ branch: "main"
+ path: "charts/env-manager"
}
}
@@ -35,14 +35,14 @@
"env-manager": {
chart: charts.envManager
values: {
- repoIP: input.repoIP
- repoPort: input.repoPort
- repoName: input.repoName
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ repoIP: input.repoIP
+ repoPort: input.repoPort
+ repoName: input.repoName
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
clusterRoleName: "\(global.pcloudEnvName)-env-manager"
image: {
repository: images.envManager.fullName
- tag: images.envManager.tag
+ tag: images.envManager.tag
pullPolicy: images.envManager.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/etherpad.cue b/core/installer/values-tmpl/etherpad.cue
index a70b7cd..cf168fa 100644
--- a/core/installer/values-tmpl/etherpad.cue
+++ b/core/installer/values-tmpl/etherpad.cue
@@ -1,25 +1,25 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- auth: #Auth @name(Authentication)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ auth: #Auth @name(Authentication)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-name: "etherpad"
-namespace: "app-etherpad"
-readme: "Etherpad is a highly customizable open source online editor providing collaborative editing in really real-time."
+name: "etherpad"
+namespace: "app-etherpad"
+readme: "Etherpad is a highly customizable open source online editor providing collaborative editing in really real-time."
description: "Etherpad is a highly customizable open source online editor providing collaborative editing in really real-time."
icon: """
-<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 48 48"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M38.5 5.5h-29c-2.2 0-4 1.8-4 4v29c0 2.2 1.8 4 4 4h29c2.2 0 4-1.8 4-4v-29c0-2.2-1.8-4-4-4"/><circle cx="24" cy="24" r="13.9" fill="none" stroke="currentColor" stroke-miterlimit="7"/><path fill="none" stroke="currentColor" d="M14.5 5.5v37m19-37v37"/></svg>"""
+ <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 48 48"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M38.5 5.5h-29c-2.2 0-4 1.8-4 4v29c0 2.2 1.8 4 4 4h29c2.2 0 4-1.8 4-4v-29c0-2.2-1.8-4-4-4"/><circle cx="24" cy="24" r="13.9" fill="none" stroke="currentColor" stroke-miterlimit="7"/><path fill="none" stroke="currentColor" d="M14.5 5.5v37m19-37v37"/></svg>"""
_httpPortName: "http"
out: {
ingress: {
etherpad: {
- auth: input.auth
- network: input.network
+ auth: input.auth
+ network: input.network
subdomain: input.subdomain
service: {
name: "etherpad"
@@ -31,18 +31,18 @@
images: {
etherpad: {
repository: "etherpad"
- name: "etherpad"
- tag: "2.2.5"
+ name: "etherpad"
+ tag: "2.2.5"
pullPolicy: "IfNotPresent"
}
}
charts: {
etherpad: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/etherpad"
+ branch: "main"
+ path: "charts/etherpad"
}
}
@@ -56,22 +56,22 @@
helm: {
etherpad: {
chart: charts.etherpad
- info: "Installing etherpad server"
+ info: "Installing etherpad server"
values: {
image: {
repository: images.etherpad.fullName
- tag: images.etherpad.tag
+ tag: images.etherpad.tag
pullPolicy: images.etherpad.pullPolicy
}
- portName: _httpPortName
+ portName: _httpPortName
persistentVolumeClaimName: volume.data.name
db: {
- type: "postgres"
- host: "postgres-db.\(release.namespace).svc.cluster.local"
- port: 5432
- name: "postgres"
- user: "postgres"
- pass: "postgres"
+ type: "postgres"
+ host: "postgres-db.\(release.namespace).svc.cluster.local"
+ port: 5432
+ name: "postgres"
+ user: "postgres"
+ pass: "postgres"
charset: "utf8mb4"
}
}
diff --git a/core/installer/values-tmpl/fluxcd-reconciler.cue b/core/installer/values-tmpl/fluxcd-reconciler.cue
index fde9396..659a950 100644
--- a/core/installer/values-tmpl/fluxcd-reconciler.cue
+++ b/core/installer/values-tmpl/fluxcd-reconciler.cue
@@ -1,24 +1,24 @@
input: {}
-name: "fluxcd-reconciler"
+name: "fluxcd-reconciler"
namespace: "fluxcd-reconciler"
out: {
images: {
fluxcdReconciler: {
repository: "giolekva"
- name: "fluxcd-reconciler"
- tag: "latest"
+ name: "fluxcd-reconciler"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
fluxcdReconciler: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/fluxcd-reconciler"
+ branch: "main"
+ path: "charts/fluxcd-reconciler"
}
}
@@ -28,7 +28,7 @@
values: {
image: {
repository: images.fluxcdReconciler.fullName
- tag: images.fluxcdReconciler.tag
+ tag: images.fluxcdReconciler.tag
pullPolicy: images.fluxcdReconciler.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/gerrit.cue b/core/installer/values-tmpl/gerrit.cue
index 9742cdb..932f367 100644
--- a/core/installer/values-tmpl/gerrit.cue
+++ b/core/installer/values-tmpl/gerrit.cue
@@ -1,42 +1,42 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- key: #SSHKey
- sshPort: int @name(SSH Port) @role(port)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ key: #SSHKey
+ sshPort: int @name(SSH Port) @role(port)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Gerrit"
-namespace: "app-gerrit"
-readme: "gerrit"
+name: "Gerrit"
+namespace: "app-gerrit"
+readme: "gerrit"
description: "Gerrit Code Review is a web-based code review tool built on Git version control. Gerrit provides a framework you and your teams can use to review code before it becomes part of the code base. Gerrit works equally well in open source projects that limit the number of users who can approve changes (typical in open source software development) and in projects in which all contributors are trusted."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 37.05263261'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-11.29059363' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m20.91007091,3.11035315l-.40677547-.44522187c.00619982-.006201.47746668-.43902117.68457526-.67217354.1996669-.24555409.56179703-.8011513.56799921-.8073523l.50351019.32244483c-.02604351.02604351-.38817364.59404272-.62008623.86564032s-.71061876.71061876-.73046245.73666257h.00123949Zm2.60932297,17.51743602c-.01984369-.00619982-.40057565-.25175391-.60768422-.36213013-.22991143-.11154711-.46273235-.21699848-.69821676-.31624294l.35468845-1.01446206-1.48572655-.73046127-.47126449,1.43984054c-.29019943.00619982-1.18188444.08433271-2.50018743.63992992-1.58866109.66473157-2.79038804,1.69903731-2.80279005,1.70523714l-.23935309.20710857,1.0653084.03844552.03224451-.02604351c.006201-.01240201,1.18808545-.88548401,1.84785668-1.16948362.14882055-.0582892.34228763-.12277823.5493962-.16742357-.34848863.16742357-.73046127.37453214-.99461837.52335388-.32988562.1996669-.94253135.63248824-.96857486.65233193l-.31004312.21331076,1.12979743.02604351.03224451-.01240201c.0198425-.01240201,1.92474772-1.03306389,2.95781042-1.26001615l.32244512-.07813052c.23935427-.0582892.40677547-.10293454.69821676-.10293454.2579561,0,.60768422.03224333,1.13723792.11657604.65853175.09673235,1.09135073.2579561,1.09755291.26539778l.39437583.15502156-.5295537-.72302077-.01984369-.01240201.00868117-.00744404Zm-14.84982503-12.065638h-.05208702l-1.66059121,1.51797106v.04464652c-.02604351.43902117.12897805.85943932.42661916,1.18808545.29764111.32244512.69077626.50971119,1.12979683.52335269h.07069003c.87804233,0,1.5948621-.67837425,1.64074811-1.55021558.0374887-.90290667-.65442416-1.66979928-1.55641658-1.72507964l.00124067.00123949Zm-.07813112,3.02850045h-.06448843c-.19170127-.00438435-.37976864-.05320469-.5493962-.14261955.46794696.07532156.90835369-.24296393.98367584-.7109109.01272844-.07907552.01432452-.1595431.00474153-.23906095-.06419689-.46466491-.49097867-.79070078-.95617285-.73046127-.43424238.06072443-.75232622.4398538-.73666227.87804233-.0493023-.1478661-.0732039-.30301539-.07069003-.45886367l1.50556906-1.38279201c.74277694.07474203,1.29972245.71365481,1.27241697,1.45968304-.0345792.7442305-.65017228,1.32863287-1.39519402,1.32450399l.00620041.00247898Zm15.42526651-6.16117612l-.48490836-.32244512-.67837543.43902117-.65233193-.47126568-.497308.29764111.67217325.48490718-.69077508.44522217.49110818.29764111.66473157-.42041815.63992992.46506467.50971001-.28399961-.67217325-.48490718.69821912-.44646166Zm15.66337715,25.53267101c-.35468845-.34228645-.69077508-.68457526-1.04050557-1.03306389-.79630214-.80614711-1.57814907-1.62644429-2.34516705-2.46050124-.90996396-.98277224-1.78242858-1.99961393-2.61552279-3.04834414-.37553745-.46918054-.73095919-.95411256-1.06530722-1.45348322-.41339634-.64390149-.78257785-1.31514039-1.10499459-2.00908043-.34239052-.73667646-.66127566-1.48404945-.95617285-2.24099065.40057565.34228645.76890797.73046245,1.09755291,1.14344011.03224333-.35468845.07068885-.71061876.09673235-1.0727489l.03844552-.5295537c0-.05828802.01984369-.11037504-.01240201-.16122256-.02454382-.04479436-.05499414-.08608905-.09053253-.12277705-.19346707-.24555409-.43282134-.46506467-.66473157-.68457526-.31804304-.29794743-.64094706-.59066724-.96857486-.87804233l-.29764111-.2579561c-.04464534-.04464652-.09673235-.08433153-.14261955-.12277705-.05208702-.05208702-.07068885-.16122256-.09053253-.22571159l-.2579561-.79495029c1.00825987.47126568,1.83421518,1.22777045,2.60932297,2.00907925.00619982-.36213013.00619982-.71681977,0-1.0789499,0-.18726607,0-.37453214-.01240201-.56799921,0-.05208702.01240201-.16742357-.02604351-.21330958-.01984369-.03224451-.05208702-.05828802-.07068885-.09053253-.18106507-.19346707-.38817364-.35468964-.5878429-.51715169-.28399961-.23935309-.58164071-.45886367-.87184014-.67837425-.2579561-.19346707-.52335388-.38073314-.7875098-.56799921-.03224333-.02604351-.12897805-.06448902-.11037622-.09673354l.06448902-.13517905c.03844552-.05828802.02604351-.07069003.09053253-.04464652l.28399961.09673354c.66473157.2579561,1.2848178.60768422,1.8863022,1.00825987-.20820614-.74461962-.49853567-1.46378708-.86564032-2.1442583-.65563881-1.25890203-1.46959424-2.42878067-2.42205572-3.4811643-.62615595-.7038808-1.29947171-1.36435044-2.01528025-1.97683473-.36833232-.31004312-.7552641-.60768422-1.15583975-.87804233-.18726489-.12277705-.36833232-.24555409-.56799921-.36213013-.08433271-.04464593-.17486524-.09053253-.25175391-.15502156-.29764111-.23315267-.60024254-.46506467-.90408584-.70441776.39437583.16122256.77510779.34228763,1.13723792.55559721-.20710857-.32244512-.56179703-.5493962-.89788365-.71681977-.51418543-.25650845-1.05045934-.46611966-1.60230259-.62628724.18726489-.19966778.38817364-.38073285.57544089-.57544001.18726489-.19966778.36833232-.40677665.5431952-.62008623.21331076-.24555409.42041934-.49110818.62008623-.74906398l-2.70605533-1.69903628c-.1996669.4005758-.45886485.78130865-.7552641,1.12359627-.29764111.33608662-.64612974.60768452-.99461837.89168413-.31004312.2579558-.62628724.51715199-.93012935.77510779-.08433153.07068973-.15502156.14261984-.24555409.19966778-.03844552.03844522-.15502156.006201-.20710857.006201h-.39437464c-.49110818.01240171-.98221636.05208731-1.47332454.11657634-.09673354.006201-.18726607.0198428-.29020061.01240171l-.29020061-.0198428c-.22571159-.01240171-.45266266-.02604351-.67837425-.02604351-.47746668-.006201-.95617285,0-1.43984054.03844522-.40456023.03341748-.80618022.09600232-1.20172695.18726607-.39394768.09978762-.76465136.27545061-1.09135191.51715199-.32244512.23315267-.63992873.5295537-.83339581.87804233-.19346707.34228763-.28399961.74906428-.35468964,1.13723792-.21951058.0198425-.43902117.0198425-.65853175.02604351-.67978583.03606293-1.3523068.15773294-2.00163816.36213013-.81508789.25388636-1.56763764.67642986-2.20874732,1.24017246-.32830018.30005267-.62690964.63105596-.89168383.98841737-.03224451.03844552-.06448902.08433153-.10293425.11037563-.0198428.01240201-.04464623.02604351-.05828802.04464652-.02450449.04328876-.05272095.08436938-.08433182.12277705l-.21951058.35468964c-.2777986.47126568-.45886367.98221636-.63248794,1.49812856l-.07813082.19966808.05828802-.03224451c-.01893831.1114525-.03383025.22355549-.04464623.33608662l-.01240171.16742357v.09053253l-.11037533.0198425c-.2219529.04571925-.44169382.10158624-.6585316.16742357-.19552693.05895389-.38235909.14361185-.55559735.25175509-.17486436.10293454-.32244483.25175509-.47126553.39437464-.53470711.51039244-.92674,1.15166711-1.13723814,1.86025869C-.00047122,14.62163461-.05875932,15.26032385.07021861,15.84816557c.03224448.14882055.07813087.31004312.17486431.43282016.12277708.14882055.32988588.20710857.51715187.15502156.21951051-.05828802.41297744-.19966808.61388537-.30384211l.52335269-.26539659c.74906398-.36833114,1.53781386-.73666227,2.37741068-.86564032.05828802-.006201.16122256.11037504.21330958.14882055.08433182.06448902.16742327.12277705.24555409.17486406.18106507.11657604.36833114.21330958.55559721.29764111.43282016.18726607.89168383.29020061,1.35054809.38073314.83339581.17486406,1.67919363.28399961,2.53243194.29764111.34228763.006201.68457526,0,1.03306389-.02604351.36833114-.03224451.74286328-.08433153,1.11739542-.08433153.41297766-.006201.81975431.03844552,1.22777045.09053253.42041815.05208702.83959681.11037504,1.26001497.17486406.85943932.12897805,1.70523714.2777986,2.55103495.45886367-.18726607.29764111-.37453214.60024373-.55559721.90408584-.01240201.0198425-.12277705,0-.14882055,0-.06889702-.00619746-.13821155-.00619746-.20710857,0-.12277705,0-.25175509.01240201-.37453214.03224451-.34628049.04689132-.68643449.13130683-1.01446088.25175509-.81355331.30384211-1.55641658.8011513-2.19634532,1.38279201-.36833114.32244512-.71061876.67217325-1.00825987,1.0591074-.07769174.10364181-.15294943.20908372-.22571159.31624294.16742357-.03844552.34848863-.07068885.52335269-.11657604.10293454-.02604351.19346707-.04464534.29020061-.06448902.03224451-.01240201.04464652-.02604351.08433153-.04464534.36033003-.33479036.74230148-.64550526,1.14343892-.93012935.18726607-.12897805.37453214-.25175391.58164071-.35468845.2715976-.13517787.58164071-.21331076.87804233-.28399961-.5431952.29764111-1.12359642.57544089-1.6147046.96237268-.28399961.23315208-.5431952.48490836-.81355331.73046245l1.0851509-.17486524c.01240201,0,.0198425-.00619982.03844552-.01984369l.2777986-.15502156c.18726607-.10293454.38073314-.20710857.57543971-.30384329.39437464-.20710857.79495029-.40057565,1.20792795-.56179703.39437464-.15502156.79495029-.29764111,1.21412895-.37453214.36213013-.07813052.70441776-.08433271,1.0727489,0,.56179821.12277823,1.10499341.38073196,1.60230259.68457526.03224451.02604351.05828802.0582892.09053253.02604351.02604351-.02604351.16122256-.12277823.14882055-.15502156l-.29764111-.54939738c-.02604351-.05208702-.03844552-.08433271-.08433153-.11037622l-.21951058-.12897805c-.28953356-.16791321-.56980641-.3513106-.83959681-.5493962-.06448902-.03844552-.12897805-.06448902-.13517905-.14882055-.01240201-.07069003.0198425-.14882055.04464652-.21951058.05208702-.14882055.12897805-.28399961.21330958-.41297766.05828802-.09673354.12277705-.18106507.18106507-.2715976.02604351-.03224451.0198425-.03844552.05208702-.02604351l.19966808.05828802c.38817364.12897805.77510779.26539659,1.17568344.36213013.44522217.11657604.89788483.20710857,1.35674969.29020061l.07813052.0198425c-.09053253-.05208702-.14882174-.14882055-.21951058-.22571159-.03844552-.05208702-.0582892-.08433153-.12277823-.09673354l-.17486524-.03844552c-.12277823-.02604351-.23935427-.04464652-.36833232-.07813052-.43511464-.0892824-.86422461-.20567275-1.28481898-.34848863-.62132927-.20887792-1.25299907-.38562961-1.89250321-.5295537-.8031773-.17243002-1.610817-.32337238-2.4220569-.45266266-.41297766-.07069003-.82719481-.12277705-1.24017246-.18106507-.40961518-.06287106-.82115347-.11250393-1.23397146-.14882055-.89168383-.05208702-1.77592716.14882055-2.673812.13517905-.60024373-.006201-1.21412895-.09053253-1.80817168-.17486406l-.11657604-.01240201c.42041815-.15502156.82719481-.31004312,1.24017246-.47126568.39437464-.15502156.78130879-.31624412,1.16948243-.47746668.20710857-.08433153.41297766-.17486406.61388523-.2579561.18726607-.08433153.37453214-.16742357.5431952-.28399961.67837425-.45886367,1.11739542-1.20172695,1.6147046-1.83421518.45266266-.59404272.96857486-1.15584093,1.63454711-1.49812856.21330958-.11037504.43282016-.19346707.66473275-.2579561-.47126568-.72302077-.91028684-1.53781357-1.03306389-2.40345389l.15502156.05828802c.05828802.0198425.11037504.02604351.12277705.07813112l.04464652.21950999c.04464652.14882055.09053253.29020061.14261955.43282016.12277705.31624412.26539659.62008623.43282016.91028684.36978352.65215334.79332405,1.27232236,1.26621597,1.85405769.89168383,1.13723792,1.89250321,2.1578998,2.86851856,3.21080619.23935309.2579561.45886367.5357547.67837425.81355331.25175509.31004312.50351019.62008623.7552641.92392834.1996669.23315208.38817364.47126568.5878429.70441776l.15502156.18726607c.02604351.03224451.06448902.04464652.10293454.05828802,1.00081819.49730919,2.00908043.99461837,3.00989862,1.47952673.72302077.34848863,1.43983936.69821676,2.17030181,1.03306389.38817364.18106507.77510779.36213013,1.17568344.5295537.04464534.01984369.10293454.04464534.16122138.06448902.02604351.01240201.04464534.02604351.07813052.03844552l.02604351.07813052c.04464534.12277823.08433271.23935427.12277823.36213013.08433271.23315208.16122138.45886485.24555409.68457526.54939738,1.51177006,1.14963993,3.00369643,1.89250202,4.42493633.578322,1.08265063,1.1791086,2.15315236,1.80196949,3.21080737.66473157,1.12359642,1.343107,2.23479083,2.02768226,3.34598525.54939738.88548401,1.09755291,1.77592598,1.66679162,2.65521017.23935427.37453214.47746668.76270578.72302077,1.13723792l.10293454.15502156,1.60230259-2.35136687c.01240201-.01240201.13517787-.16742357.12277823-.18106507l-.2579561-.40057565c-.47746668-.74286209-.96237268-1.48572655-1.43983936-2.22859101l-1.54401576-2.39601221,1.0851509,1.31830299,1.84785668,2.23479083c.1996669.23935427.38817364.47746668.58164071.72302077.36213013-.66473157.73046245-1.32450517,1.09755291-1.98303692.14261955-.2715976.29019943-.54939738.4390188-.81355331l-.00495796-.01239964ZM20.05063278,1.84413718c.50971001-.40677665.93012935-.93012935,1.25257447-1.49812827l1.95079123,1.23397175.29764111.18106507c-.40677547.49730919-.81975313,1.00081908-1.2848178,1.44728133-.06097634.05293118-.11933415.10880527-.17486524.16742327-.03224333.04464623-.07813052.08433182-.11657604.12277705l-.05208702.06448902c-.03844552-.01240171-.07813052-.02604351-.11657604-.03224451-.23935427-.06448902-.47746668-.12897805-.71681859-.18106507-.48385337-.10967516-.97316382-.19371042-1.46588405-.25175509-.31624412-.03844522-.63992873-.06448902-.95617285-.09673354.45266266-.38817394.91772734-.77510779,1.38279319-1.15584064l-.00000237-.00124038Zm-2.90076426,2.26703535c.38817364-.16122256.8011513-.24555409,1.20792795-.31624412.81333332-.13418557,1.6412555-.15588524,2.46050242-.06448902.5878429.06448902,1.16328143.17486406,1.72508082.34848863l-.23315208.18726607-.37453214-.10293454c-.23315208-.04464593-.46506467-.09673354-.69821676-.13517905-.41077543-.06070432-.8250115-.09508601-1.24017246-.10293454-.76375012-.01441855-1.52604905.07231982-2.26703535.2579561-.50273314.13067111-.99001049.31485561-1.45348204.5493962-.47126568.2579561-.91772734.57543971-1.28481898.96237386-.22622016.22823196-.4255346.4816405-.59404272.75526528-.09673354.14882055-.17486406.29764111-.25175509.45266266-.03753719.07754153-.06985385.15750409-.09673354.23935309l-.05208702.12277705c-.00516494.02191581-.01179409.04346025-.0198425.06448902l-.11037504-.0198425-.13517905-.01240201c.38817364-1.19552594,1.26001497-2.13185629,2.34516587-2.73210002.34228763-.18726607.70441776-.35468964,1.0727489-.45886367l-.00000118.00496151Zm-6.49726393.61388523c.43902117-.63248824,1.13723792-1.0727489,1.8863022-1.23397146.8271948-.16122256,1.67919363-.19346678,2.51879044-.17486436-.86564032.21951058-1.73748165.54319549-2.46050242,1.0789502-.56594483.12955226-1.09433828.38801929-1.54401457.75526528-.14516831.12120698-.28113388.2530277-.40677665.39437464-.0588983.06001006-.11281735.12471257-.16122256.19346707-.0198425.0198425-.04464652.04464593-.05828802.07813112h-.14261955c.03844552-.21951058.09053253-.44522217.16122256-.65853175.05208702-.14882055.11037504-.29764111.19966808-.43282016l.0074405-.00000059Zm1.45348204.09673354c-.23729515.23928035-.45347638.49861373-.64612974.77510779-.07813052.11037563-.16122256.25175509-.29764111.31004312-.14261955.06448902-.32244512-.006201-.46506467-.04464593.37108569-.46297185.85614544-.82153135,1.40759603-1.04050497h.00123949ZM3.81181355,9.56917155c.12897805-.26539659.2976414-.52335269.45266296-.76890678.02604351-.04464652.09053253-.07813052.12277705-.10293454.08433182-.05828802.16122227-.11657604.23935338-.18106507.5097106-.36833114,1.02686288-.73666227,1.55021558-1.0789499.2777986-.18106507.5493962-.35468964.83339581-.50971119.29764111-.16742357.60768481-.29764111.93012935-.40677665.57867031-.17905976,1.17035173-.31298572,1.76972616-.40057565.28399902-.03844552.59404213-.09673354.87804174-.02604351-.5493962.31004312-1.09135191.62008623-1.64074811.92392834-.56179821.31624412-1.13723792.60768422-1.71143814.91028684-.5493962.29764111-1.09135191.62008623-1.62090561.95617285-.55559721.34228763-1.1049937.69077626-1.65314982,1.04050438-.13517876.08433153-.26539689.17486406-.40057565.2579561.07813082-.20710857.14882055-.42041815.25175509-.61388523h-.00123979Zm1.66679162,5.05122238c-.04464593.09053253-.21951058.07069003-.31004312.07069003-.15502156,0-.30384211,0-.45886367.006201-.42560113.02528184-.8463806.10360514-1.25257417.23315208-.7875095.23935309-1.52417192.62008623-2.26083434.99461837-.16122241.09053253-.33608677.22571159-.52335277.2715976-.10319415.02663487-.21197917-.01459359-.27159775-.10293454-.05594793-.10200492-.09094479-.2141635-.10293432-.32988562-.04154617-.19982775-.06109201-.40360223-.05828809-.60768422,0-.5493962.12897794-1.09135191.35468934-1.58866109.16122241-.34848863.36833121-.66473275.61388537-.94997185.25175502-.29020061.54319557-.58164071.89168405-.74286328.58784172-.2715976,1.28481869-.35468964,1.92474772-.38817364.12277705-.01240201.23935338-.01240201.36213043-.01240201.16122256,0,.35468934-.02604351.5097109.03224451.12277734.04464652.19966778.17486406.2517548.28399961.07069003.17486406.12277705.37453214.16122256.55559721.10293454.43282016.20710857.86564032.23935309,1.31086249.0198425.19346707.03224451.39437464.006201.58784172-.01240201.12277705-.0198425.2579561-.07813112.37453214l.00124008.00123949Zm4.67669024-3.26785472c-.32191467.20096789-.6640036.36764871-1.02066188.49730919-.35418402.1315481-.71942294.2311592-1.09135191.29764111-.16122256.0198425-.32244512.04464652-.48490718.03224451-.16742357,0-.31624412-.05828802-.48490718-.11037504-.32637412-.09433498-.64220606-.22191387-.94253135-.38073314-.11292439-.06073625-.21015763-.14693057-.28399961-.25175509-.04557969-.08727414-.05918097-.18774744-.03844552-.28399961.0198425-.38073314.15502156-.75526528.33608662-1.09135191.31004312-.56799921.79495029-1.01446088,1.38899302-1.28481898,1.45348204-.65233074,3.08058865-.04464652,4.31456011.81355331l.13517905.09673354c-.2579561.2777986-.51715169.5357547-.78130879.79495029-.32988562.31004312-.67217325.62628724-1.05290639.87184133l.006201-.00123949Zm3.57789784-3.18476268c-.78077184-.34143075-1.53056113-.74972779-2.24099184-1.22032996.74286328.31004312,1.54401457.49730919,2.33772537.61388523.42661916.05828802.86564032.11657604,1.29225948.12897805.46506467.0198425.93633035-.03224451,1.38899302-.12277705.90408584-.16742357,1.76972616-.50351019,2.59071996-.91028684.82099498-.40677665,1.59486092-.88548283,2.33772537-1.42123753.35468845-.25175509.71061876-.51715169,1.04670539-.8011513.03224333-.02604351.28399961-.2715976.30384329-.2579561l.06448902.05208702.89168383.69077626c.5431952.42041815,1.0851509.83959681,1.63454829,1.26001497-1.50363058.54005862-3.02220601,1.03756828-4.55391438,1.49192756-.8594405.2579561-1.71143814.49730919-2.58327947.69821735-.68457526.16122256-1.38279201.31004252-2.07976928.34228704-.83959681.03844552-1.66059061-.21951058-2.42825791-.54319579l-.00248017-.0012389Zm14.63031445,6.51710643c.12897805.03224451.24555409.07813052.35468845.11037504l.16122138.05828802c.02604351.006201.04464534.02604351.07068885.03224451l.03224333.09673354c.07813052.24555409.14882174.47746668.23315208.71681977-.24555409-.21330958-.497308-.42041815-.74286209-.62628724l-.14882174-.12277705c-.03844552-.02604351-.07813052-.03844552-.05208702-.07813052l.09673235-.18726607h-.0049556Zm-1.10499459,2.38361139l.0582892-.10293454.04464534-.07069003c.01984369-.03224451.01240201-.03844552.05208702-.0198425.21331076.08433153.42661916.18106507.63248824.2777986.40057565.18106507.7875098.38073314,1.16328143.60024373.18106507.11037504.36213013.22571159.53575352.34228763l.24555409.17486406.12277823.09053253c.05208702.04464652.07068885.10293454.09673235.16742238.16742357.46506467.36213013.93632917.55559721,1.39519402.12897805.31624294.2715976.62628605.41297766.93632917-.49014545-.60819752-1.01871039-1.18440245-1.58245891-1.72508082-.56908259-.56757817-1.16417557-1.10845996-1.78336766-1.62090561l-.53575352-.43902117-.0186042-.00619746Zm6.21450381,10.62579745l-.1996669.14882174.01240201.02604351.10293454.15502156.45266266.69077508,1.49192637,2.31912354c.51715169.79495148,1.0268617,1.59486092,1.54401576,2.38981239l.50971001.79495148.13517787.21951058c.02113995.02331852.03869389.04964825.05208702.07813052-.43282134.63248824-.86564032,1.27241579-1.29846167,1.90490403-.04464534.0582892-.08433271.12277823-.12277823.18106507-.39437583-.61388641-.7875098-1.22777045-1.18188326-1.84785668-.65853175-1.04670539-1.31086131-2.11201261-1.95699105-3.16492018-.7160782-1.16891354-1.41396616-2.3488737-2.09341078-3.53945232-.63248824-1.11739423-1.24017246-2.25463452-1.74988247-3.43651778-.4903607-1.15152755-.93632207-2.32145824-1.33690482-3.50720899.8011513.32244512,1.62090442.60768422,2.44810159.86564032.23935427.07068885.47746668.14882174.71681859.20710857l.10293454.03224333c.01240201,0,.02604351-.06448902.03224333-.08433271.03224333-.10293454.05208702-.21331076.07813052-.32244512.04464534-.20710857.08433271-.42041934.11657604-.62628605.34228645.70441894.72302077,1.39519402,1.16328143,2.04132376.35468845.52335388.73666227,1.0268617,1.13723792,1.52417207.8640815,1.08055958,1.76924361,2.12762215,2.71349701,3.13887667.76890797.81355331,1.54401576,1.6283461,2.33152319,2.42205572l.63992992.63992992c.01240201.01240201.06448902.05208702.06448902.07068885l-.05208702.08433271-.24555409.45886485-.97477468,1.76352634c-.29764111-.36213013-.59404272-.71681859-.89168383-1.0851509l-1.86025869-2.25463452c-.52335388-.63992992-1.05290757-1.27861798-1.57625909-1.9185479l-.31004312-.36833232.00496033-.00123713Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 37.05263261'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-11.29059363' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m20.91007091,3.11035315l-.40677547-.44522187c.00619982-.006201.47746668-.43902117.68457526-.67217354.1996669-.24555409.56179703-.8011513.56799921-.8073523l.50351019.32244483c-.02604351.02604351-.38817364.59404272-.62008623.86564032s-.71061876.71061876-.73046245.73666257h.00123949Zm2.60932297,17.51743602c-.01984369-.00619982-.40057565-.25175391-.60768422-.36213013-.22991143-.11154711-.46273235-.21699848-.69821676-.31624294l.35468845-1.01446206-1.48572655-.73046127-.47126449,1.43984054c-.29019943.00619982-1.18188444.08433271-2.50018743.63992992-1.58866109.66473157-2.79038804,1.69903731-2.80279005,1.70523714l-.23935309.20710857,1.0653084.03844552.03224451-.02604351c.006201-.01240201,1.18808545-.88548401,1.84785668-1.16948362.14882055-.0582892.34228763-.12277823.5493962-.16742357-.34848863.16742357-.73046127.37453214-.99461837.52335388-.32988562.1996669-.94253135.63248824-.96857486.65233193l-.31004312.21331076,1.12979743.02604351.03224451-.01240201c.0198425-.01240201,1.92474772-1.03306389,2.95781042-1.26001615l.32244512-.07813052c.23935427-.0582892.40677547-.10293454.69821676-.10293454.2579561,0,.60768422.03224333,1.13723792.11657604.65853175.09673235,1.09135073.2579561,1.09755291.26539778l.39437583.15502156-.5295537-.72302077-.01984369-.01240201.00868117-.00744404Zm-14.84982503-12.065638h-.05208702l-1.66059121,1.51797106v.04464652c-.02604351.43902117.12897805.85943932.42661916,1.18808545.29764111.32244512.69077626.50971119,1.12979683.52335269h.07069003c.87804233,0,1.5948621-.67837425,1.64074811-1.55021558.0374887-.90290667-.65442416-1.66979928-1.55641658-1.72507964l.00124067.00123949Zm-.07813112,3.02850045h-.06448843c-.19170127-.00438435-.37976864-.05320469-.5493962-.14261955.46794696.07532156.90835369-.24296393.98367584-.7109109.01272844-.07907552.01432452-.1595431.00474153-.23906095-.06419689-.46466491-.49097867-.79070078-.95617285-.73046127-.43424238.06072443-.75232622.4398538-.73666227.87804233-.0493023-.1478661-.0732039-.30301539-.07069003-.45886367l1.50556906-1.38279201c.74277694.07474203,1.29972245.71365481,1.27241697,1.45968304-.0345792.7442305-.65017228,1.32863287-1.39519402,1.32450399l.00620041.00247898Zm15.42526651-6.16117612l-.48490836-.32244512-.67837543.43902117-.65233193-.47126568-.497308.29764111.67217325.48490718-.69077508.44522217.49110818.29764111.66473157-.42041815.63992992.46506467.50971001-.28399961-.67217325-.48490718.69821912-.44646166Zm15.66337715,25.53267101c-.35468845-.34228645-.69077508-.68457526-1.04050557-1.03306389-.79630214-.80614711-1.57814907-1.62644429-2.34516705-2.46050124-.90996396-.98277224-1.78242858-1.99961393-2.61552279-3.04834414-.37553745-.46918054-.73095919-.95411256-1.06530722-1.45348322-.41339634-.64390149-.78257785-1.31514039-1.10499459-2.00908043-.34239052-.73667646-.66127566-1.48404945-.95617285-2.24099065.40057565.34228645.76890797.73046245,1.09755291,1.14344011.03224333-.35468845.07068885-.71061876.09673235-1.0727489l.03844552-.5295537c0-.05828802.01984369-.11037504-.01240201-.16122256-.02454382-.04479436-.05499414-.08608905-.09053253-.12277705-.19346707-.24555409-.43282134-.46506467-.66473157-.68457526-.31804304-.29794743-.64094706-.59066724-.96857486-.87804233l-.29764111-.2579561c-.04464534-.04464652-.09673235-.08433153-.14261955-.12277705-.05208702-.05208702-.07068885-.16122256-.09053253-.22571159l-.2579561-.79495029c1.00825987.47126568,1.83421518,1.22777045,2.60932297,2.00907925.00619982-.36213013.00619982-.71681977,0-1.0789499,0-.18726607,0-.37453214-.01240201-.56799921,0-.05208702.01240201-.16742357-.02604351-.21330958-.01984369-.03224451-.05208702-.05828802-.07068885-.09053253-.18106507-.19346707-.38817364-.35468964-.5878429-.51715169-.28399961-.23935309-.58164071-.45886367-.87184014-.67837425-.2579561-.19346707-.52335388-.38073314-.7875098-.56799921-.03224333-.02604351-.12897805-.06448902-.11037622-.09673354l.06448902-.13517905c.03844552-.05828802.02604351-.07069003.09053253-.04464652l.28399961.09673354c.66473157.2579561,1.2848178.60768422,1.8863022,1.00825987-.20820614-.74461962-.49853567-1.46378708-.86564032-2.1442583-.65563881-1.25890203-1.46959424-2.42878067-2.42205572-3.4811643-.62615595-.7038808-1.29947171-1.36435044-2.01528025-1.97683473-.36833232-.31004312-.7552641-.60768422-1.15583975-.87804233-.18726489-.12277705-.36833232-.24555409-.56799921-.36213013-.08433271-.04464593-.17486524-.09053253-.25175391-.15502156-.29764111-.23315267-.60024254-.46506467-.90408584-.70441776.39437583.16122256.77510779.34228763,1.13723792.55559721-.20710857-.32244512-.56179703-.5493962-.89788365-.71681977-.51418543-.25650845-1.05045934-.46611966-1.60230259-.62628724.18726489-.19966778.38817364-.38073285.57544089-.57544001.18726489-.19966778.36833232-.40677665.5431952-.62008623.21331076-.24555409.42041934-.49110818.62008623-.74906398l-2.70605533-1.69903628c-.1996669.4005758-.45886485.78130865-.7552641,1.12359627-.29764111.33608662-.64612974.60768452-.99461837.89168413-.31004312.2579558-.62628724.51715199-.93012935.77510779-.08433153.07068973-.15502156.14261984-.24555409.19966778-.03844552.03844522-.15502156.006201-.20710857.006201h-.39437464c-.49110818.01240171-.98221636.05208731-1.47332454.11657634-.09673354.006201-.18726607.0198428-.29020061.01240171l-.29020061-.0198428c-.22571159-.01240171-.45266266-.02604351-.67837425-.02604351-.47746668-.006201-.95617285,0-1.43984054.03844522-.40456023.03341748-.80618022.09600232-1.20172695.18726607-.39394768.09978762-.76465136.27545061-1.09135191.51715199-.32244512.23315267-.63992873.5295537-.83339581.87804233-.19346707.34228763-.28399961.74906428-.35468964,1.13723792-.21951058.0198425-.43902117.0198425-.65853175.02604351-.67978583.03606293-1.3523068.15773294-2.00163816.36213013-.81508789.25388636-1.56763764.67642986-2.20874732,1.24017246-.32830018.30005267-.62690964.63105596-.89168383.98841737-.03224451.03844552-.06448902.08433153-.10293425.11037563-.0198428.01240201-.04464623.02604351-.05828802.04464652-.02450449.04328876-.05272095.08436938-.08433182.12277705l-.21951058.35468964c-.2777986.47126568-.45886367.98221636-.63248794,1.49812856l-.07813082.19966808.05828802-.03224451c-.01893831.1114525-.03383025.22355549-.04464623.33608662l-.01240171.16742357v.09053253l-.11037533.0198425c-.2219529.04571925-.44169382.10158624-.6585316.16742357-.19552693.05895389-.38235909.14361185-.55559735.25175509-.17486436.10293454-.32244483.25175509-.47126553.39437464-.53470711.51039244-.92674,1.15166711-1.13723814,1.86025869C-.00047122,14.62163461-.05875932,15.26032385.07021861,15.84816557c.03224448.14882055.07813087.31004312.17486431.43282016.12277708.14882055.32988588.20710857.51715187.15502156.21951051-.05828802.41297744-.19966808.61388537-.30384211l.52335269-.26539659c.74906398-.36833114,1.53781386-.73666227,2.37741068-.86564032.05828802-.006201.16122256.11037504.21330958.14882055.08433182.06448902.16742327.12277705.24555409.17486406.18106507.11657604.36833114.21330958.55559721.29764111.43282016.18726607.89168383.29020061,1.35054809.38073314.83339581.17486406,1.67919363.28399961,2.53243194.29764111.34228763.006201.68457526,0,1.03306389-.02604351.36833114-.03224451.74286328-.08433153,1.11739542-.08433153.41297766-.006201.81975431.03844552,1.22777045.09053253.42041815.05208702.83959681.11037504,1.26001497.17486406.85943932.12897805,1.70523714.2777986,2.55103495.45886367-.18726607.29764111-.37453214.60024373-.55559721.90408584-.01240201.0198425-.12277705,0-.14882055,0-.06889702-.00619746-.13821155-.00619746-.20710857,0-.12277705,0-.25175509.01240201-.37453214.03224451-.34628049.04689132-.68643449.13130683-1.01446088.25175509-.81355331.30384211-1.55641658.8011513-2.19634532,1.38279201-.36833114.32244512-.71061876.67217325-1.00825987,1.0591074-.07769174.10364181-.15294943.20908372-.22571159.31624294.16742357-.03844552.34848863-.07068885.52335269-.11657604.10293454-.02604351.19346707-.04464534.29020061-.06448902.03224451-.01240201.04464652-.02604351.08433153-.04464534.36033003-.33479036.74230148-.64550526,1.14343892-.93012935.18726607-.12897805.37453214-.25175391.58164071-.35468845.2715976-.13517787.58164071-.21331076.87804233-.28399961-.5431952.29764111-1.12359642.57544089-1.6147046.96237268-.28399961.23315208-.5431952.48490836-.81355331.73046245l1.0851509-.17486524c.01240201,0,.0198425-.00619982.03844552-.01984369l.2777986-.15502156c.18726607-.10293454.38073314-.20710857.57543971-.30384329.39437464-.20710857.79495029-.40057565,1.20792795-.56179703.39437464-.15502156.79495029-.29764111,1.21412895-.37453214.36213013-.07813052.70441776-.08433271,1.0727489,0,.56179821.12277823,1.10499341.38073196,1.60230259.68457526.03224451.02604351.05828802.0582892.09053253.02604351.02604351-.02604351.16122256-.12277823.14882055-.15502156l-.29764111-.54939738c-.02604351-.05208702-.03844552-.08433271-.08433153-.11037622l-.21951058-.12897805c-.28953356-.16791321-.56980641-.3513106-.83959681-.5493962-.06448902-.03844552-.12897805-.06448902-.13517905-.14882055-.01240201-.07069003.0198425-.14882055.04464652-.21951058.05208702-.14882055.12897805-.28399961.21330958-.41297766.05828802-.09673354.12277705-.18106507.18106507-.2715976.02604351-.03224451.0198425-.03844552.05208702-.02604351l.19966808.05828802c.38817364.12897805.77510779.26539659,1.17568344.36213013.44522217.11657604.89788483.20710857,1.35674969.29020061l.07813052.0198425c-.09053253-.05208702-.14882174-.14882055-.21951058-.22571159-.03844552-.05208702-.0582892-.08433153-.12277823-.09673354l-.17486524-.03844552c-.12277823-.02604351-.23935427-.04464652-.36833232-.07813052-.43511464-.0892824-.86422461-.20567275-1.28481898-.34848863-.62132927-.20887792-1.25299907-.38562961-1.89250321-.5295537-.8031773-.17243002-1.610817-.32337238-2.4220569-.45266266-.41297766-.07069003-.82719481-.12277705-1.24017246-.18106507-.40961518-.06287106-.82115347-.11250393-1.23397146-.14882055-.89168383-.05208702-1.77592716.14882055-2.673812.13517905-.60024373-.006201-1.21412895-.09053253-1.80817168-.17486406l-.11657604-.01240201c.42041815-.15502156.82719481-.31004312,1.24017246-.47126568.39437464-.15502156.78130879-.31624412,1.16948243-.47746668.20710857-.08433153.41297766-.17486406.61388523-.2579561.18726607-.08433153.37453214-.16742357.5431952-.28399961.67837425-.45886367,1.11739542-1.20172695,1.6147046-1.83421518.45266266-.59404272.96857486-1.15584093,1.63454711-1.49812856.21330958-.11037504.43282016-.19346707.66473275-.2579561-.47126568-.72302077-.91028684-1.53781357-1.03306389-2.40345389l.15502156.05828802c.05828802.0198425.11037504.02604351.12277705.07813112l.04464652.21950999c.04464652.14882055.09053253.29020061.14261955.43282016.12277705.31624412.26539659.62008623.43282016.91028684.36978352.65215334.79332405,1.27232236,1.26621597,1.85405769.89168383,1.13723792,1.89250321,2.1578998,2.86851856,3.21080619.23935309.2579561.45886367.5357547.67837425.81355331.25175509.31004312.50351019.62008623.7552641.92392834.1996669.23315208.38817364.47126568.5878429.70441776l.15502156.18726607c.02604351.03224451.06448902.04464652.10293454.05828802,1.00081819.49730919,2.00908043.99461837,3.00989862,1.47952673.72302077.34848863,1.43983936.69821676,2.17030181,1.03306389.38817364.18106507.77510779.36213013,1.17568344.5295537.04464534.01984369.10293454.04464534.16122138.06448902.02604351.01240201.04464534.02604351.07813052.03844552l.02604351.07813052c.04464534.12277823.08433271.23935427.12277823.36213013.08433271.23315208.16122138.45886485.24555409.68457526.54939738,1.51177006,1.14963993,3.00369643,1.89250202,4.42493633.578322,1.08265063,1.1791086,2.15315236,1.80196949,3.21080737.66473157,1.12359642,1.343107,2.23479083,2.02768226,3.34598525.54939738.88548401,1.09755291,1.77592598,1.66679162,2.65521017.23935427.37453214.47746668.76270578.72302077,1.13723792l.10293454.15502156,1.60230259-2.35136687c.01240201-.01240201.13517787-.16742357.12277823-.18106507l-.2579561-.40057565c-.47746668-.74286209-.96237268-1.48572655-1.43983936-2.22859101l-1.54401576-2.39601221,1.0851509,1.31830299,1.84785668,2.23479083c.1996669.23935427.38817364.47746668.58164071.72302077.36213013-.66473157.73046245-1.32450517,1.09755291-1.98303692.14261955-.2715976.29019943-.54939738.4390188-.81355331l-.00495796-.01239964ZM20.05063278,1.84413718c.50971001-.40677665.93012935-.93012935,1.25257447-1.49812827l1.95079123,1.23397175.29764111.18106507c-.40677547.49730919-.81975313,1.00081908-1.2848178,1.44728133-.06097634.05293118-.11933415.10880527-.17486524.16742327-.03224333.04464623-.07813052.08433182-.11657604.12277705l-.05208702.06448902c-.03844552-.01240171-.07813052-.02604351-.11657604-.03224451-.23935427-.06448902-.47746668-.12897805-.71681859-.18106507-.48385337-.10967516-.97316382-.19371042-1.46588405-.25175509-.31624412-.03844522-.63992873-.06448902-.95617285-.09673354.45266266-.38817394.91772734-.77510779,1.38279319-1.15584064l-.00000237-.00124038Zm-2.90076426,2.26703535c.38817364-.16122256.8011513-.24555409,1.20792795-.31624412.81333332-.13418557,1.6412555-.15588524,2.46050242-.06448902.5878429.06448902,1.16328143.17486406,1.72508082.34848863l-.23315208.18726607-.37453214-.10293454c-.23315208-.04464593-.46506467-.09673354-.69821676-.13517905-.41077543-.06070432-.8250115-.09508601-1.24017246-.10293454-.76375012-.01441855-1.52604905.07231982-2.26703535.2579561-.50273314.13067111-.99001049.31485561-1.45348204.5493962-.47126568.2579561-.91772734.57543971-1.28481898.96237386-.22622016.22823196-.4255346.4816405-.59404272.75526528-.09673354.14882055-.17486406.29764111-.25175509.45266266-.03753719.07754153-.06985385.15750409-.09673354.23935309l-.05208702.12277705c-.00516494.02191581-.01179409.04346025-.0198425.06448902l-.11037504-.0198425-.13517905-.01240201c.38817364-1.19552594,1.26001497-2.13185629,2.34516587-2.73210002.34228763-.18726607.70441776-.35468964,1.0727489-.45886367l-.00000118.00496151Zm-6.49726393.61388523c.43902117-.63248824,1.13723792-1.0727489,1.8863022-1.23397146.8271948-.16122256,1.67919363-.19346678,2.51879044-.17486436-.86564032.21951058-1.73748165.54319549-2.46050242,1.0789502-.56594483.12955226-1.09433828.38801929-1.54401457.75526528-.14516831.12120698-.28113388.2530277-.40677665.39437464-.0588983.06001006-.11281735.12471257-.16122256.19346707-.0198425.0198425-.04464652.04464593-.05828802.07813112h-.14261955c.03844552-.21951058.09053253-.44522217.16122256-.65853175.05208702-.14882055.11037504-.29764111.19966808-.43282016l.0074405-.00000059Zm1.45348204.09673354c-.23729515.23928035-.45347638.49861373-.64612974.77510779-.07813052.11037563-.16122256.25175509-.29764111.31004312-.14261955.06448902-.32244512-.006201-.46506467-.04464593.37108569-.46297185.85614544-.82153135,1.40759603-1.04050497h.00123949ZM3.81181355,9.56917155c.12897805-.26539659.2976414-.52335269.45266296-.76890678.02604351-.04464652.09053253-.07813052.12277705-.10293454.08433182-.05828802.16122227-.11657604.23935338-.18106507.5097106-.36833114,1.02686288-.73666227,1.55021558-1.0789499.2777986-.18106507.5493962-.35468964.83339581-.50971119.29764111-.16742357.60768481-.29764111.93012935-.40677665.57867031-.17905976,1.17035173-.31298572,1.76972616-.40057565.28399902-.03844552.59404213-.09673354.87804174-.02604351-.5493962.31004312-1.09135191.62008623-1.64074811.92392834-.56179821.31624412-1.13723792.60768422-1.71143814.91028684-.5493962.29764111-1.09135191.62008623-1.62090561.95617285-.55559721.34228763-1.1049937.69077626-1.65314982,1.04050438-.13517876.08433153-.26539689.17486406-.40057565.2579561.07813082-.20710857.14882055-.42041815.25175509-.61388523h-.00123979Zm1.66679162,5.05122238c-.04464593.09053253-.21951058.07069003-.31004312.07069003-.15502156,0-.30384211,0-.45886367.006201-.42560113.02528184-.8463806.10360514-1.25257417.23315208-.7875095.23935309-1.52417192.62008623-2.26083434.99461837-.16122241.09053253-.33608677.22571159-.52335277.2715976-.10319415.02663487-.21197917-.01459359-.27159775-.10293454-.05594793-.10200492-.09094479-.2141635-.10293432-.32988562-.04154617-.19982775-.06109201-.40360223-.05828809-.60768422,0-.5493962.12897794-1.09135191.35468934-1.58866109.16122241-.34848863.36833121-.66473275.61388537-.94997185.25175502-.29020061.54319557-.58164071.89168405-.74286328.58784172-.2715976,1.28481869-.35468964,1.92474772-.38817364.12277705-.01240201.23935338-.01240201.36213043-.01240201.16122256,0,.35468934-.02604351.5097109.03224451.12277734.04464652.19966778.17486406.2517548.28399961.07069003.17486406.12277705.37453214.16122256.55559721.10293454.43282016.20710857.86564032.23935309,1.31086249.0198425.19346707.03224451.39437464.006201.58784172-.01240201.12277705-.0198425.2579561-.07813112.37453214l.00124008.00123949Zm4.67669024-3.26785472c-.32191467.20096789-.6640036.36764871-1.02066188.49730919-.35418402.1315481-.71942294.2311592-1.09135191.29764111-.16122256.0198425-.32244512.04464652-.48490718.03224451-.16742357,0-.31624412-.05828802-.48490718-.11037504-.32637412-.09433498-.64220606-.22191387-.94253135-.38073314-.11292439-.06073625-.21015763-.14693057-.28399961-.25175509-.04557969-.08727414-.05918097-.18774744-.03844552-.28399961.0198425-.38073314.15502156-.75526528.33608662-1.09135191.31004312-.56799921.79495029-1.01446088,1.38899302-1.28481898,1.45348204-.65233074,3.08058865-.04464652,4.31456011.81355331l.13517905.09673354c-.2579561.2777986-.51715169.5357547-.78130879.79495029-.32988562.31004312-.67217325.62628724-1.05290639.87184133l.006201-.00123949Zm3.57789784-3.18476268c-.78077184-.34143075-1.53056113-.74972779-2.24099184-1.22032996.74286328.31004312,1.54401457.49730919,2.33772537.61388523.42661916.05828802.86564032.11657604,1.29225948.12897805.46506467.0198425.93633035-.03224451,1.38899302-.12277705.90408584-.16742357,1.76972616-.50351019,2.59071996-.91028684.82099498-.40677665,1.59486092-.88548283,2.33772537-1.42123753.35468845-.25175509.71061876-.51715169,1.04670539-.8011513.03224333-.02604351.28399961-.2715976.30384329-.2579561l.06448902.05208702.89168383.69077626c.5431952.42041815,1.0851509.83959681,1.63454829,1.26001497-1.50363058.54005862-3.02220601,1.03756828-4.55391438,1.49192756-.8594405.2579561-1.71143814.49730919-2.58327947.69821735-.68457526.16122256-1.38279201.31004252-2.07976928.34228704-.83959681.03844552-1.66059061-.21951058-2.42825791-.54319579l-.00248017-.0012389Zm14.63031445,6.51710643c.12897805.03224451.24555409.07813052.35468845.11037504l.16122138.05828802c.02604351.006201.04464534.02604351.07068885.03224451l.03224333.09673354c.07813052.24555409.14882174.47746668.23315208.71681977-.24555409-.21330958-.497308-.42041815-.74286209-.62628724l-.14882174-.12277705c-.03844552-.02604351-.07813052-.03844552-.05208702-.07813052l.09673235-.18726607h-.0049556Zm-1.10499459,2.38361139l.0582892-.10293454.04464534-.07069003c.01984369-.03224451.01240201-.03844552.05208702-.0198425.21331076.08433153.42661916.18106507.63248824.2777986.40057565.18106507.7875098.38073314,1.16328143.60024373.18106507.11037504.36213013.22571159.53575352.34228763l.24555409.17486406.12277823.09053253c.05208702.04464652.07068885.10293454.09673235.16742238.16742357.46506467.36213013.93632917.55559721,1.39519402.12897805.31624294.2715976.62628605.41297766.93632917-.49014545-.60819752-1.01871039-1.18440245-1.58245891-1.72508082-.56908259-.56757817-1.16417557-1.10845996-1.78336766-1.62090561l-.53575352-.43902117-.0186042-.00619746Zm6.21450381,10.62579745l-.1996669.14882174.01240201.02604351.10293454.15502156.45266266.69077508,1.49192637,2.31912354c.51715169.79495148,1.0268617,1.59486092,1.54401576,2.38981239l.50971001.79495148.13517787.21951058c.02113995.02331852.03869389.04964825.05208702.07813052-.43282134.63248824-.86564032,1.27241579-1.29846167,1.90490403-.04464534.0582892-.08433271.12277823-.12277823.18106507-.39437583-.61388641-.7875098-1.22777045-1.18188326-1.84785668-.65853175-1.04670539-1.31086131-2.11201261-1.95699105-3.16492018-.7160782-1.16891354-1.41396616-2.3488737-2.09341078-3.53945232-.63248824-1.11739423-1.24017246-2.25463452-1.74988247-3.43651778-.4903607-1.15152755-.93632207-2.32145824-1.33690482-3.50720899.8011513.32244512,1.62090442.60768422,2.44810159.86564032.23935427.07068885.47746668.14882174.71681859.20710857l.10293454.03224333c.01240201,0,.02604351-.06448902.03224333-.08433271.03224333-.10293454.05208702-.21331076.07813052-.32244512.04464534-.20710857.08433271-.42041934.11657604-.62628605.34228645.70441894.72302077,1.39519402,1.16328143,2.04132376.35468845.52335388.73666227,1.0268617,1.13723792,1.52417207.8640815,1.08055958,1.76924361,2.12762215,2.71349701,3.13887667.76890797.81355331,1.54401576,1.6283461,2.33152319,2.42205572l.63992992.63992992c.01240201.01240201.06448902.05208702.06448902.07068885l-.05208702.08433271-.24555409.45886485-.97477468,1.76352634c-.29764111-.36213013-.59404272-.71681859-.89168383-1.0851509l-1.86025869-2.25463452c-.52335388-.63992992-1.05290757-1.27861798-1.57625909-1.9185479l-.31004312-.36833232.00496033-.00123713Z'/>
+ </svg>"""
out: {
ingress: {
gerrit: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "gerrit-gerrit-service"
@@ -46,9 +46,9 @@
}
openPort: [{
- name: "ssh"
+ name: "ssh"
network: input.network
- port: input.sshPort
+ port: input.sshPort
service: {
name: "gerrit-gerrit-service"
port: _sshPort
@@ -59,20 +59,20 @@
images: {
gerrit: {
repository: "k8sgerrit"
- name: "gerrit"
- tag: _version
+ name: "gerrit"
+ tag: _version
pullPolicy: "Always"
}
gerritInit: {
repository: "k8sgerrit"
- name: "gerrit-init"
- tag: _version
+ name: "gerrit-init"
+ tag: _version
pullPolicy: "Always"
}
gitGC: {
repository: "k8sgerrit"
- name: "git-gc"
- tag: _version
+ name: "git-gc"
+ tag: _version
pullPolicy: "Always"
}
}
@@ -80,61 +80,61 @@
charts: {
ingress: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/ingress"
+ branch: "main"
+ path: "charts/ingress"
}
gerrit: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/gerrit"
+ branch: "main"
+ path: "charts/gerrit"
}
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
resourceRenderer: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/resource-renderer"
+ branch: "main"
+ path: "charts/resource-renderer"
}
}
volume: {
git: {
accessMode: "ReadWriteMany"
- size: "50Gi"
+ size: "50Gi"
}
logs: {
accessMode: "ReadWriteMany"
- size: "5Gi"
+ size: "5Gi"
}
}
helm: {
"oauth2-client": {
chart: charts.oauth2Client
- info: "Creating OAuth2 client"
+ info: "Creating OAuth2 client"
values: {
- name: "\(release.namespace)-gerrit"
+ name: "\(release.namespace)-gerrit"
secretName: _oauth2ClientCredentials
grantTypes: ["authorization_code"]
- scope: "openid profile email"
+ scope: "openid profile email"
hydraAdmin: "http://hydra-admin.\(global.id)-core-auth.svc.cluster.local"
redirectUris: ["https://\(_domain)/oauth"]
}
}
"config-renderer": {
chart: charts.resourceRenderer
- info: "Generating Gerrit configuration"
+ info: "Generating Gerrit configuration"
values: {
- name: "config-renderer"
- secretName: _oauth2ClientCredentials
+ name: "config-renderer"
+ secretName: _oauth2ClientCredentials
resourceTemplate: """
apiVersion: v1
kind: ConfigMap
@@ -210,12 +210,12 @@
}
gerrit: {
chart: charts.gerrit
- info: "Installing Gerrit server"
+ info: "Installing Gerrit server"
values: {
images: {
busybox: {
registry: _dockerIO
- tag: "latest"
+ tag: "latest"
}
registry: {
name: _dockerIO
@@ -226,34 +226,34 @@
}
storageClasses: {
default: {
- name: _longhorn
+ name: _longhorn
create: false
}
shared: {
- name: _longhorn
+ name: _longhorn
create: false
}
}
persistence: {
enabled: true
- size: "10Gi"
+ size: "10Gi"
}
nfsWorkaround: {
- enabled: false
+ enabled: false
chownOnStartup: false
- idDomain: _domain
+ idDomain: _domain
}
networkPolicies: enabled: false
gitRepositoryStorage: {
externalPVC: {
- use: true
+ use: true
name: volume.git.name
}
}
logStorage: {
enabled: true
externalPVC: {
- use: true
+ use: true
name: volume.logs.name
}
}
@@ -265,10 +265,10 @@
gerrit: {
images: {
gerritInit: _images.gerritInit.imageName
- gerrit: _images.gerrit.imageName
+ gerrit: _images.gerrit.imageName
}
service: {
- type: "LoadBalancer"
+ type: "LoadBalancer"
externalTrafficPolicy: ""
additionalAnnotations: {
"metallb.universe.tf/address-pool": global.id
@@ -276,7 +276,7 @@
http: port: _httpPort
ssh: {
enabled: true
- port: _sshPort
+ port: _sshPort
}
}
pluginManagement: {
@@ -292,13 +292,13 @@
name: "reviewnotes"
}, {
name: "oauth"
- url: "https://drive.google.com/uc?export=download&id=1rSUpZCAVvHZTmRgUl4enrsAM73gndjeP"
+ url: "https://drive.google.com/uc?export=download&id=1rSUpZCAVvHZTmRgUl4enrsAM73gndjeP"
sha1: "cbdc5228a18b051a6e048a8e783e556394cc5db1"
}, {
name: "webhooks"
}, {
name: "serviceuser"
- url: "https://drive.google.com/uc?export=download&id=110opG25oyvzODzYWXBK2zQV-444Ut2cA"
+ url: "https://drive.google.com/uc?export=download&id=110opG25oyvzODzYWXBK2zQV-444Ut2cA"
sha1: "c8946747d9dac322e1cd2acf49c899e87355ebb3"
}]
libs: []
@@ -306,7 +306,7 @@
}
etc: {
secret: {
- ssh_host_ecdsa_key: input.key.private
+ ssh_host_ecdsa_key: input.key.private
"ssh_host_ecdsa_key.pub": input.key.public
}
existingConfigMapName: _gerritConfigMapName
@@ -318,12 +318,12 @@
}
_dockerIO: "docker.io"
-_version: "v0.1-728-g77fe419cb2-3.10.0"
+_version: "v0.1-728-g77fe419cb2-3.10.0"
_longhorn: "longhorn"
_httpPort: 80
-_sshPort: 22
+_sshPort: 22
_oauth2ClientCredentials: "gerrit-oauth2-credentials"
-_gerritConfigMapName: "gerrit-config"
+_gerritConfigMapName: "gerrit-config"
diff --git a/core/installer/values-tmpl/headscale-controller.cue b/core/installer/values-tmpl/headscale-controller.cue
index 7d61ac2..886f318 100644
--- a/core/installer/values-tmpl/headscale-controller.cue
+++ b/core/installer/values-tmpl/headscale-controller.cue
@@ -1,31 +1,31 @@
input: {}
-name: "headscale-controller"
+name: "headscale-controller"
namespace: "core-headscale"
out: {
images: {
headscaleController: {
repository: "giolekva"
- name: "headscale-controller"
- tag: "latest"
+ name: "headscale-controller"
+ tag: "latest"
pullPolicy: "Always"
}
kubeRBACProxy: {
- registry: "gcr.io"
+ registry: "gcr.io"
repository: "kubebuilder"
- name: "kube-rbac-proxy"
- tag: "v0.13.0"
+ name: "kube-rbac-proxy"
+ tag: "v0.13.0"
pullPolicy: "IfNotPresent"
}
}
charts: {
headscaleController: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/headscale-controller"
+ branch: "main"
+ path: "charts/headscale-controller"
}
}
@@ -36,13 +36,13 @@
installCRDs: true
image: {
repository: images.headscaleController.fullName
- tag: images.headscaleController.tag
+ tag: images.headscaleController.tag
pullPolicy: images.headscaleController.pullPolicy
}
kubeRBACProxy: {
image: {
repository: images.kubeRBACProxy.fullName
- tag: images.kubeRBACProxy.tag
+ tag: images.kubeRBACProxy.tag
pullPolicy: images.kubeRBACProxy.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/headscale-user.cue b/core/installer/values-tmpl/headscale-user.cue
index 036d0a3..dbc0b68 100644
--- a/core/installer/values-tmpl/headscale-user.cue
+++ b/core/installer/values-tmpl/headscale-user.cue
@@ -5,16 +5,16 @@
}
}
-name: "headscale-user"
+name: "headscale-user"
namespace: "app-headscale"
out: {
charts: {
headscaleUser: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/headscale-user"
+ branch: "main"
+ path: "charts/headscale-user"
}
}
@@ -22,10 +22,10 @@
"headscale-user-\(input.username)": {
chart: charts.headscaleUser
values: {
- username: input.username
+ username: input.username
headscaleApiAddress: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local"
preAuthKey: {
- enabled: input.preAuthKey.enabled
+ enabled: input.preAuthKey.enabled
secretName: "\(input.username)-headscale-preauthkey"
}
}
diff --git a/core/installer/values-tmpl/headscale.cue b/core/installer/values-tmpl/headscale.cue
index c28926e..9bb2395 100644
--- a/core/installer/values-tmpl/headscale.cue
+++ b/core/installer/values-tmpl/headscale.cue
@@ -1,44 +1,44 @@
input: {
- network: #Network
+ network: #Network
subdomain: string
- ipSubnet: string
+ ipSubnet: string
}
-name: "headscale"
+name: "headscale"
namespace: "app-headscale"
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><circle cx='24' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='38' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><circle cx='24' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='10' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='24' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='38' r='4.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='38' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='24' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='10' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><circle cx='38' cy='24' r='2' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/></svg>"
-_domain: "\(input.subdomain).\(input.network.domain)"
+_domain: "\(input.subdomain).\(input.network.domain)"
_oauth2ClientSecretName: "oauth2-client"
out: {
images: {
headscale: {
repository: "headscale"
- name: "headscale"
- tag: "0.25.1"
+ name: "headscale"
+ tag: "0.25.1"
pullPolicy: "IfNotPresent"
}
api: {
repository: "giolekva"
- name: "headscale-api"
- tag: "latest"
+ name: "headscale-api"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
headscale: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/headscale"
+ branch: "main"
+ path: "charts/headscale"
}
}
@@ -47,11 +47,11 @@
chart: charts.oauth2Client
// TODO(gio): remove once hydra maester is installed as part of dodo itself
dependsOn: [{
- name: "auth"
+ name: "auth"
namespace: "\(global.namespacePrefix)core-auth"
}]
values: {
- name: "\(release.namespace)-headscale"
+ name: "\(release.namespace)-headscale"
secretName: _oauth2ClientSecretName
grantTypes: ["authorization_code"]
responseTypes: ["code"]
@@ -63,33 +63,33 @@
headscale: {
chart: charts.headscale
dependsOn: [{
- name: "auth"
+ name: "auth"
namespace: "\(global.namespacePrefix)core-auth"
}]
values: {
image: {
repository: images.headscale.fullName
- tag: images.headscale.tag
+ tag: images.headscale.tag
pullPolicy: images.headscale.pullPolicy
}
storage: size: "5Gi"
- ingressClassName: input.network.ingressClass
+ ingressClassName: input.network.ingressClass
certificateIssuer: input.network.certificateIssuer
- domain: _domain
- publicBaseDomain: input.network.domain
- ipAddressPool: "\(global.id)-headscale"
+ domain: _domain
+ publicBaseDomain: input.network.domain
+ ipAddressPool: "\(global.id)-headscale"
oauth2: {
secretName: _oauth2ClientSecretName
- issuer: "https://hydra.\(input.network.domain)"
+ issuer: "https://hydra.\(input.network.domain)"
}
api: {
- port: 8585
- ipSubnet: input.ipSubnet
- self: "http://headscale-api.\(release.namespace).svc.cluster"
+ port: 8585
+ ipSubnet: input.ipSubnet
+ self: "http://headscale-api.\(release.namespace).svc.cluster"
fetchUsersAddr: "http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local/api/users"
image: {
repository: images.api.fullName
- tag: images.api.tag
+ tag: images.api.tag
pullPolicy: images.api.pullPolicy
}
}
@@ -100,31 +100,31 @@
}
help: [{
- title: "Install"
+ title: "Install"
contents: """
You can install Tailscale client on any of your personal devices running: macOS, iOS, Windows, Lonux or Android. Installer packages can be found at: [https://tailscale.com/download](https://tailscale.com/download). After installing the client application you need to configure it to use https://\(_domain) as a login URL, so you can login to the VPN network with your dodo: account. See "Configure Login URL" section below for more details.
"""
children: [{
- title: "Widnows with MSI"
+ title: "Widnows with MSI"
contents: "[https://tailscale.com/kb/1189/install-windows-msi](https://tailscale.com/kb/1189/install-windows-msi)"
}]
}, {
- title: "Configure Login URL"
+ title: "Configure Login URL"
contents: "After installing the client application you need to configure it to use https://\(_domain) as a login URL, so you can login to the VPN network with your dodo: account"
children: [{
- title: "macOS"
+ title: "macOS"
contents: "[https://headscale.\(input.network.domain)/apple](https://headscale.\(input.network.domain)/apple)"
}, {
- title: "iOS"
+ title: "iOS"
contents: "[https://headscale.\(input.network.domain)/apple](https://headscale.\(input.network.domain)/apple)"
}, {
- title: "Windows"
+ title: "Windows"
contents: "[https://tailscale.com/kb/1318/windows-mdm](https://tailscale.com/kb/1318/windows-mdm)"
}, {
- title: "Linux"
+ title: "Linux"
contents: "tailscale up --login-server https://\(_domain)"
}, {
- title: "Android"
+ title: "Android"
contents: """
After opening the app, the kebab menu icon (three dots) on the top bar on the right must be repeatedly opened and closed until the Change server option appears in the menu. This is where you can enter your headscale URL: https://\(_domain)
@@ -133,7 +133,7 @@
After saving and restarting the app, selecting the regular Sign in option should open up the dodo: authentication page.
"""
}, {
- title: "Command Line"
+ title: "Command Line"
contents: "tailscale up --login-server https://\(_domain)"
}]
}]
diff --git a/core/installer/values-tmpl/hydra-maester.cue b/core/installer/values-tmpl/hydra-maester.cue
index 22ba9b5..4a50d6f 100644
--- a/core/installer/values-tmpl/hydra-maester.cue
+++ b/core/installer/values-tmpl/hydra-maester.cue
@@ -1,24 +1,24 @@
input: {}
-name: "hydra-maester"
+name: "hydra-maester"
namespace: "auth"
out: {
images: {
hydraMaester: {
repository: "giolekva"
- name: "ory-hydra-maester"
- tag: "latest"
+ name: "ory-hydra-maester"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
hydraMaester: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/hydra-maester"
+ branch: "main"
+ path: "charts/hydra-maester"
}
}
@@ -27,13 +27,13 @@
chart: charts.hydraMaester
values: {
adminService: {
- name: "foo.bar.svc.cluster.local"
- port: 80
+ name: "foo.bar.svc.cluster.local"
+ port: 80
scheme: "http"
}
image: {
repository: images.hydraMaester.fullName
- tag: images.hydraMaester.tag
+ tag: images.hydraMaester.tag
pullPolicy: images.hydraMaester.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/ingress-public.cue b/core/installer/values-tmpl/ingress-public.cue
index 119dd44..3cc7d1e 100644
--- a/core/installer/values-tmpl/ingress-public.cue
+++ b/core/installer/values-tmpl/ingress-public.cue
@@ -3,42 +3,42 @@
)
input: {
- sshPrivateKey: string
+ sshPrivateKey: string
controllerReplicaCount: int | *3
}
-name: "ingress-public"
+name: "ingress-public"
namespace: "ingress-public"
out: {
images: {
ingressNginx: {
- registry: "registry.k8s.io"
+ registry: "registry.k8s.io"
repository: "ingress-nginx"
- name: "controller"
- tag: "v1.8.0"
+ name: "controller"
+ tag: "v1.8.0"
pullPolicy: "IfNotPresent"
}
portAllocator: {
repository: "giolekva"
- name: "port-allocator"
- tag: "latest"
+ name: "port-allocator"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
ingressNginx: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/ingress-nginx"
+ branch: "main"
+ path: "charts/ingress-nginx"
}
portAllocator: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/port-allocator"
+ branch: "main"
+ path: "charts/port-allocator"
}
}
@@ -48,7 +48,7 @@
values: {
fullnameOverride: "\(global.pcloudEnvName)-ingress-public"
controller: {
- kind: "Deployment"
+ kind: "Deployment"
replicaCount: input.controllerReplicaCount
topologySpreadConstraints: [{
labelSelector: {
@@ -56,8 +56,8 @@
"app.kubernetes.io/instance": "ingress-public"
}
}
- maxSkew: 1
- topologyKey: "kubernetes.io/hostname"
+ maxSkew: 1
+ topologyKey: "kubernetes.io/hostname"
whenUnsatisfiable: "DoNotSchedule"
}]
hostNetwork: false
@@ -65,15 +65,15 @@
updateStrategy: {
type: "RollingUpdate"
rollingUpdate: {
- maxSurge: "50%"
+ maxSurge: "50%"
maxUnavailable: "30%"
}
}
service: {
enabled: true
- type: "NodePort"
+ type: "NodePort"
nodePorts: {
- http: 80
+ http: 80
https: 443
tcp: {
"53": 53
@@ -85,9 +85,9 @@
}
ingressClassByName: true
ingressClassResource: {
- name: networks.public.ingressClass
- enabled: true
- default: false
+ name: networks.public.ingressClass
+ enabled: true
+ default: false
controllerValue: "k8s.io/\(networks.public.ingressClass)"
}
config: {
@@ -97,9 +97,9 @@
"""
}
image: {
- registry: images.ingressNginx.registry
- image: images.ingressNginx.imageName
- tag: images.ingressNginx.tag
+ registry: images.ingressNginx.registry
+ image: images.ingressNginx.imageName
+ tag: images.ingressNginx.tag
pullPolicy: images.ingressNginx.pullPolicy
}
}
@@ -114,12 +114,12 @@
"port-allocator": {
chart: charts.portAllocator
values: {
- repoAddr: release.repoAddr
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ repoAddr: release.repoAddr
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
ingressNginxPath: "\(release.appDir)/ingress-public.yaml"
image: {
repository: images.portAllocator.fullName
- tag: images.portAllocator.tag
+ tag: images.portAllocator.tag
pullPolicy: images.portAllocator.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/jellyfin.cue b/core/installer/values-tmpl/jellyfin.cue
index 3fecee0..982eb69 100644
--- a/core/installer/values-tmpl/jellyfin.cue
+++ b/core/installer/values-tmpl/jellyfin.cue
@@ -1,15 +1,15 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Jellyfin"
-namespace: "app-jellyfin"
+name: "Jellyfin"
+namespace: "app-jellyfin"
description: "Jellyfin is a free and open-source media server and suite of multimedia applications designed to organize, manage, and share digital media files to networked devices."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M24 20c-1.62 0-6.85 9.48-6.06 11.08s11.33 1.59 12.12 0S25.63 20 24 20Z'/><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M24 5.5c-4.89 0-20.66 28.58-18.25 33.4s34.13 4.77 36.51 0S28.9 5.5 24 5.5Zm12 29.21c-1.56 3.13-22.35 3.17-23.93 0S20.8 12.83 24 12.83s13.52 18.76 12 21.88Z'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M24 20c-1.62 0-6.85 9.48-6.06 11.08s11.33 1.59 12.12 0S25.63 20 24 20Z'/><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M24 5.5c-4.89 0-20.66 28.58-18.25 33.4s34.13 4.77 36.51 0S28.9 5.5 24 5.5Zm12 29.21c-1.56 3.13-22.35 3.17-23.93 0S20.8 12.83 24 12.83s13.52 18.76 12 21.88Z'/></svg>"
readme: "jellyfin application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
@@ -17,18 +17,18 @@
images: {
jellyfin: {
repository: "jellyfin"
- name: "jellyfin"
- tag: "10.8.10"
+ name: "jellyfin"
+ tag: "10.8.10"
pullPolicy: "IfNotPresent"
}
}
charts: {
jellyfin: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/jellyfin"
+ branch: "main"
+ path: "charts/jellyfin"
}
}
@@ -39,11 +39,11 @@
pcloudInstanceId: global.id
ingress: {
className: input.network.ingressClass
- domain: _domain
+ domain: _domain
}
image: {
repository: images.jellyfin.fullName
- tag: images.jellyfin.tag
+ tag: images.jellyfin.tag
pullPolicy: images.jellyfin.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/jenkins.cue b/core/installer/values-tmpl/jenkins.cue
index 5d4110e..753a8dc 100644
--- a/core/installer/values-tmpl/jenkins.cue
+++ b/core/installer/values-tmpl/jenkins.cue
@@ -1,34 +1,34 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Jenkins"
-namespace: "app-jenkins"
-readme: "Jenkins CI/CD"
+name: "Jenkins"
+namespace: "app-jenkins"
+readme: "Jenkins CI/CD"
description: "Build great things at any scale. The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35.98188688 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-11.82596649' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m2.89767408,39.68503937h-1.61221736c-.04151253-.10751988-.08010966-.21614364-.11574902-.32575141-.35551464-1.10126905-.98221237-2.46379839-1.14426076-3.56175899-.24141925-1.62709809,1.28977381-1.71804418,2.27198598-2.42246012,1.51300388-1.09134685,2.7035648-1.6948945,4.34389196-2.67876247.48779921-.29598798,1.95450372-1.03181999,2.11820575-1.37079889.33236515-.67464935-.57047655-1.62379279-.81024217-2.14962183-.37204999-.83835295-.57047655-1.54938263-.62173702-2.3728523-1.36253013-.2149625-2.40592418-1.03677951-3.04915745-1.95946324-1.04174061-1.52953982-1.76269091-4.35712102-.86811717-6.50839708.07441016-.17031577.4200032-.50433515.47126367-.76559702.09921328-.50929467-.17362343-1.19056092-.19842656-1.73292748-.09921328-2.79781698.46960983-5.20870226,2.35631754-6.05201552.76559623-3.0425437,3.49396416-4.05617353,6.07351256-5.56752397.95906248-.56551624,2.02395278-.92929856,3.12522183-1.33441984,3.92223493-1.45016876,9.96598406-1.17733205,13.21852758,1.29473461,1.38237373,1.04670112,3.59813932,3.25750581,4.39184555,4.85980156,2.08678651,4.22483586,1.93466091,11.28552011.47457172,16.42642833-.19842813.69614639-.47953282,1.70646934-.88134388,2.53490168-.27779623.57874373-1.13929887,1.73623435-1.03347264,2.24883589.10582624.51921529,1.96773279,1.93466091,2.3678912,2.30671169.71764343.69780219,2.08348122,1.61221795,2.18930745,2.48033433.11574843.9210295-.41008061,2.20915184-.6779578,3.10041792-.35882014,1.19221515-.72095188,2.38277449-1.08142466,3.52372917H2.89436681l.00330727.02645498Zm18.36108805-5.85359054c-1.07265206-.57801045-2.22250865-.99953028-3.41459448-1.25174201-1.43859372-.27118249-1.28977341,1.96442434-1.24016717,3.29719025.04960625,1.06323607.59527967,2.17607996.84331405,2.88380119.12567063.32575141.14882031.6779578.42330967.74244576.49606718.11244314,2.13308746-.53905968,2.60435073-.79205358.99213436-.54236498,1.75938404-1.39560122,2.60269809-1.96607699.02645656-.28110468.02645656-.56220937.04960625-.8400056-.56358289-.28112045-1.18117962-.43735245-1.81064451-.45803578.51921687-.2480328,1.24016717-.2480328,1.71143044-.54898188l.02645656-.31913766c-.82016437-.04960782-1.1409531-.4200028-1.68828075-.72095188l-.10747888-.02645183Zm12.32560886,4.85318663c.30539293-.95197565.56202644-1.91891029.7689039-2.89703184.09921249-.47457172.35551484-1.5179634.29433217-1.9445831-.09755984-.7589817-1.13103248-1.32119107-1.66016997-1.79576279-.96567623-.86811639-1.57087967-1.61221795-2.57954682-2.42907386-.41173641.62008358-1.28977499,1.0169367-1.62544544,1.51134966,2.39269669-1.13929887,2.82757963,4.34058508,1.88670889,6.10162334.14882031.54402078.64654172.74410156.8499278,1.21536483l-.14220657.27449094h2.13308904c.02149704,0,.04960782,0,.07275751.02314969l.00164949-.05952686Zm-10.96969169-.01984124c-.08267813-.12236218-.16535625-.22323047-.2480328-.34559264l-.49771983.32244296h.74409998l.00165265.02314969Zm4.58034992,0c.01322749-.34559264.02976343-.6680356.04960782-.98882591-.87638593.04795202-1.36418514-.79370623-1.97765183-.87142484-.53575123-.07441016-.99213436.5969339-1.6866281.32244296-.15708828.17362265-.30260015.37535608-.46961062.52252374.25464813.29764062.48779921.62008358.70110749.96567623h1.3476492c.01156223-.26499767.23082193-.47329439.49606561-.47126327.27283829,0,.46961062.20008078.46961062.44646094h1.09134685l-.02149704.07441016Zm3.49892368,0c-.51921529-.79205358-1.56591858-1.48489467-2.77797496-.91772421l-.04960782.89457452h2.82758278v.02314969Zm-14.07176383,0l-.17197-.56882311c-.37205078-1.19055934-.59527967-2.08348122-.66968983-2.77797496-1.51134966-.72095188-3.10041792-1.4385953-4.38853868-2.35797216-.24803359-.17362265-1.83379419-2.23230153-2.03387419-2.15789137-2.87553401,1.11780499-5.5542953,3.07561558-7.96021987,4.93421053.42331046.9210295.79370702,1.88670889,1.14095389,2.87718745h14.06349586l.01984281.05126362Zm13.66664432-3.49396258c-.04795202-.84661935-.27118249-2.57954682-.79370623-2.87718745-1.09134685-.64488592-3.0524659,1.28977499-3.86932181,1.55930483.07441016.2480328.22323047.44811358.2480328.79370623.47126327-.12236218,1.06654452-.04795202,1.48489467.15212561-.49441296.04960782-1.04008638.04960782-1.36252934.27118249-.12236218.32244296.02645814.79370623-.04795202,1.26331685,1.14095468.32575141,2.48033433.5010267,3.94373197.54898188.27118249-.37535608.37205078-1.06654452.34890109-1.78914904l.04794887.07771861Zm-6.74650926-.59528125c-.07275593.62008358.0760628.84331405.19842656,1.55930483,2.08347964.64654172,1.70977621-2.87718745-.22323047-1.58575981l.02480391.02645498Zm-10.9085106-2.33151402c-.74409998.7556764,2.10001716,1.78914904,2.9995512,1.84371481,0-.47953282.27283671-.93260435.22323047-1.27323905-1.07481091-.19511968-2.48364121-.06944906-3.21616635-.57378421l-.00661532.00330845Zm9.20204126.35551484c0,.07110171-.10086672.04960782-.11244156.10582624.95906248.74575421,1.67670591.90118827,2.97970997.84331405.58535905-.43323029,1.1078828-.9309517,1.72465793-1.33441856-1.41378981.12236218-3.19301666,1.00370921-4.58696524.38031717l-.0049611.0049611ZM27.49101719,3.28861389c-2.65561278-1.49812197-7.1929702-2.63080789-10.04700796-1.20874951-2.28190778,1.14426076-5.4071296,3.0425437-6.44721599,5.44350678.99213436,2.31828574-.27449015,4.4414518-.37370343,6.79446286-.02976422,1.25174201.59528046,2.34804996.64654014,3.70727401-.33071093.5589025-1.36418357.62835155-2.08348122.58866593-.24141906-1.20544264-.66142265-2.56135824-1.909857-2.69529683-1.75938404-.19181281-3.05081128,1.26331685-3.12522104,2.78293448-.09921328,1.78584059,1.37741264,4.73578555,3.44766479,4.53901164.8069353-.0760628,1.00536186-.8929203,1.88340044-.8929203.47126327.94252654-.7358328,1.24016717-.8648103,1.90820435-.02645656.17362265.09921328.8449667.17197,1.16575701.38527827,1.56095748,1.23024576,3.57168119,2.05867731,4.76224369,1.05000858,1.48819997,3.11529963,1.73788857,5.33933319,1.88670889.39685311-.86811639,1.86025075-.79370623,2.82096746-.57213156-1.14260732-.44646094-2.20915027-1.56261013-3.10041792-2.52828635-1.0169367-1.11780499-2.03387497-2.33151402-2.08513387-3.77010775,1.909857,2.65230276,3.47246712,4.96066709,6.94493582,6.12477145,2.62915465.86811639,5.70477023-.4200028,7.71218549-1.83379261.84331405-.59362545,1.34103546-1.53780779,1.93466091-2.37946604,2.23230153-3.20128463,3.27404056-7.78824987,3.0524659-12.2263948-.09921249-1.83710106-.09921249-3.6725479-.72095188-4.88625851-.64323327-1.29142764-2.80277729-2.43238074-4.09255228-1.29142764-.2480328-1.26331685,1.04173903-2.03387419,2.55474449-1.58741404-1.09134685-1.41213717-2.20915184-3.07230753-3.74695964-3.94207814l.02976659.110783Zm-6.88706318,21.34244948c1.0169367,2.55309184,4.50428869,2.25379857,7.44926939,2.18765481-.13889812.32079031-.42331125.71929607-.7689039.85158045-.94252654.38362562-3.54687885.67464935-4.85649508-.01984124-.83669873-.44646094-1.36253092-1.44355482-1.82221935-2.02891388-.22653734-.28441156-1.31457732-1.00536186-.01984281-1.00701608l.01819174.01653594Zm.27118249-1.43859372c1.47662513.76724967,4.16696244.85488889,6.1694166.79370623.10913469.44149984.10913469.98055952.11244314,1.50969701-2.56301246.13228437-5.59894084-.50268093-6.27359177-2.30671011h-.00826797v.00330687Zm11.03748652-.96898468c-.78213139,1.48819997-1.89332263,3.13679667-4.19837852,3.18805714-.03803298-.46961062-.07441016-1.21536326,0-1.49481529,1.75938246-.17031577,2.85569041-1.06819717,4.20499226-1.68166701l-.00661375-.01157484Zm-1.07315827-1.1029217c-1.6866281,1.09134685-3.56175899,2.27363981-6.32319801,2.00080309-.58039796-.51260312-.8019742-1.65355622-.23149844-2.41088527.29929327.51756264.09921407,1.46339764.94252812,1.60394998,1.56095748.27283671,3.36994776-.95740826,4.51420773-1.38898748.69449374-1.17898608-.0760628-1.6138706-.69449374-2.36954542-1.29308028-1.53780779-3.02600776-3.4724687-2.97970839-5.80398272.51921529-.37039656.57213156.57212999.64654172.74409998.6680356,1.58741404,2.35466371,3.5964851,3.59483087,4.96066867.29764062.34724687.79370623.64488749.84331405.86646374.15212561.64488749-.4200028,1.41213717-.34559264,1.83544684l.03306873-.0380314Zm-22.22214229-1.11615077c-.51921687-.30425437-.6498478-1.63702028-1.26993139-1.67009216-.88465233-.04960625-.72425796,1.73623435-.7209503,2.77797496-.61181561-.54567343-.71929686-2.25710387-.27118328-3.12522183-.50929546-.2480328-.7358328.27118249-1.0218978.46961062.36378202-2.62915465,3.86932181-1.21371061,3.2905765,1.58741404l-.00661375-.03968563Zm-2.67545165-10.09165311c-1.13268592,1.25008857-.8929203,3.59483087-.75898249,5.27153678,2.05702387-1.29804138,4.79200554.09921407,4.76720242,2.30505746.98386561-.02645656.36874312-1.23024655.19015859-2.00907106-.58370562-2.52663371.9789053-5.26988413.06779562-7.58982331-1.75938404.13889891-3.20624573.8598492-4.26286805,2.00907106l-.00330608.01322907Zm15.08043335,1.84040794c.50764203.92929826.66803718,1.89828215,1.38898748,2.59608276.32244296.31417499.94914186.70110749.6399264,1.5708781-.07441016.20008078-.60354764.64654014-.91110889.74409998-1.11449654.32244296-3.72711525.04960625-2.84576979-1.33938123.9309517.02480391,2.17277309.59527967,2.86395996-.07441016-.51921687-.86646374-1.46339764-2.52994058-1.11449654-3.52207494l-.02149862.02480549Zm10.24874139-.02149625h.11244314c.54567343,1.10457513.99213436,2.27363902,1.66016997,3.24923744-.44646094,1.03843374-3.39475009,1.96773279-3.34514542.09425297.64488592-.28110468,1.73623277-.05787422,2.30671169-.41338906-.31913766-.91937686-.79370623-1.66347763-.71764343-2.92844792l-.01653594-.00165344Zm-11.45418403-2.67380058c-2.35135683-.54567343-3.52372917.9789053-4.23310305,2.56797277-.6349653-.15543406-.3819714-1.01693749-.22323047-1.46008997.42165703-1.15914327,2.11655152-2.70025714,3.50388478-2.49025574.59362702.09425297,1.40221497.63827296.95244874,1.37906607v.00330687Zm-5.72461147-6.42406532c-2.57954682.72756464-5.88666006,2.6026975-6.94493582,4.91767597.81851014-.11574922,1.38898748-.53079171,2.19922965-.58039796.30756124-.02645656.70772202.12236296,1.0599292.02480312.70110749-.17197,1.28977341-1.76103747,1.82221935-2.33151402.51260312-.57047694,1.13268671-.82016397,1.55434216-1.33938045.27614359-.14882012.67630515-.12236316.69449374-.54567362-.12070953-.1240168-.2480328-.22323007-.38362562-.17362343l-.00165265.02811039Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 35.98188688 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-11.82596649' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m2.89767408,39.68503937h-1.61221736c-.04151253-.10751988-.08010966-.21614364-.11574902-.32575141-.35551464-1.10126905-.98221237-2.46379839-1.14426076-3.56175899-.24141925-1.62709809,1.28977381-1.71804418,2.27198598-2.42246012,1.51300388-1.09134685,2.7035648-1.6948945,4.34389196-2.67876247.48779921-.29598798,1.95450372-1.03181999,2.11820575-1.37079889.33236515-.67464935-.57047655-1.62379279-.81024217-2.14962183-.37204999-.83835295-.57047655-1.54938263-.62173702-2.3728523-1.36253013-.2149625-2.40592418-1.03677951-3.04915745-1.95946324-1.04174061-1.52953982-1.76269091-4.35712102-.86811717-6.50839708.07441016-.17031577.4200032-.50433515.47126367-.76559702.09921328-.50929467-.17362343-1.19056092-.19842656-1.73292748-.09921328-2.79781698.46960983-5.20870226,2.35631754-6.05201552.76559623-3.0425437,3.49396416-4.05617353,6.07351256-5.56752397.95906248-.56551624,2.02395278-.92929856,3.12522183-1.33441984,3.92223493-1.45016876,9.96598406-1.17733205,13.21852758,1.29473461,1.38237373,1.04670112,3.59813932,3.25750581,4.39184555,4.85980156,2.08678651,4.22483586,1.93466091,11.28552011.47457172,16.42642833-.19842813.69614639-.47953282,1.70646934-.88134388,2.53490168-.27779623.57874373-1.13929887,1.73623435-1.03347264,2.24883589.10582624.51921529,1.96773279,1.93466091,2.3678912,2.30671169.71764343.69780219,2.08348122,1.61221795,2.18930745,2.48033433.11574843.9210295-.41008061,2.20915184-.6779578,3.10041792-.35882014,1.19221515-.72095188,2.38277449-1.08142466,3.52372917H2.89436681l.00330727.02645498Zm18.36108805-5.85359054c-1.07265206-.57801045-2.22250865-.99953028-3.41459448-1.25174201-1.43859372-.27118249-1.28977341,1.96442434-1.24016717,3.29719025.04960625,1.06323607.59527967,2.17607996.84331405,2.88380119.12567063.32575141.14882031.6779578.42330967.74244576.49606718.11244314,2.13308746-.53905968,2.60435073-.79205358.99213436-.54236498,1.75938404-1.39560122,2.60269809-1.96607699.02645656-.28110468.02645656-.56220937.04960625-.8400056-.56358289-.28112045-1.18117962-.43735245-1.81064451-.45803578.51921687-.2480328,1.24016717-.2480328,1.71143044-.54898188l.02645656-.31913766c-.82016437-.04960782-1.1409531-.4200028-1.68828075-.72095188l-.10747888-.02645183Zm12.32560886,4.85318663c.30539293-.95197565.56202644-1.91891029.7689039-2.89703184.09921249-.47457172.35551484-1.5179634.29433217-1.9445831-.09755984-.7589817-1.13103248-1.32119107-1.66016997-1.79576279-.96567623-.86811639-1.57087967-1.61221795-2.57954682-2.42907386-.41173641.62008358-1.28977499,1.0169367-1.62544544,1.51134966,2.39269669-1.13929887,2.82757963,4.34058508,1.88670889,6.10162334.14882031.54402078.64654172.74410156.8499278,1.21536483l-.14220657.27449094h2.13308904c.02149704,0,.04960782,0,.07275751.02314969l.00164949-.05952686Zm-10.96969169-.01984124c-.08267813-.12236218-.16535625-.22323047-.2480328-.34559264l-.49771983.32244296h.74409998l.00165265.02314969Zm4.58034992,0c.01322749-.34559264.02976343-.6680356.04960782-.98882591-.87638593.04795202-1.36418514-.79370623-1.97765183-.87142484-.53575123-.07441016-.99213436.5969339-1.6866281.32244296-.15708828.17362265-.30260015.37535608-.46961062.52252374.25464813.29764062.48779921.62008358.70110749.96567623h1.3476492c.01156223-.26499767.23082193-.47329439.49606561-.47126327.27283829,0,.46961062.20008078.46961062.44646094h1.09134685l-.02149704.07441016Zm3.49892368,0c-.51921529-.79205358-1.56591858-1.48489467-2.77797496-.91772421l-.04960782.89457452h2.82758278v.02314969Zm-14.07176383,0l-.17197-.56882311c-.37205078-1.19055934-.59527967-2.08348122-.66968983-2.77797496-1.51134966-.72095188-3.10041792-1.4385953-4.38853868-2.35797216-.24803359-.17362265-1.83379419-2.23230153-2.03387419-2.15789137-2.87553401,1.11780499-5.5542953,3.07561558-7.96021987,4.93421053.42331046.9210295.79370702,1.88670889,1.14095389,2.87718745h14.06349586l.01984281.05126362Zm13.66664432-3.49396258c-.04795202-.84661935-.27118249-2.57954682-.79370623-2.87718745-1.09134685-.64488592-3.0524659,1.28977499-3.86932181,1.55930483.07441016.2480328.22323047.44811358.2480328.79370623.47126327-.12236218,1.06654452-.04795202,1.48489467.15212561-.49441296.04960782-1.04008638.04960782-1.36252934.27118249-.12236218.32244296.02645814.79370623-.04795202,1.26331685,1.14095468.32575141,2.48033433.5010267,3.94373197.54898188.27118249-.37535608.37205078-1.06654452.34890109-1.78914904l.04794887.07771861Zm-6.74650926-.59528125c-.07275593.62008358.0760628.84331405.19842656,1.55930483,2.08347964.64654172,1.70977621-2.87718745-.22323047-1.58575981l.02480391.02645498Zm-10.9085106-2.33151402c-.74409998.7556764,2.10001716,1.78914904,2.9995512,1.84371481,0-.47953282.27283671-.93260435.22323047-1.27323905-1.07481091-.19511968-2.48364121-.06944906-3.21616635-.57378421l-.00661532.00330845Zm9.20204126.35551484c0,.07110171-.10086672.04960782-.11244156.10582624.95906248.74575421,1.67670591.90118827,2.97970997.84331405.58535905-.43323029,1.1078828-.9309517,1.72465793-1.33441856-1.41378981.12236218-3.19301666,1.00370921-4.58696524.38031717l-.0049611.0049611ZM27.49101719,3.28861389c-2.65561278-1.49812197-7.1929702-2.63080789-10.04700796-1.20874951-2.28190778,1.14426076-5.4071296,3.0425437-6.44721599,5.44350678.99213436,2.31828574-.27449015,4.4414518-.37370343,6.79446286-.02976422,1.25174201.59528046,2.34804996.64654014,3.70727401-.33071093.5589025-1.36418357.62835155-2.08348122.58866593-.24141906-1.20544264-.66142265-2.56135824-1.909857-2.69529683-1.75938404-.19181281-3.05081128,1.26331685-3.12522104,2.78293448-.09921328,1.78584059,1.37741264,4.73578555,3.44766479,4.53901164.8069353-.0760628,1.00536186-.8929203,1.88340044-.8929203.47126327.94252654-.7358328,1.24016717-.8648103,1.90820435-.02645656.17362265.09921328.8449667.17197,1.16575701.38527827,1.56095748,1.23024576,3.57168119,2.05867731,4.76224369,1.05000858,1.48819997,3.11529963,1.73788857,5.33933319,1.88670889.39685311-.86811639,1.86025075-.79370623,2.82096746-.57213156-1.14260732-.44646094-2.20915027-1.56261013-3.10041792-2.52828635-1.0169367-1.11780499-2.03387497-2.33151402-2.08513387-3.77010775,1.909857,2.65230276,3.47246712,4.96066709,6.94493582,6.12477145,2.62915465.86811639,5.70477023-.4200028,7.71218549-1.83379261.84331405-.59362545,1.34103546-1.53780779,1.93466091-2.37946604,2.23230153-3.20128463,3.27404056-7.78824987,3.0524659-12.2263948-.09921249-1.83710106-.09921249-3.6725479-.72095188-4.88625851-.64323327-1.29142764-2.80277729-2.43238074-4.09255228-1.29142764-.2480328-1.26331685,1.04173903-2.03387419,2.55474449-1.58741404-1.09134685-1.41213717-2.20915184-3.07230753-3.74695964-3.94207814l.02976659.110783Zm-6.88706318,21.34244948c1.0169367,2.55309184,4.50428869,2.25379857,7.44926939,2.18765481-.13889812.32079031-.42331125.71929607-.7689039.85158045-.94252654.38362562-3.54687885.67464935-4.85649508-.01984124-.83669873-.44646094-1.36253092-1.44355482-1.82221935-2.02891388-.22653734-.28441156-1.31457732-1.00536186-.01984281-1.00701608l.01819174.01653594Zm.27118249-1.43859372c1.47662513.76724967,4.16696244.85488889,6.1694166.79370623.10913469.44149984.10913469.98055952.11244314,1.50969701-2.56301246.13228437-5.59894084-.50268093-6.27359177-2.30671011h-.00826797v.00330687Zm11.03748652-.96898468c-.78213139,1.48819997-1.89332263,3.13679667-4.19837852,3.18805714-.03803298-.46961062-.07441016-1.21536326,0-1.49481529,1.75938246-.17031577,2.85569041-1.06819717,4.20499226-1.68166701l-.00661375-.01157484Zm-1.07315827-1.1029217c-1.6866281,1.09134685-3.56175899,2.27363981-6.32319801,2.00080309-.58039796-.51260312-.8019742-1.65355622-.23149844-2.41088527.29929327.51756264.09921407,1.46339764.94252812,1.60394998,1.56095748.27283671,3.36994776-.95740826,4.51420773-1.38898748.69449374-1.17898608-.0760628-1.6138706-.69449374-2.36954542-1.29308028-1.53780779-3.02600776-3.4724687-2.97970839-5.80398272.51921529-.37039656.57213156.57212999.64654172.74409998.6680356,1.58741404,2.35466371,3.5964851,3.59483087,4.96066867.29764062.34724687.79370623.64488749.84331405.86646374.15212561.64488749-.4200028,1.41213717-.34559264,1.83544684l.03306873-.0380314Zm-22.22214229-1.11615077c-.51921687-.30425437-.6498478-1.63702028-1.26993139-1.67009216-.88465233-.04960625-.72425796,1.73623435-.7209503,2.77797496-.61181561-.54567343-.71929686-2.25710387-.27118328-3.12522183-.50929546-.2480328-.7358328.27118249-1.0218978.46961062.36378202-2.62915465,3.86932181-1.21371061,3.2905765,1.58741404l-.00661375-.03968563Zm-2.67545165-10.09165311c-1.13268592,1.25008857-.8929203,3.59483087-.75898249,5.27153678,2.05702387-1.29804138,4.79200554.09921407,4.76720242,2.30505746.98386561-.02645656.36874312-1.23024655.19015859-2.00907106-.58370562-2.52663371.9789053-5.26988413.06779562-7.58982331-1.75938404.13889891-3.20624573.8598492-4.26286805,2.00907106l-.00330608.01322907Zm15.08043335,1.84040794c.50764203.92929826.66803718,1.89828215,1.38898748,2.59608276.32244296.31417499.94914186.70110749.6399264,1.5708781-.07441016.20008078-.60354764.64654014-.91110889.74409998-1.11449654.32244296-3.72711525.04960625-2.84576979-1.33938123.9309517.02480391,2.17277309.59527967,2.86395996-.07441016-.51921687-.86646374-1.46339764-2.52994058-1.11449654-3.52207494l-.02149862.02480549Zm10.24874139-.02149625h.11244314c.54567343,1.10457513.99213436,2.27363902,1.66016997,3.24923744-.44646094,1.03843374-3.39475009,1.96773279-3.34514542.09425297.64488592-.28110468,1.73623277-.05787422,2.30671169-.41338906-.31913766-.91937686-.79370623-1.66347763-.71764343-2.92844792l-.01653594-.00165344Zm-11.45418403-2.67380058c-2.35135683-.54567343-3.52372917.9789053-4.23310305,2.56797277-.6349653-.15543406-.3819714-1.01693749-.22323047-1.46008997.42165703-1.15914327,2.11655152-2.70025714,3.50388478-2.49025574.59362702.09425297,1.40221497.63827296.95244874,1.37906607v.00330687Zm-5.72461147-6.42406532c-2.57954682.72756464-5.88666006,2.6026975-6.94493582,4.91767597.81851014-.11574922,1.38898748-.53079171,2.19922965-.58039796.30756124-.02645656.70772202.12236296,1.0599292.02480312.70110749-.17197,1.28977341-1.76103747,1.82221935-2.33151402.51260312-.57047694,1.13268671-.82016397,1.55434216-1.33938045.27614359-.14882012.67630515-.12236316.69449374-.54567362-.12070953-.1240168-.2480328-.22323007-.38362562-.17362343l-.00165265.02811039Z'/>
+ </svg>"""
_jenkinsServiceHTTPPortNumber: 80
@@ -36,7 +36,7 @@
ingress: {
jenkins: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "jenkins"
@@ -48,24 +48,24 @@
images: {
jenkins: {
repository: "jenkins"
- name: "jenkins"
- tag: "2.452-jdk17"
+ name: "jenkins"
+ tag: "2.452-jdk17"
pullPolicy: "IfNotPresent"
}
}
charts: {
jenkins: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/jenkins"
+ branch: "main"
+ path: "charts/jenkins"
}
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
}
@@ -74,12 +74,12 @@
helm: {
"oauth2-client": {
chart: charts.oauth2Client
- info: "Creating OAuth2 client"
+ info: "Creating OAuth2 client"
values: {
- name: "\(release.namespace)-jenkins"
+ name: "\(release.namespace)-jenkins"
secretName: _oauth2ClientCredentials
grantTypes: ["authorization_code"]
- scope: "openid profile email offline offline_access"
+ scope: "openid profile email offline offline_access"
hydraAdmin: "http://hydra-admin.\(global.id)-core-auth.svc.cluster.local"
redirectUris: ["https://\(_domain)/securityRealm/finishLogin"]
tokenEndpointAuthMethod: "client_secret_post"
@@ -87,17 +87,17 @@
}
jenkins: {
chart: charts.jenkins
- info: "Installing Jenkins server"
+ info: "Installing Jenkins server"
values: {
fullnameOverride: "jenkins"
controller: {
image: {
repository: images.jenkins.imageName
- tag: images.jenkins.tag
+ tag: images.jenkins.tag
pullPolicy: images.jenkins.pullPolicy
}
jenkinsUrlProtocol: "https://"
- jenkinsUrl: _domain
+ jenkinsUrl: _domain
sidecars: configAutoReload: enabled: false
ingress: enabled: false
servicePort: _jenkinsServiceHTTPPortNumber
@@ -110,16 +110,16 @@
"oic-auth:4.239.v325750a_96f3b_",
]
additionalExistingSecrets: [{
- name: _oauth2ClientCredentials
+ name: _oauth2ClientCredentials
keyName: _oauth2ClientId
}, {
- name: _oauth2ClientCredentials
+ name: _oauth2ClientCredentials
keyName: _oauth2ClientSecret
}]
JCasC: {
- defaultConfig: true
+ defaultConfig: true
overwriteConfiguration: false
- securityRealm: """
+ securityRealm: """
oic:
clientId: "${\(_oauth2ClientCredentials)-\(_oauth2ClientId)}"
clientSecret: "${\(_oauth2ClientCredentials)-\(_oauth2ClientSecret)}"
@@ -134,12 +134,12 @@
}
}
agent: {
- runAsUser: 1000
+ runAsUser: 1000
runAsGroup: 1000
jenkinsUrl: "http://jenkins.\(release.namespace).svc.cluster.local"
}
persistence: {
- enabled: true
+ enabled: true
existingClaim: volume.jenkins.name
}
}
@@ -147,6 +147,6 @@
}
}
-_oauth2ClientCredentials: "oauth2-credentials"
-_oauth2ClientId: "client_id"
-_oauth2ClientSecret: "client_secret"
+_oauth2ClientCredentials: "oauth2-credentials"
+_oauth2ClientId: "client_id"
+_oauth2ClientSecret: "client_secret"
diff --git a/core/installer/values-tmpl/launcher.cue b/core/installer/values-tmpl/launcher.cue
index 09c0ec3..7b6e8b5 100644
--- a/core/installer/values-tmpl/launcher.cue
+++ b/core/installer/values-tmpl/launcher.cue
@@ -3,19 +3,19 @@
)
input: {
- network: #Network
- repoAddr: string
+ network: #Network
+ repoAddr: string
sshPrivateKey: string
}
_subdomain: "launcher"
-_domain: "\(_subdomain).\(input.network.domain)"
+_domain: "\(_subdomain).\(input.network.domain)"
-name: "Launcher"
-namespace: "launcher"
-readme: "App Launcher application will be installed on Private or Public network and be accessible at https://\(_domain)"
+name: "Launcher"
+namespace: "launcher"
+readme: "App Launcher application will be installed on Private or Public network and be accessible at https://\(_domain)"
description: "The application is a App launcher, designed to run all accessible applications. Can be configured to be reachable only from private network or publicly."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' d='M42.5 23.075L26.062 7.525a3 3 0 0 0-4.124 0L5.5 23.075m5.86 1.54v14.68a2 2 0 0 0 2 2h7.14v-9.5h7v9.5h7.14a2 2 0 0 0 2-2v-14.68'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><path fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' d='M42.5 23.075L26.062 7.525a3 3 0 0 0-4.124 0L5.5 23.075m5.86 1.54v14.68a2 2 0 0 0 2 2h7.14v-9.5h7v9.5h7.14a2 2 0 0 0 2-2v-14.68'/></svg>"
_httpPortName: "http"
@@ -23,7 +23,7 @@
ingress: {
launcher: {
auth: enabled: true
- network: input.network
+ network: input.network
subdomain: _subdomain
service: {
name: "launcher"
@@ -35,18 +35,18 @@
images: {
launcher: {
repository: "giolekva"
- name: "pcloud-installer"
- tag: "latest"
+ name: "pcloud-installer"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
launcher: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/launcher"
+ branch: "main"
+ path: "charts/launcher"
}
}
@@ -56,14 +56,14 @@
values: {
image: {
repository: images.launcher.fullName
- tag: images.launcher.tag
+ tag: images.launcher.tag
pullPolicy: images.launcher.pullPolicy
}
- portName: _httpPortName
- repoAddr: input.repoAddr
+ portName: _httpPortName
+ repoAddr: input.repoAddr
sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
- logoutUrl: "https://accounts-ui.\(networks.public.domain)/logout"
- repoAddr: input.repoAddr
+ logoutUrl: "https://accounts-ui.\(networks.public.domain)/logout"
+ repoAddr: input.repoAddr
sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
}
}
diff --git a/core/installer/values-tmpl/longhorn.cue b/core/installer/values-tmpl/longhorn.cue
index 80a693c..8547b06 100644
--- a/core/installer/values-tmpl/longhorn.cue
+++ b/core/installer/values-tmpl/longhorn.cue
@@ -1,159 +1,158 @@
-input: {
-}
+input: {}
-name: "longhorn"
-namespace: "longhorn"
+name: "longhorn"
+namespace: "longhorn"
_pullPolicy: "IfNotPresent"
out: {
images: {
longhornEngine: {
repository: "longhornio"
- name: "longhorn-engine"
- tag: "v1.5.2"
+ name: "longhorn-engine"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornManager: {
repository: "longhornio"
- name: "longhorn-manager"
- tag: "v1.5.2"
+ name: "longhorn-manager"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornUI: {
repository: "longhornio"
- name: "longhorn-ui"
- tag: "v1.5.2"
+ name: "longhorn-ui"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornInstanceManager: {
repository: "longhornio"
- name: "longhorn-instance-manager"
- tag: "v1.5.2"
+ name: "longhorn-instance-manager"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornShareManager: {
repository: "longhornio"
- name: "longhorn-share-manager"
- tag: "v1.5.2"
+ name: "longhorn-share-manager"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornBackingImageManager: {
repository: "longhornio"
- name: "backing-image-manager"
- tag: "v1.5.2"
+ name: "backing-image-manager"
+ tag: "v1.5.2"
pullPolicy: _pullPolicy
}
longhornSupportBundleKit: {
repository: "longhornio"
- name: "support-bundle-kit"
- tag: "v0.0.27"
+ name: "support-bundle-kit"
+ tag: "v0.0.27"
pullPolicy: _pullPolicy
}
csiAttacher: {
repository: "longhornio"
- name: "csi-attacher"
- tag: "v4.2.0"
+ name: "csi-attacher"
+ tag: "v4.2.0"
pullPolicy: _pullPolicy
}
csiProvisioner: {
repository: "longhornio"
- name: "csi-provisioner"
- tag: "v3.4.1"
+ name: "csi-provisioner"
+ tag: "v3.4.1"
pullPolicy: _pullPolicy
}
csiNodeDriverRegistrar: {
repository: "longhornio"
- name: "csi-node-driver-registrar"
- tag: "v2.7.0"
+ name: "csi-node-driver-registrar"
+ tag: "v2.7.0"
pullPolicy: _pullPolicy
}
csiResizer: {
repository: "longhornio"
- name: "csi-resizer"
- tag: "v1.7.0"
+ name: "csi-resizer"
+ tag: "v1.7.0"
pullPolicy: _pullPolicy
}
csiSnapshotter: {
repository: "longhornio"
- name: "csi-snapshotter"
- tag: "v6.2.1"
+ name: "csi-snapshotter"
+ tag: "v6.2.1"
pullPolicy: _pullPolicy
}
csiLivenessProbe: {
repository: "longhornio"
- name: "livenessprobe"
- tag: "v2.9.0"
+ name: "livenessprobe"
+ tag: "v2.9.0"
pullPolicy: _pullPolicy
}
}
charts: {
longhorn: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/longhorn"
+ branch: "main"
+ path: "charts/longhorn"
}
}
helm: {
longhorn: {
chart: charts.longhorn
- info: "Installing distributed storage servers"
+ info: "Installing distributed storage servers"
values: {
image: {
longhorn: {
engine: {
repository: images.longhornEngine.imageName
- tag: images.longhornEngine.tag
+ tag: images.longhornEngine.tag
}
manager: {
repository: images.longhornManager.imageName
- tag: images.longhornManager.tag
+ tag: images.longhornManager.tag
}
ui: {
repository: images.longhornUI.imageName
- tag: images.longhornUI.tag
+ tag: images.longhornUI.tag
}
instanceManager: {
repository: images.longhornInstanceManager.imageName
- tag: images.longhornInstanceManager.tag
+ tag: images.longhornInstanceManager.tag
}
shareManager: {
repository: images.longhornShareManager.imageName
- tag: images.longhornShareManager.tag
+ tag: images.longhornShareManager.tag
}
backingImageManager: {
repository: images.longhornBackingImageManager.imageName
- tag: images.longhornBackingImageManager.tag
+ tag: images.longhornBackingImageManager.tag
}
supportBundleKit: {
repository: images.longhornSupportBundleKit.imageName
- tag: images.longhornSupportBundleKit.tag
+ tag: images.longhornSupportBundleKit.tag
}
}
csi: {
attacher: {
repository: images.csiAttacher.imageName
- tag: images.csiAttacher.tag
+ tag: images.csiAttacher.tag
}
provisioner: {
repository: images.csiProvisioner.imageName
- tag: images.csiProvisioner.tag
+ tag: images.csiProvisioner.tag
}
nodeDriverRegistrar: {
repository: images.csiNodeDriverRegistrar.imageName
- tag: images.csiNodeDriverRegistrar.tag
+ tag: images.csiNodeDriverRegistrar.tag
}
resizer: {
repository: images.csiResizer.imageName
- tag: images.csiResizer.tag
+ tag: images.csiResizer.tag
}
snapshotter: {
repository: images.csiSnapshotter.imageName
- tag: images.csiSnapshotter.tag
+ tag: images.csiSnapshotter.tag
}
livenessProbe: {
repository: images.csiLivenessProbe.imageName
- tag: images.csiLivenessProbe.tag
+ tag: images.csiLivenessProbe.tag
}
}
pullPolicy: _pullPolicy
@@ -162,7 +161,7 @@
// defaultSettings: defaultDataPath: input.storageDir
// }
// if input.volumeDefaultReplicaCount != _|_ {
- persistence: defaultClassReplicaCount: 1 // input.volumeDefaultReplicaCount
+ persistence: defaultClassReplicaCount: 1 // input.volumeDefaultReplicaCount
// }
service: ui: type: "ClusterIP"
ingress: enabled: false
diff --git a/core/installer/values-tmpl/matrix.cue b/core/installer/values-tmpl/matrix.cue
index 953c6b7..d058282 100644
--- a/core/installer/values-tmpl/matrix.cue
+++ b/core/installer/values-tmpl/matrix.cue
@@ -1,68 +1,68 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-name: "Matrix"
-namespace: "app-matrix"
-readme: "matrix application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
+name: "Matrix"
+namespace: "app-matrix"
+readme: "matrix application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
description: "An open network for secure, decentralised communication"
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m1.04503942.90944884v37.86613982h2.72503927v.90945071H0V0h3.77007869v.90944884H1.04503942Zm11.64590578,12.00472508v1.91314893h.05456692c.47654392-.69956134,1.10875881-1.27913948,1.84700726-1.69322862.71598361-.40511792,1.54771632-.60354293,2.48031496-.60354293.89291332,0,1.70811022.17692893,2.44889755.51921281.74078733.34393731,1.29803124.96236184,1.68661493,1.83212566.41999952-.61842453.99212662-1.16740212,1.70976444-1.64031434.71763782-.47456723,1.57086583-.71102334,2.55637717-.71102334.74905523,0,1.44188933.09259881,2.08346495.27614143.64157561.18188998,1.18393635.47291301,1.64196855.8763783.45637641.40511792.80858321.92433073,1.06818882,1.57252004.25133929.6481893.3803142,1.42700774.3803142,2.34307056v9.47149555h-3.88417161v-8.02133831c0-.4729138-.01653581-.92433073-.0529127-1.34267762-.02666609-.3797812-.12779852-.75060537-.2976383-1.09133833-.16496703-.31157689-.41647821-.56882971-.72425151-.74078733-.32078781-.1818892-.75566893-.27448879-1.29803124-.27448879-.54897601,0-.99212662.10582699-1.32779444.3125199-.33038665.20312114-.60355081.48709839-.79370003.82511744-.19910782.35594888-.32873086.74650374-.38196842,1.15086631-.06370056.42978918-.09685576.86355382-.09921329,1.29803124v7.88409548h-3.8858274v-7.93700819c0-.41999952-.00661369-.83173271-.0297632-1.24346433-.01353647-.38990201-.09350161-.7746348-.23645611-1.13763734-.13486952-.34292964-.3751576-.63417029-.68622041-.83173271-.32078781-.20669291-.78708634-.31417253-1.41212614-.31417253-.18354341,0-.42826743.03968532-.72590573.1223628-.2976383.08433012-.59527502.23645611-.87637751.46629853-.31383822.26829772-.56214032.60483444-.72590573.98385871-.19842501.42826743-.29763751.99212662-.29763751,1.68661335v8.21149541h-3.88417713v-14.16259852l3.66259868.00000079Zm25.94905485,25.86141789V.90944884h-2.72504056v-.90944884h3.77007988v39.68503937h-3.77007988v-.90944756h2.72504056Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m1.04503942.90944884v37.86613982h2.72503927v.90945071H0V0h3.77007869v.90944884H1.04503942Zm11.64590578,12.00472508v1.91314893h.05456692c.47654392-.69956134,1.10875881-1.27913948,1.84700726-1.69322862.71598361-.40511792,1.54771632-.60354293,2.48031496-.60354293.89291332,0,1.70811022.17692893,2.44889755.51921281.74078733.34393731,1.29803124.96236184,1.68661493,1.83212566.41999952-.61842453.99212662-1.16740212,1.70976444-1.64031434.71763782-.47456723,1.57086583-.71102334,2.55637717-.71102334.74905523,0,1.44188933.09259881,2.08346495.27614143.64157561.18188998,1.18393635.47291301,1.64196855.8763783.45637641.40511792.80858321.92433073,1.06818882,1.57252004.25133929.6481893.3803142,1.42700774.3803142,2.34307056v9.47149555h-3.88417161v-8.02133831c0-.4729138-.01653581-.92433073-.0529127-1.34267762-.02666609-.3797812-.12779852-.75060537-.2976383-1.09133833-.16496703-.31157689-.41647821-.56882971-.72425151-.74078733-.32078781-.1818892-.75566893-.27448879-1.29803124-.27448879-.54897601,0-.99212662.10582699-1.32779444.3125199-.33038665.20312114-.60355081.48709839-.79370003.82511744-.19910782.35594888-.32873086.74650374-.38196842,1.15086631-.06370056.42978918-.09685576.86355382-.09921329,1.29803124v7.88409548h-3.8858274v-7.93700819c0-.41999952-.00661369-.83173271-.0297632-1.24346433-.01353647-.38990201-.09350161-.7746348-.23645611-1.13763734-.13486952-.34292964-.3751576-.63417029-.68622041-.83173271-.32078781-.20669291-.78708634-.31417253-1.41212614-.31417253-.18354341,0-.42826743.03968532-.72590573.1223628-.2976383.08433012-.59527502.23645611-.87637751.46629853-.31383822.26829772-.56214032.60483444-.72590573.98385871-.19842501.42826743-.29763751.99212662-.29763751,1.68661335v8.21149541h-3.88417713v-14.16259852l3.66259868.00000079Zm25.94905485,25.86141789V.90944884h-2.72504056v-.90944884h3.77007988v39.68503937h-3.77007988v-.90944756h2.72504056Z'/>
+ </svg>"""
out: {
images: {
matrix: {
repository: "matrixdotorg"
- name: "synapse"
- tag: "v1.126.0"
+ name: "synapse"
+ tag: "v1.126.0"
pullPolicy: "IfNotPresent"
}
postgres: {
repository: "library"
- name: "postgres"
- tag: "15.3"
+ name: "postgres"
+ tag: "15.3"
pullPolicy: "IfNotPresent"
}
}
charts: {
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
matrix: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/matrix"
+ branch: "main"
+ path: "charts/matrix"
}
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
}
@@ -71,9 +71,9 @@
helm: {
"oauth2-client": {
chart: charts.oauth2Client
- info: "Creating OAuth2 client"
+ info: "Creating OAuth2 client"
values: {
- name: "\(release.namespace)-matrix"
+ name: "\(release.namespace)-matrix"
secretName: _oauth2ClientSecretName
grantTypes: ["authorization_code"]
responseTypes: ["code"]
@@ -84,47 +84,47 @@
}
matrix: {
dependsOn: [{
- name: "postgres"
+ name: "postgres"
namespace: release.namespace
}]
chart: charts.matrix
- info: "Installing Synapse server"
+ info: "Installing Synapse server"
values: {
- domain: input.network.domain
+ domain: input.network.domain
subdomain: input.subdomain
oauth2: {
secretName: "oauth2-client"
- issuer: "https://hydra.\(input.network.domain)"
+ issuer: "https://hydra.\(input.network.domain)"
}
postgresql: {
- host: "postgres"
- port: 5432
+ host: "postgres"
+ port: 5432
database: "matrix"
- user: "matrix"
+ user: "matrix"
password: "matrix"
}
certificateIssuer: input.network.certificateIssuer
- ingressClassName: input.network.ingressClass
+ ingressClassName: input.network.ingressClass
configMerge: {
configName: "config-to-merge"
- fileName: "to-merge.yaml"
+ fileName: "to-merge.yaml"
}
image: {
repository: images.matrix.fullName
- tag: images.matrix.tag
+ tag: images.matrix.tag
pullPolicy: images.matrix.pullPolicy
}
}
}
postgres: {
chart: charts.postgres
- info: "Installing PostgreSQL"
+ info: "Installing PostgreSQL"
values: {
fullnameOverride: "postgres"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
service: {
@@ -148,7 +148,7 @@
fsGroup: 0
}
containerSecurityContext: {
- enabled: true
+ enabled: true
runAsUser: 0
}
}
@@ -163,9 +163,9 @@
}
help: [{
- title: "Client Applications"
+ title: "Client Applications"
contents: "You can connect to \(_domain) Matrix server with any of the official clients. We recommend using Element. You can use official Element Web application to chat within the browser. Platform native client applications can be downloaded from: [https://element.io/download](https://element.io/download). Follow **Custom Homeserver** section to login with your dodo: account."
}, {
- title: "Custom Homeserver"
+ title: "Custom Homeserver"
contents: "Click **Sign in** button, edit **Homeserver** address and enter **\(input.network.domain)**, click **Continue**. Choose **Continue with PCloud** option and login to your dodo: account."
}]
diff --git a/core/installer/values-tmpl/memberships.cue b/core/installer/values-tmpl/memberships.cue
index 521c4d1..c340cb0 100644
--- a/core/installer/values-tmpl/memberships.cue
+++ b/core/installer/values-tmpl/memberships.cue
@@ -1,17 +1,17 @@
input: {
- network: #Network @name(Network)
- authGroups: string @name(Allowed Groups)
+ network: #Network @name(Network)
+ authGroups: string @name(Allowed Groups)
}
_subdomain: "memberships"
-_domain: "\(_subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+_domain: "\(_subdomain).\(input.network.domain)"
+url: "https://\(_domain)"
-name: "Memberships"
-namespace: "core-auth-memberships"
-readme: "Memberships application will be installed on Private network and be accessible at https://\(_domain)"
+name: "Memberships"
+namespace: "core-auth-memberships"
+readme: "Memberships application will be installed on Private network and be accessible at https://\(_domain)"
description: "The application is a membership management system designed to facilitate the organization and administration of groups and memberships. Can be configured to be reachable only from private network or publicly."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M15.43 15.48c-1.1-.49-2.26-.73-3.43-.73c-1.18 0-2.33.25-3.43.73c-.23.1-.4.29-.49.52h7.85a.978.978 0 0 0-.5-.52m-2.49-6.69C12.86 8.33 12.47 8 12 8s-.86.33-.94.79l-.2 1.21h2.28z' opacity='0.3'/><path fill='currentColor' d='M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74m.79-3.21c.08-.46.47-.79.94-.79s.86.33.94.79l.2 1.21h-2.28zm-9.4 2.32c-.13.26-.18.57-.1.88c.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29c0-.14-.03-.27-.07-.4c-.01-.03-.01-.05.01-.08c.09-.16.14-.34.14-.53c0-.31-.14-.6-.36-.82c-.03-.03-.03-.06-.02-.1c.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74a.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26c-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06c-.29.26-.46.65-.41 1.05c.03.22.12.43.25.6c.03.02.03.06.02.09m14.58 2.54c-1.17-.52-2.61-.9-4.24-.9c-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74M8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73c1.18 0 2.33.25 3.43.73c.23.1.4.29.49.52zm-6.85-1.42A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29c-.37-.06-.74-.1-1.13-.1c-.99 0-1.93.21-2.78.58m21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1c.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85M22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06c0 1.1.9 2 2 2s2-.9 2-2'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M15.43 15.48c-1.1-.49-2.26-.73-3.43-.73c-1.18 0-2.33.25-3.43.73c-.23.1-.4.29-.49.52h7.85a.978.978 0 0 0-.5-.52m-2.49-6.69C12.86 8.33 12.47 8 12 8s-.86.33-.94.79l-.2 1.21h2.28z' opacity='0.3'/><path fill='currentColor' d='M10.27 12h3.46a1.5 1.5 0 0 0 1.48-1.75l-.3-1.79a2.951 2.951 0 0 0-5.82.01l-.3 1.79c-.15.91.55 1.74 1.48 1.74m.79-3.21c.08-.46.47-.79.94-.79s.86.33.94.79l.2 1.21h-2.28zm-9.4 2.32c-.13.26-.18.57-.1.88c.16.69.76 1.03 1.53 1h1.95c.83 0 1.51-.58 1.51-1.29c0-.14-.03-.27-.07-.4c-.01-.03-.01-.05.01-.08c.09-.16.14-.34.14-.53c0-.31-.14-.6-.36-.82c-.03-.03-.03-.06-.02-.1c.07-.2.07-.43.01-.65a1.12 1.12 0 0 0-.99-.74a.09.09 0 0 1-.07-.03C5.03 8.14 4.72 8 4.37 8c-.3 0-.57.1-.75.26c-.03.03-.06.03-.09.02a1.24 1.24 0 0 0-1.7 1.03c0 .02-.01.04-.03.06c-.29.26-.46.65-.41 1.05c.03.22.12.43.25.6c.03.02.03.06.02.09m14.58 2.54c-1.17-.52-2.61-.9-4.24-.9c-1.63 0-3.07.39-4.24.9A2.988 2.988 0 0 0 6 16.39V18h12v-1.61c0-1.18-.68-2.26-1.76-2.74M8.07 16a.96.96 0 0 1 .49-.52c1.1-.49 2.26-.73 3.43-.73c1.18 0 2.33.25 3.43.73c.23.1.4.29.49.52zm-6.85-1.42A2.01 2.01 0 0 0 0 16.43V18h4.5v-1.61c0-.83.23-1.61.63-2.29c-.37-.06-.74-.1-1.13-.1c-.99 0-1.93.21-2.78.58m21.56 0A6.95 6.95 0 0 0 20 14c-.39 0-.76.04-1.13.1c.4.68.63 1.46.63 2.29V18H24v-1.57c0-.81-.48-1.53-1.22-1.85M22 11v-.5c0-1.1-.9-2-2-2h-2c-.42 0-.65.48-.39.81l.7.63c-.19.31-.31.67-.31 1.06c0 1.1.9 2 2 2s2-.9 2-2'/></svg>"
_httpPortName: "http"
@@ -20,9 +20,9 @@
memberships: {
auth: {
enabled: true
- groups: input.authGroups
+ groups: input.authGroups
}
- network: input.network
+ network: input.network
subdomain: _subdomain
service: {
name: "memberships"
@@ -34,18 +34,18 @@
images: {
memberships: {
repository: "giolekva"
- name: "memberships"
- tag: "latest"
+ name: "memberships"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
memberships: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/memberships"
+ branch: "main"
+ path: "charts/memberships"
}
}
@@ -57,10 +57,10 @@
values: {
image: {
repository: images.memberships.fullName
- tag: images.memberships.tag
+ tag: images.memberships.tag
pullPolicy: images.memberships.pullPolicy
}
- portName: _httpPortName
+ portName: _httpPortName
volumeClaimName: volume.data.name
}
}
diff --git a/core/installer/values-tmpl/metallb-ipaddresspool.cue b/core/installer/values-tmpl/metallb-ipaddresspool.cue
index a0bb4e5..36c11bb 100644
--- a/core/installer/values-tmpl/metallb-ipaddresspool.cue
+++ b/core/installer/values-tmpl/metallb-ipaddresspool.cue
@@ -1,21 +1,21 @@
input: {
- name: string
- from: string
- to: string
+ name: string
+ from: string
+ to: string
autoAssign: bool | *false
- namespace: string
+ namespace: string
}
-name: "metallb-ipaddresspool"
+name: "metallb-ipaddresspool"
namespace: "metallb-ipaddresspool"
out: {
charts: {
metallbIPAddressPool: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/metallb-ipaddresspool"
+ branch: "main"
+ path: "charts/metallb-ipaddresspool"
}
}
@@ -23,11 +23,11 @@
"metallb-ipaddresspool-\(input.name)": {
chart: charts.metallbIPAddressPool
values: {
- name: input.name
- from: input.from
- to: input.to
+ name: input.name
+ from: input.from
+ to: input.to
autoAssign: input.autoAssign
- namespace: input.namespace
+ namespace: input.namespace
}
}
}
diff --git a/core/installer/values-tmpl/open-project.cue b/core/installer/values-tmpl/open-project.cue
index 10234b4..b1d3795 100644
--- a/core/installer/values-tmpl/open-project.cue
+++ b/core/installer/values-tmpl/open-project.cue
@@ -1,16 +1,16 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "OpenProject"
-namespace: "app-open-project"
-readme: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
+name: "OpenProject"
+namespace: "app-open-project"
+readme: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
description: "Open source project management software. Powerful classic, agile or hybrid project management in a secure environment."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M19.35.37h-1.86a4.63 4.63 0 0 0-4.652 4.624v5.609H4.652A4.63 4.63 0 0 0 0 15.23v3.721c0 2.569 2.083 4.679 4.652 4.679h1.86c2.57 0 4.652-2.11 4.652-4.679v-3.72c0-.063 0-.158-.005-.158H8.373v3.88c0 1.026-.835 1.886-1.861 1.886h-1.86c-1.027 0-1.861-.864-1.861-1.886V15.23a1.84 1.84 0 0 1 1.86-1.833h14.697c2.57 0 4.652-2.11 4.652-4.679V4.997A4.63 4.63 0 0 0 19.35.37m1.861 8.345c0 1.026-.835 1.886-1.861 1.886h-3.721V4.997a1.84 1.84 0 0 1 1.86-1.833h1.86a1.84 1.84 0 0 1 1.862 1.833zm-8.373 9.706v.03c0 .746.629 1.344 1.396 1.344s1.395-.594 1.395-1.34v-3.384h-2.791z'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M19.35.37h-1.86a4.63 4.63 0 0 0-4.652 4.624v5.609H4.652A4.63 4.63 0 0 0 0 15.23v3.721c0 2.569 2.083 4.679 4.652 4.679h1.86c2.57 0 4.652-2.11 4.652-4.679v-3.72c0-.063 0-.158-.005-.158H8.373v3.88c0 1.026-.835 1.886-1.861 1.886h-1.86c-1.027 0-1.861-.864-1.861-1.886V15.23a1.84 1.84 0 0 1 1.86-1.833h14.697c2.57 0 4.652-2.11 4.652-4.679V4.997A4.63 4.63 0 0 0 19.35.37m1.861 8.345c0 1.026-.835 1.886-1.861 1.886h-3.721V4.997a1.84 1.84 0 0 1 1.86-1.833h1.86a1.84 1.84 0 0 1 1.862 1.833zm-8.373 9.706v.03c0 .746.629 1.344 1.396 1.344s1.395-.594 1.395-1.34v-3.384h-2.791z'/></svg>"
_httpPort: 8080
@@ -18,7 +18,7 @@
ingress: {
gerrit: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "open-project"
@@ -30,44 +30,44 @@
images: {
openProject: {
repository: "openproject"
- name: "openproject"
- tag: "13.4.1"
+ name: "openproject"
+ tag: "13.4.1"
pullPolicy: "Always"
}
postgres: {
repository: "library"
- name: "postgres"
- tag: "15.3"
+ name: "postgres"
+ tag: "15.3"
pullPolicy: "IfNotPresent"
}
}
charts: {
openProject: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/openproject"
+ branch: "main"
+ path: "charts/openproject"
}
volume: {
- path: "charts/volumes"
- kind: "GitRepository"
+ path: "charts/volumes"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
+ branch: "main"
}
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
}
volume: {
openProject: {
- name: "open-project"
+ name: "open-project"
accessMode: "ReadWriteMany"
- size: "50Gi"
+ size: "50Gi"
}
}
@@ -76,29 +76,29 @@
chart: charts.openProject
values: {
image: {
- registry: images.openProject.registry
- repository: images.openProject.imageName
- tag: images.openProject.tag
+ registry: images.openProject.registry
+ repository: images.openProject.imageName
+ tag: images.openProject.tag
imagePullPolicy: images.openProject.pullPolicy
}
nameOverride: "open-project"
- ingress: enabled: false
+ ingress: enabled: false
memcached: bundled: true
- s3: enabled: false
+ s3: enabled: false
openproject: {
- host: _domain
+ host: _domain
https: false
- hsts: false
+ hsts: false
oidc: enabled: false // TODO(gio): enable
admin_user: {
- password: "admin"
+ password: "admin"
password_reset: false
- name: "admin"
- mail: "op-admin@\(networks.public.domain)"
+ name: "admin"
+ mail: "op-admin@\(networks.public.domain)"
}
}
persistence: {
- enabled: true
+ enabled: true
existingClaim: volume.openProject.name
}
postgresql: {
@@ -115,20 +115,20 @@
}
service: {
enabled: true
- type: "ClusterIP"
+ type: "ClusterIP"
}
initDb: {
image: {
- registry: images.postgres.registry
- repository: images.postgres.imageName
- tag: images.postgres.tag
+ registry: images.postgres.registry
+ repository: images.postgres.imageName
+ tag: images.postgres.tag
imagePullPolicy: images.postgres.pullPolicy
}
}
}
}
"open-project-volume": {
- chart: charts.volume
+ chart: charts.volume
values: volume.openProject
}
postgres: {
@@ -136,9 +136,9 @@
values: {
fullnameOverride: "postgres"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
service: {
@@ -162,7 +162,7 @@
fsGroup: 0
}
containerSecurityContext: {
- enabled: true
+ enabled: true
runAsUser: 0
}
}
diff --git a/core/installer/values-tmpl/penpot.cue b/core/installer/values-tmpl/penpot.cue
index 21004f4..7434afd 100644
--- a/core/installer/values-tmpl/penpot.cue
+++ b/core/installer/values-tmpl/penpot.cue
@@ -1,63 +1,63 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Penpot"
-namespace: "app-penpot"
-readme: "penpot application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
+name: "Penpot"
+namespace: "app-penpot"
+readme: "penpot application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
description: "Penpot is the first Open Source design and prototyping platform meant for cross-domain teams. Non dependent on operating systems, Penpot is web based and works with open standards (SVG). Penpot invites designers all over the world to fall in love with open source while getting developers excited about the design process in return."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M7.654 0L5.13 3.554v2.01L2.934 6.608l-.02-.009v13.109l8.563 4.045L12 24l.523-.247l8.563-4.045V6.6l-.017.008l-2.196-1.045V3.555l-.077-.108L16.349.001l-2.524 3.554v.004L11.989.973l-1.823 2.566l-.065-.091zm.447 2.065l.976 1.374H6.232l.964-1.358zm8.694 0l.976 1.374h-2.845l.965-1.358zm-4.36.971l.976 1.375h-2.845l.965-1.359zM5.962 4.132h1.35v4.544l-1.35-.638Zm2.042 0h1.343v5.506l-1.343-.635zm6.652 0h1.35V9l-1.35.637zm2.042 0h1.343v3.905l-1.343.634zm-6.402.972h1.35v5.62l-1.35-.638zm2.042 0h1.343v4.993l-1.343.634zm6.534 1.493l1.188.486l-1.188.561zM5.13 6.6v1.047l-1.187-.561ZM3.96 8.251l7.517 3.55v10.795l-7.516-3.55zm16.08 0v10.794l-7.517 3.55V11.802z'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'><path fill='currentColor' d='M7.654 0L5.13 3.554v2.01L2.934 6.608l-.02-.009v13.109l8.563 4.045L12 24l.523-.247l8.563-4.045V6.6l-.017.008l-2.196-1.045V3.555l-.077-.108L16.349.001l-2.524 3.554v.004L11.989.973l-1.823 2.566l-.065-.091zm.447 2.065l.976 1.374H6.232l.964-1.358zm8.694 0l.976 1.374h-2.845l.965-1.358zm-4.36.971l.976 1.375h-2.845l.965-1.359zM5.962 4.132h1.35v4.544l-1.35-.638Zm2.042 0h1.343v5.506l-1.343-.635zm6.652 0h1.35V9l-1.35.637zm2.042 0h1.343v3.905l-1.343.634zm-6.402.972h1.35v5.62l-1.35-.638zm2.042 0h1.343v4.993l-1.343.634zm6.534 1.493l1.188.486l-1.188.561zM5.13 6.6v1.047l-1.187-.561ZM3.96 8.251l7.517 3.55v10.795l-7.516-3.55zm16.08 0v10.794l-7.517 3.55V11.802z'/></svg>"
out: {
images: {
postgres: {
repository: "library"
- name: "postgres"
- tag: "15.3"
+ name: "postgres"
+ tag: "15.3"
pullPolicy: "IfNotPresent"
}
backend: {
repository: "penpotapp"
- name: "backend"
- tag: "1.16.0-beta"
+ name: "backend"
+ tag: "1.16.0-beta"
pullPolicy: "IfNotPresent"
}
frontend: {
repository: "penpotapp"
- name: "frontend"
- tag: "1.16.0-beta"
+ name: "frontend"
+ tag: "1.16.0-beta"
pullPolicy: "IfNotPresent"
}
exporter: {
repository: "penpotapp"
- name: "exporter"
- tag: "1.16.0-beta"
+ name: "exporter"
+ tag: "1.16.0-beta"
pullPolicy: "IfNotPresent"
}
}
charts: {
postgres: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/postgresql"
+ branch: "main"
+ path: "charts/postgresql"
}
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
penpot: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/penpot"
+ branch: "main"
+ path: "charts/penpot"
}
}
@@ -67,13 +67,13 @@
"oauth2-client": {
chart: charts.oauth2Client
values: {
- name: "\(release.namespace)-penpot"
+ name: "\(release.namespace)-penpot"
secretName: _oauth2SecretName
grantTypes: ["authorization_code"]
responseTypes: ["code"]
scope: "openid profile email"
redirectUris: ["https://\(_domain)/api/auth/oauth/oidc/callback"]
- hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
+ hydraAdmin: "http://hydra-admin.\(global.namespacePrefix)core-auth.svc.cluster.local"
tokenEndpointAuthMethod: "client_secret_post"
}
}
@@ -82,9 +82,9 @@
values: {
fullnameOverride: "postgres"
image: {
- registry: images.postgres.registry
+ registry: images.postgres.registry
repository: images.postgres.imageName
- tag: images.postgres.tag
+ tag: images.postgres.tag
pullPolicy: images.postgres.pullPolicy
}
auth: {
@@ -99,29 +99,29 @@
values: {
"global": {
postgresqlEnabled: false
- redisEnabled: true // TODO(gio): provide redis from outside
+ redisEnabled: true // TODO(gio): provide redis from outside
}
fullnameOverride: "penpot"
backend: {
image: {
- repository: images.backend.fullName
- tag: images.backend.tag
+ repository: images.backend.fullName
+ tag: images.backend.tag
imagePullPolicy: images.backend.pullPolicy
}
}
frontend: {
image: {
- repository: images.frontend.fullName
- tag: images.frontend.tag
+ repository: images.frontend.fullName
+ tag: images.frontend.tag
imagePullPolicy: images.frontend.pullPolicy
}
ingress: {
- enabled: true
+ enabled: true
className: input.network.ingressClass
if input.network.certificateIssuer != "" {
annotations: {
"acme.cert-manager.io/http01-edit-in-place": "true"
- "cert-manager.io/cluster-issuer": input.network.certificateIssuer
+ "cert-manager.io/cluster-issuer": input.network.certificateIssuer
}
}
hosts: [_domain]
@@ -134,9 +134,9 @@
persistence: enabled: true
config: {
publicURI: _domain
- flags: "enable-login-with-oidc enable-registration enable-insecure-register disable-demo-users disable-demo-warning" // TODO(gio): remove enable-insecure-register?
+ flags: "enable-login-with-oidc enable-registration enable-insecure-register disable-demo-users disable-demo-warning" // TODO(gio): remove enable-insecure-register?
postgresql: {
- host: "postgres.\(release.namespace).svc.cluster.local"
+ host: "postgres.\(release.namespace).svc.cluster.local"
database: "penpot"
username: "penpot"
password: "penpot"
@@ -144,30 +144,30 @@
redis: host: "penpot-redis-headless.\(release.namespace).svc.cluster.local"
providers: {
oidc: {
- enabled: true
- baseURI: "https://hydra.\(networks.public.domain)"
- clientID: ""
- clientSecret: ""
- authURI: ""
- tokenURI: ""
- userURI: ""
- roles: ""
+ enabled: true
+ baseURI: "https://hydra.\(networks.public.domain)"
+ clientID: ""
+ clientSecret: ""
+ authURI: ""
+ tokenURI: ""
+ userURI: ""
+ roles: ""
rolesAttribute: ""
- scopes: ""
- nameAttribute: "name"
+ scopes: ""
+ nameAttribute: "name"
emailAttribute: "email"
}
existingSecret: _oauth2SecretName
secretKeys: {
- oidcClientIDKey: "client_id"
+ oidcClientIDKey: "client_id"
oidcClientSecretKey: "client_secret"
}
}
}
exporter: {
image: {
- repository: images.exporter.fullName
- tag: images.exporter.tag
+ repository: images.exporter.fullName
+ tag: images.exporter.tag
imagePullPolicy: images.exporter.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/pihole.cue b/core/installer/values-tmpl/pihole.cue
index 6607409..297b7d6 100644
--- a/core/installer/values-tmpl/pihole.cue
+++ b/core/installer/values-tmpl/pihole.cue
@@ -1,44 +1,44 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- auth: #Auth @name(Authentication)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ auth: #Auth @name(Authentication)
storageSize: string
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Pi-hole"
-namespace: "app-pihole"
-readme: "Installs pihole at https://\(_domain)"
+name: "Pi-hole"
+namespace: "app-pihole"
+readme: "Installs pihole at https://\(_domain)"
description: "Pi-hole is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole and optionally a DHCP server, intended for use on a private network."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27.39405994 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-16.11987996' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m13.6958581,39.68503937c-.01621089,0-.03242178-.00078125-.04863267-.0015625l-.11503872-.00937497c-.16074171-.00390624-.32304592-.01249996-.48378764-.02968741-.01210934-.00078125-.02441399-.00234374-.03652333-.00468749-1.49179248-.15312455-2.89628053-.81952884-3.9587774-1.87890072l-7.1394321-7.14294771C.69648232,29.39991341-.00039062,27.71476212.00019531,25.9928922v-.01484371c-.00019531-.01562495-.00019531-.03046866-.00019531-.04531237.00019531-.75312278.14335895-1.49608934.42597531-2.20233726.31581938-.87890366.84413814-1.71171371,1.51952677-2.38671172l7.14704926-7.14294771c.48613138-.48515482,1.03534851-.88515364,1.62929208-1.19140274C3.81366064,11.92027739,1.05409846,5.75779554.80214608.68437298c-.00058594-.01093747-.00078125-.02187494-.00078125-.0328124.00019531-.16718701.06425762-.32734279.17968697-.44921743.12324182-.12890587.29394445-.20234315.47265486-.20234315,6.407403,0,10.65289831,3.19686558,12.00894901,8.89059882,2.40448511-5.62810842,7.81462542-4.90154806,7.87712524-4.89373559.30351473.04531237.53456874.29609288.55488118.60234198.01269528.19140569.01894526.38124888.01894526.56952957.00019531,1.88436945-.63163876,3.58748943-1.84374457,4.95545416-1.04277037,1.17655903-2.48260988,2.05780644-4.13436282,2.56092996.90038797.32656154,1.72226055.84687251,2.39901637,1.52108927l7.14294771,7.14685395c1.22050422,1.2218714,1.8982366,2.84061663,1.9130803,4.56483031.00234374.02265618.00351561.04453112.00351561.0671873,0,.02343743-.00136718.04765611-.00410155.07109354l-.00800779.15312455c-.00937497.30859284-.04335925.63202939-.10058564.94843471l-.02070306.10781218c-.25214769,1.27812124-.87011462,2.43749282-1.78769005,3.35702136l-7.14724458,7.14138522c-1.19374648,1.19218399-2.83612446,1.88593195-4.52186168,1.91171312-.03535146.00624998-.07148416.00937497-.10800749.00937497Zm-.00468749-1.31327738c.00507811-.00546873.00937497-.00078125.01386715,0,1.37714438,0,2.72440604-.55781086,3.69842661-1.53124549l7.14665864-7.14060397c.73398221-.73515408,1.22851201-1.66327635,1.4298786-2.68358585l.01874994-.09687471c.04433581-.24687427.07167948-.50624851.07949195-.763279l.00546873-.11015593v-.00234374c0-.00859372.00097656-.02656242.00253906-.04687486-.00019531-.00468749-.00019531-.00937497-.00019531-.01406246v-.00859372c-.00039062-1.39687089-.54413902-2.71014827-1.53163611-3.69920786l-7.14158053-7.14529146c-.61738099-.61484194-1.38671467-1.07030935-2.2242122-1.31718362l-.10703093-.03046866c-.43261591-.12421838-.88085678-.18749945-1.33339451-.18749945-.00996091,0-.02968741-.00078125-.04960923-.0015625-1.39081622.00390624-2.6992108.54687339-3.68377821,1.53124549l-7.14685395,7.14216646c-.5404281.54062341-.9630831,1.2070277-1.22245734,1.92733807-.22871026.57187332-.340624,1.15234036-.34081931,1.74530736,0,.01249996.00019531.02421868.00019531.03593739v.01171872c-.00058594,1.38515217.55722492,2.73436695,1.53163611,3.70936408l7.13845554,7.14216646c.85761466.85468498,1.99472069,1.3906209,3.20116245,1.50702681.01425777.0015625.02832023.00312499.04238269.00546873.04140613.00390624.08281226.00703123.12421838.01015622.03066397-.00312499.0623045-.00468749.09355441-.00234374l.10820281.00624998c.03749989.00312499.07480447.00546873.11269498.00624998l.03398427.00078125Zm-1.58065941-26.05773576c0,.05859358-.00234374.11640591-.00703123.17265574.1162106-.02890616.23359306-.05546859.35175678-.07812477-.10859343-.17656198-.24003836-.36718642-.39081916-.57031082.03027335.16484326.04628893.32343655.04609361.47577985Zm8.4613032-7.05935421c-1.50272995,0-5.46775733.58046704-6.61619145,6.52419953,2.09218134-.26718671,3.93651184-1.16484032,5.13787549-2.52030508.97675494-1.1023405,1.49491747-2.47733645,1.51464398-4.00389446h-.03632802ZM2.15331397,1.31874612c.58261547,6.57576188,4.61092392,9.62184666,8.53884204,10.35856324-.68027143-2.00936908-4.21483134-5.63513965-6.5759572-7.69372734-.03574208-.03046866-.06796855-.06562481-.09609347-.10390594-.08496069-.11484341-.1261715-.2539055-.1261715-.39218634,0-.19609317.08222632-.3914051.23808524-.52109222.26621015-.22187435.6845683-.19609317.92070041.05859358.20351503.17109325,4.80408741,4.15155027,7.33845495,7.14216646C11.47340371,4.6531113,7.90075798,1.54921419,2.15331397,1.31874612Zm6.50251991,33.47880765c-.33847557,0-.62382629-.26093673-.64980277-.60234198l-.01269528-.16640576c-.01074216-.14687457-.01562495-.29218664-.01562495-.43437372.00019531-1.51874553.57206863-2.82030419,1.12675449-4.08358172.51972503-1.18280902,1.0105439-2.29999323,1.0105439-3.5312396-.10839812-1.42968329-.6550762-2.62342977-1.57929222-3.40311498-.85624748-.72265412-2.03534557-1.06562186-3.2396389-.95624718-.35839738.04921861-.6748027-.22656183-.71093541-.58359203-.00234374-.02187494-.0033203-.04453112-.0033203-.06640605-.00019531-.32890528.24824146-.61171695.58261547-.64765434.17089793-.01874994.34687398-.03593739.52988125-.04609361,1.69374501-.12031215,3.12186581.50546726,4.50291643,1.11249672,1.18280902.51952972,2.29999323,1.01015327,3.53182554,1.01015327,3.07577219-.23046807,4.28651081-2.28280578,4.37791679-4.1257691.01738276-.35234271.3144522-.62968565.66347461-.62031067.3521474.00624998.63574032.29140539.6404278.6437481.00039062.02734367.00058594.05468734.00039062.08203101-.00039062,1.51718303-.57011551,2.82030419-1.12128576,4.08045673-.51738129,1.18359026-1.00605172,2.30077447-1.00605172,3.53202085.24804614,3.3429589,2.60526576,4.45936187,4.54471318,4.37889335.34843647-.04218738.65273245.25468675.67675582.60702946.00117187.01484371.0015625.02968741.0015625.04531237.00019531.33281152-.25273363.61562319-.58906077.64843559l-.19433537.01718745c-1.69433095.11484341-3.12264705-.50390477-4.50447892-1.11015298-1.18222308-.51874847-2.29901667-1.00937203-3.53006773-1.00937203-3.03631918.22421809-4.38436209,2.31952442-4.38475271,4.35936216,0,.06328106.00136718.12656213.00390624.19062444.00039062.00859372.00058594.0179687.00058594.02656242.00019531.34374899-.26796796.63124814-.61406069.65156058-.0130859.00078125-.02597649.00078125-.03886707.00078125Zm2.76210124-8.85700516c-.00039062,1.18359026-.33222558,2.21796222-.73398221,3.19842808.79550547-.47031111,1.77733852-.78671643,2.95741316-.87343493h.00703123c1.18925431,0,2.22811844.33515526,3.21268585.73906032-.47382673-.79687265-.79296641-1.78124475-.88007553-2.96561627v-.00859372c.00039062-1.17187155.32441311-2.19764978.71933382-3.16952192-.77753677.44687368-1.74296362.75312278-2.92284295.84140377h-.00742185c-1.19804335,0-2.24315746-.33984275-3.23397485-.74765405.49765478.84140377.79745859,1.84608831.88183334,2.97655373v.00937497Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 27.39405994 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-16.11987996' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m13.6958581,39.68503937c-.01621089,0-.03242178-.00078125-.04863267-.0015625l-.11503872-.00937497c-.16074171-.00390624-.32304592-.01249996-.48378764-.02968741-.01210934-.00078125-.02441399-.00234374-.03652333-.00468749-1.49179248-.15312455-2.89628053-.81952884-3.9587774-1.87890072l-7.1394321-7.14294771C.69648232,29.39991341-.00039062,27.71476212.00019531,25.9928922v-.01484371c-.00019531-.01562495-.00019531-.03046866-.00019531-.04531237.00019531-.75312278.14335895-1.49608934.42597531-2.20233726.31581938-.87890366.84413814-1.71171371,1.51952677-2.38671172l7.14704926-7.14294771c.48613138-.48515482,1.03534851-.88515364,1.62929208-1.19140274C3.81366064,11.92027739,1.05409846,5.75779554.80214608.68437298c-.00058594-.01093747-.00078125-.02187494-.00078125-.0328124.00019531-.16718701.06425762-.32734279.17968697-.44921743.12324182-.12890587.29394445-.20234315.47265486-.20234315,6.407403,0,10.65289831,3.19686558,12.00894901,8.89059882,2.40448511-5.62810842,7.81462542-4.90154806,7.87712524-4.89373559.30351473.04531237.53456874.29609288.55488118.60234198.01269528.19140569.01894526.38124888.01894526.56952957.00019531,1.88436945-.63163876,3.58748943-1.84374457,4.95545416-1.04277037,1.17655903-2.48260988,2.05780644-4.13436282,2.56092996.90038797.32656154,1.72226055.84687251,2.39901637,1.52108927l7.14294771,7.14685395c1.22050422,1.2218714,1.8982366,2.84061663,1.9130803,4.56483031.00234374.02265618.00351561.04453112.00351561.0671873,0,.02343743-.00136718.04765611-.00410155.07109354l-.00800779.15312455c-.00937497.30859284-.04335925.63202939-.10058564.94843471l-.02070306.10781218c-.25214769,1.27812124-.87011462,2.43749282-1.78769005,3.35702136l-7.14724458,7.14138522c-1.19374648,1.19218399-2.83612446,1.88593195-4.52186168,1.91171312-.03535146.00624998-.07148416.00937497-.10800749.00937497Zm-.00468749-1.31327738c.00507811-.00546873.00937497-.00078125.01386715,0,1.37714438,0,2.72440604-.55781086,3.69842661-1.53124549l7.14665864-7.14060397c.73398221-.73515408,1.22851201-1.66327635,1.4298786-2.68358585l.01874994-.09687471c.04433581-.24687427.07167948-.50624851.07949195-.763279l.00546873-.11015593v-.00234374c0-.00859372.00097656-.02656242.00253906-.04687486-.00019531-.00468749-.00019531-.00937497-.00019531-.01406246v-.00859372c-.00039062-1.39687089-.54413902-2.71014827-1.53163611-3.69920786l-7.14158053-7.14529146c-.61738099-.61484194-1.38671467-1.07030935-2.2242122-1.31718362l-.10703093-.03046866c-.43261591-.12421838-.88085678-.18749945-1.33339451-.18749945-.00996091,0-.02968741-.00078125-.04960923-.0015625-1.39081622.00390624-2.6992108.54687339-3.68377821,1.53124549l-7.14685395,7.14216646c-.5404281.54062341-.9630831,1.2070277-1.22245734,1.92733807-.22871026.57187332-.340624,1.15234036-.34081931,1.74530736,0,.01249996.00019531.02421868.00019531.03593739v.01171872c-.00058594,1.38515217.55722492,2.73436695,1.53163611,3.70936408l7.13845554,7.14216646c.85761466.85468498,1.99472069,1.3906209,3.20116245,1.50702681.01425777.0015625.02832023.00312499.04238269.00546873.04140613.00390624.08281226.00703123.12421838.01015622.03066397-.00312499.0623045-.00468749.09355441-.00234374l.10820281.00624998c.03749989.00312499.07480447.00546873.11269498.00624998l.03398427.00078125Zm-1.58065941-26.05773576c0,.05859358-.00234374.11640591-.00703123.17265574.1162106-.02890616.23359306-.05546859.35175678-.07812477-.10859343-.17656198-.24003836-.36718642-.39081916-.57031082.03027335.16484326.04628893.32343655.04609361.47577985Zm8.4613032-7.05935421c-1.50272995,0-5.46775733.58046704-6.61619145,6.52419953,2.09218134-.26718671,3.93651184-1.16484032,5.13787549-2.52030508.97675494-1.1023405,1.49491747-2.47733645,1.51464398-4.00389446h-.03632802ZM2.15331397,1.31874612c.58261547,6.57576188,4.61092392,9.62184666,8.53884204,10.35856324-.68027143-2.00936908-4.21483134-5.63513965-6.5759572-7.69372734-.03574208-.03046866-.06796855-.06562481-.09609347-.10390594-.08496069-.11484341-.1261715-.2539055-.1261715-.39218634,0-.19609317.08222632-.3914051.23808524-.52109222.26621015-.22187435.6845683-.19609317.92070041.05859358.20351503.17109325,4.80408741,4.15155027,7.33845495,7.14216646C11.47340371,4.6531113,7.90075798,1.54921419,2.15331397,1.31874612Zm6.50251991,33.47880765c-.33847557,0-.62382629-.26093673-.64980277-.60234198l-.01269528-.16640576c-.01074216-.14687457-.01562495-.29218664-.01562495-.43437372.00019531-1.51874553.57206863-2.82030419,1.12675449-4.08358172.51972503-1.18280902,1.0105439-2.29999323,1.0105439-3.5312396-.10839812-1.42968329-.6550762-2.62342977-1.57929222-3.40311498-.85624748-.72265412-2.03534557-1.06562186-3.2396389-.95624718-.35839738.04921861-.6748027-.22656183-.71093541-.58359203-.00234374-.02187494-.0033203-.04453112-.0033203-.06640605-.00019531-.32890528.24824146-.61171695.58261547-.64765434.17089793-.01874994.34687398-.03593739.52988125-.04609361,1.69374501-.12031215,3.12186581.50546726,4.50291643,1.11249672,1.18280902.51952972,2.29999323,1.01015327,3.53182554,1.01015327,3.07577219-.23046807,4.28651081-2.28280578,4.37791679-4.1257691.01738276-.35234271.3144522-.62968565.66347461-.62031067.3521474.00624998.63574032.29140539.6404278.6437481.00039062.02734367.00058594.05468734.00039062.08203101-.00039062,1.51718303-.57011551,2.82030419-1.12128576,4.08045673-.51738129,1.18359026-1.00605172,2.30077447-1.00605172,3.53202085.24804614,3.3429589,2.60526576,4.45936187,4.54471318,4.37889335.34843647-.04218738.65273245.25468675.67675582.60702946.00117187.01484371.0015625.02968741.0015625.04531237.00019531.33281152-.25273363.61562319-.58906077.64843559l-.19433537.01718745c-1.69433095.11484341-3.12264705-.50390477-4.50447892-1.11015298-1.18222308-.51874847-2.29901667-1.00937203-3.53006773-1.00937203-3.03631918.22421809-4.38436209,2.31952442-4.38475271,4.35936216,0,.06328106.00136718.12656213.00390624.19062444.00039062.00859372.00058594.0179687.00058594.02656242.00019531.34374899-.26796796.63124814-.61406069.65156058-.0130859.00078125-.02597649.00078125-.03886707.00078125Zm2.76210124-8.85700516c-.00039062,1.18359026-.33222558,2.21796222-.73398221,3.19842808.79550547-.47031111,1.77733852-.78671643,2.95741316-.87343493h.00703123c1.18925431,0,2.22811844.33515526,3.21268585.73906032-.47382673-.79687265-.79296641-1.78124475-.88007553-2.96561627v-.00859372c.00039062-1.17187155.32441311-2.19764978.71933382-3.16952192-.77753677.44687368-1.74296362.75312278-2.92284295.84140377h-.00742185c-1.19804335,0-2.24315746-.33984275-3.23397485-.74765405.49765478.84140377.79745859,1.84608831.88183334,2.97655373v.00937497Z'/>
+ </svg>"""
_serviceWebPort: 80
out: {
ingress: {
pihole: {
- auth: input.auth
- network: input.network
+ auth: input.auth
+ network: input.network
subdomain: input.subdomain
service: {
name: "pihole-web"
@@ -50,18 +50,18 @@
images: {
pihole: {
repository: "pihole"
- name: "pihole"
- tag: "v5.8.1"
+ name: "pihole"
+ tag: "v5.8.1"
pullPolicy: "IfNotPresent"
}
}
charts: {
pihole: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/pihole"
+ branch: "main"
+ path: "charts/pihole"
}
}
@@ -70,11 +70,11 @@
helm: {
pihole: {
chart: charts.pihole
- info: "Installing Pi-hole server"
+ info: "Installing Pi-hole server"
values: {
fullnameOverride: "pihole"
persistentVolumeClaim: {
- enabled: true
+ enabled: true
existingClaim: volume.data.name
}
admin: {
@@ -93,7 +93,7 @@
type: "ClusterIP"
http: {
enabled: true
- port: _serviceWebPort
+ port: _serviceWebPort
}
https: {
enabled: false
@@ -102,17 +102,17 @@
virtualHost: _domain
resources: {
requests: {
- cpu: "250m"
+ cpu: "250m"
memory: "100M"
}
limits: {
- cpu: "500m"
+ cpu: "500m"
memory: "250M"
}
}
image: {
repository: images.pihole.fullName
- tag: images.pihole.tag
+ tag: images.pihole.tag
pullPolicy: images.pihole.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/private-network.cue b/core/installer/values-tmpl/private-network.cue
index 1fcf783..c74480f 100644
--- a/core/installer/values-tmpl/private-network.cue
+++ b/core/installer/values-tmpl/private-network.cue
@@ -8,78 +8,78 @@
username: string
ipSubnet: string // TODO(gio): use cidr type
}
- sshPrivateKey: string
+ sshPrivateKey: string
controllerReplicaCount: int | *3
}
-name: "private-network"
+name: "private-network"
namespace: "ingress-private"
out: {
images: {
"ingress-nginx": {
- registry: "registry.k8s.io"
+ registry: "registry.k8s.io"
repository: "ingress-nginx"
- name: "controller"
- tag: "v1.8.0"
+ name: "controller"
+ tag: "v1.8.0"
pullPolicy: "IfNotPresent"
}
nginx: {
repository: "library"
- name: "nginx"
- tag: "1.27.1-alpine3.20-slim"
+ name: "nginx"
+ tag: "1.27.1-alpine3.20-slim"
pullPolicy: "IfNotPresent"
}
tailscale: {
repository: "tailscale"
- name: "tailscale"
- tag: "v1.82.0"
+ name: "tailscale"
+ tag: "v1.82.0"
pullPolicy: "IfNotPresent"
}
portAllocator: {
repository: "giolekva"
- name: "port-allocator"
- tag: "latest"
+ name: "port-allocator"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
"access-secrets": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/access-secrets"
+ branch: "main"
+ path: "charts/access-secrets"
}
service: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/service"
+ branch: "main"
+ path: "charts/service"
}
"ingress-nginx": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/ingress-nginx"
+ branch: "main"
+ path: "charts/ingress-nginx"
}
"tailscale-proxy": {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/tailscale-proxy"
+ branch: "main"
+ path: "charts/tailscale-proxy"
}
portAllocator: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/port-allocator"
+ branch: "main"
+ path: "charts/port-allocator"
}
headscaleUser: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/headscale-user"
+ branch: "main"
+ path: "charts/headscale-user"
}
}
@@ -112,7 +112,7 @@
}
service: {
enabled: true
- type: "LoadBalancer"
+ type: "LoadBalancer"
annotations: {
"metallb.universe.tf/address-pool": _ingressPrivate
}
@@ -123,13 +123,13 @@
}
ingressClassByName: true
ingressClassResource: {
- name: _ingressPrivate
- enabled: true
- default: false
+ name: _ingressPrivate
+ enabled: true
+ default: false
controllerValue: "k8s.io/\(_ingressPrivate)"
}
config: {
- "proxy-body-size": "200M" // TODO(giolekva): configurable
+ "proxy-body-size": "200M" // TODO(giolekva): configurable
"force-ssl-redirect": "true"
"server-snippet": """
more_clear_headers "X-Frame-Options";
@@ -156,7 +156,7 @@
}]
shareProcessNamespace: true
extraContainers: [{
- name: "proxy"
+ name: "proxy"
image: images.tailscale.fullNameWithTag
securityContext: {
capabilities: {
@@ -165,7 +165,7 @@
privileged: true
}
env: [{
- name: "TS_STATE_DIR"
+ name: "TS_STATE_DIR"
value: "/ts-state"
}, {
name: "TS_HOSTNAME"
@@ -175,57 +175,57 @@
}
}
}, {
- name: "TS_EXTRA_ARGS"
+ name: "TS_EXTRA_ARGS"
value: "--login-server=https://headscale.\(global.domain)"
}, {
- name: "TS_USERSPACE"
+ name: "TS_USERSPACE"
value: "false"
}]
command: ["/bin/sh"]
args: [
"-c",
- "TS_AUTHKEY=$(wget --post-data=\"\" -O /tmp/authkey http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local/user/private-network-proxy/preauthkey > /dev/null 2>&1 && cat /tmp/authkey) /usr/local/bin/containerboot"
- ],
+ "TS_AUTHKEY=$(wget --post-data=\"\" -O /tmp/authkey http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local/user/private-network-proxy/preauthkey > /dev/null 2>&1 && cat /tmp/authkey) /usr/local/bin/containerboot",
+ ]
volumeMounts: [{
mountPath: "/ts-state"
- name: "ts-proxy-state"
- readOnly: false
+ name: "ts-proxy-state"
+ readOnly: false
}]
}, {
- name: "proxy-backend"
- image: images.nginx.fullNameWithTag
+ name: "proxy-backend"
+ image: images.nginx.fullNameWithTag
imagePullPolicy: images.nginx.pullPolicy
ports: [{
- name: "proxy"
+ name: "proxy"
containerPort: 9090
- protocol: "TCP"
+ protocol: "TCP"
}]
volumeMounts: [{
- name: _proxyBackendConfigName
+ name: _proxyBackendConfigName
mountPath: "/etc/nginx"
- readOnly: true
+ readOnly: true
}, {
- name: "proxy-backend-pid"
+ name: "proxy-backend-pid"
mountPath: "/var/run/nginx"
- readOnly: false
+ readOnly: false
}]
}, {
- name: "reload-config"
- image: "giolekva/reload:latest"
+ name: "reload-config"
+ image: "giolekva/reload:latest"
imagePullPolicy: "Always"
command: [
"/usr/bin/reload",
"--watch=/etc/nginx/nginx.conf",
"--reload=/var/run/nginx/nginx.pid",
- ]
+ ]
volumeMounts: [{
- name: "proxy-backend-config"
+ name: "proxy-backend-config"
mountPath: "/etc/nginx"
- readOnly: true
+ readOnly: true
}, {
- name: "proxy-backend-pid"
+ name: "proxy-backend-pid"
mountPath: "/var/run/nginx"
- readOnly: true
+ readOnly: true
}]
securityContext: {
capabilities: {
@@ -237,9 +237,9 @@
enabled: false
}
image: {
- registry: images["ingress-nginx"].registry
- image: images["ingress-nginx"].imageName
- tag: images["ingress-nginx"].tag
+ registry: images["ingress-nginx"].registry
+ image: images["ingress-nginx"].imageName
+ tag: images["ingress-nginx"].tag
pullPolicy: images["ingress-nginx"].pullPolicy
}
}
@@ -248,15 +248,15 @@
"tailscale-proxy": {
chart: charts["tailscale-proxy"]
values: {
- hostname: input.privateNetwork.hostname
- apiServer: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local"
- loginServer: "https://headscale.\(networks.public.domain)" // TODO(gio): take headscale subdomain from configuration
- ipSubnet: input.privateNetwork.ipSubnet
- username: input.privateNetwork.username // TODO(gio): maybe install headscale-user chart separately?
+ hostname: input.privateNetwork.hostname
+ apiServer: "http://headscale-api.\(global.namespacePrefix)app-headscale.svc.cluster.local"
+ loginServer: "https://headscale.\(networks.public.domain)" // TODO(gio): take headscale subdomain from configuration
+ ipSubnet: input.privateNetwork.ipSubnet
+ username: input.privateNetwork.username // TODO(gio): maybe install headscale-user chart separately?
preAuthKeySecret: "headscale-preauth-key"
image: {
repository: images.tailscale.fullName
- tag: images.tailscale.tag
+ tag: images.tailscale.tag
pullPolicy: images.tailscale.pullPolicy
}
}
@@ -264,12 +264,12 @@
"port-allocator": {
chart: charts.portAllocator
values: {
- repoAddr: release.repoAddr
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ repoAddr: release.repoAddr
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
ingressNginxPath: "\(release.appDir)/resources/ingress-nginx.yaml"
image: {
repository: images.portAllocator.fullName
- tag: images.portAllocator.tag
+ tag: images.portAllocator.tag
pullPolicy: images.portAllocator.pullPolicy
}
}
@@ -282,14 +282,14 @@
type: "ClusterIP"
selector: {
"app.kubernetes.io/component": "controller"
- "app.kubernetes.io/instance": "ingress-nginx"
- "app.kubernetes.io/name": "ingress-nginx"
+ "app.kubernetes.io/instance": "ingress-nginx"
+ "app.kubernetes.io/name": "ingress-nginx"
}
- ports:[{
- name: "http"
- port: 80
+ ports: [{
+ name: "http"
+ port: 80
targetPort: 9090
- protocol: "TCP"
+ protocol: "TCP"
}]
}
}
@@ -298,31 +298,31 @@
resources: {
"proxy-backend-config": {
apiVersion: "v1"
- kind: "ConfigMap"
+ kind: "ConfigMap"
metadata: {
- name: "proxy-backend-config"
+ name: "proxy-backend-config"
namespace: release.namespace
}
data: {
"nginx.conf": """
-worker_processes 1;
-worker_rlimit_nofile 8192;
-pid /var/run/nginx/nginx.pid;
-events {
- worker_connections 1024;
-}
-http {
- map $http_host $backend {
- }
- server {
- listen 9090;
- location / {
- resolver 135.181.48.180;
- proxy_pass http://$backend;
- }
- }
-}
-"""
+ worker_processes 1;
+ worker_rlimit_nofile 8192;
+ pid /var/run/nginx/nginx.pid;
+ events {
+ worker_connections 1024;
+ }
+ http {
+ map $http_host $backend {
+ }
+ server {
+ listen 9090;
+ location / {
+ resolver 135.181.48.180;
+ proxy_pass http://$backend;
+ }
+ }
+ }
+ """
}
}
}
diff --git a/core/installer/values-tmpl/qbittorrent.cue b/core/installer/values-tmpl/qbittorrent.cue
index bec6a3c..279258e 100644
--- a/core/installer/values-tmpl/qbittorrent.cue
+++ b/core/installer/values-tmpl/qbittorrent.cue
@@ -1,34 +1,34 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "qBitorrent"
-namespace: "app-qbittorrent"
-readme: "qbittorrent application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
+name: "qBitorrent"
+namespace: "app-qbittorrent"
+readme: "qbittorrent application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
description: "qBittorrent is a cross-platform free and open-source BitTorrent client written in native C++. It relies on Boost, Qt 6 toolkit and the libtorrent-rasterbar library, with an optional search engine written in Python."
-icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><circle cx='24' cy='24' r='21.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M26.651 22.364a5.034 5.034 0 0 1 5.035-5.035h0a5.034 5.034 0 0 1 5.034 5.035v3.272a5.034 5.034 0 0 1-5.034 5.035h0a5.034 5.034 0 0 1-5.035-5.035m0 5.035V10.533m-5.302 15.103a5.034 5.034 0 0 1-5.035 5.035h0a5.034 5.034 0 0 1-5.034-5.035v-3.272a5.034 5.034 0 0 1 5.034-5.035h0a5.034 5.034 0 0 1 5.035 5.035m0-5.035v20.138'/></svg>"
+icon: "<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 48 48'><circle cx='24' cy='24' r='21.5' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/><path fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' d='M26.651 22.364a5.034 5.034 0 0 1 5.035-5.035h0a5.034 5.034 0 0 1 5.034 5.035v3.272a5.034 5.034 0 0 1-5.034 5.035h0a5.034 5.034 0 0 1-5.035-5.035m0 5.035V10.533m-5.302 15.103a5.034 5.034 0 0 1-5.035 5.035h0a5.034 5.034 0 0 1-5.034-5.035v-3.272a5.034 5.034 0 0 1 5.034-5.035h0a5.034 5.034 0 0 1 5.035 5.035m0-5.035v20.138'/></svg>"
out: {
images: {
qbittorrent: {
- registry: "lscr.io"
+ registry: "lscr.io"
repository: "linuxserver"
- name: "qbittorrent"
- tag: "4.5.3"
+ name: "qbittorrent"
+ tag: "4.5.3"
pullPolicy: "IfNotPresent"
}
}
charts: {
qbittorrent: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/qbittorrent"
+ branch: "main"
+ path: "charts/qbittorrent"
}
}
@@ -39,14 +39,14 @@
pcloudInstanceId: global.id
ingress: {
className: input.network.ingressClass
- domain: _domain
+ domain: _domain
}
- webui: port: 8080
+ webui: port: 8080
bittorrent: port: 6881
- storage: size: "100Gi"
+ storage: size: "100Gi"
image: {
repository: images.qbittorrent.fullName
- tag: images.qbittorrent.tag
+ tag: images.qbittorrent.tag
pullPolicy: images.qbittorrent.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/resource-renderer-controller.cue b/core/installer/values-tmpl/resource-renderer-controller.cue
index 1169be7..b8e721c 100644
--- a/core/installer/values-tmpl/resource-renderer-controller.cue
+++ b/core/installer/values-tmpl/resource-renderer-controller.cue
@@ -1,31 +1,31 @@
input: {}
-name: "resource-renderer-controller"
+name: "resource-renderer-controller"
namespace: "rr-controller"
out: {
images: {
resourceRenderer: {
repository: "giolekva"
- name: "resource-renderer-controller"
- tag: "latest"
+ name: "resource-renderer-controller"
+ tag: "latest"
pullPolicy: "Always"
}
kubeRBACProxy: {
- registry: "gcr.io"
+ registry: "gcr.io"
repository: "kubebuilder"
- name: "kube-rbac-proxy"
- tag: "v0.13.0"
+ name: "kube-rbac-proxy"
+ tag: "v0.13.0"
pullPolicy: "IfNotPresent"
}
}
charts: {
resourceRenderer: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/resource-renderer-controller"
+ branch: "main"
+ path: "charts/resource-renderer-controller"
}
}
@@ -36,13 +36,13 @@
installCRDs: true
image: {
repository: images.resourceRenderer.fullName
- tag: images.resourceRenderer.tag
+ tag: images.resourceRenderer.tag
pullPolicy: images.resourceRenderer.pullPolicy
}
kubeRBACProxy: {
image: {
repository: images.kubeRBACProxy.fullName
- tag: images.kubeRBACProxy.tag
+ tag: images.kubeRBACProxy.tag
pullPolicy: images.kubeRBACProxy.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/rpuppy.cue b/core/installer/values-tmpl/rpuppy.cue
index ab77052..bf5f42e 100644
--- a/core/installer/values-tmpl/rpuppy.cue
+++ b/core/installer/values-tmpl/rpuppy.cue
@@ -1,42 +1,42 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- auth: #Auth @name(Authentication)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ auth: #Auth @name(Authentication)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-name: "rPuppy"
-namespace: "app-rpuppy"
-readme: "rpuppy application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
+name: "rPuppy"
+namespace: "app-rpuppy"
+readme: "rpuppy application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
description: "Delights users with randomly generate puppy pictures. Can be configured to be reachable only from private network or publicly."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 35.28811582'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-12.17285203' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m14.69492647,20.58774252c0,.81187845-.65815748,1.47003733-1.47003733,1.47003733s-1.47003733-.65815888-1.47003733-1.47003733.65815748-1.47003733,1.47003733-1.47003733,1.47003733.65815888,1.47003733,1.47003733Zm11.76029864,1.47003733c.81187845,0,1.47003733-.65815888,1.47003733-1.47003733s-.65815888-1.47003733-1.47003733-1.47003733-1.47003733.65815888-1.47003733,1.47003733.65815888,1.47003733,1.47003733,1.47003733Zm11.93302847-1.67400512c-.28823261.13266248-.60148138.20220416-.91877333.20396779-.67326615-.00164868-1.30777436-.31516942-1.71810725-.84894566l-.47592391-.60455162v9.53870259c0,3.65345583-2.96171215,6.61516798-6.61516798,6.61516798H11.01983314c-3.65345653,0-6.61516798-2.96171215-6.61516798-6.61516798v-9.53870539l-.46489908.60087854c-.4112799.53507163-1.04691527.84983729-1.72178173.85262154-.31731614-.00153652-.63061468-.07108941-.91877333-.20396779-.93389637-.40992073-1.45678447-1.41441689-1.25688194-2.4145362L3.05958106,1.79882791C3.28415382.60189453,4.43651156-.18635988,5.63344528.03821253c.0427079.00801312.08516977.01728658.12732951.02780882h.02940072l9.74634766,2.88127322h8.60706789L33.89728908.08072171h.02940142c1.1815748-.29489426,2.3784896.42390294,2.67338421,1.6054781.01052294.04215975.01979535.08462091.02780882.12732881l3.01725128,16.17041062c.19308035.99533591-.3287598,1.99171485-1.25688124,2.39983549ZM14.18960113,4.08289846L5.38591511,1.49563243c-.05549777-.01236298-.1121963-.01852589-.16905396-.01837519-.35274343.00096593-.655062.25238438-.72031866.5990399L1.47929086,18.24670707c-.07691341.39858747.18385385.78405561.58244062.86096867.27107851.05230907.54860733-.05169782.7185424-.26927842L14.18960113,4.08289846Zm19.61581061,13.1513214l-9.92275197-12.81688797h-8.08520531l-9.92275197,12.81688797v11.43872797c0,2.84157738,2.30355327,5.14513065,5.14513065,5.14513065h8.08520531v-3.3700599l-2.72508204-2.72508204c-.28720218-.28720359-.28720218-.7528485,0-1.04005208s.7528499-.28720359,1.04005208,0l2.42004862,2.42004862,2.42004862-2.42004862c.28720359-.28720359.7528485-.28720359,1.04005208,0s.28720359.7528485,0,1.04005208l-2.72508204,2.72508204v3.3700599h8.08520531c2.84157738,0,5.14513065-2.30355327,5.14513065-5.14513065v-11.43872797Zm4.39541128,1.00697619l-3.01725128-16.17041062c-.07464473-.39901786-.45862401-.66197355-.85764328-.58732812-.01062388.00198795-.02120289.00420932-.03172863.00666341l-8.80368673,2.59277845,11.41300243,14.75182508c.25293745.31750505.71537192.36984776,1.03287697.11691312.21288131-.1695895.31462267-.44293353.26443052-.71044131Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 35.28811582'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-12.17285203' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m14.69492647,20.58774252c0,.81187845-.65815748,1.47003733-1.47003733,1.47003733s-1.47003733-.65815888-1.47003733-1.47003733.65815748-1.47003733,1.47003733-1.47003733,1.47003733.65815888,1.47003733,1.47003733Zm11.76029864,1.47003733c.81187845,0,1.47003733-.65815888,1.47003733-1.47003733s-.65815888-1.47003733-1.47003733-1.47003733-1.47003733.65815888-1.47003733,1.47003733.65815888,1.47003733,1.47003733,1.47003733Zm11.93302847-1.67400512c-.28823261.13266248-.60148138.20220416-.91877333.20396779-.67326615-.00164868-1.30777436-.31516942-1.71810725-.84894566l-.47592391-.60455162v9.53870259c0,3.65345583-2.96171215,6.61516798-6.61516798,6.61516798H11.01983314c-3.65345653,0-6.61516798-2.96171215-6.61516798-6.61516798v-9.53870539l-.46489908.60087854c-.4112799.53507163-1.04691527.84983729-1.72178173.85262154-.31731614-.00153652-.63061468-.07108941-.91877333-.20396779-.93389637-.40992073-1.45678447-1.41441689-1.25688194-2.4145362L3.05958106,1.79882791C3.28415382.60189453,4.43651156-.18635988,5.63344528.03821253c.0427079.00801312.08516977.01728658.12732951.02780882h.02940072l9.74634766,2.88127322h8.60706789L33.89728908.08072171h.02940142c1.1815748-.29489426,2.3784896.42390294,2.67338421,1.6054781.01052294.04215975.01979535.08462091.02780882.12732881l3.01725128,16.17041062c.19308035.99533591-.3287598,1.99171485-1.25688124,2.39983549ZM14.18960113,4.08289846L5.38591511,1.49563243c-.05549777-.01236298-.1121963-.01852589-.16905396-.01837519-.35274343.00096593-.655062.25238438-.72031866.5990399L1.47929086,18.24670707c-.07691341.39858747.18385385.78405561.58244062.86096867.27107851.05230907.54860733-.05169782.7185424-.26927842L14.18960113,4.08289846Zm19.61581061,13.1513214l-9.92275197-12.81688797h-8.08520531l-9.92275197,12.81688797v11.43872797c0,2.84157738,2.30355327,5.14513065,5.14513065,5.14513065h8.08520531v-3.3700599l-2.72508204-2.72508204c-.28720218-.28720359-.28720218-.7528485,0-1.04005208s.7528499-.28720359,1.04005208,0l2.42004862,2.42004862,2.42004862-2.42004862c.28720359-.28720359.7528485-.28720359,1.04005208,0s.28720359.7528485,0,1.04005208l-2.72508204,2.72508204v3.3700599h8.08520531c2.84157738,0,5.14513065-2.30355327,5.14513065-5.14513065v-11.43872797Zm4.39541128,1.00697619l-3.01725128-16.17041062c-.07464473-.39901786-.45862401-.66197355-.85764328-.58732812-.01062388.00198795-.02120289.00420932-.03172863.00666341l-8.80368673,2.59277845,11.41300243,14.75182508c.25293745.31750505.71537192.36984776,1.03287697.11691312.21288131-.1695895.31462267-.44293353.26443052-.71044131Z'/>
+ </svg>"""
_httpPortName: "http"
out: {
ingress: {
rpuppy: {
- auth: input.auth
- network: input.network
+ auth: input.auth
+ network: input.network
subdomain: input.subdomain
service: {
name: "rpuppy"
@@ -48,29 +48,29 @@
images: {
rpuppy: {
repository: "giolekva"
- name: "rpuppy"
- tag: "latest"
+ name: "rpuppy"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
rpuppy: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/rpuppy"
+ branch: "main"
+ path: "charts/rpuppy"
}
}
helm: {
rpuppy: {
chart: charts.rpuppy
- info: "Installing rPuppy server"
+ info: "Installing rPuppy server"
values: {
image: {
repository: images.rpuppy.fullName
- tag: images.rpuppy.tag
+ tag: images.rpuppy.tag
pullPolicy: images.rpuppy.pullPolicy
}
portName: _httpPortName
diff --git a/core/installer/values-tmpl/soft-serve.cue b/core/installer/values-tmpl/soft-serve.cue
index dead3db..a094eb7 100644
--- a/core/installer/values-tmpl/soft-serve.cue
+++ b/core/installer/values-tmpl/soft-serve.cue
@@ -1,65 +1,64 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- sshPort: int @name(SSH Port) @role(port)
- adminKey: string @name(Admin SSH Public Key)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ sshPort: int @name(SSH Port) @role(port)
+ adminKey: string @name(Admin SSH Public Key)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-name: "Soft-Serve"
+name: "Soft-Serve"
namespace: "app-soft-serve"
// TODO(gio): make public network an option
-readme: "softserve application will be installed on private network and be accessible to any user on https://\(_domain)"
+readme: "softserve application will be installed on private network and be accessible to any user on https://\(_domain)"
description: "A tasty, self-hostable Git server for the command line. 🍦"
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.17637795 39.68590646'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-15.72872096' y='-9.97395671' width='59.63381987' height='59.63381987'/>
- <g>
- <path class='cls-1' d='m14.08828766,39.68590646c-.24966985,0-.47802402-.14131246-.58973401-.36472824l-2.87761777-5.75512747-5.45346067-13.9623024c-.13243358-.33946568.03513141-.72156194.37420873-.85419039.33927469-.13262845.72157548.03473602.85381169.3742017l5.42918447,13.90783,2.26321282,4.52199865,2.28827849-4.57647105,5.40471091-13.8533576c.13243358-.33788677.51374753-.5060407.85381169-.3742017.33907732.13262845.50664231.51472471.37420873.85419039l-5.42898711,13.90783-2.90209134,5.80959987c-.11151262.22341579-.33986679.36472824-.58953664.36472824Z'/>
- <path class='cls-1' d='m18.88431728,29.13483942h-9.59205924c-.36414299,0-.65920736-.2952562-.65920736-.65919498s.29506437-.65919498.65920736-.65919498h9.59205924c.36414299,0,.65920736.2952562.65920736.65919498s-.29506437.65919498-.65920736.65919498Z'/>
- <path class='cls-1' d='m5.45484225,20.50214821c-.08269697,0-.16559131-.0157891-.24414357-.0473673-.21276214-.08447169-5.21069868-2.14337052-5.21069868-7.32614307,0-4.61041762,4.65846449-6.74115686,5.90878744-7.230619.52262907-1.25207574,2.82373645-5.89801884,8.17950022-5.89801884s7.65687115,4.6459431,8.17950022,5.89801884c1.25032295.48946214,5.90859007,2.62099084,5.90859007,7.230619,0,5.18277255-4.99773918,7.24167137-5.21050131,7.32614307-.18572279.07499823-.39670862.05999859-.57078673-.0386833-.03236827-.01894692-3.28912895-1.83232522-8.30680224-1.83232522s-8.27443398,1.8133783-8.30680224,1.83232522c-.10065741.05684077-.21335424.0860506-.32664317.0860506ZM14.08828766,1.31838997c-5.19806716,0-6.97555863,5.08882739-7.0485846,5.30592754-.06592074.1949954-.22045947.3497286-.41585327.41525337-.05309185.01736801-5.30543507,1.83311468-5.30543507,6.08906697,0,3.70728102,3.15531381,5.5175015,4.1153092,5.98170108.96295591-.47840977,4.11215132-1.8449565,8.65456373-1.8449565s7.69160783,1.36654673,8.65456373,1.8449565c.95979803-.46419958,4.11511183-2.27442006,4.11511183-5.98170108,0-4.25595229-5.25234322-6.07169896-5.3052377-6.08906697-.1953938-.06552477-.34993253-.22025797-.41585327-.41525337-.07302597-.21710014-1.85051744-5.30592754-7.0485846-5.30592754Zm-7.67364739,5.09593249h.00809207-.00809207Z'/>
- </g>
-</svg>"""
-
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28.17637795 39.68590646'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-15.72872096' y='-9.97395671' width='59.63381987' height='59.63381987'/>
+ <g>
+ <path class='cls-1' d='m14.08828766,39.68590646c-.24966985,0-.47802402-.14131246-.58973401-.36472824l-2.87761777-5.75512747-5.45346067-13.9623024c-.13243358-.33946568.03513141-.72156194.37420873-.85419039.33927469-.13262845.72157548.03473602.85381169.3742017l5.42918447,13.90783,2.26321282,4.52199865,2.28827849-4.57647105,5.40471091-13.8533576c.13243358-.33788677.51374753-.5060407.85381169-.3742017.33907732.13262845.50664231.51472471.37420873.85419039l-5.42898711,13.90783-2.90209134,5.80959987c-.11151262.22341579-.33986679.36472824-.58953664.36472824Z'/>
+ <path class='cls-1' d='m18.88431728,29.13483942h-9.59205924c-.36414299,0-.65920736-.2952562-.65920736-.65919498s.29506437-.65919498.65920736-.65919498h9.59205924c.36414299,0,.65920736.2952562.65920736.65919498s-.29506437.65919498-.65920736.65919498Z'/>
+ <path class='cls-1' d='m5.45484225,20.50214821c-.08269697,0-.16559131-.0157891-.24414357-.0473673-.21276214-.08447169-5.21069868-2.14337052-5.21069868-7.32614307,0-4.61041762,4.65846449-6.74115686,5.90878744-7.230619.52262907-1.25207574,2.82373645-5.89801884,8.17950022-5.89801884s7.65687115,4.6459431,8.17950022,5.89801884c1.25032295.48946214,5.90859007,2.62099084,5.90859007,7.230619,0,5.18277255-4.99773918,7.24167137-5.21050131,7.32614307-.18572279.07499823-.39670862.05999859-.57078673-.0386833-.03236827-.01894692-3.28912895-1.83232522-8.30680224-1.83232522s-8.27443398,1.8133783-8.30680224,1.83232522c-.10065741.05684077-.21335424.0860506-.32664317.0860506ZM14.08828766,1.31838997c-5.19806716,0-6.97555863,5.08882739-7.0485846,5.30592754-.06592074.1949954-.22045947.3497286-.41585327.41525337-.05309185.01736801-5.30543507,1.83311468-5.30543507,6.08906697,0,3.70728102,3.15531381,5.5175015,4.1153092,5.98170108.96295591-.47840977,4.11215132-1.8449565,8.65456373-1.8449565s7.69160783,1.36654673,8.65456373,1.8449565c.95979803-.46419958,4.11511183-2.27442006,4.11511183-5.98170108,0-4.25595229-5.25234322-6.07169896-5.3052377-6.08906697-.1953938-.06552477-.34993253-.22025797-.41585327-.41525337-.07302597-.21710014-1.85051744-5.30592754-7.0485846-5.30592754Zm-7.67364739,5.09593249h.00809207-.00809207Z'/>
+ </g>
+ </svg>"""
out: {
images: {
softserve: {
repository: "charmcli"
- name: "soft-serve"
- tag: "v0.7.1"
+ name: "soft-serve"
+ tag: "v0.7.1"
pullPolicy: "IfNotPresent"
}
}
charts: {
softserve: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/soft-serve"
+ branch: "main"
+ path: "charts/soft-serve"
}
}
ingress: {
softserve: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "soft-serve"
@@ -69,9 +68,9 @@
}
openPort: [{
- name: "ssh"
+ name: "ssh"
network: input.network
- port: input.sshPort
+ port: input.sshPort
service: {
name: "soft-serve"
port: 22
@@ -83,16 +82,16 @@
helm: {
softserve: {
chart: charts.softserve
- info: "Installing SoftServe server"
+ info: "Installing SoftServe server"
values: {
- serviceType: "ClusterIP"
- adminKey: input.adminKey
- host: _domain
- sshPublicPort: input.sshPort
+ serviceType: "ClusterIP"
+ adminKey: input.adminKey
+ host: _domain
+ sshPublicPort: input.sshPort
persistentVolumeClaimName: volume.data.name
image: {
repository: images.softserve.fullName
- tag: images.softserve.tag
+ tag: images.softserve.tag
pullPolicy: images.softserve.pullPolicy
}
}
@@ -101,7 +100,7 @@
}
help: [{
- title: "Access"
+ title: "Access"
contents: """
SSH CLI: ssh \(_domain) -p \(input.sshPort) help
SSH TUI: ssh \(_domain) -p \(input.sshPort)
diff --git a/core/installer/values-tmpl/url-shortener.cue b/core/installer/values-tmpl/url-shortener.cue
index 9f401fb..1065463 100644
--- a/core/installer/values-tmpl/url-shortener.cue
+++ b/core/installer/values-tmpl/url-shortener.cue
@@ -1,48 +1,48 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
- auth: #Auth @name(Authentication)
- storageSize: string @name(Storage Size)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
+ auth: #Auth @name(Authentication)
+ storageSize: string @name(Storage Size)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "URL Shortener"
-namespace: "app-url-shortener"
-readme: "URL shortener application will be installed on \(input.network.name) network and be accessible at https://\(_domain)"
+name: "URL Shortener"
+namespace: "app-url-shortener"
+readme: "URL shortener application will be installed on \(input.network.name) network and be accessible at https://\(_domain)"
description: "Provides URL shortening service. Can be configured to be reachable only from private network or publicly."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36.43807123 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-11.59787432' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <g>
- <circle class='cls-1' cx='3.31578123' cy='26.42191445' r='3.31578123'/>
- <circle class='cls-1' cx='3.31578123' cy='13.15878954' r='3.31578123'/>
- <path class='cls-1' d='m11.6052343,39.68503937c-.19894668,0-.36473638,0-.56368306-.09947255-.85909349-.31306169-1.30368349-1.26152142-.994735-2.12210113L23.30994116.98987217c.37099907-.83910142,1.3519786-1.21857512,2.19107766-.84757764.75807463.33517241,1.1530841,1.1778629.92575531,1.97494297l-13.26312492,36.47359431c-.23210526.66315561-.89526087,1.09420755-1.55841648,1.09420755m9.94734369,0c-.19894668,0-.36473638,0-.56368306-.09947255-.85909349-.31306169-1.3036827-1.26152142-.994735-2.12210113L33.25728168.98987217c.37099907-.83910142,1.3519786-1.21857512,2.19107766-.84757764.75807463.33517241,1.1530841,1.1778629.92575531,1.97494297l-13.26312492,36.47359431c-.23210526.66315561-.89526087,1.09420755-1.55841648,1.09420755'/>
- </g>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36.43807123 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-11.59787432' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <g>
+ <circle class='cls-1' cx='3.31578123' cy='26.42191445' r='3.31578123'/>
+ <circle class='cls-1' cx='3.31578123' cy='13.15878954' r='3.31578123'/>
+ <path class='cls-1' d='m11.6052343,39.68503937c-.19894668,0-.36473638,0-.56368306-.09947255-.85909349-.31306169-1.30368349-1.26152142-.994735-2.12210113L23.30994116.98987217c.37099907-.83910142,1.3519786-1.21857512,2.19107766-.84757764.75807463.33517241,1.1530841,1.1778629.92575531,1.97494297l-13.26312492,36.47359431c-.23210526.66315561-.89526087,1.09420755-1.55841648,1.09420755m9.94734369,0c-.19894668,0-.36473638,0-.56368306-.09947255-.85909349-.31306169-1.3036827-1.26152142-.994735-2.12210113L33.25728168.98987217c.37099907-.83910142,1.3519786-1.21857512,2.19107766-.84757764.75807463.33517241,1.1530841,1.1778629.92575531,1.97494297l-13.26312492,36.47359431c-.23210526.66315561-.89526087,1.09420755-1.55841648,1.09420755'/>
+ </g>
+ </svg>"""
_httpPortName: "http"
out: {
ingress: {
"url-shorteners": {
- auth: input.auth
- network: input.network
+ auth: input.auth
+ network: input.network
subdomain: input.subdomain
service: {
name: "url-shortener"
@@ -54,36 +54,36 @@
images: {
urlShortener: {
repository: "giolekva"
- name: "url-shortener"
- tag: "latest"
+ name: "url-shortener"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
urlShortener: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/url-shortener"
+ branch: "main"
+ path: "charts/url-shortener"
}
}
- volume: data: size: input.storageSize
+ volume: data: size: input.storageSize
helm: {
"url-shortener": {
chart: charts.urlShortener
- info: "Installing server"
+ info: "Installing server"
values: {
image: {
repository: images.urlShortener.fullName
- tag: images.urlShortener.tag
+ tag: images.urlShortener.tag
pullPolicy: images.urlShortener.pullPolicy
}
- portName: _httpPortName
+ portName: _httpPortName
persistentVolumeClaimNama: volume.data.name
- requireAuth: input.auth.enabled
+ requireAuth: input.auth.enabled
}
}
}
diff --git a/core/installer/values-tmpl/vaultwarden.cue b/core/installer/values-tmpl/vaultwarden.cue
index 7b68190..0df1756 100644
--- a/core/installer/values-tmpl/vaultwarden.cue
+++ b/core/installer/values-tmpl/vaultwarden.cue
@@ -1,41 +1,41 @@
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
storageSize: string
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Vaultwarden"
-namespace: "app-vaultwarden"
-readme: "Installs vaultwarden on private network accessible at \(_domain)"
+name: "Vaultwarden"
+namespace: "app-vaultwarden"
+readme: "Installs vaultwarden on private network accessible at \(_domain)"
description: "Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal."
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33.20961473 39.68503937'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-13.21210257' y='-9.97439025' width='59.63381987' height='59.63381987'/>
- <path class='cls-1' d='m16.59579535,39.68503937c-.31541688,0-.63121702-.07051848-.92555501-.21155543l-1.05816041-.49976138c-.48500615-.2368501-1.24959508-.66149397-2.27996967-1.26396705-1.22238414-.71514934-2.19948662-1.35211514-3.07502717-2.00364455-1.11583992-.82092705-2.19661223-1.72003763-3.20954883-2.67050406-1.0945694-.97882712-2.11363804-2.07876206-3.01753928-3.26071305-.8868465-1.18501701-1.60889438-2.47811126-2.15023867-3.84785602-.57832816-1.42493314-.87515729-2.93341534-.87975632-4.47715678V2.24126116C.00747343,1.01102034,1.01121196.00766505,2.23762026,0h28.73053054c1.23024082.00766505,2.23397936,1.01102034,2.24145278,2.23742863v19.16109658c.00210789,1.56060455-.29472124,3.08671637-.88205584,4.53387816-.53732013,1.38124234-1.26281729,2.6911997-2.15292143,3.88541478-.90620075,1.18501701-1.92526939,2.28571846-3.03382752,3.27757616-1.01025383.92747127-2.09447541,1.80971874-3.21625575,2.6168487-1.1200557.77263722-2.08834337,1.40347099-3.0577808,1.99214697-.71150844.43230892-1.2898366.73661148-1.71198933.95889798-.20983079.11037675-.38651024.20312387-.53042159.28590643l-1.10759999.52582256c-.29203847.13950394-.6063056.21002242-.92095598.21002242ZM30.96431827,1.28006366H2.24145278c-.52505605.00306602-.95813148.43614145-.96138913.96503003v19.20248786c.00421578,1.37740981.26942657,2.72569243.78815895,4.00345657.50167764,1.27009909,1.16796227,2.46278115,1.98256566,3.55198502.85101238,1.11219902,1.8152759,2.15311306,2.86155548,3.08901589.98706705.92593826,2.02836434,1.79208912,3.10607063,2.58465548.83989805.62546823,1.77944178,1.23713937,2.96024302,1.92776054,1.24921182.73124595,1.87947071,1.0646757,2.18798905,1.21567722l1.05336975.49746186c.23934124.11420927.51068408.11420927.7469593.00153301l1.06390919-.5028274c.10941861-.06591945.30047003-.16633162.52754719-.28590643.43039266-.22688553.96579653-.50819294,1.64377037-.92057273.94778366-.57564539,1.89633382-1.19344857,2.98515444-1.94385715,1.07042449-.77033771,2.1147878-1.62039196,3.09399817-2.51873603,1.05471113-.94433439,2.01878303-1.98524843,2.87171167-3.10051347.81632802-1.09610241,1.4858703-2.30488109,1.98486517-3.58724426.5283137-1.3015258.79333286-2.66437202.79160823-4.06017796V2.24279417c-.0044074-.52812207-.43690795-.95966449-.96522165-.96273051Zm-14.35951648,33.14751666c-.11535903,0-.23033481-.03142671-.33208837-.09274713-.19124304-.11650879-.30794346-.32346519-.30794346-.5472847V5.42455718c0-.35335889.28648131-.64003183.64003183-.64003183h11.18024461c.35355052,0,.64003183.28667294.64003183.64003183v15.77237716c.01935426.06132041.02951045.12647336.02951045.1923928,0,3.12887416-2.06649797,6.31983524-6.14219766,9.48473514-1.68688628,1.31915542-3.50848585,2.49114185-5.4122931,3.48146654-.09274713.04828983-.19411744.07205149-.29529612.07205149Zm.64003183-28.3629913v26.64985222c1.49621812-.83932318,2.93245721-1.79592164,4.2805482-2.85063278,3.66581104-2.84603375,5.5638695-5.63534611,5.64626881-8.29358609-.01724637-.05518837-.02663606-.11267626-.02663606-.17169716V6.06458901h-9.90018095Z'/>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 33.20961473 39.68503937'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-13.21210257' y='-9.97439025' width='59.63381987' height='59.63381987'/>
+ <path class='cls-1' d='m16.59579535,39.68503937c-.31541688,0-.63121702-.07051848-.92555501-.21155543l-1.05816041-.49976138c-.48500615-.2368501-1.24959508-.66149397-2.27996967-1.26396705-1.22238414-.71514934-2.19948662-1.35211514-3.07502717-2.00364455-1.11583992-.82092705-2.19661223-1.72003763-3.20954883-2.67050406-1.0945694-.97882712-2.11363804-2.07876206-3.01753928-3.26071305-.8868465-1.18501701-1.60889438-2.47811126-2.15023867-3.84785602-.57832816-1.42493314-.87515729-2.93341534-.87975632-4.47715678V2.24126116C.00747343,1.01102034,1.01121196.00766505,2.23762026,0h28.73053054c1.23024082.00766505,2.23397936,1.01102034,2.24145278,2.23742863v19.16109658c.00210789,1.56060455-.29472124,3.08671637-.88205584,4.53387816-.53732013,1.38124234-1.26281729,2.6911997-2.15292143,3.88541478-.90620075,1.18501701-1.92526939,2.28571846-3.03382752,3.27757616-1.01025383.92747127-2.09447541,1.80971874-3.21625575,2.6168487-1.1200557.77263722-2.08834337,1.40347099-3.0577808,1.99214697-.71150844.43230892-1.2898366.73661148-1.71198933.95889798-.20983079.11037675-.38651024.20312387-.53042159.28590643l-1.10759999.52582256c-.29203847.13950394-.6063056.21002242-.92095598.21002242ZM30.96431827,1.28006366H2.24145278c-.52505605.00306602-.95813148.43614145-.96138913.96503003v19.20248786c.00421578,1.37740981.26942657,2.72569243.78815895,4.00345657.50167764,1.27009909,1.16796227,2.46278115,1.98256566,3.55198502.85101238,1.11219902,1.8152759,2.15311306,2.86155548,3.08901589.98706705.92593826,2.02836434,1.79208912,3.10607063,2.58465548.83989805.62546823,1.77944178,1.23713937,2.96024302,1.92776054,1.24921182.73124595,1.87947071,1.0646757,2.18798905,1.21567722l1.05336975.49746186c.23934124.11420927.51068408.11420927.7469593.00153301l1.06390919-.5028274c.10941861-.06591945.30047003-.16633162.52754719-.28590643.43039266-.22688553.96579653-.50819294,1.64377037-.92057273.94778366-.57564539,1.89633382-1.19344857,2.98515444-1.94385715,1.07042449-.77033771,2.1147878-1.62039196,3.09399817-2.51873603,1.05471113-.94433439,2.01878303-1.98524843,2.87171167-3.10051347.81632802-1.09610241,1.4858703-2.30488109,1.98486517-3.58724426.5283137-1.3015258.79333286-2.66437202.79160823-4.06017796V2.24279417c-.0044074-.52812207-.43690795-.95966449-.96522165-.96273051Zm-14.35951648,33.14751666c-.11535903,0-.23033481-.03142671-.33208837-.09274713-.19124304-.11650879-.30794346-.32346519-.30794346-.5472847V5.42455718c0-.35335889.28648131-.64003183.64003183-.64003183h11.18024461c.35355052,0,.64003183.28667294.64003183.64003183v15.77237716c.01935426.06132041.02951045.12647336.02951045.1923928,0,3.12887416-2.06649797,6.31983524-6.14219766,9.48473514-1.68688628,1.31915542-3.50848585,2.49114185-5.4122931,3.48146654-.09274713.04828983-.19411744.07205149-.29529612.07205149Zm.64003183-28.3629913v26.64985222c1.49621812-.83932318,2.93245721-1.79592164,4.2805482-2.85063278,3.66581104-2.84603375,5.5638695-5.63534611,5.64626881-8.29358609-.01724637-.05518837-.02663606-.11267626-.02663606-.17169716V6.06458901h-9.90018095Z'/>
+ </svg>"""
out: {
ingress: {
vaultwarden: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "server"
@@ -47,18 +47,18 @@
images: {
vaultwarden: {
repository: "vaultwarden"
- name: "server"
- tag: "1.28.1"
+ name: "server"
+ tag: "1.28.1"
pullPolicy: "IfNotPresent"
}
}
charts: {
vaultwarden: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/vaultwarden"
+ branch: "main"
+ path: "charts/vaultwarden"
}
}
@@ -67,23 +67,23 @@
helm: {
vaultwarden: {
chart: charts.vaultwarden
- info: "Installing Vaultwarden server"
+ info: "Installing Vaultwarden server"
values: {
image: {
repository: images.vaultwarden.fullName
- tag: images.vaultwarden.tag
+ tag: images.vaultwarden.tag
pullPolicy: images.vaultwarden.pullPolicy
}
- domain: _domain
+ domain: _domain
persistentVolumeClaimName: volume.data.name
- httpPortName: _httpPortName
+ httpPortName: _httpPortName
}
}
}
}
help: [{
- title: "Access"
+ title: "Access"
contents: "Open [\(url)](\(url)) in a new tab."
}]
diff --git a/core/installer/values-tmpl/virtual-machine.cue b/core/installer/values-tmpl/virtual-machine.cue
index 2c0bea0..f531799 100644
--- a/core/installer/values-tmpl/virtual-machine.cue
+++ b/core/installer/values-tmpl/virtual-machine.cue
@@ -1,36 +1,36 @@
input: {
- name: string @name(Hostname)
- username: string @name(Username)
- authKey?: string @name(Auth Key) @role(VPNAuthKey) @usernameField(username) @enabledField(vpnEnabled)
- cpuCores: int | *1 @name(CPU Cores)
- memory: string | *"2Gi" @name(Memory)
- vpnEnabled?: bool @name(Enable VPN)
- codeServerEnabled?: bool @name(Install VSCode Server)
+ name: string @name(Hostname)
+ username: string @name(Username)
+ authKey?: string @name(Auth Key) @role(VPNAuthKey) @usernameField(username) @enabledField(vpnEnabled)
+ cpuCores: int | *1 @name(CPU Cores)
+ memory: string | *"2Gi" @name(Memory)
+ vpnEnabled?: bool @name(Enable VPN)
+ codeServerEnabled?: bool @name(Install VSCode Server)
}
-name: "Virtual Machine"
-namespace: "app-vm"
-readme: "Virtual Machine"
+name: "Virtual Machine"
+namespace: "app-vm"
+readme: "Virtual Machine"
description: "Virtual Machine"
icon: """
- <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 2048 2048"><path fill="currentColor" d="M1280 384H640V256h640zm0 1024H640v-128h640zm0 256H640v-128h640zM1408 0q27 0 50 10t40 27t28 41t10 50v1792H384V128q0-27 10-50t27-40t41-28t50-10zm0 128H512v1664h896z"/></svg>"""
+ <svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 2048 2048"><path fill="currentColor" d="M1280 384H640V256h640zm0 1024H640v-128h640zm0 256H640v-128h640zM1408 0q27 0 50 10t40 27t28 41t10 50v1792H384V128q0-27 10-50t27-40t41-28t50-10zm0 128H512v1664h896z"/></svg>"""
out: {
vm: {
"\(input.name)": {
username: input.username
- domain: global.domain
+ domain: global.domain
cpuCores: input.cpuCores
- memory: input.memory
+ memory: input.memory
if input.vpnEnabled != _|_ {
if !input.vpnEnabled {
vpn: enabled: false
}
if input.vpnEnabled {
vpn: {
- enabled: true
+ enabled: true
loginServer: "https://headscale.\(global.domain)"
- authKey: input.authKey
+ authKey: input.authKey
}
}
}
diff --git a/core/installer/values-tmpl/welcome.cue b/core/installer/values-tmpl/welcome.cue
index 6022fb7..bf6aa99 100644
--- a/core/installer/values-tmpl/welcome.cue
+++ b/core/installer/values-tmpl/welcome.cue
@@ -3,30 +3,30 @@
)
input: {
- network: #Network
- repoAddr: string
+ network: #Network
+ repoAddr: string
sshPrivateKey: string
}
-name: "welcome"
+name: "welcome"
namespace: "app-welcome"
out: {
images: {
welcome: {
repository: "giolekva"
- name: "pcloud-installer"
- tag: "latest"
+ name: "pcloud-installer"
+ tag: "latest"
pullPolicy: "Always"
}
}
charts: {
welcome: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/welcome"
+ branch: "main"
+ path: "charts/welcome"
}
}
@@ -34,20 +34,20 @@
welcome: {
chart: charts.welcome
values: {
- repoAddr: input.repoAddr
- sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
+ repoAddr: input.repoAddr
+ sshPrivateKey: base64.Encode(null, input.sshPrivateKey)
createAccountAddr: "http://api.\(global.namespacePrefix)core-auth.svc.cluster.local/identities"
- loginAddr: "https://launcher.\(networks.public.domain)"
- membershipsAddr: "http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local"
+ loginAddr: "https://launcher.\(networks.public.domain)"
+ membershipsAddr: "http://memberships-api.\(global.namespacePrefix)core-auth-memberships.svc.cluster.local"
ingress: {
- className: input.network.ingressClass
- domain: "welcome.\(input.network.domain)"
+ className: input.network.ingressClass
+ domain: "welcome.\(input.network.domain)"
certificateIssuer: input.network.certificateIssuer
}
clusterRoleName: "\(global.id)-welcome"
image: {
repository: images.welcome.fullName
- tag: images.welcome.tag
+ tag: images.welcome.tag
pullPolicy: images.welcome.pullPolicy
}
}
diff --git a/core/installer/values-tmpl/zot.cue b/core/installer/values-tmpl/zot.cue
index 4f98388..cf16533 100644
--- a/core/installer/values-tmpl/zot.cue
+++ b/core/installer/values-tmpl/zot.cue
@@ -4,46 +4,46 @@
)
input: {
- network: #Network @name(Network)
- subdomain: string @name(Subdomain)
+ network: #Network @name(Network)
+ subdomain: string @name(Subdomain)
}
_domain: "\(input.subdomain).\(input.network.domain)"
-url: "https://\(_domain)"
+url: "https://\(_domain)"
-name: "Zot"
-namespace: "app-zot"
-readme: "OCI-native container image registry, simplified"
+name: "Zot"
+namespace: "app-zot"
+readme: "OCI-native container image registry, simplified"
description: "OCI-native container image registry, simplified"
icon: """
-<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 36.27146462'>
- <defs>
- <style>
- .cls-1 {
- fill: currentColor;
- }
-
- .cls-2 {
- fill: none;
- stroke: #3a3a3a;
- stroke-miterlimit: 10;
- stroke-width: .98133445px;
- }
- </style>
- </defs>
- <rect class='cls-2' x='-9.97439025' y='-11.68117763' width='59.63381987' height='59.63381987'/>
- <g>
- <path class='cls-1' d='m29.74314495,24.98575641c-.75549716.74180664-1.41447384,1.43782557-2.10953123,2.09286451,1.88242421.2298085,3.61301638.54546895,5.1121059.94080001,3.75092895.97523237,4.57602343,2.025465,4.57602343,2.25055737,0,.22504658-.82509448,1.27527921-4.57602343,2.25055737-3.45092789.90018632-8.02713447,1.3878254-12.90334211,1.3878254-1.50330199,0-2.98132917-.04670346-4.40734152-.13717997,3.86411616-1.46447402,11.01249296-5.7430605,20.91142889-17.34213977C25.02701114,26.53182412,10.52274765,29.31182475,2.37253582,30.22290854c.09505528-.29812376,1.02930765-1.28379573,4.56668274-2.20348761.98370309-.2566401,2.06154572-.47848154,3.20898565-.66630271,2.60660258-.52536815,7.09562936-1.84945706,10.511026-3.07968117-.27252843-.00302199-.54505686-.00494507-.81685269-.00494507-9.56486882,0-19.84237751,1.87546447-19.84237751,6.00148632s10.27750869,6.00148632,19.84237751,6.00148632,19.87992343-1.87546447,19.84256066-6.00148632c0-2.67107167-4.30917267-4.3977261-9.94179322-5.28422189Z'/>
- <path class='cls-1' d='m19.84237751,12.00297264c4.12895226,0,8.39600024-.35036753,11.91139722-1.07953677-.06043977,4.29255173-6.00643139,9.89499819-8.79288808,11.37302537,3.02968099-1.43677245,16.76031538-5.95079933,16.72405152-16.29497492C39.68493817,1.87546447,29.40724633,0,19.84237751,0S0,1.87546447,0,6.00148632s10.27750869,6.00148632,19.84237751,6.00148632ZM6.93921856,3.75092895c3.45092789-.90027789,8.02695132-1.38787118,12.90315895-1.38787118s9.48996013.48759329,12.90334211,1.38787118c3.75092895.97518658,4.57602343,2.025465,4.57602343,2.25055737,0,.22500079-.82509448,1.27527921-4.57602343,2.25055737-3.45092789.90018632-8.02713447,1.3878254-12.90334211,1.3878254s-9.48977698-.48763908-12.90315895-1.3878254c-3.75092895-.97527816-4.57602343-2.02555658-4.57602343-2.25055737,0-.22509237.82509448-1.27537079,4.57602343-2.25055737Z'/>
- <path class='cls-1' d='m22.96088665,22.29646124c-.10128241.0480313-.19120946.09281168-.26776651.13406641.08553144-.03988109.17490904-.08484462.26776651-.13406641Z'/>
- </g>
-</svg>"""
+ <svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 36.27146462'>
+ <defs>
+ <style>
+ .cls-1 {
+ fill: currentColor;
+ }
+
+ .cls-2 {
+ fill: none;
+ stroke: #3a3a3a;
+ stroke-miterlimit: 10;
+ stroke-width: .98133445px;
+ }
+ </style>
+ </defs>
+ <rect class='cls-2' x='-9.97439025' y='-11.68117763' width='59.63381987' height='59.63381987'/>
+ <g>
+ <path class='cls-1' d='m29.74314495,24.98575641c-.75549716.74180664-1.41447384,1.43782557-2.10953123,2.09286451,1.88242421.2298085,3.61301638.54546895,5.1121059.94080001,3.75092895.97523237,4.57602343,2.025465,4.57602343,2.25055737,0,.22504658-.82509448,1.27527921-4.57602343,2.25055737-3.45092789.90018632-8.02713447,1.3878254-12.90334211,1.3878254-1.50330199,0-2.98132917-.04670346-4.40734152-.13717997,3.86411616-1.46447402,11.01249296-5.7430605,20.91142889-17.34213977C25.02701114,26.53182412,10.52274765,29.31182475,2.37253582,30.22290854c.09505528-.29812376,1.02930765-1.28379573,4.56668274-2.20348761.98370309-.2566401,2.06154572-.47848154,3.20898565-.66630271,2.60660258-.52536815,7.09562936-1.84945706,10.511026-3.07968117-.27252843-.00302199-.54505686-.00494507-.81685269-.00494507-9.56486882,0-19.84237751,1.87546447-19.84237751,6.00148632s10.27750869,6.00148632,19.84237751,6.00148632,19.87992343-1.87546447,19.84256066-6.00148632c0-2.67107167-4.30917267-4.3977261-9.94179322-5.28422189Z'/>
+ <path class='cls-1' d='m19.84237751,12.00297264c4.12895226,0,8.39600024-.35036753,11.91139722-1.07953677-.06043977,4.29255173-6.00643139,9.89499819-8.79288808,11.37302537,3.02968099-1.43677245,16.76031538-5.95079933,16.72405152-16.29497492C39.68493817,1.87546447,29.40724633,0,19.84237751,0S0,1.87546447,0,6.00148632s10.27750869,6.00148632,19.84237751,6.00148632ZM6.93921856,3.75092895c3.45092789-.90027789,8.02695132-1.38787118,12.90315895-1.38787118s9.48996013.48759329,12.90334211,1.38787118c3.75092895.97518658,4.57602343,2.025465,4.57602343,2.25055737,0,.22500079-.82509448,1.27527921-4.57602343,2.25055737-3.45092789.90018632-8.02713447,1.3878254-12.90334211,1.3878254s-9.48977698-.48763908-12.90315895-1.3878254c-3.75092895-.97527816-4.57602343-2.02555658-4.57602343-2.25055737,0-.22509237.82509448-1.27537079,4.57602343-2.25055737Z'/>
+ <path class='cls-1' d='m22.96088665,22.29646124c-.10128241.0480313-.19120946.09281168-.26776651.13406641.08553144-.03988109.17490904-.08484462.26776651-.13406641Z'/>
+ </g>
+ </svg>"""
out: {
ingress: {
zot: {
auth: enabled: false
- network: input.network
+ network: input.network
subdomain: input.subdomain
service: {
name: "zot"
@@ -55,51 +55,51 @@
// TODO(gio): configure busybox
images: {
zot: {
- registry: "ghcr.io"
+ registry: "ghcr.io"
repository: "project-zot"
- name: "zot-linux-amd64"
- tag: "v2.0.3"
+ name: "zot-linux-amd64"
+ tag: "v2.0.3"
pullPolicy: "IfNotPresent"
}
}
charts: {
zot: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/zot"
+ branch: "main"
+ path: "charts/zot"
}
oauth2Client: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/oauth2-client"
+ branch: "main"
+ path: "charts/oauth2-client"
}
resourceRenderer: {
- kind: "GitRepository"
+ kind: "GitRepository"
address: "https://code.v1.dodo.cloud/helm-charts"
- branch: "main"
- path: "charts/resource-renderer"
+ branch: "main"
+ path: "charts/resource-renderer"
}
}
volume: zot: size: "100Gi"
- _httpPort: 80
+ _httpPort: 80
_oauth2ClientSecretName: "oauth2-client"
helm: {
"oauth2-client": {
chart: charts.oauth2Client
- info: "Creating OAuth2 client"
+ info: "Creating OAuth2 client"
// TODO(gio): remove once hydra maester is installed as part of dodo itself
dependsOn: [{
- name: "auth"
+ name: "auth"
namespace: "\(global.namespacePrefix)core-auth"
}]
values: {
- name: "\(release.namespace)-zot"
+ name: "\(release.namespace)-zot"
secretName: _oauth2ClientSecretName
grantTypes: ["authorization_code"]
responseTypes: ["code"]
@@ -110,30 +110,30 @@
}
"config-renderer": {
chart: charts.resourceRenderer
- info: "Generating Zot configuration"
+ info: "Generating Zot configuration"
values: {
- name: "config-renderer"
+ name: "config-renderer"
secretName: _oauth2ClientSecretName
resourceTemplate: yaml.Marshal({
apiVersion: "v1"
- kind: "ConfigMap"
+ kind: "ConfigMap"
metadata: {
- name: _zotConfigMapName
+ name: _zotConfigMapName
namespace: "\(release.namespace)"
}
data: {
"config.json": json.Marshal({
storage: rootDirectory: "/var/lib/registry"
http: {
- address: "0.0.0.0"
- port: "5000"
+ address: "0.0.0.0"
+ port: "5000"
externalUrl: url
auth: openid: providers: oidc: {
- name: "dodo:"
- issuer: "https://hydra.\(networks.public.domain)"
- clientid: "{{ .client_id }}"
+ name: "dodo:"
+ issuer: "https://hydra.\(networks.public.domain)"
+ clientid: "{{ .client_id }}"
clientsecret: "{{ .client_secret }}"
- keypath: ""
+ keypath: ""
scopes: ["openid", "profile", "email", "groups"]
}
accessControl: {
@@ -147,7 +147,7 @@
}
log: level: "debug"
extensions: {
- ui: enable: true
+ ui: enable: true
search: enable: true
}
})
@@ -157,11 +157,11 @@
}
zot: {
chart: charts.zot
- info: "Installing Zot server"
+ info: "Installing Zot server"
values: {
image: {
repository: images.zot.fullName
- tag: images.zot.tag
+ tag: images.zot.tag
pullPolicy: images.zot.pullPolicy
}
service: {
@@ -176,14 +176,14 @@
persistence: true
pvc: {
create: false
- name: volume.zot.name
+ name: volume.zot.name
}
extraVolumes: [{
name: "config"
configMap: name: _zotConfigMapName
}]
extraVolumeMounts: [{
- name: "config"
+ name: "config"
mountPath: "/etc/zot"
}]
startupProbe: {}
@@ -195,7 +195,7 @@
_zotConfigMapName: "zot-config"
help: [{
- title: "Authenticate"
+ title: "Authenticate"
contents: """
First generate new API key.
docker login \\-\\-username=**\\<YOUR-USERNAME\\>**@\(networks.public.domain) \\-\\-password=**\\<YOUR-API-KEY\\>** \(_domain)