Манифесты
На этой странице
Прежде чем перейти к управлению манифестами в платформе, авторизуйтесь в платформе.
Добавление манифеста
Пример команды проверки применения манифеста неймспейсного объекта
curl -k -s -L --request POST "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/manifests?create_option=dry-run" --header "Authorization: Bearer $token" --data-binary @- <<'EOF'
apiVersion: v1
kind: Secret
metadata:
name: secret-name
namespace: namespace-name
EOF
Пример ответа при успешной проверке
[{"kind":"Secret","body":"{\"apiVersion\":\"v1\",\"kind\":\"Secret\",\"metadata\":{\"name\":\"secret-name\",\"namespace\":\"namespace-name\"}}","result":"success"}]
Пример команды применения манифеста неймспейсного объекта
curl -k -s -L --request POST "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/manifests" --header "Authorization: Bearer $token" --data-binary @- <<'EOF'
apiVersion: v1
kind: Secret
metadata:
name: secret-name
namespace: namespace-name
EOF
Пример ответа при успешном применении манифеста
[{"kind":"Secret","body":"{\"apiVersion\":\"v1\",\"kind\":\"Secret\",\"metadata\":{\"name\":\"secret-name\",\"namespace\":\"namespace-name\"}}","result":"success"}]
Пример команды проверки применения манифеста кластерного объекта
curl -k -s -L --request POST "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/manifests?create_option=dry-run" --header "Authorization: Bearer $token" --data-binary @- <<'EOF'
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
annotations:
meta.helm.sh/release-name: shturval-policies
meta.helm.sh/release-namespace: kyverno
policies.kyverno.io/category: infosec
policies.kyverno.io/description: Kubernetes обладает возможностью установки и ограничений
на потребление ресурсов CPU запускаемыми контейнерами. В случае, если ограничения
отсутствуют, может произойти Denial of Service (DoS), обусловленный тем, что
pod (контейнер) будет использовать все ресурсы узла, которые ему доступны. Поэтому
хорошей практикой считается установка параметров Request (запрос на ресурс)
на CPU.
policies.kyverno.io/severity: High
policies.kyverno.io/title: CPU Requests checker
labels:
app.kubernetes.io/managed-by: Helm
name: absence-of-cpu-requests
spec:
admission: true
background: true
failurePolicy: Ignore
rules:
- match:
any:
- resources:
kinds:
- Pod
name: check-for-cpu-requests
skipBackgroundRequests: true
validate:
foreach:
- list: request.object.spec.[initContainers, containers][]
pattern:
resources:
requests:
cpu: ?*
message: Параметр Requests для CPU не установлен у Container/InitContainer
schemaValidation: true
validationFailureAction: Audit
webhookTimeoutSeconds: 10
EOF
Пример ответа при успешном применении манифеста
[{"kind":"ClusterPolicy","body":"{\"apiVersion\":\"kyverno.io/v1\",\"kind\":\"ClusterPolicy\",\"metadata\":{\"annotations\":{\"meta.helm.sh/release-name\":\"shturval-policies\",\"meta.helm.sh/release-namespace\":\"kyverno\",\"policies.kyverno.io/category\":\"infosec\",\"policies.kyverno.io/description\":\"Kubernetes обладает возможностью установки и ограничений на потребление ресурсов CPU запускаемыми контейнерами. В случае, если ограничения отсутствуют, может произойти Denial of Service (DoS), обусловленный тем, что pod (контейнер) будет использовать все ресурсы узла, которые ему доступны. Поэтому хорошей практикой считается установка параметров Request (запрос на ресурс) на CPU.\",\"policies.kyverno.io/severity\":\"High\",\"policies.kyverno.io/title\":\"CPU Requests checker\"},\"labels\":{\"app.kubernetes.io/managed-by\":\"Helm\"},\"name\":\"absence-of-cpu-requests\"},\"spec\":{\"admission\":true,\"background\":true,\"failurePolicy\":\"Ignore\",\"rules\":[{\"match\":{\"any\":[{\"resources\":{\"kinds\":[\"Pod\"]}}]},\"name\":\"check-for-cpu-requests\",\"skipBackgroundRequests\":true,\"validate\":{\"foreach\":[{\"list\":\"request.object.spec.[initContainers, containers][]\",\"pattern\":{\"resources\":{\"requests\":{\"cpu\":\"?*\"}}}}],\"message\":\"Параметр Requests для CPU не установлен у Container/InitContainer\"}}],\"schemaValidation\":true,\"validationFailureAction\":\"Audit\",\"webhookTimeoutSeconds\":10}}","result":"success"}]
Пример команды применения манифеста кластерного объекта
curl -k -s -L --request POST "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/manifests" --header "Authorization: Bearer $token" --data-binary @- <<'EOF'
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
annotations:
meta.helm.sh/release-name: shturval-policies
meta.helm.sh/release-namespace: kyverno
policies.kyverno.io/category: infosec
policies.kyverno.io/description: Kubernetes обладает возможностью установки и ограничений
на потребление ресурсов CPU запускаемыми контейнерами. В случае, если ограничения
отсутствуют, может произойти Denial of Service (DoS), обусловленный тем, что
pod (контейнер) будет использовать все ресурсы узла, которые ему доступны. Поэтому
хорошей практикой считается установка параметров Request (запрос на ресурс)
на CPU.
policies.kyverno.io/severity: High
policies.kyverno.io/title: CPU Requests checker
labels:
app.kubernetes.io/managed-by: Helm
name: absence-of-cpu-requests
spec:
admission: true
background: true
failurePolicy: Ignore
rules:
- match:
any:
- resources:
kinds:
- Pod
name: check-for-cpu-requests
skipBackgroundRequests: true
validate:
foreach:
- list: request.object.spec.[initContainers, containers][]
pattern:
resources:
requests:
cpu: ?*
message: Параметр Requests для CPU не установлен у Container/InitContainer
schemaValidation: true
validationFailureAction: Audit
webhookTimeoutSeconds: 10
EOF
Пример ответа при успешном применении манифеста
[{"kind":"ClusterPolicy","body":"{\"apiVersion\":\"kyverno.io/v1\",\"kind\":\"ClusterPolicy\",\"metadata\":{\"annotations\":{\"meta.helm.sh/release-name\":\"shturval-policies\",\"meta.helm.sh/release-namespace\":\"kyverno\",\"policies.kyverno.io/category\":\"infosec\",\"policies.kyverno.io/description\":\"Kubernetes обладает возможностью установки и ограничений на потребление ресурсов CPU запускаемыми контейнерами. В случае, если ограничения отсутствуют, может произойти Denial of Service (DoS), обусловленный тем, что pod (контейнер) будет использовать все ресурсы узла, которые ему доступны. Поэтому хорошей практикой считается установка параметров Request (запрос на ресурс) на CPU.\",\"policies.kyverno.io/severity\":\"High\",\"policies.kyverno.io/title\":\"CPU Requests checker\"},\"labels\":{\"app.kubernetes.io/managed-by\":\"Helm\"},\"name\":\"absence-of-cpu-requests\"},\"spec\":{\"admission\":true,\"background\":true,\"failurePolicy\":\"Ignore\",\"rules\":[{\"match\":{\"any\":[{\"resources\":{\"kinds\":[\"Pod\"]}}]},\"name\":\"check-for-cpu-requests\",\"skipBackgroundRequests\":true,\"validate\":{\"foreach\":[{\"list\":\"request.object.spec.[initContainers, containers][]\",\"pattern\":{\"resources\":{\"requests\":{\"cpu\":\"?*\"}}}}],\"message\":\"Параметр Requests для CPU не установлен у Container/InitContainer\"}}],\"schemaValidation\":true,\"validationFailureAction\":\"Audit\",\"webhookTimeoutSeconds\":10}}","result":"success"}]
Удаление объекта
Пример команды удаления неймспейсного объекта
export NAMESPACE=namespace-name
export APIGROUP=core
export KIND=Secret
export CUSTOMRESOURCENAME=secret-name
curl -k -L --request DELETE "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/namespaces/$NAMESPACE/customresources/groups/$APIGROUP/kinds/$KIND/names/$CUSTOMRESOURCENAME" --header "Authorization: Bearer $token"
Пример команды удаления кластерного объекта
export APIGROUP=kyverno.io
export KIND=ClusterPolicy
export CUSTOMRESOURCENAME=absence-of-cpu-requests
curl -k -L --request DELETE "$BACKENDPOINT/api/v1/clusters/$CLUSTERNAME/customresources/groups/$APIGROUP/kinds/$KIND/names/$CUSTOMRESOURCENAME" --header "Authorization: Bearer $token"