Désérialiser les fichiers YAML Kubernetes dans des structures Go
La désérialisation des fichiers YAML Kubernetes dans des structures Go vous permet de travailler avec les manifestes Kubernetes par programmation. Cependant, rencontrer des erreurs telles que « aucun type de « déploiement » n'est enregistré pour la version « apps/v1beta1 » » peut être frustrant.
Pour résoudre ce problème, vous devez importer les packages de schéma appropriés pour vous assurer que le désérialiseur a accès aux informations de type pour l'objet Kubernetes spécifique. Dans ce cas, pour les déploiements avec la version "apps/v1beta1", vous devez importer "_ k8s.io/client-go/pkg/apis/extensions/install".
<code class="go">import _ "k8s.io/client-go/pkg/apis/extensions/install"</code>
Une fois le schéma est importé, le désérialiseur sera capable de reconnaître le type et la version du « Déploiement » et de désérialiser correctement le fichier YAML. Le code corrigé :
<code class="go">package main import ( "fmt" "k8s.io/client-go/pkg/api" _ "k8s.io/client-go/pkg/api/install" _ "k8s.io/client-go/pkg/apis/extensions/install" ) var service = ` apiVersion: apps/v1beta1 kind: Deployment metadata: name: my-nginx spec: replicas: 2 template: metadata: labels: run: my-nginx spec: containers: - name: my-nginx image: nginx ports: - containerPort: 80 ` func main() { decode := api.Codecs.UniversalDeserializer().Decode obj, _, err := decode([]byte(service), nil, nil) if err != nil { panic(err) } fmt.Printf("%#v\n", obj) }</code>
Cette solution s'applique également aux autres types de ressources. Par exemple, si vous rencontrez une erreur similaire avec les services, vous importerez "_ k8s.io/client-go/pkg/apis/core/install".
L'importation des packages de schéma appropriés est cruciale pour une désérialisation réussie de Fichiers YAML Kubernetes. Ce faisant, vous pouvez vous assurer que vous avez accès aux informations de type nécessaires pour convertir les manifestes YAML en structures Go.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!