resalloc-kubernetes

Crates.ioresalloc-kubernetes
lib.rsresalloc-kubernetes
version1.0.5
sourcesrc
created_at2022-12-09 01:59:04.394227
updated_at2023-09-15 14:32:53.128781
descriptionA CLI used to allocate kubernetes pod resource for resalloc framework.
homepagehttps://github.com/tommylike/resalloc-kubernetes
repositoryhttps://github.com/tommylike/resalloc-kubernetes
max_upload_size
id732935
size120,690
Hu Sheng (TommyLike)

documentation

https://github.com/tommylike/resalloc-kubernetes/#readme

README

Resalloc kubernetes

resalloc-kubernetes used for generating in cluster pod resource for COPR cluster.

Prerequisite

The pod's Service Account's Role need pvc's create, delete and pod's create, delete, list, watch, get permissions, For example, the RBAC role should be something like:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
...
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["create", "delete", "list", "get", "watch"]
- apiGroups: [""]
  resources: ["persistentvolumeclaims"]
  verbs: ["create", "delete"]
...

NOTE: If there's no delete permissions for pod and pvc in Service Account, the allocated resource may be leaked and need to be released manually!

Generate pod

command would be:

Create new pod resource

Usage: resalloc-kubernetes add [OPTIONS] --image-tag <IMAGE_TAG> --cpu-resource <CPU_RESOURCE> --memory-resource <MEMORY_RESOURCE>

Options:
      --timeout <TIMEOUT>
          timeout for waiting pod to be ready [default: 60]
      --image-tag <IMAGE_TAG>
          specify the image tag used for generating, for example: docker.io/organization/image:tag
      --namespace <NAMESPACE>

      --cpu-resource <CPU_RESOURCE>
          specify the request and limit cpu resource, '1', '2000m' and etc.
      --memory-resource <MEMORY_RESOURCE>
          specify the request and limit memory resource, '1024Mi', '2Gi' and etc.
      --node-selector <NODE_SELECTOR>
          specify the node selector for pod resource in the format of 'NAME=VALUE', can be specified with multiple times
      --privileged
          run pod in privileged mode

      --additional-labels <ADDITIONAL_LABELS>
          specify the additional labels for pod resource in the format of 'NAME=VALUE', can be specified with multiple times
      --additional-volume-size <ADDITIONAL_VOLUME_SIZE>
          specify the additional persistent volume size, use in group(additional_volume_size, additional_volume_class, additional_volume_mount_path).
      --additional-volume-class <ADDITIONAL_VOLUME_CLASS>
          specify the additional persistent volume class, use in group(additional_volume_size, additional_volume_class, additional_volume_mount_path).
      --additional-volume-mount-path <ADDITIONAL_VOLUME_MOUNT_PATH>
          specify mount point for persistent volume, use in group(additional_volume_size, additional_volume_class, additional_volume_mount_path).
  -h, --help
          Print help information

Remove pod

command would be:

Delete existing pod resource by IP address

Usage: resalloc-kubernetes delete [OPTIONS] --name <NAME>

Options:
      --name <NAME>            specify ip address of pod to delete. [env: RESALLOC_NAME=]
      --namespace <NAMESPACE>
  -h, --help                   Print help information

Commit count: 25

cargo fmt