Aerospike Kubernetes Operator Command Line Tool
akoctl
is a Krew plugin for the Kubernetes Operator.
It provides multiple sub-commands to perform different functions related to Aerospike Kubernetes Operator and Aerospike Kubernetes Cluster.
Install with Krew plugin managerโ
Install Krew.
Follow the Krew setup instructions here.
Install
akoctl
:
kubectl krew index add akoctl https://github.com/aerospike/aerospike-kubernetes-operator-ctl.git
kubectl krew index list
INDEX URL
akoctl https://github.com/aerospike/aerospike-kubernetes-operator-ctl.git
default https://github.com/kubernetes-sigs/krew-index.git
kubectl krew install akoctl/akoctl
Updated the local copy of plugin index "akoctl".
Updated the local copy of plugin index.
Installing plugin: akoctl
Installed plugin: akoctl
\
| Use this plugin:
| kubectl akoctl
| Documentation:
| https://github.com/aerospike/aerospike-kubernetes-operator-ctl
/
Upgrade to latest version if already installedโ
kubectl krew upgrade akoctl
Available sub-commandsโ
Global Flags:โ
There are certain global flags associated with akoctl
Flag | Shorthand | Type | Description |
---|---|---|---|
all-namespaces | -A | bool | Specify all namespaces present in cluster. |
namespaces | -n | string | Comma-separated list of namespaces to operate in. |
kubeconfig | string | Absolute path to the kubeconfig file. | |
cluster-scope | bool | Permission to work in cluster scoped mode (operate on cluster scoped resources like ClusterRoleBinding). Default true. |
collectinfo
sub-commandโ
akoctl
uses the collectinfo
command to collect logs and objects from a given namespace and cluster-scoped resources.
collectinfo
collects the following data:
- All container logs
- All event logs
- Inventory of the following objects:
Namespace Scoped Cluster Scoped Pods Nodes StatefulSets PersistentVolumes Deployments StorageClasses PersistentVolumeClaims MutatingWebhookConfigurations Services ValidatingWebhookConfigurations AerospikeClusters
Requirementsโ
akoctl
inherits the user's kubectl
permissions. If a user cannot access a particular resource, its logs do not appear in the akoctl
results.
- Current user should have the list and get permission for all the objects collected by the command.
- If cluster-scope flag is set, along with the previously mentioned permissions, user should have list and get permission for cluster-scoped resources like Nodes and StorageClasses.
kubectl
binary should be available in the system PATH environment variable.
Associated Flagsโ
Flag | Shorthand | Type | Description |
---|---|---|---|
path | string | Absolute path to save output tar file. |
Example:
kubectl akoctl collectinfo -n aerospike,olm --path ~/sample-directory/
This creates a timestamped tar file called scraperlogs-<timestamp>
and saves it in the ~/sample-directory/
directory.
The directory structure appears as follows:
akoctl_collectinfo
โโโ akoctl.log
โโโ k8s_cluster
โย ย โโโ nodes
โย ย โย ย โโโ <node1 name>.yaml
โย ย โย ย โโโ <node2 name>.yaml
โย ย โโโ storageclasses
โย ย โโโ <storageclass name>.yaml
โย ย โโโ mutatingwebhookconfigurations
โย ย โโโ <mutatingwebhook name>.yaml
โย ย โโโ validatingwebhookconfigurations
โย ย โโโ <validatingwebhook name>.yaml
โย ย โโโ persistentvolumes
โย ย โโโ <persistentvolume name>.yaml
โย ย โโโ summary
โย ย โโโ summary.txt
โโโ k8s_namespaces
โโโ aerospike
โโโ aerospikeclusters
โย ย โโโ <aerospikecluster name>.yaml
โโโ persistentvolumeclaims
โย ย โโโ <pvc name>.yaml
โโโ pods
โย ย โโโ <pod name>
โย ย โย ย โโโ <pod name>.yaml
โย ย โย ย โโโ logs
โย ย โย ย โโโ previous
โย ย โย ย โย ย โโโ <container name>.log
โย ย โย ย โโโ <container name>.log
โโโ statefulsets
โย ย โโโ <sts name>.yaml
โโโ deployments
โย ย โโโ <deployment name>.yaml
โโโ services
โย ย โโโ <service name>.yaml
โโโ summary
โย ย โโโ summary.txt
โย ย โโโ events.txt
โโโโโโโโโโโโโโโโโโโโโโโโโโโ
auth
sub-commandโ
akoctl
uses the auth
command to create and delete RBAC resources for the Aerospike cluster for the given namespaces.
It creates/deletes ServiceAccount, RoleBinding or ClusterRoleBinding as per given scope of operation.
There are 2 sub-commands associated with auth
command:
create
- Creates and updates RBAC resources for the given namespaces.delete
- Deletes RBAC resources for the given namespaces.
If cluster-scope is set (default true), the auth
command grants cluster level RBAC.
In case of cluster-scope
false, it grants namespace level RBAC.
Requirements:โ
akoctl inherits the user's kubectl permissions. If a user doesn't have RBAC access, it cannot grant RBAC for that resource.
- Current user should have the CREATE, GET, UPDATE and DELETE permissions for ServiceAccount and RoleBinding.
- If the cluster-scope flag is set, user should have the CREATE, GET, UPDATE and DELETE permissions for ServiceAccount and ClusterRoleBinding.
The following example creates namespace-scope RBAC resources for the aerospike
namespace:
kubectl akoctl auth create -n aerospike --cluster-scope=false
The following example creates cluster-scope RBAC resources for the aerospike
namespace:
kubectl akoctl auth create -n aerospike
The following example deletes namespace-scope RBAC resources for the aerospike
namespace:
kubectl akoctl auth delete -n aerospike --cluster-scope=false
The following example deletes cluster-scope RBAC resources for the aerospike
namespace:
kubectl akoctl auth delete -n aerospike