Манифесты

Прежде чем перейти к управлению манифестами в платформе, авторизуйтесь в платформе.

Добавление манифеста

Пример команды проверки применения манифеста неймспейсного объекта
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"
×