Kubernetes-REST
view release on metacpan or search on metacpan
t/06_examples.t view on Meta::CPAN
#!/usr/bin/env perl
# Tests that all code examples from Kubernetes::REST::Example POD
# construct valid IO::K8s objects (no live cluster needed).
use strict;
use warnings;
use Test::More;
use FindBin;
use lib "$FindBin::Bin/../lib";
use Kubernetes::REST;
use MIME::Base64 qw(encode_base64);
# Create a Kubernetes::REST instance for new_object (no server needed)
my $api = Kubernetes::REST->new(
server => {
endpoint => 'https://127.0.0.1:6443',
ssl_verify_server => 0,
},
credentials => { token => 'test' },
resource_map_from_cluster => 0,
);
ok($api, 'API object created');
# === Namespace ===
subtest 'Example: Namespace' => sub {
my $ns = $api->new_object(Namespace =>
metadata => { name => 'perl-test' },
);
ok($ns, 'Namespace created');
is($ns->metadata->name, 'perl-test', 'name');
is($ns->kind, 'Namespace', 'kind');
is($ns->api_version, 'v1', 'apiVersion');
};
# === ConfigMap ===
subtest 'Example: ConfigMap' => sub {
my $cm = $api->new_object(ConfigMap =>
metadata => {
name => 'app-config',
namespace => 'perl-test',
},
data => {
'database.host' => 'postgres.perl-test.svc.cluster.local',
'database.port' => '5432',
'app.debug' => 'true',
},
);
ok($cm, 'ConfigMap created');
is($cm->metadata->name, 'app-config', 'name');
is($cm->metadata->namespace, 'perl-test', 'namespace');
is($cm->data->{'database.host'}, 'postgres.perl-test.svc.cluster.local', 'data key');
is($cm->kind, 'ConfigMap', 'kind');
is($cm->api_version, 'v1', 'apiVersion');
};
# === Secret ===
subtest 'Example: Secret' => sub {
my $secret = $api->new_object(Secret =>
metadata => {
name => 'db-credentials',
namespace => 'perl-test',
},
type => 'Opaque',
data => {
username => encode_base64('admin', ''),
password => encode_base64('s3cret', ''),
},
);
ok($secret, 'Secret created');
is($secret->metadata->name, 'db-credentials', 'name');
is($secret->type, 'Opaque', 'type');
is($secret->data->{username}, encode_base64('admin', ''), 'data.username');
is($secret->kind, 'Secret', 'kind');
};
( run in 2.056 seconds using v1.01-cache-2.11-cpan-524268b4103 )