|
|
Default project templates
| Шаблоны для проектов доступные по умолчанию
|
The following project templates are included in the Deckhouse Kubernetes Platform:
empty — an empty template without predefined resources;
| Deckhouse Kubernetes Platform включает следующий набор шаблонов для создания проектов:
empty — пустой шаблон без предопределенных ресурсов;
|
default — a template that covers basic project use cases:
- resource limitation;
- network isolation;
- automatic alerts and log collection;
- choice of security profile;
- project administrators setup.
|
default — шаблон для базовых сценариев использования проектов:
- ограничение ресурсов;
- сетевая изоляция;
- автоматические алерты и сбор логов;
- выбор профиля безопасности;
- настройка администраторов проекта.
|
secure — includes all the capabilities of the default template and additional features:
- setting up permissible UID/GID for the project;
- audit rules for project users’ access to the Linux kernel;
- scanning of launched container images for CVE presence.
|
secure — включает все возможности шаблона default , а также дополнительные функции:
- настройку допустимых для проекта UID/GID;
- правила аудита обращения Linux-пользователей проекта к ядру;
- сканирование запускаемых образов контейнеров на наличие известных уязвимостей (CVE).
|
secure-with-dedicated-nodes — includes all the capabilities of the secure template and additional features:
- defining the node selector for all the pods in the project: if a pod is created, the node selector pod will be substituted with the project’s node selector automatically;
- defining the default toleration for all the pods in the project: if a pod is created, the default toleration will be added to the pod automatically.
|
secure-with-dedicated-nodes — включает все возможности шаблона secure , а также дополнительные функции:
- определение селектора узла для всех подов в проекте: если под создан, селектор узла пода будет автоматически заменён на селектор узла проекта;
- определение стандартных tolerations для всех подов в проекте: если под создан, стандартные значения tolerations добавляются к нему автоматически.
|
To list all available parameters for a project template, execute the command:
| Чтобы перечислить все доступные параметры для шаблона проекта, выполните команду:
|
shell
kubectl get projecttemplates -o jsonpath='{.spec.parametersSchema.openAPIV3Schema}' | jq
| shell
kubectl get projecttemplates <ИМЯ_ШАБЛОНА_ПРОЕКТА> -o jsonpath='{.spec.parametersSchema.openAPIV3Schema}' | jqИМЯ_ШАБЛОНА_ПРОЕКТА>
|
Creating a project
| Создание проекта
|
- To create a project, create the Project resource by specifying the name of the project template in .spec.projectTemplateName field.
- In the .spec.parameters field of the
Project resource, specify the parameter values suitable for the ProjectTemplate .spec.parametersSchema.openAPIV3Schema.
|
- Для создания проекта создайте ресурс Project с указанием имени шаблона проекта в поле .spec.projectTemplateName.
- В параметре .spec.parameters ресурса
Project укажите значения параметров для секции .spec.parametersSchema.openAPIV3Schema ресурса ProjectTemplate .
|
Example of creating a project using the Project resource from the default ProjectTemplate:
| Пример создания проекта с помощью ресурса Project из default ProjectTemplate представлен ниже:
|
yaml
apiVersion: deckhouse.io/v1alpha2
kind: Project
metadata:
name: my-project
spec:
description: This is an example from the Deckhouse documentation.
projectTemplateName: default
parameters:
resourceQuota:
requests:
cpu: 5
memory: 5Gi
storage: 1Gi
limits:
cpu: 5
memory: 5Gi
networkPolicy: Isolated
podSecurityProfile: Restricted
extendedMonitoringEnabled: true
administrators:
- subject: Group
name: k8s-admins
| yaml
apiVersion: deckhouse.io/v1alpha2
kind: Project
metadata:
name: my-project
spec:
description: This is an example from the Deckhouse documentation.
projectTemplateName: default
parameters:
resourceQuota:
requests:
cpu: 5
memory: 5Gi
storage: 1Gi
limits:
cpu: 5
memory: 5Gi
networkPolicy: Isolated
podSecurityProfile: Restricted
extendedMonitoringEnabled: true
administrators:
- subject: Group
name: k8s-admins
|
- To check the status of the project, execute the command:
|
- Для проверки статуса проекта выполните команду:
|
shell
kubectl get projects my-project
| shell
kubectl get projects my-project
|
A successfully created project should be in the Deployed state. If the state equals Error , add the -o yaml argument to the command (e.g., kubectl get projects my-project -o yaml ) to get more detailed information about the error.
| Успешно созданный проект должен отображаться в статусе Deployed (синхронизирован). Если отображается статус Error (ошибка), добавьте аргумент -o yaml к команде (например, kubectl get projects my-project -o yaml ) для получения более подробной информации о причине ошибки.
|
Creating your own project template
| Создание собственного шаблона для проекта
|
Default templates cover basic project use cases and serve as a good example of template capabilities.
| Шаблоны проектов по умолчанию включают базовые сценарии использования и служат примером возможностей шаблонов.
|
To create your own template:
- Take one of the default templates as a basis, for example,
default .
- Copy it to a separate file, for example,
my-project-template.yaml using the command:
| Для создания своего шаблона:
- Возьмите за основу один из шаблонов по умолчанию, например,
default .
- Скопируйте его в отдельный файл, например,
my-project-template.yaml при помощи команды:
|
shell
kubectl get projecttemplates default -o yaml > my-project-template.yaml
| shell
kubectl get projecttemplates default -o yaml > my-project-template.yaml
|
- Edit the
my-project-template.yaml file, make the necessary changes.
|
- Отредактируйте файл
my-project-template.yaml , внесите в него необходимые изменения.
|
It is necessary to change not only the template, but also the scheme of input parameters for it.
Project templates support all Helm templating functions.
|
Необходимо изменить не только шаблон, но и схему входных параметров под него.
Шаблоны для проектов поддерживают все функции шаблонизации Helm.
- Измените имя шаблона в поле
.metadata.name .
- Примените полученный шаблон командой:
|
- Change the template name in the
.metadata.name field.
- Apply your new template with the command:
| shell
kubectl apply -f my-project-template.yaml
|
shell
kubectl apply -f my-project-template.yaml
|
- Проверьте доступность нового шаблона с помощью команды:
|
- Check the availability of the new template with the command:
| shell
kubectl get projecttemplates <ИМЯ_НОВОГО_ШАБЛОНА>ИМЯ_НОВОГО_ШАБЛОНА>
|
shell
kubectl get projecttemplates
|
|
| |