github.com/IBM-Cloud/bluemix-go@v0.0.0-20240314082800-4e02a69b84b2/examples/container/kms/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  
     8  	"github.com/IBM-Cloud/bluemix-go/session"
     9  
    10  	v1 "github.com/IBM-Cloud/bluemix-go/api/container/containerv1"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  
    16  	var clusterID string
    17  	flag.StringVar(&clusterID, "clusterID", "", "cluster name or ID")
    18  
    19  	var kmsID string
    20  	flag.StringVar(&kmsID, "kmsID", "", "kms Id")
    21  
    22  	var rootKey string
    23  	flag.StringVar(&rootKey, "rootKey", "", "root Key")
    24  
    25  	var privateEndpoint bool
    26  	flag.BoolVar(&privateEndpoint, "privateEndpoint", false, " private Endpoint(true/false)")
    27  
    28  	flag.Parse()
    29  
    30  	trace.Logger = trace.NewLogger("true")
    31  	if kmsID == "" || clusterID == "" || rootKey == "" {
    32  		flag.Usage()
    33  		os.Exit(1)
    34  	}
    35  
    36  	sess, err := session.New()
    37  	if err != nil {
    38  		log.Fatal(err)
    39  	}
    40  
    41  	kmsClient, err := v1.New(sess)
    42  	if err != nil {
    43  		log.Fatal(err)
    44  	}
    45  	kmsAPI := kmsClient.Kms()
    46  	target := v1.ClusterHeader{}
    47  
    48  	//Enable the Kms
    49  	var kmsConfig = v1.KmsEnableReq{
    50  		Cluster:         clusterID,
    51  		Kms:             kmsID,
    52  		Crk:             rootKey,
    53  		PrivateEndpoint: privateEndpoint,
    54  	}
    55  	err = kmsAPI.EnableKms(kmsConfig, target)
    56  	if err != nil {
    57  		log.Fatal(err)
    58  	}
    59  
    60  }