mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
go.mod still declared `module github.com/hanzoai/deploy` after the repo was renamed. A Go module path is not cosmetic — it is the resolvable location. So `go get github.com/hanzoai/cd` could not work, and anything importing this module had to spell a name that no longer exists at that address. The build log of v3.6.0 is where it surfaced: the compiler was still emitting github.com/hanzoai/deploy/cmd/cd/commands. 3541 import paths across 690 .go, 19 .proto, 4 .yaml, 3 .sh, 2 .mod, Procfile and Makefile. Plus the 62 ghcr.io/hanzoai/deploy image references, moved to ghcr.io/hanzoai/cd to match hanzo.yml's build target — a distinct string from the module path, replaced separately so neither could clobber the other. go mod tidy clean, CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./... clean. Co-authored-by: Hanzo Dev <[email protected]>
42 lines
1.7 KiB
Go
42 lines
1.7 KiB
Go
package generators
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"sigs.k8s.io/controller-runtime/pkg/client"
|
|
|
|
argoprojiov1alpha1 "github.com/hanzoai/cd/pkg/apis/application/v1alpha1"
|
|
"github.com/hanzoai/cd/util/env"
|
|
)
|
|
|
|
// Generator defines the interface implemented by all ApplicationSet generators.
|
|
type Generator interface {
|
|
// GenerateParams interprets the ApplicationSet and generates all relevant parameters for the application template.
|
|
// The expected / desired list of parameters is returned, it then will be render and reconciled
|
|
// against the current state of the Applications in the cluster.
|
|
GenerateParams(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator, applicationSetInfo *argoprojiov1alpha1.ApplicationSet, client client.Client) ([]map[string]any, error)
|
|
|
|
// GetRequeueAfter is the generator can controller the next reconciled loop
|
|
// In case there is more then one generator the time will be the minimum of the times.
|
|
// In case NoRequeueAfter is empty, it will be ignored
|
|
GetRequeueAfter(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) time.Duration
|
|
|
|
// GetTemplate returns the inline template from the spec if there is any, or an empty object otherwise
|
|
GetTemplate(appSetGenerator *argoprojiov1alpha1.ApplicationSetGenerator) *argoprojiov1alpha1.ApplicationSetTemplate
|
|
}
|
|
|
|
var (
|
|
ErrEmptyAppSetGenerator = errors.New("ApplicationSet is empty")
|
|
NoRequeueAfter time.Duration
|
|
)
|
|
|
|
const (
|
|
DefaultRequeueAfter = 3 * time.Minute
|
|
)
|
|
|
|
func getDefaultRequeueAfter() time.Duration {
|
|
// Default is 3 minutes, min is 1 second, max is 1 year
|
|
return env.ParseDurationFromEnv("CD_APPLICATIONSET_CONTROLLER_REQUEUE_AFTER", DefaultRequeueAfter, 1*time.Second, 8760*time.Hour)
|
|
}
|