fix: Docker updates

pull/1411/head
iwilltry42 3 months ago
parent 23209c6d4d
commit 8b43387679
No known key found for this signature in database
GPG Key ID: FD4E78FBAD6B1550
  1. 2
      Makefile
  2. 1
      pkg/client/node.go
  3. 6
      pkg/runtimes/docker/container.go
  4. 16
      pkg/runtimes/docker/node.go
  5. 2
      pkg/types/k3s/channel.go
  6. 2
      pkg/util/infofaker.go

@ -71,7 +71,7 @@ TAGS :=
TESTS := ./...
TESTFLAGS :=
LDFLAGS := -w -s -X github.com/k3d-io/k3d/v5/version.Version=${GIT_TAG} -X github.com/k3d-io/k3d/v5/version.K3sVersion=${K3S_TAG}
GCFLAGS :=
GCFLAGS :=
GOFLAGS := -mod=readonly
BINDIR := $(CURDIR)/bin
BINARIES := k3d

@ -491,7 +491,6 @@ func NodeStart(ctx context.Context, runtime runtimes.Runtime, node *k3d.Node, no
func enableFixes(ctx context.Context, runtime runtimes.Runtime, node *k3d.Node, nodeStartOpts *k3d.NodeStartOpts) error {
if node.Role == k3d.ServerRole || node.Role == k3d.AgentRole {
enabledFixes, anyEnabled := fixes.GetFixes(runtime)
// early exit if we don't need any fix

@ -75,7 +75,7 @@ func startContainer(ctx context.Context, ID string) error {
}
defer docker.Close()
return docker.ContainerStart(ctx, ID, types.ContainerStartOptions{})
return docker.ContainerStart(ctx, ID, container.StartOptions{})
}
// removeContainer deletes a running container (like docker rm -f)
@ -88,7 +88,7 @@ func removeContainer(ctx context.Context, ID string) error {
defer docker.Close()
// (1) define remove options
options := types.ContainerRemoveOptions{
options := container.RemoveOptions{
RemoveVolumes: true,
Force: true,
}
@ -146,7 +146,7 @@ func getNodeContainer(ctx context.Context, node *k3d.Node) (*types.Container, er
// -> user input may or may not have the "k3d-" prefix
filters.Add("name", fmt.Sprintf("^/?(%s-)?%s$", k3d.DefaultObjectNamePrefix, node.Name))
containers, err := docker.ContainerList(ctx, types.ContainerListOptions{
containers, err := docker.ContainerList(ctx, container.ListOptions{
Filters: filters,
All: true,
})

@ -119,7 +119,7 @@ func (d Docker) StartNode(ctx context.Context, node *k3d.Node) error {
// actually start the container
l.Log().Infof("Starting node '%s'", node.Name)
if err := docker.ContainerStart(ctx, nodeContainer.ID, types.ContainerStartOptions{}); err != nil {
if err := docker.ContainerStart(ctx, nodeContainer.ID, container.StartOptions{}); err != nil {
return fmt.Errorf("docker failed to start container for node '%s': %w", node.Name, err)
}
@ -181,7 +181,7 @@ func getContainersByLabel(ctx context.Context, labels map[string]string) ([]type
filters.Add("label", fmt.Sprintf("%s=%s", k, v))
}
containers, err := docker.ContainerList(ctx, types.ContainerListOptions{
containers, err := docker.ContainerList(ctx, container.ListOptions{
Filters: filters,
All: true,
})
@ -269,8 +269,8 @@ func (d Docker) NodeIsRunning(ctx context.Context, node *k3d.Node) (bool, error)
// GetNodeLogs returns the logs from a given node
func (d Docker) GetNodeLogs(ctx context.Context, node *k3d.Node, since time.Time, opts *runtimeTypes.NodeLogsOpts) (io.ReadCloser, error) {
// get the container for the given node
container, err := getNodeContainer(ctx, node)
// get the nodeContainer for the given node
nodeContainer, err := getNodeContainer(ctx, node)
if err != nil {
return nil, fmt.Errorf("failed to get container for node '%s': %w", node.Name, err)
}
@ -282,9 +282,9 @@ func (d Docker) GetNodeLogs(ctx context.Context, node *k3d.Node, since time.Time
}
defer docker.Close()
containerInspectResponse, err := docker.ContainerInspect(ctx, container.ID)
containerInspectResponse, err := docker.ContainerInspect(ctx, nodeContainer.ID)
if err != nil {
return nil, fmt.Errorf("failed ton inspect container '%s': %w", container.ID, err)
return nil, fmt.Errorf("failed ton inspect container '%s': %w", nodeContainer.ID, err)
}
if !containerInspectResponse.ContainerJSONBase.State.Running {
@ -295,9 +295,9 @@ func (d Docker) GetNodeLogs(ctx context.Context, node *k3d.Node, since time.Time
if !since.IsZero() {
sinceStr = since.Format("2006-01-02T15:04:05.999999999Z")
}
logreader, err := docker.ContainerLogs(ctx, container.ID, types.ContainerLogsOptions{ShowStdout: true, ShowStderr: true, Since: sinceStr, Follow: opts.Follow})
logreader, err := docker.ContainerLogs(ctx, nodeContainer.ID, container.LogsOptions{ShowStdout: true, ShowStderr: true, Since: sinceStr, Follow: opts.Follow})
if err != nil {
return nil, fmt.Errorf("docker failed to get logs from node '%s' (container '%s'): %w", node.Name, container.ID, err)
return nil, fmt.Errorf("docker failed to get logs from node '%s' (container '%s'): %w", node.Name, nodeContainer.ID, err)
}
return logreader, nil

@ -33,7 +33,7 @@ type Channel struct {
type ChannelServerResponse struct {
Channels []struct {
Channel `json:",squash"`
Channel `mapstructure:",squash"`
} `json:"data"`
}

@ -83,7 +83,7 @@ func MakeFakeMeminfo(memoryBytes int64, nodeName string) (string, error) {
return "", fmt.Errorf("failed to get fake meminfo path for node '%s': %w", nodeName, err)
}
fakememinfo, err := os.Create(fakeMeminfoPath)
defer fakememinfo.Close()
defer fakememinfo.Close() // nolint
if err != nil {
return "", fmt.Errorf("failed to create fake meminfo path '%s': %w", fakeMeminfoPath, err)
}

Loading…
Cancel
Save