Cleanup pki: controller-manager

This commit is contained in:
Christian Albrecht 2019-03-11 10:50:32 +01:00
parent 8ab50cb239
commit ce83dc2c52
No known key found for this signature in database
GPG Key ID: 866AF4B25DF7EB00
2 changed files with 30 additions and 29 deletions

View File

@ -104,18 +104,30 @@ in
}; };
###### implementation ###### implementation
config = mkIf cfg.enable { config = let
systemd.services.kube-controller-manager = {
controllerManagerPaths = filter (a: a != null) [
cfg.kubeconfig.caFile
cfg.kubeconfig.certFile
cfg.kubeconfig.keyFile
cfg.rootCaFile
cfg.serviceAccountKeyFile
cfg.tlsCertFile
cfg.tlsKeyFile
];
in mkIf cfg.enable {
systemd.services.kube-controller-manager = rec {
description = "Kubernetes Controller Manager Service"; description = "Kubernetes Controller Manager Service";
wantedBy = [ "kube-control-plane-online.target" ]; wantedBy = [ "kube-control-plane-online.target" ];
after = [ "kube-apiserver.service" ]; after = [ "kube-apiserver.service" ];
before = [ "kube-control-plane-online.target" ]; before = [ "kube-control-plane-online.target" ];
environment.KUBECONFIG = top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig;
preStart = '' preStart = ''
${top.lib.mkWaitCurl ( with config.systemd.services.kube-controller-manager; { until kubectl auth can-i get /api -q 2>/dev/null; do
sleep = 1; echo kubectl auth can-i get /api: exit status $?
path = "/api"; sleep 2
cacert = top.caFile; done
} // optionalAttrs (environment ? cert) { inherit (environment) cert key; })}
''; '';
serviceConfig = { serviceConfig = {
RestartSec = "30s"; RestartSec = "30s";
@ -128,7 +140,7 @@ in
"--cluster-cidr=${cfg.clusterCidr}"} \ "--cluster-cidr=${cfg.clusterCidr}"} \
${optionalString (cfg.featureGates != []) ${optionalString (cfg.featureGates != [])
"--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \ "--feature-gates=${concatMapStringsSep "," (feature: "${feature}=true") cfg.featureGates}"} \
--kubeconfig=${top.lib.mkKubeConfig "kube-controller-manager" cfg.kubeconfig} \ --kubeconfig=${environment.KUBECONFIG} \
--leader-elect=${boolToString cfg.leaderElect} \ --leader-elect=${boolToString cfg.leaderElect} \
${optionalString (cfg.rootCaFile!=null) ${optionalString (cfg.rootCaFile!=null)
"--root-ca-file=${cfg.rootCaFile}"} \ "--root-ca-file=${cfg.rootCaFile}"} \
@ -149,7 +161,16 @@ in
User = "kubernetes"; User = "kubernetes";
Group = "kubernetes"; Group = "kubernetes";
}; };
path = top.path; path = top.path ++ [ pkgs.kubectl ];
unitConfig.ConditionPathExists = controllerManagerPaths;
};
systemd.paths.kube-controller-manager = {
wantedBy = [ "kube-controller-manager.service" ];
pathConfig = {
PathExists = controllerManagerPaths;
PathChanged = controllerManagerPaths;
};
}; };
services.kubernetes.pki.certs = with top.lib; { services.kubernetes.pki.certs = with top.lib; {

View File

@ -136,13 +136,6 @@ in
cfg.certs.schedulerClient.cert cfg.certs.schedulerClient.cert
cfg.certs.schedulerClient.key cfg.certs.schedulerClient.key
]; ];
controllerManagerPaths = [
top.controllerManager.rootCaFile
top.controllerManager.tlsCertFile
top.controllerManager.tlsKeyFile
cfg.certs.controllerManagerClient.cert
cfg.certs.controllerManagerClient.key
];
kubeletPaths = [ kubeletPaths = [
top.kubelet.clientCaFile top.kubelet.clientCaFile
top.kubelet.tlsCertFile top.kubelet.tlsCertFile
@ -307,19 +300,6 @@ in
}; };
}; };
systemd.services.kube-controller-manager = mkIf top.controllerManager.enable {
environment = { inherit (cfg.certs.controllerManagerClient) cert key; };
unitConfig.ConditionPathExists = controllerManagerPaths;
};
systemd.paths.kube-controller-manager = mkIf top.controllerManager.enable {
wantedBy = [ "kube-controller-manager.service" ];
pathConfig = {
PathExists = controllerManagerPaths;
PathChanged = controllerManagerPaths;
};
};
systemd.services.kube-scheduler = mkIf top.scheduler.enable { systemd.services.kube-scheduler = mkIf top.scheduler.enable {
environment = { inherit (top.pki.certs.schedulerClient) cert key; }; environment = { inherit (top.pki.certs.schedulerClient) cert key; };
unitConfig.ConditionPathExists = schedulerPaths; unitConfig.ConditionPathExists = schedulerPaths;