Skip to Content
Next Hat / Блог

Представляем Nanocl 0.17

Представляем Nanocl 0.17! Версия повышает продуктивность разработчиков и развивает сетевые возможности: новые и улучшенные команды CLI, распределённая координация в демоне и экспериментальная поддержка HTTP/3 в ncproxy. Создавать Statefile стало удобнее благодаря улучшенному разбору аргументов, метаданным и встроенному выводу руководства.

Главное в Nanocl 0.17

  • Улучшения CLI: nanocl logs для нескольких целей, новая nanocl stats, команды Statefile state man и state render, а также улучшенный разбор аргументов.
  • Надёжность платформы: распределённый мьютекс в nanocld предотвращает повторение задач на разных узлах; сертификаты БД безопасно синхронизируются через секреты.
  • Современный прокси: ncproxy настраивает HSTS через правила и экспериментально поддерживает HTTP/3 с настраиваемыми параметрами.

Новинка: официальный Nanocl Registry

Мы запустили официальный Nanocl Registry .
Он содержит отобранный каталог готовых Statefile для быстрого развёртывания распространённых стеков.

Реестр Nanocl

💡

Просмотрите руководство любого Statefile в терминале: nanocl man -s <statefile-source>


Изменения компонентов

nanocl 0.17.0

  • Добавлено:
    • nanocl stats для статистики нескольких процессов по имени (спасибо n0tank3sh ).
    • nanocl state man для руководства Statefile.
    • nanocl state render для формирования Statefile с текущими переменными контекста.
    • nanocl logs теперь принимает несколько имён.
    • Улучшен разбор аргументов Statefile: обязательность, несколько значений и описания.
    • Метаданные Statefile для более подробного руководства.
    • nanocl secret patch обновляет секрет без удаления.

nanocld 0.17.0

  • Добавлено:
    • Конечная точка GET /process/{name}/stats для статистики процесса по имени, автор n0tank3sh .
    • Сохранение сертификата БД в секрет для обмена и синхронизации между узлами.
    • Распределённый мьютекс предотвращает одновременное выполнение одной задачи разными узлами.

ncproxy 0.14.0

  • Добавлено:
    • Настройка HSTS через правило прокси, автор n0tank3sh .
    • Экспериментальная поддержка HTTP/3.

HTTP/3 и HSTS

Nginx теперь поддерживает HTTP/3, поэтому мы добавили экспериментальную поддержку HTTP/3 в правило прокси. Параметры позволяют включать HTTP/3 для отдельных доменов. Также добавлены настройки HSTS (HTTP Strict Transport Security), повышающие безопасность принудительным использованием HTTPS.

Пример Statefile для развёртывания простого Cargo с HTTP/3:

ApiVersion: v0.17 Secrets: - Name: tls.secret Kind: nanocl.io/tls Data: Certificate: | -----BEGIN CERTIFICATE----- MIIDETCCAfkCFFOJVQs8PxWlcJQDn/AQpSopkhISMA0GCSqGSIb3DQEBCwUAMEUx CzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjMwNTI5MDM0MDQwWhcNMjQwNTI4MDM0 MDQwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEAyH+TAzIAxxrMKh88p1emIxsttpjqCHdlQuboves+0vI6ORwU BI3HP7gTMQpgK+QnEZw1XIs6/Zdg2VfUiNgQXyh72/0cdurIIqRbF2fLAMSaYElA RRT9F60eHqQ12bXf6ITWB/0ZSnacbLIsic1HcVwr0Awx+xu1YsB9ojssXyIIU/yx d6FjPtiqJTPT9RhVb6Vmfpclse21qGek8tg88U+TrrJZ/Eg5cZojnQTyxhMGHeQf F71nb7no1v5hdki3p50Ik//9lvY/5onWrBUCuAsHi8OkSSyElTQ/JYzuMBjqOaMw PYLZf3d2eRqpiEC/5WI8OJDAk3/y83nG3zy3+QIDAQABMA0GCSqGSIb3DQEBCwUA A4IBAQAz8b7U0jbgBVEen1vd15V6DAxTmg768OkMRoNqK/y0oSK0qHn3IYSADK6M fl6qPnTY3xts+j8ohvNRGR5rJiv25b8koQs6K/ACzMgVlvXeSBVgjBArxgyp3K3q Tpeqg11R5YuJLaMKjWTzOzSq6shLO5/TscLGpkDbZ12HElc5hXyLrEZmsdCb1Wg7 RCaMqsmgD/bYTOgP41DN6MVaSmxCshCGcL78enStPDheCmkk7eLMetMrJZLkf5Ch YWs3OUPos4v9GN40VyNWtbrz9g8TzmD4QOfuhuj9nUg9Psa2c22rgr3XaJEU8nyp rSHTKorbCvimz1/m0crjE91CP9JE -----END CERTIFICATE----- CertificateKey: | -----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDIf5MDMgDHGswq HzynV6YjGy22mOoId2VC5ui96z7S8jo5HBQEjcc/uBMxCmAr5CcRnDVcizr9l2DZ V9SI2BBfKHvb/Rx26sgipFsXZ8sAxJpgSUBFFP0XrR4epDXZtd/ohNYH/RlKdpxs siyJzUdxXCvQDDH7G7ViwH2iOyxfIghT/LF3oWM+2KolM9P1GFVvpWZ+lyWx7bWo Z6Ty2DzxT5Ousln8SDlxmiOdBPLGEwYd5B8XvWdvuejW/mF2SLennQiT//2W9j/m idasFQK4CweLw6RJLISVND8ljO4wGOo5ozA9gtl/d3Z5GqmIQL/lYjw4kMCTf/Lz ecbfPLf5AgMBAAECggEAHK2Su5xFXDVLCqNZK55v1wmmKj4JC5j4VO9uTuv9GnMn PM/1VQlqfIS5ygPv6ZdCt1QeldQcZfVnFu9nKQOuo83ImZjEn4XJhpr3pItmEAAP DMKtfLQZ128dpchbI37OPhXx/0aGfY4lpa5+jF9eXqqOYb280GwQL8XUsoXAPQMC MwAOHbgHH5lYxD9fizjrWIFIC9jfHjVM3qjOfmz+NujKs+nmVI5AQRCd6C66hbgr 2EJe/8ZlDaZX3bfDnRPxhQN8T3VZcwHGj3zqGPnfkr8Ut9nqDhOcqGuTjNdqGEIi meDmKzPsssZg5+sPjgzMsPVf/XQ+v4dLQ2GSYuehOQKBgQDTfzD+K5/rR382HWHX VnL+KXD7cTA7DQq4ma/7UlJMaxhuA11w/4wF/lRiXKNUTfpUSyIybT8IP23fgFDV zLq2G36+mpUXbxPjlFaJfxNOlcr35xvsIC3HMBqOKYm74B9rJbLIwsMZcPi/BuJS ve7pj9blvjf8ZUXw8erhFFoGUwKBgQDyr+u7OQyIhqhCOpy9Is/DtYBg3MQSDLTO TfmqaaUcDvRNy4pgJ2B5Kbs20yAqgBtGDEP+MdtBo3NgIHOA7xjU5biNSz8R12WR UmDrdxIvAo2iixN8TDvIs0EEmE5hrRgPRaf6WP3o1okaWnYuq2VC7HSJJFCtWx9V Aj7VEOgnAwKBgGAXWdshVvc+9L1RfDKqRHTVv09+jbtGoahdq2c0b8/omKDjRoEg mi3e79gA3vReuW2y9UaT/B9zMihp1FBPREWZGGzhLvwGq7Kqoua1pb/+rskTZ8xQ knv9jxMoLDwACEZWSnSMiLf2bA3ewtV1FidoAus/EZDLMovWXjEFXiGhAoGBAIGb YhGCzia7g3CbTMnVpY+nhwAz5qKdFpJ3IjbYZM0vT1mcsjHX1bXfi5Qj/LG16Nro AgfnKGlNmXhk3EqnZmOMq5sJ7Izis+OAUzJtTNC+VFXSYH2pWOQ+lyKVFIclogvF 74fLrw6CRIZGeYdDEblD/pifRFbQq1MC9/tiJBlxAoGAAo/XDJSTRlcrJuutk5jG CZPG5LBlxvdUbsuu2vZ7XIoWp3BvuK+yM8m9kEQgl3x8F3bqRjoQmMN6cImMYC2W F02Hw2EcWWx4w+liGjDy8/rcb9KfYTht3Q3W9RYYPZwn+hg4pmGVb4+yOqd183QQ Ug0MvH79P7CUpecFPJliDME= -----END PRIVATE KEY----- Resources: - Name: secret-tls.com Kind: ncproxy.io/rule Metadata: Cert: certbot Data: Rules: - Domain: secret-tls.com Network: All Ssl: tls.secret Hsts: Recommended Http3: true Locations: - Path: / Target: Key: secret-tls.global.c Port: 9000 Cargoes: - Name: secret-tls Container: Image: ghcr.io/next-hat/nanocl-get-started:latest Env: - APP=SECRET_TLS

Все параметры HTTP/3 и HSTS описаны в документации правила прокси.


Руководства Statefile

Теперь руководство Statefile можно просматривать прямо в терминале. Новая команда nanocl state man выводит подробное руководство с метаданными, описаниями аргументов и примерами.

Руководство Statefile

Пример Statefile с подробным руководством для команды nanocl state man:

ApiVersion: v0.17 Metadata: Name: Nginx with Certbot SSL Tags: - cargo - nginx - certbot - ssl - proxy About: Example of an Nginx cargo with Certbot managed SSL certificates. LongAbout: | This example demonstrates how to create an Nginx cargo with SSL certificates managed by Certbot. The cargo is configured to always pull the latest Nginx image and automatically handle SSL certificate issuance and renewal. Args: - Name: name Kind: String Required: true Description: Name of the cargo to create. - Name: testtt Kind: String Description: sample test - Name: multiple Kind: String Multiple: true Description: sample multiple - Name: boolean Kind: Boolean Description: sample boolean Namespace: cargo-example Cargoes: - Name: ${{ Args.name }} ImagePullPolicy: Always Metadata: Certbot: managed Container: Image: nginx:latest

Все доступные метаданные и параметры аргументов описаны в документации Statefile.


Что дальше?

Мы продолжим улучшать работу нескольких узлов, развивать инструменты Statefile и поддержку HTTP/3, чтобы вывести её из экспериментального статуса. Отзывы приветствуются — присоединяйтесь к обсуждению на GitHub .

Удачных развёртываний!

Команда Nanocl

Последнее обновление