-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add helpers to easily configure validator plugins (#62)
* feat: implement configureBaseValidator and configureVspherePlugin functions * feat: implement configureNetworkPlugin functions * feat: implement configureOciPlugin functions * refactor: pass in the file we want to save directly to SaveValidatorConfig * fix: ensure we have different names for our validatorctl config and our validator config * chore: ensure bin directory is not created in workspace because no bins are needed * feat: add support for watching validation results * feat: update WatchValidationResult to work with a taskConfig * chore: fix method signatures to not have unnecesary returns
- Loading branch information
1 parent
9698478
commit ae596d3
Showing
8 changed files
with
292 additions
and
24 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package components | ||
|
||
import ( | ||
"fmt" | ||
|
||
network_api "github.com/validator-labs/validator-plugin-network/api/v1alpha1" | ||
vapi "github.com/validator-labs/validator/api/v1alpha1" | ||
|
||
cfg "github.com/validator-labs/validatorctl/pkg/config" | ||
) | ||
|
||
type NetworkConfig struct { | ||
VcenterServer string | ||
IPRangeRules []network_api.IPRangeRule | ||
TCPConnRules []network_api.TCPConnRule | ||
} | ||
|
||
func ConfigureNetworkPlugin(vc *ValidatorConfig, config NetworkConfig) { | ||
vc.NetworkPlugin = &NetworkPluginConfig{ | ||
Enabled: true, | ||
Release: &vapi.HelmRelease{ | ||
Chart: vapi.HelmChart{ | ||
Name: cfg.ValidatorPluginNetwork, | ||
Repository: fmt.Sprintf("%s/%s", cfg.ValidatorHelmRepository, cfg.ValidatorPluginNetwork), | ||
Version: cfg.ValidatorChartVersions[cfg.ValidatorPluginNetwork], | ||
InsecureSkipTlsVerify: true, | ||
}, | ||
}, | ||
ReleaseSecret: &Secret{ | ||
Name: fmt.Sprintf("validator-helm-release-%s", cfg.ValidatorPluginNetwork), | ||
}, | ||
Validator: &network_api.NetworkValidatorSpec{ | ||
IPRangeRules: config.IPRangeRules, | ||
TCPConnRules: config.TCPConnRules, | ||
}, | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package components | ||
|
||
import ( | ||
"fmt" | ||
|
||
oci_api "github.com/validator-labs/validator-plugin-oci/api/v1alpha1" | ||
vapi "github.com/validator-labs/validator/api/v1alpha1" | ||
|
||
cfg "github.com/validator-labs/validatorctl/pkg/config" | ||
) | ||
|
||
type OciConfig struct { | ||
// HostRefs is a map of hostnames to a list of artifact references | ||
HostRefs map[string][]string | ||
} | ||
|
||
func ConfigureOciPlugin(vc *ValidatorConfig, config OciConfig) { | ||
vc.OCIPlugin = &OCIPluginConfig{ | ||
Enabled: true, | ||
Release: &vapi.HelmRelease{ | ||
Chart: vapi.HelmChart{ | ||
Name: cfg.ValidatorPluginOci, | ||
Repository: fmt.Sprintf("%s/%s", cfg.ValidatorHelmRepository, cfg.ValidatorPluginOci), | ||
Version: cfg.ValidatorChartVersions[cfg.ValidatorPluginOci], | ||
InsecureSkipTlsVerify: true, | ||
}, | ||
}, | ||
ReleaseSecret: &Secret{ | ||
Name: fmt.Sprintf("validator-helm-release-%s", cfg.ValidatorPluginOci), | ||
}, | ||
Validator: &oci_api.OciValidatorSpec{ | ||
OciRegistryRules: generateOciRegistryRules(config.HostRefs), | ||
}, | ||
} | ||
} | ||
|
||
func generateOciRegistryRules(hostRefs map[string][]string) []oci_api.OciRegistryRule { | ||
var rules []oci_api.OciRegistryRule | ||
for host, refs := range hostRefs { | ||
rule := oci_api.OciRegistryRule{ | ||
RuleName: fmt.Sprintf("artifacts on %s", host), | ||
Host: host, | ||
} | ||
|
||
artifacts := []oci_api.Artifact{} | ||
for _, ref := range refs { | ||
artifacts = append(artifacts, oci_api.Artifact{ | ||
Ref: ref, | ||
LayerValidation: true, | ||
}) | ||
} | ||
rule.Artifacts = artifacts | ||
|
||
rules = append(rules, rule) | ||
} | ||
return rules | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.