···
Kubernetes apiserver token authentication file. See
+
<link xlink:href="http://kubernetes.io/v1.0/docs/admin/authentication.html"/>
example = literalExample ''
···
authorizationMode = mkOption {
Kubernetes apiserver authorization mode (AlwaysAllow/AlwaysDeny/ABAC). See
+
<link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
type = types.enum ["AlwaysAllow" "AlwaysDeny" "ABAC"];
···
authorizationPolicy = mkOption {
Kubernetes apiserver authorization policy file. See
+
<link xlink:href="http://kubernetes.io/v1.0/docs/admin/authorization.html"/>
example = literalExample ''
···
runtimeConfig = mkOption {
+
Api runtime configuration. See
+
<link xlink:href="http://kubernetes.io/v1.0/docs/admin/cluster-management.html"/>
example = "api/all=false,api/v1=true";
admissionControl = mkOption {
+
Kubernetes admission control plugins to use. See
+
<link xlink:href="http://kubernetes.io/v1.0/docs/admin/admission-controllers.html"/>
default = ["AlwaysAdmit"];
+
"NamespaceLifecycle" "NamespaceExists" "LimitRanger"
+
"SecurityContextDeny" "ServiceAccount" "ResourceQuota"
type = types.listOf types.str;
+
serviceAccountKey = mkOption {
+
Kubernetes apiserver PEM-encoded x509 RSA private or public key file,
+
used to verify ServiceAccount tokens.
+
type = types.nullOr types.path;
···
+
serviceAccountPrivateKey = mkOption {
+
Kubernetes controller manager PEM-encoded private RSA key file used to
+
sign service account tokens
+
type = types.nullOr types.path;
+
rootCaFile = mkOption {
+
Kubernetes controller manager certificate authority file included in
+
service account's token secret.
+
type = types.nullOr types.path;
+
description = "Kubernetes controller manager extra command line options.";
···
+
Kubernetes kubelet list of Kubernetes API servers for publishing events,
+
and reading pods and services.
default = ["${cfg.apiserver.address}:${toString cfg.apiserver.port}"];
type = types.listOf types.str;
···
${optionalString (cfg.apiserver.runtimeConfig!="")
"--runtime-config=${cfg.apiserver.runtimeConfig}"} \
--admission_control=${concatStringsSep "," cfg.apiserver.admissionControl} \
+
${optionalString (cfg.apiserver.serviceAccountKey!=null)
+
"--service-account-key-file=${cfg.apiserver.serviceAccountKey}"} \
${optionalString cfg.verbose "--v=6 --log-flush-frequency=1s"} \
${cfg.apiserver.extraOpts}
···
--address=${cfg.controllerManager.address} \
--port=${toString cfg.controllerManager.port} \
--master=${cfg.controllerManager.master} \
+
${optionalString (cfg.controllerManager.serviceAccountPrivateKey!=null)
+
"--service-account-private-key-file=${cfg.controllerManager.serviceAccountPrivateKey}"} \
+
${optionalString (cfg.controllerManager.rootCaFile!=null)
+
"--root-ca-file=${cfg.controllerManager.rootCaFile}"} \
${optionalString cfg.verbose "--v=6 --log-flush-frequency=1s"} \
${cfg.controllerManager.extraOpts}
···
${optionalString cfg.verbose "--v=6 --log-flush-frequency=1s"} \
+
Restart = "always"; # Retry connection