{"id":106167,"date":"2022-12-28T11:28:33","date_gmt":"2022-12-28T09:28:33","guid":{"rendered":"https:\/\/jfrog.com\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/"},"modified":"2022-12-28T11:28:33","modified_gmt":"2022-12-28T09:28:33","slug":"migrate-nginx-from-stable-helm-charts-with-chartcenter","status":"publish","type":"post","link":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/","title":{"rendered":"Migrer NGINX \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb charts Helm avec ChartCenter"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-63190\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17165604\/863_300.jpg\" alt=\"\" width=\"863\" height=\"300\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17165604\/863_300.jpg?speedsize=w_863 863w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17165604\/863_300.jpg?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17165604\/863_300.jpg?speedsize=w_768 768w\" sizes=\"(max-width: 863px) 100vw, 863px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p><strong>MISE \u00c0 JOUR\u00a0: depuis le 1er\u00a0mai 2021, le d\u00e9p\u00f4t central ChartCenter a \u00e9t\u00e9 mis hors service et toutes les fonctionnalit\u00e9s sont obsol\u00e8tes. Pour en savoir plus sur la mise hors service des centres, lisez <a class=\"in-cell-link\" href=\"https:\/\/jfrog.com\/blog\/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter\/\" target=\"_blank\" rel=\"noopener noreferrer\">l\u2019article de blog sur la d\u00e9pr\u00e9ciation des centres<\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Au cours des quatre derni\u00e8res ann\u00e9es, quiconque souhaitait d\u00e9ployer le contr\u00f4leur Ingress NGINX pour Kubernetes trouvait son chart Helm officiel. <code>nginx-ingress<\/code> dans le d\u00e9p\u00f4t <code>stable<\/code> g\u00e9r\u00e9 par le projet Helm.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Cette \u00e9poque est r\u00e9volue. Et pas seulement pour NGINX, le contr\u00f4leur Ingress le plus populaire utilis\u00e9 comme proxy inverse et \u00e9quilibreur de charge, mais pour toutes les applications K8s open source.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Avec l\u2019av\u00e8nement de Helm\u00a03, <\/span><a href=\"https:\/\/github.com\/helm\/charts\/blob\/master\/README.md\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">le projet Helm d\u00e9pr\u00e9cie les d\u00e9p\u00f4ts <code>stable<\/code> <\/span><\/a><span style=\"font-weight: 400\"> \u00c0 partir de novembre 2019, aucun nouveau chart ne devait \u00eatre accept\u00e9 dans <code>stable<\/code> car les propri\u00e9taires de charts effectuent une transition vers des d\u00e9p\u00f4ts individuels. Cette p\u00e9riode de transition est maintenant termin\u00e9e, les d\u00e9p\u00f4ts &#8212; <code>stable<\/code> ont \u00e9t\u00e9 retir\u00e9s de la liste de Helm Hub, et seront officiellement obsol\u00e8tes en novembre prochain.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Qu\u2019est-ce que cela signifie pour les installateurs et les responsables des d\u00e9ploiements NGINX\u00a0? Pour commencer, le projet NGINX maintient d\u00e9sormais un <\/span><a href=\"https:\/\/kubernetes.github.io\/ingress-nginx\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">nouveau chart <code>ingress-nginx<\/code> Helm<\/span><\/a><span style=\"font-weight: 400\"> dans les d\u00e9p\u00f4ts GitHub pour Kubernetes. Toute personne qui installe ou met \u00e0 jour un d\u00e9ploiement de NGINX Ingress Controller doit d\u00e9sormais utiliser le chart de ce d\u00e9p\u00f4t.<\/span><\/p>\n<p><span style=\"font-weight: 400\">M\u00eame si le nouveau chart d\u00e9ploie actuellement la m\u00eame version de l\u2019application NGINX, il n\u2019est pas identique au chart dans <code>stable.<\/code>. Cela n\u00e9cessite quelques ajustements lors de la mise \u00e0 jour d\u2019une installation NGINX en place avec l nouveau chart.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Voyons ce que cela implique, et comment JFrog ChartCenter peut vous aider \u00e0 la transition.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Un d\u00e9p\u00f4t central\u00a0Helm<\/span><\/h2>\n<p><span style=\"font-weight: 400\">L\u2019ensemble <code>stable<\/code> de charts Helm signifiait que les charts officiels de nombreuses applications Kubernetes populaires pouvaient toujours \u00eatre trouv\u00e9s dans un d\u00e9p\u00f4t central. Il suffisait d\u2019ajouter le d\u00e9p\u00f4t <code>stable<\/code> au client Helm\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">helm repo add stable https:\/\/kubernetes-charts.storage.googleapis.com\/<\/span><\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">\u00c0 partir de ce d\u00e9p\u00f4t <code>stable<\/code> unique, vous pouviez d\u00e9ployer en toute confiance <code>nginx-ingress<\/code> en utilisant le dernier chart Helm approuv\u00e9 par l\u2019auteur.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Comme le d\u00e9p\u00f4t <code>stable<\/code> est pratiquement obsol\u00e8te, il n\u2019est plus disponible en tant que source unique pour les charts Helm connus. NGINX vous demande maintenant d\u2019ajouter <code>ingress-nginx<\/code> individuellement au client Helm\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">helm repo add ingress-nginx https:\/\/kubernetes.github.io\/ingress-nginx<\/span><\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Sans un d\u00e9p\u00f4t central, vous devez ex\u00e9cuter un <code>helm repo add<\/code> distinct chaque fois que vous devez mettre \u00e0 jour une application K8s diff\u00e9rente.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Existe-t-il un meilleur moyen\u00a0?<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Ingress NGINX Controller dans ChartCenter<\/span><\/h3>\n<p><span style=\"font-weight: 400\">JFrog ChartCenter est un d\u00e9p\u00f4t central gratuit <\/span><span style=\"font-weight: 400\">de charts Helm<\/span><span style=\"font-weight: 400\"> qui a \u00e9t\u00e9 con\u00e7u pour aider la communaut\u00e9 Helm \u00e0 trouver des charts immuables, s\u00e9curis\u00e9s et fiables, et \u00e0 disposer d\u2019une m\u00eame analyse pour proxyer tous les charts \u00e0 partir d\u2019un seul emplacement. Il peut \u00eatre utilis\u00e9 comme un <a href=\"https:\/\/jfrog.com\/integration\/helm-repository\/\">d\u00e9p\u00f4t Helm central<\/a> \u00e0 partir du client Helm, ce qui vous \u00e9vite d\u2019ajouter de nombreux d\u00e9p\u00f4ts Helm publics, mais vous permet d\u2019en utiliser un seul.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Gr\u00e2ce \u00e0 ChartCenter, plus de 30\u00a0000 charts Helm versionn\u00e9s sont disponibles, et de nombreux charts d\u2019applications populaires\u00a0\u2013\u00a0y compris pour le contr\u00f4leur NGINX Ingress\u00a0\u2013\u00a0sont pr\u00e9sent\u00e9s sur sa page d\u2019accueil afin que vous puissiez les localiser facilement.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-63193\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170154\/CC-NGINX-01-1024x461.png\" alt=\"\" width=\"1024\" height=\"461\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170154\/CC-NGINX-01.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170154\/CC-NGINX-01.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170154\/CC-NGINX-01.png?speedsize=w_768 768w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170154\/CC-NGINX-01.png?speedsize=w_1354 1354w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Gr\u00e2ce \u00e0 la recherche de ChartCenter, nous pouvons trouver le chart <code>stable<\/code> <\/span><span style=\"font-weight: 400\"> <code>nginx-ingress<\/code><\/span><span style=\"font-weight: 400\">:<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-63194\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170250\/CC-NGINX-02-1024x420.png\" alt=\"\" width=\"1024\" height=\"420\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170250\/CC-NGINX-02.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170250\/CC-NGINX-02.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170250\/CC-NGINX-02.png?speedsize=w_768 768w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170250\/CC-NGINX-02.png?speedsize=w_1296 1296w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p><span style=\"font-weight: 400\">Nous pouvons \u00e9galement localiser le chart actuel<\/span><code>ingress-nginx<\/code><span style=\"font-weight: 400\">dans ChartCenter\u00a0:<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-63195\" src=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170419\/CC-NGINX-03-1024x431.png\" alt=\"\" width=\"1024\" height=\"431\" srcset=\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170419\/CC-NGINX-03.png?speedsize=w_1024 1024w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170419\/CC-NGINX-03.png?speedsize=w_300 300w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170419\/CC-NGINX-03.png?speedsize=w_768 768w, https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17170419\/CC-NGINX-03.png?speedsize=w_1293 1293w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3><span style=\"font-weight: 400\">Utilisation de ChartCenter<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Une fois que nous avons ajout\u00e9 ChartCenter \u00e0 notre client Helm, nous pouvons l\u2019utiliser comme d\u00e9p\u00f4t central pour tous nos charts Helm, y compris les deux d\u00e9p\u00f4ts NGINX que nous utiliserons dans notre d\u00e9monstration.<\/span><\/p>\n<h4><span style=\"font-weight: 400\">\u00c9tape\u00a01\u00a0: Ajouter ChartCenter en tant que d\u00e9p\u00f4t Helm<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Configurez votre client Helm pour qu\u2019il utilise le d\u00e9p\u00f4t ChartCenter comme emplacement central unique pour consommer les charts \u00e0 partir de\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">helm repo add center https:\/\/repo.chartcenter.io<\/span>\n$ <span style=\"color: #40be46\">helm repo update<\/span><\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h4><span style=\"font-weight: 400\">\u00c9tape\u00a02\u00a0: Utilisation de ChartCenter en tant que d\u00e9p\u00f4t<\/span><\/h4>\n<p><span style=\"font-weight: 400\">Maintenant, v\u00e9rifions les charts <code>nginx-ingress<\/code> et <code>ingress-nginx<\/code> \u00e0 partir du client helm\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">helm search repo center\/stable\/nginx-ingress<\/span>\nNOM                       \tVERSION DU CHART\tVERSION DE L\u2019APP\tDESCRIPTION\ncenter\/stable\/nginx-ingress\t1.41.2       \tv0.34.1    \tUn nginx Ingress controller qui utilise ConfigMap...\n \n$ <span style=\"color: #40be46\">helm search repo center\/kubernetes-ingress-nginx\/ingress-nginx<\/span>\nNOM                                         \tVERSION DU CHART\tVERSION DE L\u2019APP\tDESCRIPTION\ncenter\/kubernetes-ingress-nginx\/ingress-nginx\t2.11.2       \t0.34.1     \tIngress controller pour Kubernetes \u00e0 l\u2019aide de NGINX a...<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Bien, nous voyons la m\u00eame version de charts que dans ChartCenter UI.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Et ici, vous pouvez voir \u00e0 quel point il est plus facile d\u2019utiliser un d\u00e9p\u00f4t Helm central pour des charts provenant de diff\u00e9rents d\u00e9p\u00f4ts Helm.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Installation du chart nginx-ingress Helm<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Pour tester d\u2019abord la mise \u00e0 niveau, nous devons installer un d\u00e9p\u00f4t <code>nginx-ingress<\/code> . Je vais utiliser un petit script shell <code>nginx-ingress.sh<\/code> qui cr\u00e9e un fichier de valeurs de remplacement, et installe ensuite <code>nginx-ingress<\/code>.<\/span><\/p>\n<p><span style=\"font-weight: 400\"> <code>nginx-ingress.sh<\/code> a un nom et une version de chart, et une IP statique pour l\u2019\u00e9quilibreur de charge\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">#!\/bin\/bash\n \nNOM_CHART = &quot;center\/stable\/nginx-ingress&quot;\nVERSION_CHART\u00a0=\u00a0&quot;1.41.2&quot;\nVERSION = nginx-ingress\nESPACE DE NOMS\u00a0= nginx-ingress\nFICHER_VALEURS = nginx-ingress.yaml\nIP_STATIQUE_LB = 35.197.192.35\n \ngenerateValues() {\n   cat &lt;&lt; EOF &gt; &quot;${VALUES_FILE}&quot;\n# Valeurs de remplacement pour nginx-ingress\n \ncontr\u00f4leur\u00a0:\n \n ## Utiliser les ports h\u00f4tes 80 et 443\n daemonset\u00a0:\n   utiliser le port de l\u2019h\u00f4te\u00a0: vrai\n \n type\u00a0: DaemonSet\n \n service\u00a0:\n \n   ## D\u00e9finir l\u2019adresse IP statique pour LoadBalancer\n   IP \u00e9quilibreur de charge\u00a0: ${LB_STATIC_IP}\n \n   Politique de trafic externe\u00a0: locale\n \n stats\u00a0:\n   activ\u00e9es\u00a0: vrai\n \n mesures\u00a0:\n   activ\u00e9es\u00a0: vrai\nFin de fichier\n}\n \ng\u00e9n\u00e8re des valeurs\nkubectl create ns nginx-ingress || true\n\u00e9cho\nhelm upgrade --install ${RELEASE} -n ${NAMESPACE} ${CHART_NAME} --version ${CHART_VERSION} -f ${VALUES_FILE}\n\u00e9cho\nkubectl -n ${NAMESPACE} get all<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Ex\u00e9cutons <code>nginx-ingress.sh<\/code> pour installer <code>nginx-ingress<\/code>:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">.\/nginx-ingress.sh<\/span>\nnamespace\/nginx-ingress created\n \nLa version \u00ab\u00a0nginx-ingress\u00a0\u00bb n\u2019existe pas. Installez-la maintenant.\nNOM\u00a0: nginx-ingress\nDERNIER D\u00c9PLOIEMENT\u00a0: Lun\u00a010\u00a0ao\u00fbt 17:27:13 2020\nESPACE DE NOMS\u00a0: nginx-ingress\n\u00c9TAT\u00a0: d\u00e9ploy\u00e9\nR\u00c9VISION\u00a0: 1\nSUITE DE TESTS\u00a0: aucune\nREMARQUES\u00a0:\nLe contr\u00f4leur nginx-ingress a \u00e9t\u00e9 install\u00e9.\nLa disponibilit\u00e9 de l\u2019adresse IP LoadBalancer peut prendre quelques minutes.\nVous pouvez v\u00e9rifier l\u2019\u00e9tat en ex\u00e9cutant \u00ab\u00a0kubectl --namespace nginx-ingress get services -o wide -w nginx-ingress-controller\u00a0\u00bb\n \nUn exemple d\u2019Ingress qui utilise le contr\u00f4leur\u00a0:\n \n  Version d\u2019API\u00a0: extensions\/v1beta1\n  type\u00a0: Ingress\n  m\u00e9tadonn\u00e9es\u00a0:\n    annotations\u00a0:\n      kubernetes.io\/ingress.class\u00a0: nginx\n    nom\u00a0: exemple\n    espace de noms\u00a0: foo\n  sp\u00e9c\u00a0:\n    r\u00e8gle\u00a0:\n      - h\u00f4te\u00a0: www.example.com\n        http\u00a0:\n          chemins\u00a0:\n            - backend\u00a0:\n                nom de service\u00a0: exampleService\n                port de service\u00a0: 80\n              chemin\u00a0: \/\n    # Cette section n\u2019est requise que si TLS doit \u00eatre activ\u00e9 pour Ingress\n    tls\u00a0:\n        - h\u00f4tes\u00a0:\n            - www.example.com\n          nom secret\u00a0: exemple-tls\n \nSi TLS est activ\u00e9 pour Ingress, un secret contenant le certificat et la cl\u00e9 doit \u00e9galement \u00eatre fourni\u00a0:\n \n  Version d\u2019API\u00a0: v1\n  type\u00a0: secret\n  m\u00e9tadonn\u00e9es\u00a0:\n    nom\u00a0: exemple-tls\n    espace de noms\u00a0: foo\n  donn\u00e9es\u00a0:\n    cert tls\u00a0: \n    cl\u00e9 tls\u00a0: \n  type\u00a0: kubernetes.io\/tls\n \nNOM                                                 PR\u00caT   \u00c9TAT              RED\u00c9MARRAGES   ANT\u00c9RIORIT\u00c9\npod\/nginx-ingress-controller-rrsl9                   0\/1     ContainerCreating   0          1\u00a0s\npod\/nginx-ingress-default-backend-5b967cf596-wrrfl   0\/1     ContainerCreating   0          1\u00a0s\n \nNOM                                      TYPE           IP-CLUSTER      IP-EXTERNE   PORT(S)                      ANT\u00c9RIORIT\u00c9\nservice\/nginx-ingress-controller           LoadBalancer   10.242.2.213         80:30643\/TCP,443:31622\/TCP   2\u00a0s\nservice\/nginx-ingress-controller-metrics   IP Cluster      10.242.10.112           9913\/TCP                     2\u00a0s\nservice\/nginx-ingress-default-backend      IP Cluster      10.242.11.172           80\/TCP                       2\u00a0s\n \nNOM                                      SOUHAIT\u00c9   ACTUEL   PR\u00caT   \u00c0 JOUR  DISPONIBLE   S\u00c9LECTEUR DE N\u0152UDS   ANT\u00c9RIORIT\u00c9\ndaemonset.apps\/nginx-ingress-controller   1         1         0       1            0                     3\u00a0s\n \nNOM                                            PR\u00caT   \u00c0 JOUR   DISPONIBLE   ANT\u00c9RIORIT\u00c9\ndeployment.apps\/nginx-ingress-default-backend   0\/1     1            0           2\u00a0s\n \nNOM                                                       SOUHAIT\u00c9   ACTUEL    PR\u00caT   ANT\u00c9RIORIT\u00c9\nreplicaset.apps\/nginx-ingress-default-backend-5b967cf596   1         1         0       2\u00a0s<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Et v\u00e9rifions les pods et le service\u00a0:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">kubectl -n nginx-ingress get pods<\/span>\nNOM                                             PR\u00caT   \u00c9TAT   RED\u00c9MARRAGES   ANT\u00c9RIORIT\u00c9\nnginx-ingress-controller-rrsl9                   1\/1     Ex\u00e9cution   0          78\u00a0s\nnginx-ingress-default-backend-5b967cf596-wrrfl   1\/1     Ex\u00e9cution   0          78\u00a0s\n \n$ <span style=\"color: #40be46\">kubectl -n nginx-ingress get svc<\/span>\nNOM                               TYPE           IP-CLUSTER      IP-EXTERNE     PORT(S)                      ANT\u00c9RIORIT\u00c9\nnginx-ingress-controller           LoadBalancer   10.242.2.213    35.197.192.35   80:30643\/TCP,443:31622\/TCP   89\u00a0s\nnginx-ingress-controller-metrics   IP Cluster      10.242.10.112             9913\/TCP                     89\u00a0s\nnginx-ingress-default-backend      IP Cluster      10.242.11.172             80\/TCP                       89\u00a0s<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Bien, le pod NGINX Ingress Controller est en place, et son service s\u2019est vu attribuer une IP externe par l\u2019\u00e9quilibreur de charge.<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\">Ok, nous avons r\u00e9ussi \u00e0 installer le chart <code>nginx-ingress<\/code> passons \u00e0 sa mise \u00e0 jour.\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Mise \u00e0 niveau vers le chart ingress-nginx Helm<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Essayons de mettre \u00e0 niveau NGINX Ingress Controller en utilisant le chart le plus actuel.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Encore une fois, nous allons utiliser un script shell cette fois avec le nom diff\u00e9rent <code>ingress-nginx.sh<\/code>.<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"> <code>ingress-nginx.sh<\/code> a un nom et une version de chart diff\u00e9rents, ainsi que le m\u00eame nom de version Helm et la m\u00eame adresse IP statique pour l\u2019\u00e9quilibreur de charge.<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">#!\/bin\/bash\n \nNOM_CHART = &quot;center\/kubernetes-ingress-nginx\/ingress-nginx&quot;\nVERSION_CHART\u00a0=\u00a0&quot;2.11.1&quot;\nVERSION = nginx-ingress\nESPACE DE NOMS\u00a0= nginx-ingress\nFICHER_VALEURS = ingress-nginx.yaml\nIP_STATIQUE_LB = 35.197.192.35\n \ngenerateValues() {\n   cat &lt;&lt; EOF &gt; &quot;${VALUES_FILE}&quot;\n# Valeurs de remplacement pour ingress-nginx\n \ncontr\u00f4leur\u00a0:\n \n ## Utiliser les ports h\u00f4tes 80 et 443\n port de l\u2019h\u00f4te\u00a0:\n   activ\u00e9es\u00a0: vrai\n \n type\u00a0: DaemonSet\n \n service\u00a0:\n \n   ## D\u00e9finir l\u2019adresse IP statique pour LoadBalancer\n   IP \u00e9quilibreur de charge\u00a0: ${LB_STATIC_IP}\n \n   Politique de trafic externe\u00a0: locale\n \n stats\u00a0:\n   activ\u00e9es\u00a0: vrai\n \n mesures\u00a0:\n   activ\u00e9es\u00a0: vrai\n \n admissionWebhooks\u00a0:\n   activ\u00e9e\u00a0: faux\n \ndefaultBackend\u00a0:\n activ\u00e9\u00a0: vrai\nFin de fichier\n}\n \ng\u00e9n\u00e8re des valeurs\n\u00e9cho\nhelm upgrade --install ${RELEASE} -n ${NAMESPACE} ${CHART_NAME} --version ${CHART_VERSION} -f ${VALUES_FILE}\n\u00e9cho\nkubectl -n ${NAMESPACE} get all<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\"> <code>ingress-nginx.sh<\/code> pr\u00e9sente quelques diff\u00e9rences par rapport \u00e0 <code>nginx-ingress.sh<\/code>:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">contr\u00f4leur\u00a0:\n \n ## Utiliser les ports h\u00f4tes 80 et 443\n daemonset\u00a0:\n   utiliser le port de l\u2019h\u00f4te\u00a0: vrai<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">comme certaines valeurs ont \u00e9t\u00e9 modifi\u00e9es \u00e0\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">contr\u00f4leur\u00a0:\n \n ## Utiliser les ports h\u00f4tes 80 et 443\n port de l\u2019h\u00f4te\u00a0:\n   activ\u00e9\u00a0: vrai\n \n type\u00a0: DaemonSet<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">et d\u2019autres ont \u00e9t\u00e9 ajout\u00e9es\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">admissionWebhooks\u00a0:\n   activ\u00e9\u00a0: faux\n \ndefaultBackend\u00a0:\n  activ\u00e9\u00a0: vrai<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Dans ce sc\u00e9nario de mise \u00e0 niveau, nous n\u2019utilisons pas <code>admissionWebhooks<\/code> donc nous le d\u00e9sactivons, et nous activons <code>defaultBackend<\/code> comme dans le chart <code>nginx-ingress<\/code> il est activ\u00e9 par d\u00e9faut. Et bien s\u00fbr, vous pouvez modifier les valeurs en fonction de vos besoins.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ex\u00e9cutons <code>ingress-nginx.sh<\/code> pour mettre \u00e0 niveau <code>nginx-ingress<\/code>:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">La version \u00ab\u00a0nginx-ingress\u00a0\u00bb a \u00e9t\u00e9 mise \u00e0 niveau. Bonne chance\u00a0!\nNOM\u00a0: nginx-ingress\nDERNIER D\u00c9PLOIEMENT\u00a0: Lun\u00a010\u00a0ao\u00fbt 18:00:31 2020\nESPACE DE NOMS\u00a0: nginx-ingress\n\u00c9TAT\u00a0: d\u00e9ploy\u00e9\nR\u00c9VISION\u00a0: 2\nSUITE DE TESTS\u00a0: aucune\nREMARQUES\u00a0:\nLe contr\u00f4leur ingress-nginx a \u00e9t\u00e9 install\u00e9.\nLa disponibilit\u00e9 de l\u2019adresse IP LoadBalancer peut prendre quelques minutes.\nVous pouvez v\u00e9rifier l\u2019\u00e9tat en ex\u00e9cutant \u00ab\u00a0kubectl --namespace nginx-ingress get services -o wide -w nginx-ingress-ingress-nginx-controller\u00a0\u00bb\n \nUn exemple d\u2019Ingress qui utilise le contr\u00f4leur\u00a0:\n \n  Version d\u2019API\u00a0: networking.k8s.io\/v1beta1\n  type\u00a0: Ingress\n  m\u00e9tadonn\u00e9es\u00a0:\n    annotations\u00a0:\n      kubernetes.io\/ingress.class\u00a0: nginx\n    nom\u00a0: exemple\n    espace de noms\u00a0: foo\n  sp\u00e9c\u00a0:\n    r\u00e8gle\u00a0:\n      - h\u00f4te\u00a0: www.example.com\n        http\u00a0:\n          chemins\u00a0:\n            - backend\u00a0:\n                nom de service\u00a0: exampleService\n                port de service\u00a0: 80\n              chemin\u00a0: \/\n    # Cette section n\u2019est requise que si TLS doit \u00eatre activ\u00e9 pour Ingress\n    tls\u00a0:\n        - h\u00f4tes\u00a0:\n            - www.example.com\n          nom secret\u00a0: exemple-tls\n \nSi TLS est activ\u00e9 pour Ingress, un secret contenant le certificat et la cl\u00e9 doit \u00e9galement \u00eatre fourni\u00a0:\n \n  Version d\u2019API\u00a0: v1\n  type\u00a0: secret\n  m\u00e9tadonn\u00e9es\u00a0:\n    nom\u00a0: exemple-tls\n    espace de noms\u00a0: foo\n  donn\u00e9es\u00a0:\n    cert tls\u00a0: \n    cl\u00e9 tls\u00a0: \n  type\u00a0: kubernetes.io\/tls\n \nNOM                                                              PR\u00caT   \u00c9TAT        RED\u00c9MARRAGES   ANT\u00c9RIORIT\u00c9\npod\/nginx-ingress-controller-rrsl9                                1\/1     Fin d\u2019ex\u00e9cution   0          33\u00a0m\npod\/nginx-ingress-default-backend-5b967cf596-wrrfl                0\/1     Fin d\u2019ex\u00e9cution   0          33\u00a0m\npod\/nginx-ingress-ingress-nginx-controller-f9ztr                  0\/1     En attente       0          5\u00a0s\npod\/nginx-ingress-ingress-nginx-defaultbackend-845f7cfd46-56grw   1\/1     Ex\u00e9cution       0          5\u00a0s\n \nNOM                                                     TYPE           IP-CLUSTER      IP-EXTERNE     PORT(S)                      ANT\u00c9RIORIT\u00c9\nservice\/nginx-ingress-controller                         LoadBalancer   10.242.2.213    35.197.192.35   80:30643\/TCP,443:31622\/TCP   33m\nservice\/nginx-ingress-ingress-nginx-controller           LoadBalancer   10.242.13.184          80:30601\/TCP,443:30644\/TCP   6\u00a0s\nservice\/nginx-ingress-ingress-nginx-controller-metrics   IP Cluster      10.242.12.190             9913\/TCP                     6\u00a0s\nservice\/nginx-ingress-ingress-nginx-defaultbackend       IP Cluster      10.242.11.112             80\/TCP                       5\u00a0s\n \nNOM                                                    SOUHAIT\u00c9   ACTUEL   PR\u00caT   \u00c0 JOUR  DISPONIBLE   S\u00c9LECTEUR DE N\u0152UDS   ANT\u00c9RIORIT\u00c9\ndaemonset.apps\/nginx-ingress-ingress-nginx-controller   1         1         0       1            0                     6\u00a0s\n \nNOM                                                         PR\u00caT   \u00c0 JOUR   DISPONIBLE   ANT\u00c9RIORIT\u00c9\ndeployment.apps\/nginx-ingress-ingress-nginx-defaultbackend   1\/1     1            1           6\u00a0s\n \nNOM                                                                    SOUHAIT\u00c9   ACTUEL    PR\u00caT   ANT\u00c9RIORIT\u00c9\nreplicaset.apps\/nginx-ingress-ingress-nginx-defaultbackend-845f7cfd46   1         1         1       6\u00a0s<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Maintenant, v\u00e9rifions les pods et le service\u00a0:<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">kubectl -n nginx-ingress get pods<\/span>\nNOM                                                          PR\u00caT   \u00c9TAT   RED\u00c9MARRAGES   ANT\u00c9RIORIT\u00c9\nnginx-ingress-ingress-nginx-controller-f9ztr                  0\/1     Ex\u00e9cution   0          34\u00a0s\nnginx-ingress-ingress-nginx-defaultbackend-845f7cfd46-56grw   1\/1     Ex\u00e9cution   0          34\u00a0s\n\n$ <span style=\"color: #40be46\">kubectl -n nginx-ingress get svc<\/span>\nNOM                                             TYPE           IP-CLUSTER      IP-EXTERNE     PORT(S)                      ANT\u00c9RIORIT\u00c9\nnginx-ingress-controller                         LoadBalancer   10.242.2.213    35.197.192.35   80:30643\/TCP,443:31622\/TCP   34m\nnginx-ingress-ingress-nginx-controller           LoadBalancer   10.242.13.184          80:30601\/TCP,443:30644\/TCP   40\u00a0s\nnginx-ingress-ingress-nginx-controller-metrics   IP Cluster      10.242.12.190             9913\/TCP                     40\u00a0s\nnginx-ingress-ingress-nginx-defaultbackend       IP Cluster      10.242.11.112             80\/TCP                       39\u00a0s<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Vous voyez ici que les pods sont mis \u00e0 jour et nous voyons deux services, un ancien et un nouveau.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Ex\u00e9cutons <code>kubectl -n nginx-ingress get svc<\/code> encore\u00a0:<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><\/p>\n<div style=\"background: #272b33;overflow: auto;width: auto;border: solid gray;border-width: .1em .1em .1em .8em;padding: .2em .6em\">\n<pre style=\"margin: 0;line-height: 125%\"><span style=\"color: #999999\">$ <span style=\"color: #40be46\">kubectl -n nginx-ingress get svc<\/span>\nNOM                                             TYPE           IP-CLUSTER      IP-EXTERNE     PORT(S)                      ANT\u00c9RIORIT\u00c9\nnginx-ingress-ingress-nginx-controller           LoadBalancer   10.242.13.184   35.197.192.35   80:30601\/TCP,443:30644\/TCP   3m26\u00a0s\nnginx-ingress-ingress-nginx-controller-metrics   IP Cluster      10.242.12.190             9913\/TCP                     3\u00a0m\u00a026\u00a0s\nnginx-ingress-ingress-nginx-defaultbackend       IP Cluster      10.242.11.112             80\/TCP                       3\u00a0m\u00a025\u00a0s<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\"><em>Voila<\/em>, l\u2019ancien service a \u00e9t\u00e9 supprim\u00e9 et le nouveau cr\u00e9\u00e9 juste en ex\u00e9cutant <code>helm upgrade<\/code> et sans utiliser d\u2019autre magie avec kubectl. Bien entendu, le remplacement du service entra\u00eene une certaine indisponibilit\u00e9, car le nouvel \u00e9quilibreur de charge doit \u00eatre cr\u00e9\u00e9 pour le nouveau service.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Merci, et bonne chance<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Assez facile, non\u00a0? Un grand merci aux responsables du chart NGINX Ingress Controller pour une mise \u00e0 jour aussi transparente entre deux charts diff\u00e9rents\u00a0!<\/span><\/p>\n<p><span style=\"font-weight: 400\">Avec un peu de chance, la transition vers des d\u00e9p\u00f4ts de cartes individuels pour vos autres applications K8s se fera \u00e9galement en douceur. L\u2019utilisation de <\/span><a href=\"https:\/\/chartcenter.io\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"font-weight: 400\">ChartCenter<\/span><\/a><span style=\"font-weight: 400\"> en tant que d\u00e9p\u00f4t central de charts Helm peut vous aider \u00e0 effectuer ces mises \u00e0 jour.<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><span style=\"font-weight: 400\"><br \/>\n<\/span><b>Joyeux Ingressing<\/b><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; MISE \u00c0 JOUR\u00a0: depuis le 1er\u00a0mai 2021, le d\u00e9p\u00f4t central ChartCenter a \u00e9t\u00e9 mis hors service et toutes les fonctionnalit\u00e9s sont obsol\u00e8tes. Pour en savoir plus sur la mise hors service des centres, lisez l\u2019article de blog sur la d\u00e9pr\u00e9ciation des centres &nbsp; Au cours des quatre derni\u00e8res ann\u00e9es, quiconque souhaitait d\u00e9ployer le contr\u00f4leur &hellip;<\/p>\n","protected":false},"author":140,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[],"tags":[10140,9384,9373],"class_list":["post-106167","post","type-post","status-publish","format-standard","hentry","tag-kubernetes-fr","tag-chartcenter-fr","tag-charts-helm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.6 (Yoast SEO v22.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment migrer NGINX \u00e0 partir de charts Helm \u00ab\u00a0stable\u00a0\u00bb | JFrog ChartCenter<\/title>\n<meta name=\"description\" content=\"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/106167\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Transition de NGINX Helm Charts via ChartCenter\" \/>\n<meta property=\"og:description\" content=\"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\" \/>\n<meta property=\"og:site_name\" content=\"JFrog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/artifrog\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-28T09:28:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17172507\/1200_628.jpg\" \/>\n<meta name=\"author\" content=\"giannit\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Transition de NGINX Helm Charts via ChartCenter\" \/>\n<meta name=\"twitter:description\" content=\"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.\" \/>\n<meta name=\"twitter:creator\" content=\"@jfrog\" \/>\n<meta name=\"twitter:site\" content=\"@jfrog\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"giannit\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\"},\"author\":{\"name\":\"giannit\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af\"},\"headline\":\"Migrer NGINX \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb charts Helm avec ChartCenter\",\"datePublished\":\"2022-12-28T09:28:33+00:00\",\"dateModified\":\"2022-12-28T09:28:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\"},\"wordCount\":1151,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg\",\"keywords\":[\"kubernetes\",\"chartcenter\",\"charts Helm\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\",\"url\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\",\"name\":\"Comment migrer NGINX \u00e0 partir de charts Helm \u00ab\u00a0stable\u00a0\u00bb | JFrog ChartCenter\",\"isPartOf\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg\",\"datePublished\":\"2022-12-28T09:28:33+00:00\",\"dateModified\":\"2022-12-28T09:28:33+00:00\",\"description\":\"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.\",\"breadcrumb\":{\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage\",\"url\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg\",\"contentUrl\":\"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jfrog.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Migrer NGINX \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb charts Helm avec ChartCenter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jfrog.com\/fr\/#website\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"name\":\"JFrog\",\"description\":\"Deliver Trusted Software Releases at Speed and Scale\",\"publisher\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jfrog.com\/fr\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jfrog.com\/fr\/#organization\",\"name\":\"JFrog\",\"url\":\"https:\/\/jfrog.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"contentUrl\":\"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg\",\"width\":74,\"height\":73,\"caption\":\"JFrog\"},\"image\":{\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/artifrog\",\"https:\/\/x.com\/jfrog\",\"https:\/\/www.linkedin.com\/company\/455737\",\"https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg\",\"https:\/\/www.wikidata.org\/wiki\/Q98608948\"],\"description\":\"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.\",\"legalName\":\"Jfrog, Inc.\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af\",\"name\":\"giannit\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g\",\"caption\":\"giannit\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment migrer NGINX \u00e0 partir de charts Helm \u00ab\u00a0stable\u00a0\u00bb | JFrog ChartCenter","description":"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/106167","og_locale":"fr_FR","og_type":"article","og_title":"Transition de NGINX Helm Charts via ChartCenter","og_description":"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.","og_url":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/","og_site_name":"JFrog","article_publisher":"https:\/\/www.facebook.com\/artifrog","article_published_time":"2022-12-28T09:28:33+00:00","og_image":[{"url":"https:\/\/media.jfrog.com\/wp-content\/uploads\/2020\/08\/17172507\/1200_628.jpg"}],"author":"giannit","twitter_card":"summary_large_image","twitter_title":"Transition de NGINX Helm Charts via ChartCenter","twitter_description":"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.","twitter_creator":"@jfrog","twitter_site":"@jfrog","twitter_misc":{"Written by":"giannit","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#article","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/"},"author":{"name":"giannit","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af"},"headline":"Migrer NGINX \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb charts Helm avec ChartCenter","datePublished":"2022-12-28T09:28:33+00:00","dateModified":"2022-12-28T09:28:33+00:00","mainEntityOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/"},"wordCount":1151,"commentCount":0,"publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg","keywords":["kubernetes","chartcenter","charts Helm"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/","url":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/","name":"Comment migrer NGINX \u00e0 partir de charts Helm \u00ab\u00a0stable\u00a0\u00bb | JFrog ChartCenter","isPartOf":{"@id":"https:\/\/jfrog.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage"},"image":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage"},"thumbnailUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg","datePublished":"2022-12-28T09:28:33+00:00","dateModified":"2022-12-28T09:28:33+00:00","description":"D\u00e9couvrez comment JFrog\u00a0ChartCenter peut vous aider \u00e0 migrer vers de nouveaux charts Helm pour NGINX Ingress Controller \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb obsol\u00e8te.","breadcrumb":{"@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#primaryimage","url":"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg","contentUrl":"https:\/\/jfrog.com\/wp-content\/uploads\/2020\/08\/863_300.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/jfrog.com\/fr\/blog\/migrate-nginx-from-stable-helm-charts-with-chartcenter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jfrog.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Migrer NGINX \u00e0 partir du d\u00e9p\u00f4t \u00ab\u00a0stable\u00a0\u00bb charts Helm avec ChartCenter"}]},{"@type":"WebSite","@id":"https:\/\/jfrog.com\/fr\/#website","url":"https:\/\/jfrog.com\/fr\/","name":"JFrog","description":"Deliver Trusted Software Releases at Speed and Scale","publisher":{"@id":"https:\/\/jfrog.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jfrog.com\/fr\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/jfrog.com\/fr\/#organization","name":"JFrog","url":"https:\/\/jfrog.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","contentUrl":"https:\/\/speedmedia2.jfrog.com\/08612fe1-9391-4cf3-ac1a-6dd49c36b276\/media.jfrog.com\/wp-content\/uploads\/2025\/05\/27095207\/Logo.svg","width":74,"height":73,"caption":"JFrog"},"image":{"@id":"https:\/\/jfrog.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/artifrog","https:\/\/x.com\/jfrog","https:\/\/www.linkedin.com\/company\/455737","https:\/\/www.youtube.com\/channel\/UCh2hNg76zo3d1qQqTWIQxDg","https:\/\/www.wikidata.org\/wiki\/Q98608948"],"description":"We set out on our Liquid Software journey in 2008, with the mission to transform the way enterprises manage and release software updates. The world expects software to update continuously, securely, non-intrusively and without user intervention. This hyper-connected experience can only be enabled by automation with an end-to-end DevOps platform and a binary-centric focus. With this in mind, we\u2019ve developed the JFrog Platform, ushering in a new era of DevOps and DevSecOps standards that power continuous updates. More than a decade after our founding, with thousands of customers and millions of users globally, JFrog has become the \u201cDatabase of DevOps\u201d and the de-facto standard in release and update management.","legalName":"Jfrog, Inc.","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/b554ace14b37da5eed75bbfc7dd1c1af","name":"giannit","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/jfrog.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fca3c188acf34ea94b72429eb16d496a8d0b50af476289bb5f51c8283e5c5b1c?s=96&d=mm&r=g","caption":"giannit"}}]}},"_links":{"self":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/106167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/users\/140"}],"replies":[{"embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/comments?post=106167"}],"version-history":[{"count":0,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/posts\/106167\/revisions"}],"wp:attachment":[{"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/media?parent=106167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/categories?post=106167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jfrog.com\/fr\/wp-json\/wp\/v2\/tags?post=106167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}