package main

import (
	"flag"
	"fmt"

	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

	"github.com/tidbcloud/infra-provider/pkg/namer"
	"github.com/tidbcloud/infra-provider/pkg/nodegroup"
	"github.com/tidbcloud/infra-provider/pkg/util"
)

var (
	component    string
	zone         string
	clusterName  string
	instanceType string
	namespace    string
	region       string
	newVersion   string
)

func main() {
	flag.StringVar(&component, "component", "tidb", "component type")
	flag.StringVar(&namespace, "namespace", "nightly-ms-43562", "namespace")
	flag.StringVar(&clusterName, "cluster-name", "2879091", "cluster name")
	flag.StringVar(&instanceType, "instance-type", "m4g.medium", "instance type")
	flag.StringVar(&region, "region", "us-west-2", "region")
	flag.StringVar(&zone, "zone", "us-west-2a", "az")
	flag.StringVar(&newVersion, "new-version", "1.25", "new version")
	flag.Parse()
	oldVersion := ""
	versions := []string{oldVersion, newVersion}
	ng := namer.NodeGroupName(clusterName, component, zone)
	ngName := util.FnvHash(ng)
	instanceTypeHash := util.FnvHash(instanceType)
	ngName = "tidbcloud-" + ngName + "-" + instanceTypeHash
	for _, ver := range versions {
		identifier := namer.WithPrefix(ngName + nodegroup.NormalizeVersion(ver))
		objMeta := metav1.ObjectMeta{
			Name:      "eks-" + region,
			Namespace: namespace,
		}
		name := namer.UniqueIdentifier(objMeta, identifier)
		fmt.Printf("name: %s\n", name)
	}
}
