mirror of
https://github.com/jsiebens/ionscale.git
synced 2026-03-31 15:07:49 +01:00
feat: remove the notion of alias
This commit is contained in:
@@ -182,13 +182,11 @@ func enableHttpsCommand() *coral.Command {
|
|||||||
|
|
||||||
var tailnetID uint64
|
var tailnetID uint64
|
||||||
var tailnetName string
|
var tailnetName string
|
||||||
var alias string
|
|
||||||
var target = Target{}
|
var target = Target{}
|
||||||
|
|
||||||
target.prepareCommand(command)
|
target.prepareCommand(command)
|
||||||
command.Flags().StringVar(&tailnetName, "tailnet", "", "Tailnet name. Mutually exclusive with --tailnet-id.")
|
command.Flags().StringVar(&tailnetName, "tailnet", "", "Tailnet name. Mutually exclusive with --tailnet-id.")
|
||||||
command.Flags().Uint64Var(&tailnetID, "tailnet-id", 0, "Tailnet ID. Mutually exclusive with --tailnet.")
|
command.Flags().Uint64Var(&tailnetID, "tailnet-id", 0, "Tailnet ID. Mutually exclusive with --tailnet.")
|
||||||
command.Flags().StringVar(&alias, "alias", "", "")
|
|
||||||
|
|
||||||
command.PreRunE = checkRequiredTailnetAndTailnetIdFlags
|
command.PreRunE = checkRequiredTailnetAndTailnetIdFlags
|
||||||
command.RunE = func(command *coral.Command, args []string) error {
|
command.RunE = func(command *coral.Command, args []string) error {
|
||||||
@@ -204,7 +202,6 @@ func enableHttpsCommand() *coral.Command {
|
|||||||
|
|
||||||
req := api.EnableHttpsCertificatesRequest{
|
req := api.EnableHttpsCertificatesRequest{
|
||||||
TailnetId: tailnet.Id,
|
TailnetId: tailnet.Id,
|
||||||
Alias: alias,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := client.EnableHttpsCertificates(context.Background(), connect.NewRequest(&req)); err != nil {
|
if _, err := client.EnableHttpsCertificates(context.Background(), connect.NewRequest(&req)); err != nil {
|
||||||
|
|||||||
+3
-10
@@ -101,8 +101,8 @@ func createTailnetsCommand() *coral.Command {
|
|||||||
command.Flags().StringVar(&email, "email", "", "")
|
command.Flags().StringVar(&email, "email", "", "")
|
||||||
|
|
||||||
command.PreRunE = func(cmd *coral.Command, args []string) error {
|
command.PreRunE = func(cmd *coral.Command, args []string) error {
|
||||||
if name == "" && email == "" && domain == "" {
|
if name == "" {
|
||||||
return fmt.Errorf("at least flag --name, --email or --domain is required")
|
return fmt.Errorf("flag --name is required")
|
||||||
}
|
}
|
||||||
if domain != "" && email != "" {
|
if domain != "" && email != "" {
|
||||||
return fmt.Errorf("flags --email and --domain are mutually exclusive")
|
return fmt.Errorf("flags --email and --domain are mutually exclusive")
|
||||||
@@ -112,12 +112,10 @@ func createTailnetsCommand() *coral.Command {
|
|||||||
|
|
||||||
command.RunE = func(command *coral.Command, args []string) error {
|
command.RunE = func(command *coral.Command, args []string) error {
|
||||||
|
|
||||||
var tailnetName = ""
|
|
||||||
var iamPolicy = api.IAMPolicy{}
|
var iamPolicy = api.IAMPolicy{}
|
||||||
|
|
||||||
if len(domain) != 0 {
|
if len(domain) != 0 {
|
||||||
domainToLower := strings.ToLower(domain)
|
domainToLower := strings.ToLower(domain)
|
||||||
tailnetName = domainToLower
|
|
||||||
iamPolicy = api.IAMPolicy{
|
iamPolicy = api.IAMPolicy{
|
||||||
Filters: []string{fmt.Sprintf("domain == %s", domainToLower)},
|
Filters: []string{fmt.Sprintf("domain == %s", domainToLower)},
|
||||||
}
|
}
|
||||||
@@ -125,7 +123,6 @@ func createTailnetsCommand() *coral.Command {
|
|||||||
|
|
||||||
if len(email) != 0 {
|
if len(email) != 0 {
|
||||||
emailToLower := strings.ToLower(email)
|
emailToLower := strings.ToLower(email)
|
||||||
tailnetName = emailToLower
|
|
||||||
iamPolicy = api.IAMPolicy{
|
iamPolicy = api.IAMPolicy{
|
||||||
Emails: []string{emailToLower},
|
Emails: []string{emailToLower},
|
||||||
Roles: map[string]string{
|
Roles: map[string]string{
|
||||||
@@ -134,17 +131,13 @@ func createTailnetsCommand() *coral.Command {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(name) != 0 {
|
|
||||||
tailnetName = name
|
|
||||||
}
|
|
||||||
|
|
||||||
client, err := target.createGRPCClient()
|
client, err := target.createGRPCClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, err := client.CreateTailnet(context.Background(), connect.NewRequest(&api.CreateTailnetRequest{
|
resp, err := client.CreateTailnet(context.Background(), connect.NewRequest(&api.CreateTailnetRequest{
|
||||||
Name: tailnetName,
|
Name: name,
|
||||||
IamPolicy: &iamPolicy,
|
IamPolicy: &iamPolicy,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
keepAliveInterval = defaultKeepAliveInterval
|
keepAliveInterval = defaultKeepAliveInterval
|
||||||
magicDNSSuffix = defaultMagicDNSSuffix
|
magicDNSSuffix = defaultMagicDNSSuffix
|
||||||
certDNSSuffix = ""
|
dnsProviderConfigured = false
|
||||||
)
|
)
|
||||||
|
|
||||||
func KeepAliveInterval() time.Duration {
|
func KeepAliveInterval() time.Duration {
|
||||||
@@ -37,8 +37,8 @@ func MagicDNSSuffix() string {
|
|||||||
return magicDNSSuffix
|
return magicDNSSuffix
|
||||||
}
|
}
|
||||||
|
|
||||||
func CertDNSSuffix() string {
|
func DNSProviderConfigured() bool {
|
||||||
return certDNSSuffix
|
return dnsProviderConfigured
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoadConfig(path string) (*Config, error) {
|
func LoadConfig(path string) (*Config, error) {
|
||||||
@@ -92,11 +92,7 @@ func LoadConfig(path string) (*Config, error) {
|
|||||||
magicDNSSuffix = cfg.DNS.MagicDNSSuffix
|
magicDNSSuffix = cfg.DNS.MagicDNSSuffix
|
||||||
|
|
||||||
if cfg.DNS.Provider.Zone != "" {
|
if cfg.DNS.Provider.Zone != "" {
|
||||||
if cfg.DNS.Provider.Subdomain == "" {
|
dnsProviderConfigured = true
|
||||||
certDNSSuffix = cfg.DNS.Provider.Zone
|
|
||||||
} else {
|
|
||||||
certDNSSuffix = fmt.Sprintf("%s.%s", cfg.DNS.Provider.Subdomain, cfg.DNS.Provider.Zone)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
@@ -203,7 +199,6 @@ type DNS struct {
|
|||||||
type DNSProvider struct {
|
type DNSProvider struct {
|
||||||
Name string `yaml:"name"`
|
Name string `yaml:"name"`
|
||||||
Zone string `yaml:"zone"`
|
Zone string `yaml:"zone"`
|
||||||
Subdomain string `yaml:"subdomain"`
|
|
||||||
Configuration map[string]string `yaml:"config"`
|
Configuration map[string]string `yaml:"config"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,24 +20,29 @@ type Provider interface {
|
|||||||
SetRecord(ctx context.Context, recordType, recordName, value string) error
|
SetRecord(ctx context.Context, recordType, recordName, value string) error
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewProvider(config config.DNSProvider) (Provider, error) {
|
func NewProvider(config config.DNS) (Provider, error) {
|
||||||
if len(config.Zone) == 0 {
|
p := config.Provider
|
||||||
|
if len(p.Zone) == 0 {
|
||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
switch config.Name {
|
if !strings.HasSuffix(config.MagicDNSSuffix, p.Zone) {
|
||||||
|
return nil, fmt.Errorf("invalid MagicDNS suffix [%s], not part of zone [%s]", config.MagicDNSSuffix, p.Zone)
|
||||||
|
}
|
||||||
|
|
||||||
|
switch p.Name {
|
||||||
case "azure":
|
case "azure":
|
||||||
return configureAzureProvider(config.Zone, config.Configuration)
|
return configureAzureProvider(p.Zone, p.Configuration)
|
||||||
case "cloudflare":
|
case "cloudflare":
|
||||||
return configureCloudflareProvider(config.Zone, config.Configuration)
|
return configureCloudflareProvider(p.Zone, p.Configuration)
|
||||||
case "digitalocean":
|
case "digitalocean":
|
||||||
return configureDigitalOceanProvider(config.Zone, config.Configuration)
|
return configureDigitalOceanProvider(p.Zone, p.Configuration)
|
||||||
case "googleclouddns":
|
case "googleclouddns":
|
||||||
return configureGoogleCloudDNSProvider(config.Zone, config.Configuration)
|
return configureGoogleCloudDNSProvider(p.Zone, p.Configuration)
|
||||||
case "route53":
|
case "route53":
|
||||||
return configureRoute53Provider(config.Zone, config.Configuration)
|
return configureRoute53Provider(p.Zone, p.Configuration)
|
||||||
default:
|
default:
|
||||||
return nil, fmt.Errorf("unknown dns provider: %s", config.Name)
|
return nil, fmt.Errorf("unknown dns provider: %s", p.Name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import (
|
|||||||
type Tailnet struct {
|
type Tailnet struct {
|
||||||
ID uint64 `gorm:"primary_key"`
|
ID uint64 `gorm:"primary_key"`
|
||||||
Name string
|
Name string
|
||||||
Alias *string
|
|
||||||
DNSConfig DNSConfig
|
DNSConfig DNSConfig
|
||||||
IAMPolicy IAMPolicy
|
IAMPolicy IAMPolicy
|
||||||
ACLPolicy ACLPolicy
|
ACLPolicy ACLPolicy
|
||||||
|
|||||||
@@ -28,15 +28,10 @@ func CopyViaJson[F any, T any](f F, t T) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ToDNSConfig(m *domain.Machine, peers []domain.Machine, tailnet *domain.Tailnet, c *domain.DNSConfig) *tailcfg.DNSConfig {
|
func ToDNSConfig(m *domain.Machine, peers []domain.Machine, tailnet *domain.Tailnet, c *domain.DNSConfig) *tailcfg.DNSConfig {
|
||||||
certDNSSuffix := config.CertDNSSuffix()
|
certsEnabled := c.HttpsCertsEnabled && config.DNSProviderConfigured()
|
||||||
certsEnabled := c.HttpsCertsEnabled && len(certDNSSuffix) != 0
|
|
||||||
|
|
||||||
tailnetDomain := domain.SanitizeTailnetName(tailnet.Name)
|
sanitizeTailnetName := domain.SanitizeTailnetName(tailnet.Name)
|
||||||
|
tailnetDomain := fmt.Sprintf("%s.%s", sanitizeTailnetName, config.MagicDNSSuffix())
|
||||||
var certDomain = ""
|
|
||||||
if certsEnabled {
|
|
||||||
certDomain = domain.SanitizeTailnetName(*tailnet.Alias)
|
|
||||||
}
|
|
||||||
|
|
||||||
resolvers := []*dnstype.Resolver{}
|
resolvers := []*dnstype.Resolver{}
|
||||||
for _, r := range c.Nameservers {
|
for _, r := range c.Nameservers {
|
||||||
@@ -52,12 +47,11 @@ func ToDNSConfig(m *domain.Machine, peers []domain.Machine, tailnet *domain.Tail
|
|||||||
var certDomains []string
|
var certDomains []string
|
||||||
|
|
||||||
if c.MagicDNS {
|
if c.MagicDNS {
|
||||||
domains = append(domains, fmt.Sprintf("%s.%s", tailnetDomain, config.MagicDNSSuffix()))
|
domains = append(domains, tailnetDomain)
|
||||||
dnsConfig.Proxied = true
|
dnsConfig.Proxied = true
|
||||||
|
|
||||||
if certsEnabled {
|
if certsEnabled {
|
||||||
domains = append(domains, fmt.Sprintf("%s.%s", certDomain, certDNSSuffix))
|
certDomains = append(certDomains, fmt.Sprintf("%s.%s", m.CompleteName(), tailnetDomain))
|
||||||
certDomains = append(certDomains, fmt.Sprintf("%s.%s.%s", m.CompleteName(), certDomain, certDNSSuffix))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,10 +64,6 @@ func ToDNSConfig(m *domain.Machine, peers []domain.Machine, tailnet *domain.Tail
|
|||||||
if len(c.Routes) != 0 || certsEnabled {
|
if len(c.Routes) != 0 || certsEnabled {
|
||||||
routes := make(map[string][]*dnstype.Resolver)
|
routes := make(map[string][]*dnstype.Resolver)
|
||||||
|
|
||||||
if certsEnabled {
|
|
||||||
routes[fmt.Sprintf("%s.", certDNSSuffix)] = nil
|
|
||||||
}
|
|
||||||
|
|
||||||
for r, s := range c.Routes {
|
for r, s := range c.Routes {
|
||||||
routeResolver := []*dnstype.Resolver{}
|
routeResolver := []*dnstype.Resolver{}
|
||||||
for _, addr := range s {
|
for _, addr := range s {
|
||||||
@@ -89,22 +79,6 @@ func ToDNSConfig(m *domain.Machine, peers []domain.Machine, tailnet *domain.Tail
|
|||||||
dnsConfig.Domains = domains
|
dnsConfig.Domains = domains
|
||||||
dnsConfig.CertDomains = certDomains
|
dnsConfig.CertDomains = certDomains
|
||||||
|
|
||||||
if certsEnabled {
|
|
||||||
var extraRecords = []tailcfg.DNSRecord{{
|
|
||||||
Name: fmt.Sprintf("%s.%s.%s", m.CompleteName(), certDomain, certDNSSuffix),
|
|
||||||
Value: m.IPv4.String(),
|
|
||||||
}}
|
|
||||||
|
|
||||||
for _, p := range peers {
|
|
||||||
extraRecords = append(extraRecords, tailcfg.DNSRecord{
|
|
||||||
Name: fmt.Sprintf("%s.%s.%s", p.CompleteName(), certDomain, certDNSSuffix),
|
|
||||||
Value: p.IPv4.String(),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
dnsConfig.ExtraRecords = extraRecords
|
|
||||||
}
|
|
||||||
|
|
||||||
return dnsConfig
|
return dnsConfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func Start(c *config.Config) error {
|
|||||||
return fmt.Errorf("error configuring OIDC provider: %v", err)
|
return fmt.Errorf("error configuring OIDC provider: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
dnsProvider, err := dns.NewProvider(c.DNS.Provider)
|
dnsProvider, err := dns.NewProvider(c.DNS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import (
|
|||||||
"github.com/jsiebens/ionscale/internal/config"
|
"github.com/jsiebens/ionscale/internal/config"
|
||||||
"github.com/jsiebens/ionscale/internal/domain"
|
"github.com/jsiebens/ionscale/internal/domain"
|
||||||
api "github.com/jsiebens/ionscale/pkg/gen/ionscale/v1"
|
api "github.com/jsiebens/ionscale/pkg/gen/ionscale/v1"
|
||||||
"tailscale.com/util/dnsname"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *Service) GetDNSConfig(ctx context.Context, req *connect.Request[api.GetDNSConfigRequest]) (*connect.Response[api.GetDNSConfigResponse], error) {
|
func (s *Service) GetDNSConfig(ctx context.Context, req *connect.Request[api.GetDNSConfigRequest]) (*connect.Response[api.GetDNSConfigResponse], error) {
|
||||||
@@ -82,8 +81,6 @@ func (s *Service) EnableHttpsCertificates(ctx context.Context, req *connect.Requ
|
|||||||
return nil, connect.NewError(connect.CodePermissionDenied, errors.New("permission denied"))
|
return nil, connect.NewError(connect.CodePermissionDenied, errors.New("permission denied"))
|
||||||
}
|
}
|
||||||
|
|
||||||
alias := dnsname.SanitizeLabel(req.Msg.Alias)
|
|
||||||
|
|
||||||
tailnet, err := s.repository.GetTailnet(ctx, req.Msg.TailnetId)
|
tailnet, err := s.repository.GetTailnet(ctx, req.Msg.TailnetId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -96,28 +93,7 @@ func (s *Service) EnableHttpsCertificates(ctx context.Context, req *connect.Requ
|
|||||||
return nil, connect.NewError(connect.CodeFailedPrecondition, errors.New("MagicDNS must be enabled for this tailnet"))
|
return nil, connect.NewError(connect.CodeFailedPrecondition, errors.New("MagicDNS must be enabled for this tailnet"))
|
||||||
}
|
}
|
||||||
|
|
||||||
if tailnet.Alias == nil && len(alias) == 0 {
|
|
||||||
return nil, connect.NewError(connect.CodeFailedPrecondition, errors.New("when enabling HTTPS certificates for the first time, a Tailnet alias is required"))
|
|
||||||
}
|
|
||||||
|
|
||||||
if tailnet.Alias != nil && len(alias) != 0 && *tailnet.Alias != alias {
|
|
||||||
return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("a Tailnet alias was already configured previously"))
|
|
||||||
}
|
|
||||||
|
|
||||||
tailnet.DNSConfig.HttpsCertsEnabled = true
|
tailnet.DNSConfig.HttpsCertsEnabled = true
|
||||||
if tailnet.Alias == nil && len(alias) != 0 {
|
|
||||||
t, err := s.repository.GetTailnetByAlias(ctx, alias)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if t != nil && t.ID != tailnet.ID {
|
|
||||||
return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("given alias is already in use"))
|
|
||||||
}
|
|
||||||
|
|
||||||
tailnet.Alias = &alias
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := s.repository.SaveTailnet(ctx, tailnet); err != nil {
|
if err := s.repository.SaveTailnet(ctx, tailnet); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,13 +29,16 @@ func (s *Service) CreateTailnet(ctx context.Context, req *connect.Request[api.Cr
|
|||||||
iamPolicy.Roles = apiRolesMapToDomainRolesMap(req.Msg.IamPolicy.Roles)
|
iamPolicy.Roles = apiRolesMapToDomainRolesMap(req.Msg.IamPolicy.Roles)
|
||||||
}
|
}
|
||||||
|
|
||||||
tailnet, created, err := s.repository.GetOrCreateTailnet(ctx, name, iamPolicy)
|
tailnet := &domain.Tailnet{
|
||||||
if err != nil {
|
ID: util.NextID(),
|
||||||
return nil, err
|
Name: name,
|
||||||
|
IAMPolicy: iamPolicy,
|
||||||
|
ACLPolicy: domain.DefaultPolicy(),
|
||||||
|
DNSConfig: domain.DNSConfig{MagicDNS: true},
|
||||||
}
|
}
|
||||||
|
|
||||||
if !created {
|
if err := s.repository.SaveTailnet(ctx, tailnet); err != nil {
|
||||||
return nil, connect.NewError(connect.CodeInvalidArgument, errors.New("tailnet already exists"))
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
resp := &api.CreateTailnetResponse{Tailnet: &api.Tailnet{
|
resp := &api.CreateTailnetResponse{Tailnet: &api.Tailnet{
|
||||||
|
|||||||
@@ -224,7 +224,6 @@ type EnableHttpsCertificatesRequest struct {
|
|||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
TailnetId uint64 `protobuf:"varint,1,opt,name=tailnet_id,json=tailnetId,proto3" json:"tailnet_id,omitempty"`
|
TailnetId uint64 `protobuf:"varint,1,opt,name=tailnet_id,json=tailnetId,proto3" json:"tailnet_id,omitempty"`
|
||||||
Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *EnableHttpsCertificatesRequest) Reset() {
|
func (x *EnableHttpsCertificatesRequest) Reset() {
|
||||||
@@ -266,13 +265,6 @@ func (x *EnableHttpsCertificatesRequest) GetTailnetId() uint64 {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *EnableHttpsCertificatesRequest) GetAlias() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Alias
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type EnableHttpsCertificatesResponse struct {
|
type EnableHttpsCertificatesResponse struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@@ -550,46 +542,45 @@ var file_ionscale_v1_dns_proto_rawDesc = []byte{
|
|||||||
0x65, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x65, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
|
0x0b, 0x32, 0x16, 0x2e, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e,
|
||||||
0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
|
0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
|
||||||
0x67, 0x22, 0x55, 0x0a, 0x1e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73,
|
0x67, 0x22, 0x3f, 0x0a, 0x1e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73,
|
||||||
0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
|
0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
|
||||||
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74, 0x5f, 0x69,
|
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74, 0x5f, 0x69,
|
||||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74,
|
||||||
0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x49, 0x64, 0x22, 0x21, 0x0a, 0x1f, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x74, 0x74, 0x70,
|
||||||
0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x21, 0x0a, 0x1f, 0x45, 0x6e, 0x61, 0x62,
|
0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x1f, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
|
||||||
|
0x48, 0x74, 0x74, 0x70, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
|
||||||
|
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c,
|
||||||
|
0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x61,
|
||||||
|
0x69, 0x6c, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x20, 0x44, 0x69, 0x73, 0x61, 0x62,
|
||||||
0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
|
0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
|
||||||
0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x0a, 0x1f, 0x44,
|
0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xae, 0x02, 0x0a, 0x09,
|
||||||
0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73, 0x43, 0x65, 0x72, 0x74, 0x69,
|
0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x67,
|
||||||
0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
|
0x69, 0x63, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61,
|
||||||
0x0a, 0x0a, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
0x67, 0x69, 0x63, 0x44, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69,
|
||||||
0x28, 0x04, 0x52, 0x09, 0x74, 0x61, 0x69, 0x6c, 0x6e, 0x65, 0x74, 0x49, 0x64, 0x22, 0x22, 0x0a,
|
0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01,
|
||||||
0x20, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x74, 0x74, 0x70, 0x73, 0x43, 0x65, 0x72,
|
0x28, 0x08, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61,
|
||||||
0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x6c, 0x44, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76,
|
||||||
0x65, 0x22, 0xae, 0x02, 0x0a, 0x09, 0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
|
0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73,
|
||||||
0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01,
|
0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
|
||||||
0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x44, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x12,
|
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c,
|
||||||
0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x64,
|
0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x4e, 0x53, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52,
|
||||||
0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69,
|
0x6f, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74,
|
||||||
0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x44, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61,
|
0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x64, 0x6e, 0x73, 0x5f,
|
||||||
0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52,
|
0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61,
|
||||||
0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x06,
|
0x67, 0x69, 0x63, 0x44, 0x6e, 0x73, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x1a, 0x4e, 0x0a, 0x0b,
|
||||||
0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x69,
|
0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
|
||||||
0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x4e, 0x53, 0x43, 0x6f,
|
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a,
|
||||||
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
|
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x69,
|
||||||
0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x67, 0x69,
|
0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65,
|
||||||
0x63, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x73, 0x75, 0x66, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01,
|
0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x20, 0x0a, 0x06,
|
||||||
0x28, 0x09, 0x52, 0x0e, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x44, 0x6e, 0x73, 0x53, 0x75, 0x66, 0x66,
|
0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73,
|
||||||
0x69, 0x78, 0x1a, 0x4e, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
|
0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x3d,
|
||||||
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
|
0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x73, 0x69,
|
||||||
0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
|
0x65, 0x62, 0x65, 0x6e, 0x73, 0x2f, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x70,
|
||||||
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2e, 0x76, 0x31,
|
0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f,
|
||||||
0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
|
0x76, 0x31, 0x3b, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x76, 0x31, 0x62, 0x06, 0x70,
|
||||||
0x38, 0x01, 0x22, 0x20, 0x0a, 0x06, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06,
|
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
|
|
||||||
0x75, 0x74, 0x65, 0x73, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
|
||||||
0x6f, 0x6d, 0x2f, 0x6a, 0x73, 0x69, 0x65, 0x62, 0x65, 0x6e, 0x73, 0x2f, 0x69, 0x6f, 0x6e, 0x73,
|
|
||||||
0x63, 0x61, 0x6c, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x69, 0x6f, 0x6e,
|
|
||||||
0x73, 0x63, 0x61, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6f, 0x6e, 0x73, 0x63, 0x61, 0x6c,
|
|
||||||
0x65, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ message SetDNSConfigResponse {
|
|||||||
|
|
||||||
message EnableHttpsCertificatesRequest {
|
message EnableHttpsCertificatesRequest {
|
||||||
uint64 tailnet_id = 1;
|
uint64 tailnet_id = 1;
|
||||||
string alias = 2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
message EnableHttpsCertificatesResponse {
|
message EnableHttpsCertificatesResponse {
|
||||||
|
|||||||
Reference in New Issue
Block a user