49 lines
1.6 KiB
HCL
49 lines
1.6 KiB
HCL
locals {
|
|
script-wrap = <<-EOF
|
|
#!/bin/bash
|
|
cp /etc/local-ca/ca.crt /usr/local/share/ca-certificates/
|
|
/usr/sbin/update-ca-certificates
|
|
chown www-data ./config || :
|
|
exec /bin/sh /entrypoint.sh "$@"
|
|
EOF
|
|
script-head = <<-EOF
|
|
#!/bin/bash
|
|
export user=www-data
|
|
run_as() {
|
|
if [ "$(id -u)" = 0 ]; then
|
|
su -p "$user" -s /bin/sh -c "$*"
|
|
else
|
|
sh -c "$*"
|
|
fi
|
|
}
|
|
run_as ./occ app:install user_oidc ||:
|
|
run_as ./occ user_oidc:provider "$${OAUTH2_CONNECTOR_NAME}" --clientid="$${OAUTH2_CLIENT_ID}" \
|
|
--clientsecret="$${OAUTH2_CLIENT_SECRET}" \
|
|
--discoveryuri="$${OAUTH2_DISCOVER_URI}"
|
|
EOF
|
|
script-apps = concat(
|
|
var.apps.deck?["run_as ./occ app:install deck ||:"]:[],
|
|
var.apps.calendar?["run_as ./occ app:install calendar ||:"]:[],
|
|
var.apps.contacts?["run_as ./occ app:install contacts ||:"]:[],
|
|
var.apps.groupfolders?["run_as ./occ app:install groupfolders ||:"]:[],
|
|
var.apps.notes?["run_as ./occ app:install notes ||:"]:[],
|
|
var.apps.tasks?["run_as ./occ app:install tasks ||:"]:[],
|
|
var.apps.spreed?["run_as ./occ app:install spreed ||:"]:[])
|
|
data-config-init = {
|
|
"autostart.sh" = join("\n", concat([local.script-head],local.script-apps))
|
|
"wrapper" = local.script-wrap
|
|
}
|
|
}
|
|
|
|
resource "kubectl_manifest" "nextcloud-config" {
|
|
yaml_body = <<-EOF
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: "${var.component}-${var.instance}-init"
|
|
namespace: "${var.namespace}"
|
|
labels: ${jsonencode(local.common-labels)}
|
|
data: ${jsonencode(local.data-config-init)}
|
|
EOF
|
|
}
|