Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework hostname handling #560

Merged
merged 44 commits into from
May 31, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
663e838
Nickname support
bravechamp Mar 13, 2022
9901d6b
Ability to clear nickname
bravechamp Mar 13, 2022
60ee046
Normalize nickname before saving to database
bravechamp Mar 13, 2022
c8aa653
Merge branch 'main' into main
kradalby Mar 19, 2022
8845938
Merge branch 'main' into main
kradalby Apr 24, 2022
6e27680
Rename name -> hostname, nickname -> givenname
kradalby Apr 24, 2022
caf79f6
Change nickname to givenname in proto
kradalby Apr 24, 2022
6b79679
Generate from proto
kradalby Apr 24, 2022
14994cb
Use new logic and fields for dns
kradalby Apr 24, 2022
62808cb
Bubble error up to user for rename
kradalby Apr 24, 2022
06c928b
Migrate name and nickname fields
kradalby Apr 24, 2022
79704dc
Update command with new fields
kradalby Apr 24, 2022
7ef8cd8
Fix comment
kradalby Apr 24, 2022
8504d0d
Move todo to correct file
kradalby Apr 24, 2022
f4873d9
Fix rename cli error
kradalby May 16, 2022
177c21b
Add helper function to create a unique givenname
kradalby May 16, 2022
03cccd6
Reword FQDN normalize errors to not _only_ cover namespaces
kradalby May 16, 2022
5fa3016
Generate unique givennames for hosts joining (and debug added)
kradalby May 16, 2022
9b393eb
Add integration cli tests for rename command
kradalby May 16, 2022
4aae917
Require GivenName to be unique
kradalby May 16, 2022
163e5c2
fix trace log message
kradalby May 16, 2022
e631c6f
Merge master
kradalby May 16, 2022
9ebeb3d
Retreive hostnames from headscale, now that they are random
kradalby May 17, 2022
802eb93
Make sure givenname is set for preauthkeys
kradalby May 17, 2022
4a9d3be
Use new names to resolve magic dns
kradalby May 18, 2022
77ceeaf
Test magic dns with the correct urls
kradalby May 18, 2022
5fa9875
move populate to after when given_name exist
kradalby May 23, 2022
4f3f054
Fix some issues in testing with new hostname handling
juanfont May 28, 2022
ef497ca
Merge pull request #2 from juanfont/fix-rename-integration-tests
kradalby May 28, 2022
6eac504
Merge branch 'main' into rename-fixess
kradalby May 29, 2022
fc502e1
Update golines and fix go mod checksum
kradalby May 30, 2022
59a1a85
Change to a go generics set implementation, no more casting :tada:
kradalby May 30, 2022
5316dd9
Use new nix stable (22.05)
kradalby May 30, 2022
3a3fc0a
Update headscale checksum
kradalby May 30, 2022
9993f51
docs(README): update contributors
github-actions[bot] May 29, 2022
dbc1d98
Revert golines
kradalby May 30, 2022
a992840
Give UpdateMachine a more meaningful name
kradalby May 30, 2022
a443255
Validate isOutdated against all namespaces
kradalby May 30, 2022
4ffd3ea
Override golangci-lint to use go 1.17
kradalby May 30, 2022
266aac9
Update CHANGELOG
kradalby May 30, 2022
d11279e
Merge branch 'main' into rename-fixess
kradalby May 30, 2022
9175aca
Merge branch 'main' into rename-fixess
kradalby May 30, 2022
f7edea5
Merge branch 'main' into rename-fixess
kradalby May 31, 2022
7f7cd73
Merge branch 'main' into rename-fixess
kradalby May 31, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions cmd/headscale/cli/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@ func init() {
}
nodeCmd.AddCommand(expireNodeCmd)

renameNodeCmd.Flags().Uint64P("identifier", "i", 0, "Node identifier (ID)")
err = renameNodeCmd.MarkFlagRequired("identifier")
if err != nil {
log.Fatalf(err.Error())
}
nodeCmd.AddCommand(renameNodeCmd)

deleteNodeCmd.Flags().Uint64P("identifier", "i", 0, "Node identifier (ID)")
err = deleteNodeCmd.MarkFlagRequired("identifier")
if err != nil {
Expand Down Expand Up @@ -207,6 +214,50 @@ var expireNodeCmd = &cobra.Command{
},
}

var renameNodeCmd = &cobra.Command{
Use: "rename NEW_NAME",
Short: "Renames a machine in your network",
Run: func(cmd *cobra.Command, args []string) {
output, _ := cmd.Flags().GetString("output")

identifier, err := cmd.Flags().GetUint64("identifier")
if err != nil {
ErrorOutput(
err,
fmt.Sprintf("Error converting ID to integer: %s", err),
output,
)

return
}

ctx, client, conn, cancel := getHeadscaleCLIClient()
defer cancel()
defer conn.Close()

request := &v1.RenameMachineRequest{
MachineId: identifier,
NewName: args[0],
}

response, err := client.RenameMachine(ctx, request)
if err != nil {
ErrorOutput(
err,
fmt.Sprintf(
"Cannot expire machine: %s\n",
status.Convert(err).Message(),
),
output,
)

return
}

SuccessOutput(response.Machine, "Machine renamed", output)
},
}

var deleteNodeCmd = &cobra.Command{
Use: "delete",
Short: "Delete a node",
Expand Down Expand Up @@ -304,6 +355,7 @@ func nodesToPtables(
{
"ID",
"Name",
"Nickname",
"NodeKey",
"Namespace",
"IP addresses",
Expand Down Expand Up @@ -368,6 +420,7 @@ func nodesToPtables(
[]string{
strconv.FormatUint(machine.Id, headscale.Base10),
machine.Name,
machine.Nickname,
nodeKey.ShortString(),
namespace,
strings.Join(machine.IpAddresses, ", "),
Expand Down
215 changes: 114 additions & 101 deletions gen/go/headscale/v1/headscale.pb.go

Large diffs are not rendered by default.

119 changes: 119 additions & 0 deletions gen/go/headscale/v1/headscale.pb.gw.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

36 changes: 36 additions & 0 deletions gen/go/headscale/v1/headscale_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading