Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions integration/proxy/automaticupgrades_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ import (
"github.com/gravitational/teleport"
"github.com/gravitational/teleport/api/client/proto"
"github.com/gravitational/teleport/integration/helpers"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/basichttp"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/lib/automaticupgrades"
"github.com/gravitational/teleport/lib/automaticupgrades/basichttp"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
"github.com/gravitational/teleport/lib/service/servicecfg"
"github.com/gravitational/teleport/lib/utils"
)
Expand Down
11 changes: 6 additions & 5 deletions integrations/kube-agent-updater/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,14 @@ WORKDIR /go/src/github.com/gravitational/teleport/integrations/kube-agent-update
COPY go.mod go.mod
COPY go.sum go.sum

# Download and Cache dependencies before building and copying source
# This will prevent re-downloading the operator's dependencies if they have not changed as this
# `run` layer will be cached
# We have to copy the API before `go mod download` because go.mod has a replace directive for it
COPY api/ api/

RUN go mod download

COPY cmd/ cmd/
COPY pkg/ pkg/
# Copy in code
COPY lib/ lib/
COPY integrations/kube-agent-updater/ integrations/kube-agent-updater/

ARG TARGETOS
ARG TARGETARCH
Expand Down
2 changes: 1 addition & 1 deletion integrations/kube-agent-updater/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ test: pkg/img/cosign_fixtures_test.go
.PHONY: docker-build
docker-build: ## Build docker image
docker buildx build --platform="$(OS)/$(ARCH)" --build-arg BUILDBOX=$(BUILDBOX) \
-t ${IMG} --load ./ -f ./Dockerfile
-t ${IMG} --load ../.. -f ./Dockerfile

.PHONY: docker-push
docker-push: ## Push docker image
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ import (
kubeversionupdater "github.com/gravitational/teleport/integrations/kube-agent-updater"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/controller"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/img"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
podmaintenance "github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

var (
Expand Down Expand Up @@ -128,8 +129,8 @@ func main() {
versionGetter := version.NewBasicHTTPVersionGetter(versionServerURL)
maintenanceTriggers := maintenance.Triggers{
maintenance.NewBasicHTTPMaintenanceTrigger("critical update", versionServerURL),
maintenance.NewUnhealthyWorkloadTrigger("unhealthy pods", mgr.GetClient()),
maintenance.NewWindowTrigger("maintenance window", mgr.GetClient()),
podmaintenance.NewUnhealthyWorkloadTrigger("unhealthy pods", mgr.GetClient()),
podmaintenance.NewWindowTrigger("maintenance window", mgr.GetClient()),
}

var imageValidators img.Validators
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import (
kclient "sigs.k8s.io/controller-runtime/pkg/client"
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

// DeploymentVersionUpdater Reconciles a podSpec by changing its image
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import (
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/podutils"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

type StatefulSetVersionUpdater struct {
Expand Down
4 changes: 2 additions & 2 deletions integrations/kube-agent-updater/pkg/controller/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import (
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/img"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

type VersionUpdater struct {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ import (
core "k8s.io/api/core/v1"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/img"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion integrations/kube-agent-updater/pkg/controller/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

func getWorkloadVersion(podSpec v1.PodSpec) (string, error) {
Expand Down
3 changes: 2 additions & 1 deletion integrations/kube-agent-updater/pkg/maintenance/unhealthy.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import (
kclient "sigs.k8s.io/controller-runtime/pkg/client"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/podutils"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
)

// unhealthyWorkloadTrigger allows a maintenance to start if the workload is
Expand Down Expand Up @@ -99,7 +100,7 @@ func (u unhealthyWorkloadTrigger) isWorkloadUnhealthy(ctx context.Context, names

// NewUnhealthyWorkloadTrigger triggers a maintenance if the watched workload
// is unhealthy.
func NewUnhealthyWorkloadTrigger(name string, client kclient.Client) Trigger {
func NewUnhealthyWorkloadTrigger(name string, client kclient.Client) maintenance.Trigger {
return unhealthyWorkloadTrigger{
name: name,
Client: client,
Expand Down
4 changes: 3 additions & 1 deletion integrations/kube-agent-updater/pkg/maintenance/window.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import (
v1 "k8s.io/api/core/v1"
kclient "sigs.k8s.io/controller-runtime/pkg/client"
ctrllog "sigs.k8s.io/controller-runtime/pkg/log"

"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
)

const maintenanceScheduleKeyName = "agent-maintenance-schedule"
Expand Down Expand Up @@ -126,7 +128,7 @@ func (w windowRepr) inWindow(now time.Time) bool {

// NewWindowTrigger returns a new Trigger validating if the agent is within its
// maintenance window.
func NewWindowTrigger(name string, client kclient.Client) Trigger {
func NewWindowTrigger(name string, client kclient.Client) maintenance.Trigger {
return windowTrigger{
name: name,
Client: client,
Expand Down
4 changes: 2 additions & 2 deletions lib/automaticupgrades/channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ import (

"github.com/gravitational/teleport"
"github.com/gravitational/teleport/api/client/proto"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

const (
Expand Down
6 changes: 3 additions & 3 deletions lib/automaticupgrades/channel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ import (

"github.com/gravitational/teleport"
"github.com/gravitational/teleport/api/client/proto"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/maintenance"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
"github.com/gravitational/teleport/lib/automaticupgrades/maintenance"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

const testVersion = "v1.2.3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ import (
"github.com/gravitational/trace"
"sigs.k8s.io/controller-runtime/pkg/client"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/basichttp"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/cache"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/lib/automaticupgrades/basichttp"
"github.com/gravitational/teleport/lib/automaticupgrades/cache"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
)

// basicHTTPMaintenanceClient retrieves whether the target version represents a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ import (
"github.com/gravitational/trace"
"github.com/stretchr/testify/require"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/basichttp"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
basichttp2 "github.com/gravitational/teleport/lib/automaticupgrades/basichttp"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
)

const basicHTTPTestPath = "/v1/cloud-stable"

func Test_basicHTTPMaintenanceClient_Get(t *testing.T) {
mock := basichttp.NewServerMock(basicHTTPTestPath + "/" + constants.MaintenancePath)
mock := basichttp2.NewServerMock(basicHTTPTestPath + "/" + constants.MaintenancePath)
t.Cleanup(mock.Srv.Close)
serverURL, err := url.Parse(mock.Srv.URL)
serverURL.Path = basicHTTPTestPath
Expand Down Expand Up @@ -97,7 +97,7 @@ func Test_basicHTTPMaintenanceClient_Get(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
b := &basicHTTPMaintenanceClient{
baseURL: serverURL,
client: &basichttp.Client{Client: mock.Srv.Client()},
client: &basichttp2.Client{Client: mock.Srv.Client()},
}
mock.SetResponse(t, tt.statusCode, tt.response)
result, err := b.Get(ctx)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ import (

"github.com/gravitational/trace"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/basichttp"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/cache"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/lib/automaticupgrades/basichttp"
"github.com/gravitational/teleport/lib/automaticupgrades/cache"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
)

// basicHTTPVersionClient retrieves the version from an HTTP endpoint
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,14 @@ import (
"github.com/gravitational/trace"
"github.com/stretchr/testify/require"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/basichttp"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
basichttp2 "github.com/gravitational/teleport/lib/automaticupgrades/basichttp"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
)

const basicHTTPTestPath = "/v1/cloud-stable"

func Test_basicHTTPVersionClient_Get(t *testing.T) {
mock := basichttp.NewServerMock(basicHTTPTestPath + "/" + constants.VersionPath)
mock := basichttp2.NewServerMock(basicHTTPTestPath + "/" + constants.VersionPath)
t.Cleanup(mock.Srv.Close)
serverURL, err := url.Parse(mock.Srv.URL)
serverURL.Path = basicHTTPTestPath
Expand Down Expand Up @@ -92,7 +92,7 @@ func Test_basicHTTPVersionClient_Get(t *testing.T) {
t.Run(tt.name, func(t *testing.T) {
b := &basicHTTPVersionClient{
baseURL: serverURL,
client: &basichttp.Client{Client: mock.Srv.Client()},
client: &basichttp2.Client{Client: mock.Srv.Client()},
}
mock.SetResponse(t, tt.statusCode, tt.response)
result, err := b.Get(ctx)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import (
"fmt"
"strings"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
)

// StaticGetter is a fake version.Getter that return a static answer. This is used
Expand Down
4 changes: 2 additions & 2 deletions lib/web/automaticupgrades.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ import (
"github.com/gravitational/trace"
"github.com/julienschmidt/httprouter"

"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/constants"
"github.com/gravitational/teleport/integrations/kube-agent-updater/pkg/version"
"github.com/gravitational/teleport/lib/automaticupgrades"
"github.com/gravitational/teleport/lib/automaticupgrades/constants"
"github.com/gravitational/teleport/lib/automaticupgrades/version"
)

const defaultChannelTimeout = 5 * time.Second
Expand Down