options.go 2.1 KB
Newer Older
Z
zryfish 已提交
1 2 3 4 5 6 7 8
package multicluster

import "github.com/spf13/pflag"

type Options struct {
	// Enable
	Enable           bool `json:"enable"`
	EnableFederation bool `json:"enableFederation,omitempty"`
9 10 11 12 13 14 15 16 17 18 19 20 21 22

	// ProxyPublishService is the service name of multicluster component tower.
	//   If this field provided, apiserver going to use the ingress.ip of this service.
	// This field will be used when generating agent deployment yaml for joining clusters.
	ProxyPublishService string `json:"proxyPublishService,omitempty"`

	// ProxyPublishAddress is the public address of tower for all cluster agents.
	//   This field takes precedence over field ProxyPublishService.
	// If both field ProxyPublishService and ProxyPublishAddress are empty, apiserver will
	// return 404 Not Found for all cluster agent yaml requests.
	ProxyPublishAddress string `json:"proxyPublishAddress,omitempty"`

	// AgentImage is the image used when generating deployment for all cluster agents.
	AgentImage string `json:"agentImage,omitempty"`
Z
zryfish 已提交
23 24 25 26 27
}

// NewOptions() returns a default nil options
func NewOptions() *Options {
	return &Options{
28 29 30 31 32
		Enable:              false,
		EnableFederation:    false,
		ProxyPublishAddress: "",
		ProxyPublishService: "",
		AgentImage:          "kubesphere/tower:v1.0",
Z
zryfish 已提交
33 34 35 36 37 38 39 40 41 42
	}
}

func (o *Options) Validate() []error {
	return nil
}

func (o *Options) AddFlags(fs *pflag.FlagSet, s *Options) {
	fs.BoolVar(&o.Enable, "multiple-clusters", s.Enable, ""+
		"This field instructs KubeSphere to enter multiple-cluster mode or not.")
43 44 45 46 47 48 49

	fs.StringVar(&o.ProxyPublishService, "proxy-publish-service", s.ProxyPublishService, ""+
		"Service name of tower. APIServer will use its ingress address as proxy publish address."+
		"For example, tower.kubesphere-system.svc.")

	fs.StringVar(&o.ProxyPublishAddress, "proxy-publish-address", s.ProxyPublishAddress, ""+
		"Public address of tower, APIServer will use this field as proxy publish address. This field "+
Z
zryfish 已提交
50
		"takes precedence over field proxy-publish-service. For example, http://139.198.121.121:8080.")
51

Z
zryfish 已提交
52
	fs.StringVar(&o.AgentImage, "agent-image", s.AgentImage, ""+
53
		"This field is used when generating deployment yaml for agent.")
Z
zryfish 已提交
54
}