Helm Charts sur ArtifactHub via un hébergement sur des pages Github

Conçu pour la vitesse : latence d'environ 10 ms, même en cas de charge
Une méthode incroyablement rapide pour créer, suivre et déployer vos modèles !
- Gère plus de 350 RPS sur un seul processeur virtuel, aucun réglage n'est nécessaire
- Prêt pour la production avec un support complet pour les entreprises
Voyons comment nous pouvons héberger nos graphiques de barre sur les pages GitHub et permettre à d'autres personnes d'utiliser nos graphiques sur ArtifactHub. Avant de comprendre le processus, nous essaierons de comprendre ces termes de la manière la plus simple.
Qu'est-ce qu'un Helm Chart
Les diagrammes Helm vous permettent de modéliser les ressources Kubernetes que vous souhaitez déployer. Si vous souhaitez créer une ressource Kubernetes dans plusieurs clusters (ou même dans le même cluster) avec des valeurs différentes, créez un modèle pour les ressources et empaquetez-le. Ce package est connu sous le nom de helm chart.
Pages GitHub
GitHub Pages est une fonctionnalité de GitHub qui vous permet de créer un site Web ou une page Web hébergée sur les serveurs GitHub. Si vous avez un simple index.html alors vous pouvez héberger ce fichier HTML en utilisant le nom de domaine fourni par GitHub qui est généralement au format nom d'utilisateur.github.io . C'est un moyen pour vous de partager votre travail ou de présenter vos projets en ligne sans avoir besoin d'un service d'hébergement Web distinct. Dans notre cas, nous allons hôte nos tableaux de bord sur GitHub Pages.
Hub d'artefacts
ArtifactHub est une plateforme Web qui fait office de référentiel central pour diverses distributions de logiciels telles que Helm Charts, OPA, etc. Une fois que nous aurons créé notre helm chart et l'aurons hébergé sur les pages GitHub, nous le rendrons accessible à la communauté en le présentant sur Artifacthub.
ArtifactHub n'héberge pas les cartes Helm lui-même, mais sert plutôt de registre pour les référentiels de cartes Helm. Les développeurs peuvent publier leurs graphiques Helm dans leur référentiel préféré, tel que GitHub, GitLab ou Bitbucket, puis enregistrer leur référentiel auprès d'ArtifactHub.
Hébergement de Helm Charts via GitHub Pages
Nous allons maintenant voir comment tirer parti des fonctionnalités Pages de GitHub pour héberger les organigrammes de notre application. Dans cet exemple, je prends un exemple de tableau de barre, mais vous pouvez également utiliser vos propres graphiques de barre personnalisés de la même manière.
Étape 1 : Création d'un exemple de diagramme de barre
Nous allons commencer par créer un exemple de diagramme de barre
helm create sample-nginx
Étape 2 : créer un dépôt GitHub
Nous allons créer un dépôt GitHub public dans lequel nous hébergerons les graphiques.
- Création d'un dépôt GitHub
- Assurez-vous qu'il est public
- Créez un répertoire avec le nom de
graphiquesqui contiendra votre tableau de barre graphiquesle répertoire se trouve au niveau racine de votre référentiel- Transférez vos graphiques vers le référentiel
principalsuccursale
$ arbre.
.
─ README.md
・─ graphiques
─ sample-nginx
─ Chart.yaml
─ graphiques
templates
│ ─ NOTES.txt
│ ─ _helpers.tpl
site.─ deployment.yaml
│ ─ hpa.yaml
│ ─ ingress.yaml
site.─ service.yaml
─ serviceaccount.yaml
Dépistages
• test-connection.yaml
─ values.yaml
Nous avons créé un dépôt et il est hébergé ici :
Étape 3 : Création d'un jeton d'accès Github
Une fois que nos graphiques sont dans principal branche dont nous avons besoin pour créer un pipeline permettant de créer une version GitHub. Cette version de GitHub publiera en retour nos graphiques. Pour cela, nous avons besoin d'un jeton à créer avec un ensemble spécifique de autorisations qui sera ensuite utilisé dans notre pipeline pour publier des graphiques.
- Cliquez sur votre profil GitHub en haut à droite
- Accédez à Réglages.
- Accédez à Paramètres du développeur dans la dernière option du panneau de gauche.
- Accédez à Jetons d'accès personnels et sélectionnez Jetons à grain fin.
- Cliquez sur Générer un nouveau jeton

- Donnez un nom de jeton et sélectionnez la date d'expiration. Pour l'instant, j'utilise 7 jours après quel jeton deviendra inutile.
- Dans l'Accès au référentiel, sélectionnez Uniquement les référentiels et choisissez notre dépôt github sur lequel nous travaillons.

- Dans la section des autorisations, nous n'avons besoin que des autorisations du référentiel.
- Dans cette sélection, nous avons besoin
Lisez et écrivezpourSommaire

- En résumé, nous ne devons avoir que ces autorisations
- Une fois le jeton généré, gardez-le en lieu sûr avec vous pour l'étape suivante.
Étape 4 : Configuration des pages GitHub
Nous pouvons utiliser les pages GitHub pour héberger notre site Web directement sur GitHub (de manière statique).
- Créons une autre branche dans le référentiel sous le nom
pages ghet assurez-vous de nommer la succursale parpages ghuniquement. - Dans cette branche, supprimez tout et créez simplement un fichier simple
index.htmlpour tester l'hébergement. Transférez vos modifications à GitHub.
<BR>DOCTYPE html>
<html>
<head>
<title>Exemples de graphiques</title>
<style>
.graphique {
largeur : 400 pixels ;
hauteur : 300 pixels ;
marge : 20 pixels ;
bordure : 1px solid #ccc ;
boîte-ombre : 2 pixels 2 pixels 5 pixels #ccc ;
affichage : bloc en ligne ;
alignement vertical : en haut ;
rembourrage : 10 pixels ;
taille de la boîte : border-box ;
taille de la police : 14 pixels ;
hauteur de ligne : 1,5 ;
}
.graphique h3 {
marge supérieure : 0 ;
taille de la police : 18 pixels ;
épaisseur de la police : gras ;
}
.graphique p {
marge : 0 ;
}
</style>
</head>
<body>
<h1>Exemples de graphiques</h1>
<div class="chart">
<h3>Graphique 1</h3>
<p>Lorem ipsum dolor sit amet, consécration adipiscine, élite. Nombre entier : euismod diam et purus</p> hendrerit mollis.
<!-- add your chart code here -->
</div>
<div class="chart">
<h3>Graphique 2</h3>
<p>Lorem ipsum dolor sit amet, consécration adipiscine, élite. Nombre entier : euismod diam et purus</p> hendrerit mollis.
<!-- add your chart code here -->
</div>
<div class="chart">
<h3>Graphique 3</h3>
<p>Lorem ipsum dolor sit amet, consécration adipiscine, élite. Nombre entier : euismod diam et purus</p> hendrerit mollis.
<!-- add your chart code here -->
</div>
</body>
</html>
- Accédez aux paramètres sous le nom de votre référentiel et cliquez sur Pages dans le panneau de gauche.

- Dans la section Création et déploiement, choisissez la branche
pages ghet attendez un certain temps que GitHub le traite. Une fois que c'est fait, vous obtiendrez une URL dans la même fenêtre. En cliquant dessus, vous verrez leindex.htmlnous avons créé. - Cliquez ici pour consulter notre fichier index.html — https://dunefro.github.io/sample-charts/
- À présent, plutôt que d'héberger ce fichier HTML, nous hébergerons nos organigrammes.
Étape 5 : Création d'un pipeline dans GitHub Actions
Dans les étapes précédentes, nous avons discuté du pipeline qui utilisera le jeton Access pour créer une version GitHub. Vous pouvez choisir n'importe quel outil préféré pour effectuer cette tâche, mais je choisirai GitHub Actions pour cela. GitHub Actions est un autre outil pris en charge nativement dans GitHub pour effectuer des tâches CI/CD.
Avant de créer le pipeline, nous allons créer une variable secrète pour transmettre le jeton que nous avons créé lors de la tâche précédente.
- Accédez à votre dépôt et cliquez sur Paramètres sous le nom de votre dépôt

- Accédez à Secrets et variables dans le panneau de gauche et cliquez sur Actions
- Cliquez sur New Repository Secret et collez le jeton

Ce jeton peut désormais être utilisé dans le pipeline pour diffuser les versions.
Nous allons maintenant créer le pipeline GitHub Action
- Création d'un répertoire
.github/flux de travailà la racine de votre dépôt dans leprincipalbranche. - Ce répertoire est le répertoire par défaut dans lequel nous conservons tous les pipelines CI/CD pour que GitHub Actions puisse s'exécuter.
- Créez un fichier nommé
release.yamldans le répertoire ci-dessus. - Collez le contenu suivant
nom : Release Charts
sur :
appuyez sur :
succursales :
- principal
emplois :
sortie :
autorisations :
contenu : écrivez # pour lancer la version du graphique et créer une version (helm/chart-releaser-action)
fonctionne sur : ubuntu-latest
étapes :
- nom : Checkout Code
utilisations : actions/checkout @v3
avec :
profondeur de récupération : 0
- nom : Configure Git
exécuter : |
git config user.name « $GITHUB_ACTOR »
git config user.email « $ GITHUB_ACTOR@users.noreply.github.com »
- nom : Set up Helm
utilise : azure/setup-helm @v3 .5
avec :
version : v3.9.2
- nom : Run chart-releaser
utilisations : helm/chart-releaser-action @v1 .5.0
env :
CR_TOKEN : « $ {{secrets.HELM_RELEASE_TOKEN}} »
Ce pipeline est très simple. Comprenons-le très vite
nom— nom du pipelinesur— condition pour faire fonctionner le pipeline, ici nous spécifions de l'exécuter à chaque pousséeprincipalbranche.emplois— la tâche réelle qui contient le code du pipeline. Il vérifie les autorisations deécriredans le contenu que nous avons déjà donnépasdéfinissez les étapes du pipeline. Dans lequel la première étape consiste à utiliseractions/checkout @v3. Idéalement, si vous créez le pipeline, vous devez d'abord vérifier le code. Plutôt que d'écrire le code pour consulter, GitHub fournit unactionqui peut être utilisé directement plutôt que d'écrire le code.- Dans la deuxième étape, nous exécutons les commandes pour configurer git. De même, dans la troisième étape, nous utilisons
azure/setup-helmaction qui nous placera à la barre. - Dans la dernière étape, nous utilisons
helm/chart-releaser-actionpour publier le tableau des commandes. En ce qui concerne la publication, nous avons besoin du jeton secret que nous avons déjà créé et transmis dans le pipeline via le nom du jeton.HELM_RELEASE_TOKEN. Cette action créera également unindex.yamldanspages ghbranche qui fera en sorte que la page GitHub agisse comme un registre statique pour les organigrammes.
Étape 6 : Exécutez le pipeline et vérifiez si les versions sont créées ou non
Nous allons maintenant apporter de très petits changements à la LISEZ-MOI.md fichier du référentiel dans le principal branche pour que le pipeline soit déclenché. Lorsque j'ai appuyé sur les modifications, je peux voir un petit point orange qui signifie qu'un pipeline est en cours d'exécution

- Accédez à Actions sous le nom du référentiel et recherchez les pipelines en cours d'exécution.
- Une fois le pipeline terminé, nous pouvons aller à
pages ghsuccursale et vérifiez siindex.yamlest créé ou non. index.yamlest un moyen par lequel helm est capable d'identifier n'importe quel site Web hébergé statiquement en tant que registre helm.- Une fois le pipeline terminé, un autre pipeline se déclenchera automatiquement avec le nom de
création et déploiement de pagesqui est créé automatiquement par GitHub pour héberger les modifications que nous apportons dans lebranche gh-pagesfabricationindex.yamlaccessible au public. — https://dunefro.github.io/sample-charts/index.yaml - Nous pouvons aller de l'avant et consulter les versions sur GitHub pour constater que notre organigramme a été publié sur la page des versions. — https://github.com/dunefro/sample-charts/releases
Étape 7 : Confirmez la version en la déployant dans un cluster minikube
Pour vérifier si notre registre Helm a été créé avec succès ou non
- Créez un
minikubegrappe - Exécutez la commande ci-dessous
# ajouter le repo
helm repo ajoute des exemples de graphiques https://dunefro.github.io/sample-charts/
mise à jour du référentiel helm
# installer les cartes
helm upgrade --install test-nginx sample-charts/sample-nginx
# cases à cocher
$ kubectl get pods
LE STATUT « NOM PRÊT » REDÉMARRE L'ÂGE
test-nginx-sample-nginx-b95bb4f46-tbppn 1/1 Exécution 0 30s
Nos graphiques fonctionnent bien.
Configuration d'ArtifactHub
Nous allons maintenant essayer de voir comment créer un compte sur ArtifactHub afin de pouvoir montrer nos organigrammes à la communauté. Vous pouvez également trouver d'autres graphiques communautaires tels que
Étape 1 : Créez un compte sur ArtifactHub et créez un dépôt
Nos graphiques sont désormais hébergés. Nous devons nous assurer qu'ils peuvent être utilisés par d'autres développeurs via ArtifactHub.
- Accédez à https://artifcathub.io et inscrivez-vous.
- Publiez ceci, cliquez sur l'icône de votre profil dans le coin supérieur gauche, puis cliquez sur Panneau de configuration.
- Cliquez sur + Ajouter un référentiel et ajoutez les détails du référentiel. Assurez-vous d'utiliser l'URL à laquelle vos graphiques sont hébergés sur les pages GitHub.

- Maintenant, attendez et détendez-vous. ArtifactHub extraira automatiquement les détails à l'aide du
index.yamlhébergé sur nos pages
Étape 2 : Vérifiez votre dépôt
Nous pouvons voir notre dépôt en cours de création et une fois qu'ArtifactHub sera en mesure d'extraire les données, elles commenceront également à se refléter dans les recherches. Nous voulons maintenant appliquer la balise d'éditeur vérifié, quelque chose comme ceci

Pour cela, nous devons ajouter un fichier artifacthub-repo.yml dans le pages gh branch en tant que fichier de métadonnées qui sera lu par ArtifactHub en retour pour vérifier que nous sommes bien le propriétaire du registre.
- Copiez l'ID depuis le référentiel que nous avons créé.
- Créez un fichier nommé
artifacthub-repo.ymldans lepages ghbranche avec le contenu suivant
ID du dépôt : 67d52f16-b102-4661-bfa5-9e6694587e24
propriétaires : # (facultatif, utilisé pour revendiquer la propriété du référentiel)
- nom : Vedant Pareek
courriel : dunefro@gmail.com
- Mettez à jour le version de votre graphique afin qu'ArtifactHub et GitHub Actions puissent le récupérer.
- Attendez un moment qu'ArtifactHub effectue la vérification du registre.
C'est de la même manière que nous hébergions nos palmarès publics sur Véritable fonderie. TrueFoundry est MLOP, LLmops plateforme qui facilite l'ensemble du cycle de vie des modèles d'apprentissage automatique, du développement à la production. Il prend en compte tous les points sensibles tout au long du cycle de vie du machine learning afin d'apporter facilité et confort lors de la création de modèles.
TrueFoundry AI Gateway offre une latence d'environ 3 à 4 ms, gère plus de 350 RPS sur 1 processeur virtuel, évolue horizontalement facilement et est prête pour la production, tandis que LiteLM souffre d'une latence élevée, peine à dépasser un RPS modéré, ne dispose pas d'une mise à l'échelle intégrée et convient parfaitement aux charges de travail légères ou aux prototypes.
Le moyen le plus rapide de créer, de gérer et de faire évoluer votre IA















.webp)



.png)


.webp)




.webp)







