Aller au contenu principal

Update

Mise à jour de la version 3.5 vers 3.6

Modifier le fichier /etc/bash.bashrc :

  • pour que la variable WORK_DIR soit égale à /data/KDL_3.6
  • pour ajouter sous le export KOSMOS_DOMAIN=<domain> les lignes suivantes pour ajouter la variable KOSMOS_DOMAIN_EXTERNAL (remplacer <domain> par la valeur de votre domaine. Le . est important)
export KOSMOS_DOMAIN_EXTERNAL=".<domain>"
  • pour ajouter sous le mkdir -p "$KOSMOS_VALUES_CUSTOM_PATH" les lignes suivantes pour ajouter la variable KOSMOS_REGISTRY_ENDPOINT
# Registry utilisée par helmfile
export KOSMOS_REGISTRY_ENDPOINT=kosmos-registry.$KOSMOS_DOMAIN/athea/hauler

Recharger l'environnement avec les commandes suivantes :

source /etc/bash.bashrc
source ~/.bashrc

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • patch_platform-provisioner_3.6.tar.zst
  • patch_platform-provisioner_3.6.tar.zst.sha256

Mise à jour de la version 3.4 vers 3.5

Modifier le fichier /etc/bash.bashrc :

  • pour que la variable WORK_DIR soit égale à /data/KDL_3.5
  • pour ajouter sous le export KOSMOS_DOMAIN les lignes suivantes
## Variables pour Helmfile
# Le fichier platform-provisioner/environments/$ENV.yaml sera chargé durant l'installation
export ENV=kdl
# Répertoire qui contiendra les fichiers d'installation spécifiques à la plateforme
export KOSMOS_VALUES_CUSTOM_PATH=/data/values-custom
mkdir -p "$KOSMOS_VALUES_CUSTOM_PATH"
info

Ce repertoire $KOSMOS_VALUES_CUSTOM_PATH est dorénavant la référence des values propres à un environnement que l'exploitant peut adapter sans risque que ses adaptations ne soient perdues apres installation d'une nouvelle version du platform-provisioner.

Recharger l'environnement avec les commandes suivantes :

source /etc/bash.bashrc
source ~/.bashrc

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • patch_platform-provisioner_3.5.tar.zst
  • patch_platform-provisioner_3.5.tar.zst.sha256
  • offline-package-pip-3-0-10.tar.gz
  • offline-package-pip-3-0-10.tar.gz.sha256

Préparation

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch_platform-provisioner_3.5.tar.zst lors de la commande hauler store load, et faire la totalité de la procédure.

Suivre la procédure de configuration de l'installation pour configurer correctement le champ repositories ainsi que le domaine utilisé.

Si des modifications ont eu lieu dans les fichiers d'installation précédents (e.g. sizing des composants), reporter les modifications dans le platform-provisioner du patch.

Persister la configuration du contrôle d'accès zot

Si des modifications de la configuration zot ont été appliquées sur l'environnement, suivre la procédure de persistance de la configuration du contrôle d'accès zot.

Dans le fichier créé reporter les modifications présentent dans le secret (attention actuellement le nom du secret est zot-registry-config et non kosmos-registry-config).

Installer le patch

Bug interne connu #43117

La release opensearch-dashboards-shared ne gère pas correctement le fait que les iad ne sont pas forcément déployés, or sur un KDL ils ne sont pas déployés.

Editer le fichier helmfile.yaml.gotmpl pour supprimer la ligne - opensearchHosts: http://iad-os-shared.kosmos-system-restricted.svc.cluster.local:9644 dans la release opensearch-dashboards-shared

cd "$WORK_DIR/platform-provisioner"

helmfile -e $ENV -l component!=core,name!=keycloakimporter-init-realm sync

Suivre la procédure d'import des librairies pour importer le fichier offline-package-pip-3-0-10.tar.gz.

Mise à jour de la version 3.3 vers 3.4

Modifier le fichier /etc/bash.bashrc pour que la variable WORK_DIR soit égale à /data/KDL_3.4

Recharger l'environnement avec les commandes suivantes :

source /etc/bash.bashrc
source ~/.bashrc

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • patch_platform-provisioner_3.4.tar.zst
  • patch_platform-provisioner_3.4.tar.zst.sha256
  • offline-package-pip-3-0-7.tar.gz
  • offline-package-pip-3-0-7.tar.gz.sha256
  • offline-package-r-3-0-0.tar.gz
  • offline-package-r-3-0-0.tar.gz.sha256

Préparation

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch_platform-provisioner_3.4.tar.zst lors de la commande hauler store load, et faire la totalité de la procédure.

Suivre la procédure de configuration de l'installation pour configurer correctement le champ repositories ainsi que le domaine utilisé.

Si des modifications ont eu lieu dans les fichiers d'installation précédents (e.g. sizing des composants), reporter les modifications dans le platform-provisioner du patch.

info

Selon l'historique de la plateforme, il est probable que le fichier ./values/lvm-csi/values.yaml doit être mis à jour pour mettre le reclaimPolicy à Retain.

Pré-installation

Mise à jour de Zot

Jouer la procédure mise à jour de l'image Zot pour prise en compte de la nouvelle image Zot livrée dans ce patch (project-zot/zot:v2.1.10).

Installer le patch

cd "$WORK_DIR/platform-provisioner"

# Patcher zot et vérifier son bon redémarrage avant de continuer
helmfile -e kdl -l app=zot sync

# Installation de la mise à jour
helmfile -e kdl -l name=pgadmin4 destroy
helmfile -e kdl -l component!=core sync

Suivre la procédure d'import des librairies pour importer les fichiers offline-package-pip-3-0-7.tar.gz et offline-package-r-3-0-0.tar.gz

Post-installation

Clean UDF supprimée datapipeline-ui

NS=kosmos-sql
primary_pod=$(kubectl -n ${NS} get pod -l role=primary -o name)
kubectl -n ${NS} exec -it ${primary_pod} -c postgres -- bash
psql

Une fois connecté au prompt psql

\c kosmos_back
DELETE FROM udf WHERE id='basic/sink/Terminal SDK Python';
quit

La commande retourne DELETE 1

Mise à jour de la version 3.2 vers 3.3

Pour toutes les commandes des sections suivantes :

  • les variables WORK_DIR, KOSMOS_DOMAIN doivent être définies dans le terminal conformément à la plateforme cible
  • le répertoire WORK_DIR doit exister
  • l'utilisateur utilisé est l'utilisateur sudoers demandé en prérequis

Pour que cela soit fait automatiquement dans tout terminal, lancer les commandes suivantes en modifiant les deux premières lignes conformément à votre plateforme.

export KDL_VERSION="KDL_3.3"
export KOSMOS_DOMAIN=kdl-dev.athea
sudo bash -c "cat >> /etc/bash.bashrc <<EOF

# Répertoire dans lequel les fichiers d installation seront mis
export WORK_DIR=/data/$KDL_VERSION
mkdir -p \"\\\$WORK_DIR\"
# Nom du domaine à utiliser pour les url d accès aux services hébergés par le KDL
export KOSMOS_DOMAIN=$KOSMOS_DOMAIN
EOF"

source /etc/bash.bashrc
source ~/.bashrc

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • apt-PF_noble_20251124-offline.tar.gz
  • apt-PF_noble_20251124-offline.tar.gz.sha256
  • patch_platform-provisioner_3.3.tar.zst
  • patch_platform-provisioner_3.3.tar.zst.sha256
  • offline-package-pip-3-0-6.tar.gz
  • offline-package-pip-3-0-6.tar.gz.sha256

Préparation

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch_platform-provisioner_3.3.tar.zst lors de la commande hauler store load, et faire la totalité de la procédure.

Suivre la procédure de configuration de l'installation pour configurer correctement le champ repositories ainsi que le domaine utilisé.

Si des modifications ont eu lieu dans les fichiers d'installation précédents (e.g. sizing des composants), reporter les modifications dans le platform-provisioner du patch.

Pré-installation

Connexion spray vers kosmos-registry

Sur la VM spray, éditer le fichier /etc/hosts pour modifier la ligne au sujet de kosmos-registry.<DOMAIN>. L'adresse IP ne doit plus être celle du master-1 mais celle du worker-1

Installer le patch

# Installation
cd "$WORK_DIR/platform-provisioner"
kubectl delete cm dcgm-exporter-dashboard -n kosmos-monitoring
helmfile -e kdl -l resources=vector sync --args --take-ownership

helmfile -e kdl sync

# suite à la réinstallation de clickhouse
kubectl rollout restart ds vector -n kosmos-logs
kubectl rollout restart deploy clickhouse-proxy-logs-oidc-proxy -n kosmos-logs

# Relance de Eds et portail
helmfile -e kdl -l app=eds sync
kubectl -n kosmos-system-restricted delete pod -l app.kubernetes.io/instance=eds-back
kubectl -n kosmos-system-restricted delete pod -l app.kubernetes.io/instance=eds-front
kubectl -n kosmos-system-restricted delete pod -l app.kubernetes.io/instance=portal-back
kubectl -n kosmos-system-restricted delete pod -l app.kubernetes.io/instance=portal-front-kosmos
kubectl -n kosmos-portal delete pod -l app.kubernetes.io/instance=portal-front-shared

Suivre la procédure d'installations des paquets Ubuntu pour importer le fichier apt-PF_noble_20251124-offline.tar.gz

Suivre la procédure d'import des librairies pour importer le fichier offline-package-pip-3-0-6.tar.gz

Mise à jour de la version 3.1 vers 3.2

Pour toutes les commandes des sections suivantes :

  • les variables WORK_DIR, KOSMOS_DOMAIN doivent être définies dans le terminal conformément à la plateforme cible
  • le répertoire WORK_DIR doit exister
  • l'utilisateur utilisé est l'utilisateur sudoers demandé en prérequis

Lancer les commandes suivantes pour initialiser le terminal en les modifiant conformément à votre plateforme.

# Répertoire dans lequel les fichiers d'installation seront mis
export WORK_DIR=/data/KDL_3.2
mkdir -p "$WORK_DIR"
# Nom du domaine à utiliser pour les url d'accès aux services hébergés par le KDL
export KOSMOS_DOMAIN=kdl-dev.athea

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • patch_platform-provisioner_3.2.tar.zst
  • patch_platform-provisioner_3.2.tar.zst.sha256
  • patch-gpu-operator-3.2.tar.zst
  • patch-gpu-operator-3.2.tar.zst.sha256

Préparation

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch-gpu-operator-3.2.tar.zst lors de la commande hauler store load, et en s'arrêtant après la commande hauler store copy

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch_platform-provisioner_3.2.tar.zst lors de la commande hauler store load, et faire la totalité de la procédure.

Suivre la procédure de configuration de l'installation pour configurer correctement le champ repositories ainsi que le domaine utilisé.

Si des modifications ont eu lieu dans les fichiers d'installation précédents (e.g. sizing des composants), reporter les modifications dans le platform-provisioner du patch.

Pré-installation

adminapp ne doit pas être un administrateur

Dans Rancher les droits d'administration de adminapp doivent être supprimé :

  • se connecter à rancher grâce au Username/Password stockés dans le secret cattle-system > rancher-admin-oidc
  • cliquer en bas à gauche sur l'icône Users & Authentication
  • cliquer sur Groups
  • sélectionner le groupe adminapp puis Unassign et Delete
  • cliquer sur Assign Global Roles
  • dans Select Member sélectionner adminapp
  • cliquer sur Save
  • vérifier que adminapp n'a plus que le Group Role Names User

Eviter l'exécution des pods sur les noeuds master

Exécuter à partir de la spray la commande suivante pour chaque noeud master

kubectl taint nodes <nom du noeud master> node-role.kubernetes.io/control-plane=:NoSchedule

Puis redémarrer un à un les noeuds master et attendre plusieurs dizaines de minute que le cluster se stabilise. Vérifier que tous les pods fonctionnent après le redémarrage, sinon contacter le support Athea, les pods problématiques ayant probablement un pv.

info

Il est probable que des pods en erreur remontent avec la commande suivante

kubectl get pods -A -o wide | grep topolvm | grep master-1 | grep -v Running

Faire un delete de ces pods

Editer le fichier d'inventaire utilisé durant le déploiement de Kubernetes (/data/KDL_3.0/kube-provisioner/os-provided/inventory_kdl.yaml) et ajouter en dessous de all > vars les lignes suivantes

    # Avoid scheduling on master nodes.
controller_no_schedule: true

Pour obtenir le début de fichier suivant

all:
vars:
# Avoid scheduling on master nodes.
controller_no_schedule: true

Activer Hubble

Editer le fichier d'inventaire utilisé durant le déploiement de Kubernetes (/data/KDL_3.0/kube-provisioner/os-provided/inventory_kdl.yaml) pour remplacer la ligne

    #hubble: "true"

par

    hubble: "true"
#hubble_ui: "false"

Puis, relancer le playbook d'installation de Kubernetes

cd /data/KDL_3.0/kube-provisioner/os-provided
ansible-playbook -i inventory_kdl.yaml kube.yaml

Puis, rollout restart des pod Cilium

kubectl -n kube-system rollout restart ds cilium

Attendre la relance des pods Cilium

kubectl -n kube-system get pod -l app.kubernetes.io/name=cilium-agent

Installation

cd "$WORK_DIR/platform-provisioner"
# Need to reset the job before upgrade to avoid "field is immutable" issue
kubectl -n kosmos-iam delete job keycloak-cluster-readiness-job

# Uninstall previous Nats
helm -n kosmos-collab uninstall nats

# Destroy previous documentation
helmfile -e kdl -l resources=doc destroy

# Then deploy
helmfile -e kdl -l component=core sync
helmfile -e kdl -l component!=core sync
helmfile -e kdl -l component=scan-engine sync

Mise à jour de la version 3.0 vers 3.1

Pour toutes les commandes des sections suivantes :

  • les variables WORK_DIR, KOSMOS_DOMAIN doivent être définies dans le terminal conformément à la plateforme cible
  • le répertoire WORK_DIR doit exister
  • l'utilisateur utilisé est l'utilisateur sudoers demandé en prérequis

Lancer les commandes suivantes pour initialiser le terminal en les modifiant conformément à votre plateforme.

# Répertoire dans lequel les fichiers d'installation seront mis
export WORK_DIR=/data/KDL_3.1
mkdir -p "$WORK_DIR"
# Nom du domaine à utiliser pour les url d'accès aux services hébergés par le KDL
export KOSMOS_DOMAIN=kdl-dev.athea

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • patch_platform-provisioner_3.1.tar.zst
  • patch_platform-provisioner_3.1.tar.zst.sha256
  • offline-package-pip-3-0-4.tar.gz
  • offline-package-pip-3-0-4.tar.gz.sha256

Préparation

Suivre la procédure de chargement des images des conteneurs et du déploiement en chargeant le fichier patch_platform-provisioner_3.1.tar.zst lors de la commande hauler store load.

Suivre la procédure de configuration de l'installation pour configurer correctement le champ repositories ainsi que le domaine utilisé.

Si des modifications ont eu lieu dans les fichiers d'installation précédents (e.g. sizing des composants), reporter les modifications dans le platform-provisioner du patch.

Pré-installation

hive_username=$(kubectl -n kosmos-sql get secret hive-metastore-initpg-secret -ojsonpath='{.data.app_db_user}' | base64 -d)
pg_username=$(kubectl -n kosmos-sql get secret pgcluster-superuser -o jsonpath={'.data.user'} | base64 -d)
pg_password=$(kubectl -n kosmos-sql get secret pgcluster-superuser -o jsonpath={'.data.password'} | base64 -d)

pod=$(kubectl -n kosmos-sql get pod -l role=primary -o name)
kubectl -n kosmos-sql exec -it $pod -c postgres -- bash -c "PGPASSWORD=${pg_password} psql -h localhost -p 5432 -U ${pg_username} -c \"DROP DATABASE metastore WITH (FORCE)\""

cd "$WORK_DIR/platform-provisioner"
helmfile -e kdl -l app=hive-metastore sync

Installation

cd "$WORK_DIR/platform-provisioner"
helmfile -e kdl -l component=doc -l name=datapipeline-ui -l name=scan-ui -l name=gitlab-sync sync

Suivre la procédure d'import des librairies pour importer le fichier offline-package-pip-3-0-4.tar.gz

Mise à jour de la version 2.1.1 vers 3.0

La mise à jour de la version 2.1.1 vers 3.0 n'est pas supportée. Une réinstallation complète est nécessaire.

Mise à jour de la version 2.1.0 vers 2.1.1

Pour toutes les commandes des sections suivantes :

  • les variables WORK_DIR et DOMAIN doivent être définies dans le terminal conformément à la plateforme cible
  • le répertoire WORK_DIR doit exister
  • l'utilisateur utilisé est l'utilisateur sudoers demandé en prérequis
# Répertoire dans lequel les fichiers d'installation seront mis
export WORK_DIR=/data/KDL_2.1.1
mkdir -p "$WORK_DIR"
# Nom du domaine à utiliser pour les url d'accès aux services hébergés par le KDL
export DOMAIN=kdl-dev.athea

Les différents livrables doivent être placés dans le répertoire WORK_DIR sur le noeud kdl-spray-1. Les livrables suivants doivent être disponibles :

  • platform-provisioner_2.1.1.tar.gz
  • platform-provisioner_2.1.1.tar.gz.sha256
  • offline-package-pip-2025-04-28.tar.gz
  • offline-package-pip-2025-04-28.tar.gz.sha256
  • offline-package-npm-2025-05-16.tar.gz
  • offline-package-npm-2025-05-16.tar.gz.sha256

Chargement des images des conteneurs

Lancer les commandes suivantes pour charger l'ensemble des images nécessaire à la mise à jour dans l'oci-registry.

cd "$WORK_DIR"
tar -zxvf platform-provisioner_2.1.1.tar.gz
cd "$WORK_DIR/platform-provisioner"
sudo TMPDIR=/data/podman/tmp ./resources_loader.sh --container-runtime podman -p --registry kosmos-registry.$DOMAIN clickhouse dtu eds gitlab-sync helmfile import-packages kflow tileserver

Mise à jour des Apps dans Kubernetes

"Augmentation du sizing de Gitea"

Entre le KDL 2.1.0 et 2.1.1 Gitea passe de 10Go à 30Go. Avant de lancer la mise à jour il convient de vérifier que suffisamment d'espace est disponible sur le noeud qui héberge Gitea. Pour cela localiser le noeud hébergeant Gitea avec la commande suivante :

kubectl get pods -n kosmos-dev-restricted -l app.kubernetes.io/instance=gitea -o wide

Sur le noeud qui héberge Gitea lancer la commande suivante pour vérifier l'espace disponible sur le volume group kosmosvg0

sudo vgs

Si ce volume est trop faible, demander aux gestionnaires du IaaS d'augmenter la taille du disque utilisé par kosmosvg0. Ce disque a été défini dans l'inventaire inventory_kdl.yaml lors du déploiement de Kubernetes, et peut également être retrouvé avec la commande sudo pvs.

Vérifier avec sudo vgs la bonne mise à jour de la taille du volume group avant de passer aux étapes suivantes

Lancer les commandes suivantes pour lancer la mise à jour des Apps dans Kubernetes

info

Si dans les précédentes versions des modifications ont été faites dans le fichier environments/kdl.yaml (modification de sizing, modification de replicas) il sera nécessaire de répercuter ces modifications dans le nouveau fichier environments/kdl.yaml.

cd "$WORK_DIR/platform-provisioner/release/apps/helmfile"
find ./environments -type f -exec sed -i "s/kosmos.wip/$DOMAIN/g" {} +
kubectl delete jobs.batch -n kosmos-system-restricted eds-setup-metier-kosmos-tool gda-setup-technique-kosmos-tool sap-setup-metier-kosmos-tool sap-setup-technique-kosmos-tool portal-setup-tec-kosmos-tool
kubectl delete jobs.batch -n tenant0-portal gda-setup-metier-kosmos-tool portal-setup-metier-kosmos-tool
helmfile -e kdl sync -l component!=core
kubectl rollout restart sts -n kosmos-logs chi-clickhouse-cluster-tec-cluster-0-0

Pour suivre la progression les commandes suivantes peuvent être utilisées

watch -c "kubectl get pods -A -o wide | grep -v Running | grep -v Completed"
watch -c "helm list -aA | grep -v deployed"

Une fois la mise à jour terminée, supprimer le contournement au bug sur l'authentification oauth2 du KDL 2.1.0 en effectuant les actions suivantes :

  • Se connecter à https://auth.$DOMAIN
  • Sélectionner le realm master
  • Sélectionner Realm settings
  • Supprimer le contenu du champ Frontend URL
  • Cliquer sur Save
  • Faire les mêmes modifications pour le realm technique

Configuration des accès aux IHMs

Si aucun DNS n'est disponible, lancer la commande suivante pour remplir /etc/hosts. Par défaut les url sont renvoyées vers le premier worker. Si un load balancer est disponible utiliser plutôt son IP que celui du premier worker

FIRST_WORKER_IP=$(kubectl get nodes --selector='!node-role.kubernetes.io/control-plane' -o jsonpath="{.items[0].status.addresses[?(@.type=='InternalIP')].address}")
for host in $(kubectl get ingress -A -o custom-columns="HOSTS:.spec.rules[*].host" --no-headers | sort -u); do
if ! grep -q " $host" /etc/hosts; then
echo "$FIRST_WORKER_IP $host" | sudo tee -a /etc/hosts
echo "Ajouté : $FIRST_WORKER_IP $host"
else
echo "Déjà présent : $host"
fi
done

Si un DNS est disponible, définir des entrées pour les url retournées par la commande suivante

kubectl get ingress -A -o custom-columns="HOSTS:.spec.rules[*].host" --no-headers  | sort -u

Import des librairies

Lancer les commandes suivantes pour :

  • créer un API token pour Gitea
  • charger les librairies dans le pod de chargement des librairies
  • lancer dans le pod les commandes de chargement des librairies
cd "$WORK_DIR"

# Get Gitea credentials
GITEA_ADMIN_USER=$(kubectl -n kosmos-dev-restricted get secret gitea-admin-secret -o jsonpath="{.data.username}" | base64 -d; echo)
GITEA_ADMIN_PASSWORD=$(kubectl -n kosmos-dev-restricted get secret gitea-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo)

# Generate API Token
GITEA_TOKEN_NAME="package-import"
API_URL="https://gitea.$DOMAIN/api/v1/users/$GITEA_ADMIN_USER/tokens"
CREDS="$GITEA_ADMIN_USER:$GITEA_ADMIN_PASSWORD"
BODY='{"name":"'"$GITEA_TOKEN_NAME"'","scopes":["read:package","write:package"]}'
curl -k -X DELETE -u "$CREDS" "$API_URL/$GITEA_TOKEN_NAME" > /dev/null 2>&1
response=$(curl -k -s -X POST "$API_URL" -u "$CREDS" -H "Content-Type: application/json" -d "$BODY")
GITEA_ADMIN_TOKEN=$(echo "$response" | jq -r .sha1)

# Copy python libraries to import pod
kubectl cp offline-package-pip-2025-04-28.tar.gz -n kosmos-dev-restricted $(kubectl get pods -n kosmos-dev-restricted -l app.kubernetes.io/instance=import-packages -o jsonpath='{.items[0].metadata.name}'):/tmp

# Upload python libraries into Gitea
kubectl exec -n kosmos-dev-restricted -it $(kubectl get pods -n kosmos-dev-restricted -l app.kubernetes.io/instance=import-packages -o jsonpath='{.items[0].metadata.name}') -- bash -c "./package-import-offline-pip.sh -r gitea-http.kosmos-dev-restricted.svc.cluster.local:3000 -t athea -u $GITEA_ADMIN_USER -p $GITEA_ADMIN_PASSWORD /tmp/offline-package-pip-2025-04-28.tar.gz"

# Copy npm libraries to import pod
kubectl cp offline-package-npm-2025-05-16.tar.gz -n kosmos-dev-restricted $(kubectl get pods -n kosmos-dev-restricted -l app.kubernetes.io/instance=import-packages -o jsonpath='{.items[0].metadata.name}'):/tmp

# Upload npm libraries into Gitea
kubectl exec -n kosmos-dev-restricted -it $(kubectl get pods -n kosmos-dev-restricted -l app.kubernetes.io/instance=import-packages -o jsonpath='{.items[0].metadata.name}') -- bash -c "./package-import-offline-npm.sh -r gitea-http.kosmos-dev-restricted.svc.cluster.local:3000 -t athea --token $GITEA_ADMIN_TOKEN /tmp/offline-package-npm-2025-05-16.tar.gz"

Import des sample git

Lancer les commandes suivantes pour charger dans gitlab les samples de code.

cd "$WORK_DIR/platform-provisioner/release/apps/helmfile"
./bin/repos.sh push --host https://gitlab.$DOMAIN --token $(kubectl get secret -n kosmos-dev gitlab-root-api-token-secret -o jsonpath="{.data.root-api-token}" | base64 -d ; echo) ./etc/repos.list