6 releases (stable)
1.0.5 | Sep 15, 2023 |
---|---|
1.0.4 | Sep 8, 2023 |
1.0.3 | Aug 23, 2023 |
1.0.2 | Jun 6, 2023 |
0.1.0 | Dec 9, 2022 |
#11 in #service-account
52 downloads per month
34KB
765 lines
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
Dependencies
~72MB
~1M SLoC