Ver Fonte

Merge pull request #2703 from porter-dev/nafees/worker-culling-configurable-revisions

Make revisions count configurable for helm revisions worker job
Mohammed Nafees há 3 anos atrás
pai
commit
c7b584efb0
2 ficheiros alterados com 11 adições e 7 exclusões
  1. 9 7
      workers/jobs/helm_revisions_count_tracker.go
  2. 2 0
      workers/main.go

+ 9 - 7
workers/jobs/helm_revisions_count_tracker.go

@@ -60,6 +60,7 @@ type helmRevisionsCountTracker struct {
 	awsRegion          string
 	s3BucketName       string
 	encryptionKey      *[32]byte
+	revisionsCount     int
 }
 
 // HelmRevisionsCountTrackerOpts holds the options required to run this job
@@ -74,6 +75,7 @@ type HelmRevisionsCountTrackerOpts struct {
 	AWSRegion          string
 	S3BucketName       string
 	EncryptionKey      string
+	RevisionsCount     int
 }
 
 func NewHelmRevisionsCountTracker(
@@ -115,7 +117,7 @@ func NewHelmRevisionsCountTracker(
 	return &helmRevisionsCountTracker{
 		enqueueTime, db, repo, doConf, opts.DBConf, credBackend,
 		opts.AWSAccessKeyID, opts.AWSSecretAccessKey, opts.AWSRegion,
-		opts.S3BucketName, &s3Key,
+		opts.S3BucketName, &s3Key, opts.RevisionsCount,
 	}, nil
 }
 
@@ -237,19 +239,19 @@ func (t *helmRevisionsCountTracker) Run() error {
 							continue
 						}
 
-						if len(revisions) <= 20 {
-							log.Printf("release %s of namespace %s in cluster ID %d has <= 20 revisions. "+
-								"skipping release...", rel.Name, ns.Name, cluster.ID)
+						if len(revisions) <= t.revisionsCount {
+							log.Printf("release %s of namespace %s in cluster ID %d has <= %d revisions. "+
+								"skipping release...", t.revisionsCount, rel.Name, ns.Name, cluster.ID)
 							continue
 						}
 
-						log.Printf("release %s of namespace %s in cluster ID %d has more than 20 revisions. attempting to "+
-							"delete the older ones.", rel.Name, ns.Name, cluster.ID)
+						log.Printf("release %s of namespace %s in cluster ID %d has more than %d revisions. attempting to "+
+							"delete the older ones.", t.revisionsCount, rel.Name, ns.Name, cluster.ID)
 
 						// sort revisions from newest to oldest
 						releaseutil.Reverse(revisions, releaseutil.SortByRevision)
 
-						for i := 20; i < len(revisions); i += 1 {
+						for i := t.revisionsCount; i < len(revisions); i += 1 {
 							rev := revisions[i]
 
 							// store the revision in the s3 bucket before deleting it

+ 2 - 0
workers/main.go

@@ -56,6 +56,8 @@ type EnvConf struct {
 	LegacyProjectIDs []uint `env:"LEGACY_PROJECT_IDS"`
 
 	Port uint `env:"PORT,default=3000"`
+
+	RevisionsCount int `env:"REVISIONS_COUNT,default=20"`
 }
 
 func main() {