Exemple pour démarrer Ubuntu avec le déploiement avec client-go

package main

import (
    "context"
    "fmt"

    metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    "k8s.io/apimachinery/pkg/runtime/schema"
    "k8s.io/client-go/dynamic"
    "k8s.io/client-go/tools/clientcmd"
    "os"
    "path/filepath"
)

func main() {
    //Spécifiez le chemin du fichier de Kubeconfig
    kubeconfig := filepath.Join(os.Getenv("HOME"), ".kube", "config")
    config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
    if err != nil {
        panic(err)
    }
    client, err := dynamic.NewForConfig(config)
    if err != nil {
        panic(err)
    }

    namespace := "default"

    deploymentRes := schema.GroupVersionResource{Group:"apps", Version: "v1", Resource: "deployments"}


    deployment := &unstructured.Unstructured{
        Object: map[string]interface{}{
            "apiVersion": "apps/v1",
            "kind":       "Deployment",
            "metadata": map[string]interface{}{
                "name": "ubuntu-deployment",
            },
            "spec": map[string]interface{}{
                "replicas": 2,
                "selector": map[string]interface{}{
                    "matchLabels": map[string]interface{}{
                        "app": "demo",
                    },
                },
                "template": map[string]interface{}{
                    "metadata": map[string]interface{}{
                        "labels": map[string]interface{}{
                            "app": "demo",
                        },
                    },

                    "spec": map[string]interface{}{
                        "containers": []map[string]interface{}{
                            {
                                "name":  "ubuntu",
                                "image": "ubuntu",
								"command": []string{
									"sleep",
									"infinity",
								},
                            },
                        },
                    },
                },
            },
        },
    }

    fmt.Println("Creating deployment...")
    result, err := client.Resource(deploymentRes).Namespace(namespace).Create(context.TODO(), deployment, metav1.CreateOptions{})
    if err != nil {
        panic(err)
    }
    fmt.Printf("Created deployment %q.\n", result.GetName())

}

Recommended Posts

Exemple pour démarrer Ubuntu avec le déploiement avec client-go
Exemple de déploiement pour lancer une image ubuntu dans Kubernetes
Java, des tableaux pour débuter avec les débutants
Comment démarrer Camunda avec Docker
Ecrire un fichier docker pour démarrer jupyter-lab sur ubuntu
Ripper un CD en MP3 avec Ubuntu 18.04 LTS
Comment utiliser le protocole NFS version 2 avec Ubuntu 18.04
Graver des fichiers sur CD / DVD avec Ubuntu 18.04 LTS
[Introduction à Docker x ECS] Déploiement ECS avec docker compose up
[Java] Comment rompre une ligne avec StringBuilder
Installez Gradle sur ubuntu16.04
Exemple pour créer une application GUI avec JavaFX + IntelliJ + Scene Builder
Exemple de code pour analyser la date et l'heure avec SimpleDateFormat de Java
Un mémo pour démarrer la programmation Java avec VS Code (version 2020-04)