mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-06 16:06:56 +00:00
* chore(deps): bump golang.org/x/crypto from 0.29.0 to 0.30.0 (#11712) Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.29.0 to 0.30.0. - [Commits](https://github.com/golang/crypto/compare/v0.29.0...v0.30.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Signed-off-by: Johann Schley <johann.schley@swisscom.com> * add test for apiCall default value Signed-off-by: Johann Schley <johann.schley@swisscom.com> * move fallback to default into fetch function Signed-off-by: Johann Schley <johann.schley@swisscom.com> * Update pkg/engine/apicall/apiCall.go improved log message text Signed-off-by: Jim Bugwadia <jim@nirmata.com> Signed-off-by: Johann Schley <johann.schley@swisscom.com> * Update pkg/engine/apicall/apiCall.go Signed-off-by: Jim Bugwadia <jim@nirmata.com> Signed-off-by: Johann Schley <johann.schley@swisscom.com> * address comments Signed-off-by: Johann Schley <johann.schley@swisscom.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Johann Schley <johann.schley@swisscom.com> Signed-off-by: Jim Bugwadia <jim@nirmata.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Johann Schley <johann.schley@swisscom.com> Co-authored-by: Jim Bugwadia <jim@nirmata.com> Co-authored-by: shuting <shuting@nirmata.com> Co-authored-by: Vishal Choudhary <vishal.choudhary@nirmata.com>
65 lines
1.6 KiB
Go
65 lines
1.6 KiB
Go
package loaders
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/go-logr/logr"
|
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
|
engineapi "github.com/kyverno/kyverno/pkg/engine/api"
|
|
"github.com/kyverno/kyverno/pkg/engine/apicall"
|
|
enginecontext "github.com/kyverno/kyverno/pkg/engine/context"
|
|
"github.com/kyverno/kyverno/pkg/engine/jmespath"
|
|
)
|
|
|
|
type apiLoader struct {
|
|
ctx context.Context //nolint:containedctx
|
|
logger logr.Logger
|
|
entry kyvernov1.ContextEntry
|
|
enginectx enginecontext.Interface
|
|
jp jmespath.Interface
|
|
client engineapi.RawClient
|
|
config apicall.APICallConfiguration
|
|
data []byte
|
|
}
|
|
|
|
func NewAPILoader(
|
|
ctx context.Context,
|
|
logger logr.Logger,
|
|
entry kyvernov1.ContextEntry,
|
|
enginectx enginecontext.Interface,
|
|
jp jmespath.Interface,
|
|
client engineapi.RawClient,
|
|
apiCallConfig apicall.APICallConfiguration,
|
|
) enginecontext.Loader {
|
|
return &apiLoader{
|
|
ctx: ctx,
|
|
logger: logger,
|
|
entry: entry,
|
|
enginectx: enginectx,
|
|
jp: jp,
|
|
client: client,
|
|
config: apiCallConfig,
|
|
}
|
|
}
|
|
|
|
func (a *apiLoader) HasLoaded() bool {
|
|
return a.data != nil
|
|
}
|
|
|
|
func (a *apiLoader) LoadData() error {
|
|
executor, err := apicall.New(a.logger, a.jp, a.entry, a.enginectx, a.client, a.config)
|
|
if err != nil {
|
|
return fmt.Errorf("failed to initiaize APICal: %w", err)
|
|
}
|
|
if a.data == nil {
|
|
var err error
|
|
if a.data, err = executor.Fetch(a.ctx); err != nil {
|
|
return fmt.Errorf("failed to fetch data for APICall: %w", err)
|
|
}
|
|
}
|
|
if _, err := executor.Store(a.data); err != nil {
|
|
return fmt.Errorf("failed to store data for APICall: %w", err)
|
|
}
|
|
return nil
|
|
}
|