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