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»