Add service account.
This commit is contained in:
parent
342a5e338c
commit
626055e063
@ -8,5 +8,6 @@ symlinkJoin {
|
|||||||
paths = [
|
paths = [
|
||||||
k8s.kubernetes
|
k8s.kubernetes
|
||||||
k8s.ca
|
k8s.ca
|
||||||
|
k8s.service_account
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
stdenv.mkDerivation (finalAttrs: {
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
name = "k8s-keys";
|
name = "k8s-kubernetes";
|
||||||
nativeBuildInputs = [ cfssl ];
|
nativeBuildInputs = [ cfssl ];
|
||||||
buildInputs = [ ];
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"signing": {
|
||||||
|
"default": {
|
||||||
|
"expiry": "8760h"
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"kubernetes": {
|
||||||
|
"usages": ["signing", "key encipherment", "server auth", "client auth"],
|
||||||
|
"expiry": "8760h"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"CN": "service-accounts",
|
||||||
|
"key": {
|
||||||
|
"algo": "rsa",
|
||||||
|
"size": 2048
|
||||||
|
},
|
||||||
|
"names": [
|
||||||
|
{
|
||||||
|
"C": "US",
|
||||||
|
"L": "Portland",
|
||||||
|
"O": "Kubernetes",
|
||||||
|
"OU": "Kubernetes The Hard Way",
|
||||||
|
"ST": "Oregon"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
35
nix/kubernetes/keys/package/k8s-service-account/package.nix
Normal file
35
nix/kubernetes/keys/package/k8s-service-account/package.nix
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# unpackPhase
|
||||||
|
# patchPhase
|
||||||
|
# configurePhase
|
||||||
|
# buildPhase
|
||||||
|
# checkPhase
|
||||||
|
# installPhase
|
||||||
|
# fixupPhase
|
||||||
|
# installCheckPhase
|
||||||
|
# distPhase
|
||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
sqlite,
|
||||||
|
cfssl,
|
||||||
|
k8s,
|
||||||
|
all_hostnames,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation (finalAttrs: {
|
||||||
|
name = "k8s-service-account";
|
||||||
|
nativeBuildInputs = [ cfssl ];
|
||||||
|
buildInputs = [ ];
|
||||||
|
|
||||||
|
unpackPhase = "true";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p "$out"
|
||||||
|
cd "$out"
|
||||||
|
cfssl gencert \
|
||||||
|
-ca=${k8s.ca}/ca.pem \
|
||||||
|
-ca-key=${k8s.ca}/ca-key.pem \
|
||||||
|
-config=${./files/ca-config.json} \
|
||||||
|
-profile=kubernetes \
|
||||||
|
${./files/service-account-csr.json} | cfssljson -bare service-account
|
||||||
|
'';
|
||||||
|
})
|
||||||
@ -137,6 +137,20 @@ makeScope newScope (
|
|||||||
group = 10024;
|
group = 10024;
|
||||||
mode = "0600";
|
mode = "0600";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
dest_dir = "/vm/${vm_name}/persist/keys/kube";
|
||||||
|
file = "${self.service_account}/service-account.pem";
|
||||||
|
owner = 10024;
|
||||||
|
group = 10024;
|
||||||
|
mode = "0600";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
dest_dir = "/vm/${vm_name}/persist/keys/kube";
|
||||||
|
file = "${self.service_account}/service-account-key.pem";
|
||||||
|
owner = 10024;
|
||||||
|
group = 10024;
|
||||||
|
mode = "0600";
|
||||||
|
}
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -181,6 +195,7 @@ makeScope newScope (
|
|||||||
{
|
{
|
||||||
ca = (callPackage ./package/k8s-ca/package.nix additional_vars);
|
ca = (callPackage ./package/k8s-ca/package.nix additional_vars);
|
||||||
kubernetes = (callPackage ./package/k8s-kubernetes/package.nix additional_vars);
|
kubernetes = (callPackage ./package/k8s-kubernetes/package.nix additional_vars);
|
||||||
|
service_account = (callPackage ./package/k8s-service-account/package.nix additional_vars);
|
||||||
keys = (callPackage ./package/k8s-keys/package.nix additional_vars);
|
keys = (callPackage ./package/k8s-keys/package.nix additional_vars);
|
||||||
deploy_script = (writeShellScript "deploy-keys" deploy_script);
|
deploy_script = (writeShellScript "deploy-keys" deploy_script);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,8 +77,8 @@ in
|
|||||||
"--kubelet-client-certificate=/.persist/keys/kube/kubernetes.pem"
|
"--kubelet-client-certificate=/.persist/keys/kube/kubernetes.pem"
|
||||||
"--kubelet-client-key=/.persist/keys/kube/kubernetes-key.pem"
|
"--kubelet-client-key=/.persist/keys/kube/kubernetes-key.pem"
|
||||||
"--runtime-config='api/all=true'"
|
"--runtime-config='api/all=true'"
|
||||||
"--service-account-key-file=/var/lib/kubernetes/service-account.pem"
|
"--service-account-key-file=/.persist/keys/kube/service-account.pem"
|
||||||
"--service-account-signing-key-file=/var/lib/kubernetes/service-account-key.pem"
|
"--service-account-signing-key-file=/.persist/keys/kube/service-account-key.pem"
|
||||||
"--service-account-issuer=https://{{ kubernetes_public_address }}:6443"
|
"--service-account-issuer=https://{{ kubernetes_public_address }}:6443"
|
||||||
"--service-node-port-range=30000-32767"
|
"--service-node-port-range=30000-32767"
|
||||||
"--tls-cert-file=/.persist/keys/kube/kubernetes.pem"
|
"--tls-cert-file=/.persist/keys/kube/kubernetes.pem"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user