minio service: add additional config options
Set access and secret key and disable browser. Tests extended to do real operations against minio.
This commit is contained in:
parent
4cccbc256c
commit
0fb8456b13
|
@ -29,6 +29,40 @@ in
|
||||||
description = "The config directory, for the access keys and other settings.";
|
description = "The config directory, for the access keys and other settings.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
accessKey = mkOption {
|
||||||
|
default = "";
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Access key of 5 to 20 characters in length that clients use to access the server.
|
||||||
|
This overrides the access key that is generated by minio on first startup and stored inside the
|
||||||
|
<literal>configDir</literal> directory.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
secretKey = mkOption {
|
||||||
|
default = "";
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
Specify the Secret key of 8 to 40 characters in length that clients use to access the server.
|
||||||
|
This overrides the secret key that is generated by minio on first startup and stored inside the
|
||||||
|
<literal>configDir</literal> directory.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
region = mkOption {
|
||||||
|
default = "us-east-1";
|
||||||
|
type = types.str;
|
||||||
|
description = ''
|
||||||
|
The physical location of the server. By default it is set to us-east-1, which is same as AWS S3's and Minio's default region.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
browser = mkOption {
|
||||||
|
default = true;
|
||||||
|
type = types.bool;
|
||||||
|
description = "Enable or disable access to web UI.";
|
||||||
|
};
|
||||||
|
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
default = pkgs.minio;
|
default = pkgs.minio;
|
||||||
defaultText = "pkgs.minio";
|
defaultText = "pkgs.minio";
|
||||||
|
@ -57,6 +91,14 @@ in
|
||||||
Group = "minio";
|
Group = "minio";
|
||||||
LimitNOFILE = 65536;
|
LimitNOFILE = 65536;
|
||||||
};
|
};
|
||||||
|
environment = {
|
||||||
|
MINIO_REGION = "${cfg.region}";
|
||||||
|
MINIO_BROWSER = "${if cfg.browser then "on" else "off"}";
|
||||||
|
} // optionalAttrs (cfg.accessKey != "") {
|
||||||
|
MINIO_ACCESS_KEY = "${cfg.accessKey}";
|
||||||
|
} // optionalAttrs (cfg.secretKey != "") {
|
||||||
|
MINIO_SECRET_KEY = "${cfg.secretKey}";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraUsers.minio = {
|
users.extraUsers.minio = {
|
||||||
|
|
|
@ -4,8 +4,15 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||||
maintainers = [ bachp ];
|
maintainers = [ bachp ];
|
||||||
};
|
};
|
||||||
|
|
||||||
machine = { config, pkgs, ... }: {
|
nodes = {
|
||||||
services.minio.enable = true;
|
machine = { config, pkgs, ... }: {
|
||||||
|
services.minio = {
|
||||||
|
enable = true;
|
||||||
|
accessKey = "BKIKJAA5BMMU2RHO6IBB";
|
||||||
|
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
|
||||||
|
};
|
||||||
|
environment.systemPackages = [ pkgs.minio-client ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
testScript =
|
testScript =
|
||||||
|
@ -14,6 +21,12 @@ import ./make-test.nix ({ pkgs, ...} : {
|
||||||
$machine->waitForUnit("minio.service");
|
$machine->waitForUnit("minio.service");
|
||||||
$machine->waitForOpenPort(9000);
|
$machine->waitForOpenPort(9000);
|
||||||
$machine->succeed("curl --fail http://localhost:9000/minio/index.html");
|
$machine->succeed("curl --fail http://localhost:9000/minio/index.html");
|
||||||
|
|
||||||
|
# Create a test bucket on the server
|
||||||
|
$machine->succeed("mc config host add minio http://localhost:9000 BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 S3v4");
|
||||||
|
$machine->succeed("mc mb minio/test-bucket");
|
||||||
|
$machine->succeed("mc ls minio") =~ /test-bucket/ or die;
|
||||||
$machine->shutdown;
|
$machine->shutdown;
|
||||||
|
|
||||||
'';
|
'';
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in a new issue