Kubernetes
NAME
Kubernetes - shared kubectl helpers for Raku scripts
SYNOPSIS
use Kubernetes::Resources::Core;
class Foo does Kubernetes::Resources::Core::NamespacedResource { ... }
my $ref = Kubernetes::Resources::Core::ResourceRef.new(
:name<my-sub>, :namespace<ns>, :kubectl-name<subscription>, :kind<Subscription>,
);
$ref.delete('kubectl');
# Pod with wait-until-ready:
use Kubernetes::Resources::Pod;
my $pod = Kubernetes::Resources::Pod::Pod.new(:name<my-pod>, :namespace<default>);
$pod.wait-until-ready('kubectl', :timeout-s(120));
# ConfigMap apply/delete and data helpers:
use Kubernetes::Resources::ConfigMap;
my $cm = Kubernetes::Resources::ConfigMap::ConfigMap.new(
:name<my-config>, :namespace<default>, :data(%(foo => 'bar')),
);
$cm.apply('kubectl');
$cm.delete('kubectl');
# Secret apply/delete and ensure-key:
use Kubernetes::Resources::Secret;
my $secret = Kubernetes::Resources::Secret::Secret.new(
:name<my-secret>, :namespace<default>, :data(%(api-key => 'value')),
);
$secret.apply('kubectl');
$secret.delete('kubectl');
# Namespace lifecycle:
use Kubernetes::Resources::Namespace;
my $ns = Kubernetes::Resources::Namespace::Namespace.new(:name<my-ns>);
$ns.ensure('kubectl', :dry-run);
DESCRIPTION
Facade that loads all Kubernetes submodules. Reference symbols via their fully-qualified submodule names:
Kubernetes::Resources::Core::K8sResourceKubernetes::Resources::Core::NamespacedResourceKubernetes::Resources::Core::ResourceRefKubernetes::Resources::Pod::PodKubernetes::Resources::ConfigMap::ConfigMapKubernetes::Resources::Secret::SecretKubernetes::Resources::Namespace::NamespaceKubernetes::Operations::Wait::WaitForReadyKubernetes::Client::resolve-kubectl()