Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
75db015
feat: implement DVP provisioning strategy with bootstrap and teardown…
fastrapier Jun 11, 2026
5151973
feat: refactor cluster provider package and add DVP provisioning stra…
fastrapier Jun 13, 2026
988b4f5
feat: add module pull override resolution with error reporting
fastrapier Jun 13, 2026
fddfbdd
feat: rename teardown method to remove and update related references
fastrapier Jun 13, 2026
a989cd1
feat: add OpenTunnel method for SSH tunnel establishment and enhance …
fastrapier Jun 14, 2026
2b4b3ef
feat: enhance DVP cluster connection and module readiness verification
fastrapier Jun 14, 2026
6bbba10
feat: refactor SSH tunnel connection and kubeconfig loading for impro…
fastrapier Jun 14, 2026
ff41d9d
feat: add namespace configuration for DVP test cluster and ensure its…
fastrapier Jun 14, 2026
8ecfb22
feat: improve kubeconfig path handling and enhance module readiness v…
fastrapier Jun 15, 2026
797e756
feat: rename New function to NewClusterConfig for clarity and update …
fastrapier Jun 15, 2026
9a182ef
feat: simplify registry constructor and enhance thread safety for pro…
fastrapier Jun 15, 2026
903c40b
feat: clean up comments and improve readability in module overrides
fastrapier Jun 15, 2026
d2e5552
feat: refactor LoadClusterDefinition and Validate functions for impro…
fastrapier Jun 15, 2026
677ba30
feat: enhance error handling and improve variable naming for clarity
fastrapier Jun 16, 2026
37cdb02
Potential fix for pull request finding
fastrapier Jun 16, 2026
e93b543
Potential fix for pull request finding
fastrapier Jun 16, 2026
f5a3946
Potential fix for pull request finding
fastrapier Jun 16, 2026
4af6202
Potential fix for pull request finding
fastrapier Jun 16, 2026
aa621b4
Potential fix for pull request finding
fastrapier Jun 16, 2026
face18f
feat: improve error logging by adding structured error context and en…
fastrapier Jun 16, 2026
e5c8cbe
Merge remote-tracking branch 'origin/feat/cluster-provider' into feat…
fastrapier Jun 16, 2026
3104bd3
Enhance documentation and comments for cluster provider configuration…
fastrapier Jun 16, 2026
819dc52
Update go.mod and go.sum to remove unused dependencies and add new ones
fastrapier Jun 16, 2026
4777025
Refactor error logging in main.go for improved clarity and update gol…
fastrapier Jun 16, 2026
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
2 changes: 2 additions & 0 deletions .github/workflows/go-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
# Required by actions/upload-code-coverage (GitHub Code Quality coverage,
# public preview). Without it the upload step fails with insufficient scope.
code-quality: write
steps:
- name: Checkout repository
Expand Down
14 changes: 13 additions & 1 deletion .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ linters:
- nilerr # return nil after a non-nil error check, and vice versa

# Public API / style hygiene.
- revive # broad style linter; flags missing docs on exported symbols
- revive # broad style linter; flags missing docs on exported pkg/ symbols
- unparam # unused function parameters/results (cleaner public API)
- unconvert # remove unnecessary type conversions
- predeclared # don't shadow predeclared identifiers (e.g. error, len)
Expand Down Expand Up @@ -50,6 +50,8 @@ linters:
- fieldalignment # too noisy; not worth the churn for a test library
revive:
rules:
# Doc comments are enforced on exported symbols, but only for the public
# pkg/ API (see exclusions below). internal/ favors self-documenting code.
- name: exported
arguments:
- disableStutteringCheck
Expand Down Expand Up @@ -104,6 +106,16 @@ linters:
- revive
text: "should not use dot imports"
source: 'ginkgo|gomega'
# Doc comments are only required for the public pkg/ API; relax the
# exported/package-comments revive rules everywhere under internal/.
- path: internal/
linters:
- revive
text: "should have comment or be unexported|comment on exported .* should be of the form|should have a package comment"

issues:
max-issues-per-linter: 0
max-same-issues: 0

formatters:
enable:
Expand Down
42 changes: 42 additions & 0 deletions cmd/bootstrap-cluster/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package main

import (
"context"
"log"
"time"

"github.com/deckhouse/storage-e2e/internal/logger"
"github.com/deckhouse/storage-e2e/pkg/clusterprovider/registry"

"github.com/deckhouse/storage-e2e/pkg/clusterprovider"
)

func main() {
slogger := logger.GetLogger()

cfg, err := clusterprovider.NewClusterConfig()
if err != nil {
slogger.Error("failed to initialize config", "err", err)
return
}

newProvider, registryGetErr := registry.DefaultRegistry.Get(cfg.ClusterProvider)
if registryGetErr != nil {
log.Fatal("failed to get provider", registryGetErr)
}

clusterProvider, err := newProvider(slogger, cfg)
if err != nil {
slogger.Error("failed to build provider", "err", err)
return
}

bootstrapCtx, bootstrapCancel := context.WithTimeout(context.Background(), time.Minute*45)
defer bootstrapCancel()

bootstrapErr := clusterProvider.Bootstrap(bootstrapCtx)
if bootstrapErr != nil {
slogger.Error("failed to bootstrap cluster", "err", bootstrapErr)
return
}
}
37 changes: 37 additions & 0 deletions cmd/remove-cluster/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package main

import (
"context"

"github.com/deckhouse/storage-e2e/internal/logger"
"github.com/deckhouse/storage-e2e/pkg/clusterprovider/registry"

"github.com/deckhouse/storage-e2e/pkg/clusterprovider"
)

func main() {
slogger := logger.GetLogger()
cfg, err := clusterprovider.NewClusterConfig()
if err != nil {
slogger.Error("failed to initialize config", "error", err)
return
}

newProvider, registryGetErr := registry.DefaultRegistry.Get(cfg.ClusterProvider)
if registryGetErr != nil {
slogger.Error("failed to get provider", "error", registryGetErr)
return
}

clusterProvider, err := newProvider(slogger, cfg)
if err != nil {
slogger.Error("failed to build provider", "error", err)
return
}

teardownErr := clusterProvider.Remove(context.Background())
if teardownErr != nil {
slogger.Error("failed to tear down cluster", "error", teardownErr)
return
}
}
Loading
Loading