Update
Mise à jour de la version 3.5 vers 3.6
Modifier le fichier /etc/bash.bashrc :
- pour que la variable
WORK_DIRsoit égale à/data/KDL_3.6 - pour ajouter sous le
export KOSMOS_DOMAIN=<domain>les lignes suivantes pour ajouter la variableKOSMOS_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 variableKOSMOS_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_DIRsoit égale à/data/KDL_3.5 - pour ajouter sous le
export KOSMOS_DOMAINles 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"
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
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.
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_DOMAINdoivent être définies dans le terminal conformément à la plateforme cible - le répertoire
WORK_DIRdoit 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_DOMAINdoivent être définies dans le terminal conformément à la plateforme cible - le répertoire
WORK_DIRdoit 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
adminapppuisUnassignetDelete - cliquer sur
Assign Global Roles - dans
Select Membersélectionneradminapp - cliquer sur
Save - vérifier que
adminappn'a plus que leGroup Role NamesUser
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.
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_DOMAINdoivent être définies dans le terminal conformément à la plateforme cible - le répertoire
WORK_DIRdoit 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_DIRetDOMAINdoivent être définies dans le terminal conformément à la plateforme cible - le répertoire
WORK_DIRdoit 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
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
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