Sunstone — это простое в использовании, решение NO-CLI для создания шаблонов, которые работают с простой скручивание
. Он предназначен для пользователей, которые нуждаются в некоторой функциональности шаблонов, но не хотят использовать инструменты, такие как Helm, которые нуждаются в собственных реестрах, структурах каталогов и механизмы обновления.
В настоящее время Сунэн Нацелены на пользователей Kubernetes, но на самом деле нет никаких ограничений или проблем при использовании его с любыми другими инструментами (оно не заботится о том, являются ли шаблоны Kubernetes, проявляются, проявляются ли шаблоны Kubernetes или Docker Compose файлы или что-то еще).
Цели проекта:
- Пользователи хоста шаблонов на собственной инфраструктуре, достижимыми от Sunstone (GitHub, Gitlab, S3, Nginx Static File Server).
- Простота в использовании и открыть Система псевдонима, где пользователи могут поделиться своими собственными шаблонами. Мы могли бы потенциально позволить HUB YAML проявлять указывать на другие ступицы и отвлечь псевдонимы от них.
- Когда Fetch невозможна, пользователь может создавать и обновлять Private Repo в Sunstone Via
Curl
или специализированный контейнер докеров (в настоящее время работает как действие GitHub, но будет доступна автономные инструкции), которые могут быть включены в качестве шага Ci. - Мертвые простые инструкции по установке для ваших документов. Например, установить Dotscience ML Оператор развертывания модели для вашей учетной записи пользователя, это так же просто, как:
kubectl apply -f https://sunstone.dev/dotscience?token=my-super-secret-token
Страница развертывания kubernetes в dotscience.com Страница развертывателей :
Пример 1: удаленный шаблон
Здесь у нас есть шаблон, принимаемый на Github на: https://github.com/sunstone-dev/example/blob/master/deployment.yaml . Отказ Содержание:
apiVersion: apps/v1 kind: Deployment metadata: name: pushwf labels: name: "pushwf" spec: replicas: 1 revisionHistoryLimit: 5 selector: matchLabels: app: pushwf template: metadata: name: pushwf labels: app: pushwf spec: containers: - image: keelhq/push-workflow-example:{{ .version | latestRegistrySemver "keelhq/push-workflow-example" }} imagePullPolicy: Always name: pushwf ports: - containerPort: {{ .port | default 8500 }} livenessProbe: httpGet: path: / port: {{ .port | default 8500 }} initialDelaySeconds: 10 timeoutSeconds: 5
(RAW LINK: https://raw.githubusercontent.com/sunstone-dev/example/master/deplobement.yaml )
Посмотрите на {{.version | STAYREGARYSEMVER "KEELHQ/push-workflow-пример"}}
это STAYREGARYSEMVER
Тег шаблона фактически перейдет в этот реестр и извлеките последний меток Semver из реестра:) Нет необходимости обновлять свои документы, когда выпускается новый меток изображения SEMVER!
Теперь, чтобы сделать шаблон, нам нужно знать, что Template Template Sunstone API работает так:
https://sunstone.dev/? = & =
Итак, чтобы сделать наш пример шаблона С значениями по умолчанию , использовать:
https://sunstone.dev/raw.githubusercontent.com/sunstone-dev/example/master/deployment.yaml
Результат должен выглядеть как:
apiVersion: apps/v1 kind: Deployment metadata: name: pushwf labels: name: "pushwf" spec: replicas: 1 revisionHistoryLimit: 5 selector: matchLabels: app: pushwf template: metadata: name: pushwf labels: app: pushwf spec: containers: - image: keelhq/push-workflow-example:0.11.0-alpha imagePullPolicy: Always name: pushwf ports: - containerPort: 8500 livenessProbe: httpGet: path: / port: 8500 initialDelaySeconds: 10 timeoutSeconds: 5
Если вы добавите ? port = 999
к URL:
https://sunstone.dev/raw.githubusercontent.com/sunstone-dev/example/master/deployment.yaml?port=9999
Конечная точка покажет вам разные контейнерные порту:
... ports: - containerPort: 8500 livenessProbe: httpGet: ...
kubectl
позволяет устанавливать непосредственно из этого URL:
https://sunstone.dev/raw.githubusercontent.com/sunstone-dev/example/master/deployment.yaml?port=9999
Пример 2: Использование псевдонимов
Построение целого URL обычно довольно сложно помнить, поэтому у нас есть публичные псевдонимы «HUB», которые позволяют каждому сопоставить свои собственные более короткие псевдонимы в удаленные репозитории. Репозиторий HUB можно найти здесь: https://github.com/sunstone-dev/hub Отказ Если вы хотите внести свой собственный шаблон, просто выведите его и отправьте запрос на тягу.
Чтобы установить из псевдонима, становится так же просто, как:
kubectl apply -f https://sunstone.dev/keel
И вы также можете просматривать все публичные псевдонимы здесь: https://apps.sunstone.dev/dashboard
Нажмите «Установить» на любой:
Ввод в переменные поля будут автоматически генерировать ваш шаблон Render URL:
- Проверьте документы шаблонов Sunstone: https://about.sunstone.dev/examples/#latest-docker-semver-tag
- Еще не документировано, но вы можете проверить частные репозитории (требует входа в систему с GitHub только для аутентификации, без доступа к REPOS): https://apps.sunstone.dev/private-repositories
- Сопровождая действие GitHub для автоматического обновления вашего частного псевдонима на солнце, когда вы нажимаете на это репо: https://github.com/marketplace/Action/sunstone-template-update.
- Голанг для бэкэнда (API, шаблон)
- Vue.js.
- База данных — FireStore на GCP
- Работает на гке
Слияние
Таблица Sunstone Chillating API будет открытым исходным кодом (по-прежнему нужно сделать некоторую работу, чтобы отделить его от текущего обслуживания мультирентантов), чтобы вы сможете просто принять его где угодно. Можно также провести его через облачные или подобные услуги.
Оригинал: «https://dev.to/krusenas/sunstone-simple-templates-for-kubernetes-and-beyond-1pe1»