Prepare for add cli option
-r or --reprovision for convenience
This commit is contained in:
parent
1d61273fe2
commit
77351933fe
3 changed files with 22 additions and 7 deletions
|
@ -34,7 +34,8 @@ class CliArgumentsParser(name: String) : CliTargetParser(name) {
|
||||||
),
|
),
|
||||||
module.configFileName,
|
module.configFileName,
|
||||||
module.applicationFileName,
|
module.applicationFileName,
|
||||||
module.submodules
|
module.submodules,
|
||||||
|
module.reprovision
|
||||||
)
|
)
|
||||||
else -> return ServerCliCommand(
|
else -> return ServerCliCommand(
|
||||||
ServerType.valueOf(module.name.uppercase()),
|
ServerType.valueOf(module.name.uppercase()),
|
||||||
|
@ -52,6 +53,7 @@ class CliArgumentsParser(name: String) : CliTargetParser(name) {
|
||||||
var configFileName: ConfigFileName? = null
|
var configFileName: ConfigFileName? = null
|
||||||
var applicationFileName: ApplicationFileName? = null
|
var applicationFileName: ApplicationFileName? = null
|
||||||
var submodules: List<String>? = null
|
var submodules: List<String>? = null
|
||||||
|
var reprovision: Boolean = false
|
||||||
}
|
}
|
||||||
|
|
||||||
class K3s : ServerSubcommand("k3s", "the k3s module") {
|
class K3s : ServerSubcommand("k3s", "the k3s module") {
|
||||||
|
@ -73,11 +75,17 @@ class CliArgumentsParser(name: String) : CliTargetParser(name) {
|
||||||
"o",
|
"o",
|
||||||
"provisions only parts ",
|
"provisions only parts ",
|
||||||
)
|
)
|
||||||
|
val cliReprovision by option(
|
||||||
|
ArgType.Boolean,
|
||||||
|
"reprovision",
|
||||||
|
"r",
|
||||||
|
"redo provisioning, deletes old config first"
|
||||||
|
)
|
||||||
override fun execute() {
|
override fun execute() {
|
||||||
super.configFileName = cliConfigFileName?.let { ConfigFileName(it) }
|
super.configFileName = cliConfigFileName?.let { ConfigFileName(it) }
|
||||||
super.applicationFileName = cliApplicationFileName?.let { ApplicationFileName(it) }
|
super.applicationFileName = cliApplicationFileName?.let { ApplicationFileName(it) }
|
||||||
super.submodules = if (only != null) listOf(only!!.name.lowercase()) else null
|
super.submodules = if (only != null) listOf(only!!.name.lowercase()) else null
|
||||||
|
super.reprovision = cliReprovision == true
|
||||||
super.parsed = true
|
super.parsed = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,8 @@ class K3sCliCommand(
|
||||||
target: TargetCliCommand,
|
target: TargetCliCommand,
|
||||||
configFileName: ConfigFileName?,
|
configFileName: ConfigFileName?,
|
||||||
val applicationFileName: ApplicationFileName?,
|
val applicationFileName: ApplicationFileName?,
|
||||||
val submodules: List<String>? = null
|
val submodules: List<String>? = null,
|
||||||
|
val reprovision: Reprovision = false
|
||||||
) :
|
) :
|
||||||
ServerCliCommand(
|
ServerCliCommand(
|
||||||
serverType, target, configFileName
|
serverType, target, configFileName
|
||||||
|
|
|
@ -11,11 +11,17 @@ fun Prov.provisionK3s(cli: K3sCliCommand) = task {
|
||||||
|
|
||||||
val grafanaConfigResolved: GrafanaAgentConfigResolved? = findK8sGrafanaConfig(cli.configFileName)?.resolveSecret()
|
val grafanaConfigResolved: GrafanaAgentConfigResolved? = findK8sGrafanaConfig(cli.configFileName)?.resolveSecret()
|
||||||
|
|
||||||
if (cli.submodules == null) {
|
if (cli.submodules == null && !cli.reprovision) {
|
||||||
// full k3s
|
// full k3s
|
||||||
val k3sConfig: K3sConfig = getK3sConfig(cli.configFileName)
|
val k3sConfig: K3sConfig = getK3sConfig(cli.configFileName)
|
||||||
provisionK3sWorker(k3sConfig, grafanaConfigResolved, cli.applicationFileName)
|
provisionK3sWorker(k3sConfig, grafanaConfigResolved, cli.applicationFileName)
|
||||||
} else {
|
}
|
||||||
|
else if (cli.reprovision) {
|
||||||
|
deprovisionK3sInfra()
|
||||||
|
val k3sConfig: K3sConfig = getK3sConfig(cli.configFileName)
|
||||||
|
provisionK3sWorker(k3sConfig, grafanaConfigResolved, cli.applicationFileName)
|
||||||
|
}
|
||||||
|
else {
|
||||||
// submodules only
|
// submodules only
|
||||||
provisionGrafanaSanitized(cli.submodules, grafanaConfigResolved)
|
provisionGrafanaSanitized(cli.submodules, grafanaConfigResolved)
|
||||||
}
|
}
|
||||||
|
@ -57,10 +63,10 @@ fun Prov.provisionK3sWorker(
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Prov.provisionGrafanaSanitized(
|
private fun Prov.provisionGrafanaSanitized(
|
||||||
submodules: List<String>,
|
submodules: List<String>?,
|
||||||
grafanaConfigResolved: GrafanaAgentConfigResolved?) = task {
|
grafanaConfigResolved: GrafanaAgentConfigResolved?) = task {
|
||||||
|
|
||||||
if (submodules.contains(ServerSubmodule.GRAFANA.name.lowercase())) {
|
if (submodules!!.contains(ServerSubmodule.GRAFANA.name.lowercase())) {
|
||||||
if (grafanaConfigResolved == null) {
|
if (grafanaConfigResolved == null) {
|
||||||
println("ERROR: Could not find grafana config.")
|
println("ERROR: Could not find grafana config.")
|
||||||
exitProcess(7)
|
exitProcess(7)
|
||||||
|
|
Loading…
Reference in a new issue