diff --git a/controllers/constants/constants.go b/controllers/constants/constants.go index cfe27514..7b0f4ed6 100644 --- a/controllers/constants/constants.go +++ b/controllers/constants/constants.go @@ -35,3 +35,14 @@ const ( ModelRegistryModelVersionIdLabel = "modelregistry.opendatahub.io/model-version-id" ModelRegistryRegisteredModelIdLabel = "modelregistry.opendatahub.io/registered-model-id" ) + +const ( + KServeCACertFileName = "cabundle.crt" + KServeCACertConfigMapName = "odh-kserve-custom-ca-bundle" + ODHGlobalCertConfigMapName = "odh-trusted-ca-bundle" + ODHCustomCACertFileName = "odh-ca-bundle.crt" +) + +const ( + DefaultStorageConfig = "storage-config" +) diff --git a/controllers/kserve_customcacert_controller.go b/controllers/kserve_customcacert_controller.go new file mode 100644 index 00000000..637c1f71 --- /dev/null +++ b/controllers/kserve_customcacert_controller.go @@ -0,0 +1,227 @@ +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controllers + +import ( + "context" + "reflect" + + "github.com/go-logr/logr" + "github.com/opendatahub-io/odh-model-controller/controllers/constants" + "github.com/opendatahub-io/odh-model-controller/controllers/utils" + corev1 "k8s.io/api/core/v1" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/event" + "sigs.k8s.io/controller-runtime/pkg/predicate" +) + +const ( + kserveCustomCACertConfigMapName = constants.KServeCACertConfigMapName + kserveCustomCACertFileName = constants.KServeCACertFileName + odhGlobalCACertConfigMapName = constants.ODHGlobalCertConfigMapName +) + +type KServeCustomCACertReconciler struct { + client.Client + Scheme *runtime.Scheme + Log logr.Logger +} + +// reconcileConfigMap watch odh global ca cert and it will create/update/delete kserve custom cert configmap +func (r *KServeCustomCACertReconciler) reconcileConfigMap(configmap *corev1.ConfigMap, ctx context.Context, log logr.Logger) error { + + var odhCustomCertData string + // If kserve custom cert configmap changed, rollback it + if configmap.Name == kserveCustomCACertConfigMapName { + odhCustomCertConfigMap := &corev1.ConfigMap{} + err := r.Get(ctx, types.NamespacedName{Name: odhGlobalCACertConfigMapName, Namespace: configmap.Namespace}, odhCustomCertConfigMap) + if err != nil { + return err + } + configmap = odhCustomCertConfigMap + } + odhCustomCertData = configmap.Data[constants.ODHCustomCACertFileName] + + // Create Desired resource + configData := map[string]string{kserveCustomCACertFileName: odhCustomCertData} + desiredResource := getDesiredCaCertConfigMapForKServe(kserveCustomCACertConfigMapName, configmap.Namespace, configData) + + // Get Existing resource + existingResource := &corev1.ConfigMap{} + err := r.Get(ctx, types.NamespacedName{Name: kserveCustomCACertConfigMapName, Namespace: configmap.Namespace}, existingResource) + if err != nil { + if apierrs.IsNotFound(err) { + existingResource = nil + } else { + return err + } + } + // Process Delta + if err = r.processDelta(ctx, log, desiredResource, existingResource); err != nil { + return err + } + return nil + +} + +func checkOpenDataHubGlobalCertCAConfigMapName(objectName string) bool { + return objectName == odhGlobalCACertConfigMapName || objectName == kserveCustomCACertConfigMapName +} + +// reconcileOpenDataHubGlobalCertConfigMap filters out all ConfigMaps that are not the OpenDataHub global certificate ConfigMap. +func reconcileOpenDataHubGlobalCACertConfigMap() predicate.Predicate { + return predicate.Funcs{ + CreateFunc: func(e event.CreateEvent) bool { + objectName := e.Object.GetName() + return checkOpenDataHubGlobalCertCAConfigMapName(objectName) + }, + DeleteFunc: func(e event.DeleteEvent) bool { + objectName := e.Object.GetName() + return checkOpenDataHubGlobalCertCAConfigMapName(objectName) + }, + UpdateFunc: func(e event.UpdateEvent) bool { + objectName := e.ObjectNew.GetName() + return checkOpenDataHubGlobalCertCAConfigMapName(objectName) + }, + } +} + +func (r *KServeCustomCACertReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { + // Initialize logger format + log := r.Log.WithValues("ConfigMap", req.Name, "namespace", req.Namespace) + + configmap := &corev1.ConfigMap{} + err := r.Get(ctx, req.NamespacedName, configmap) + if err != nil && apierrs.IsNotFound(err) { + log.Info("Opendatahub global cert ConfigMap not found") + configmap.Namespace = req.Namespace + } else if err != nil { + log.Error(err, "Unable to fetch the ConfigMap") + return ctrl.Result{}, err + } + + err = r.reconcileConfigMap(configmap, ctx, log) + if err != nil { + return ctrl.Result{}, err + } + return ctrl.Result{}, nil +} + +// SetupWithManager sets up the controller with the Manager. +func (r *KServeCustomCACertReconciler) SetupWithManager(mgr ctrl.Manager) error { + // Create a builder that only watch OpenDataHub global certificate ConfigMap + builder := ctrl.NewControllerManagedBy(mgr). + For(&corev1.ConfigMap{}). + WithEventFilter(reconcileOpenDataHubGlobalCACertConfigMap()) + err := builder.Complete(r) + if err != nil { + return err + } + return nil +} + +func getDesiredCaCertConfigMapForKServe(configmapName string, namespace string, caCertData map[string]string) *corev1.ConfigMap { + desiredConfigMap := &corev1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: configmapName, + Namespace: namespace, + Labels: map[string]string{"opendatahub.io/managed": "true"}, + }, + Data: caCertData, + } + + return desiredConfigMap +} + +func (r *KServeCustomCACertReconciler) processDelta(ctx context.Context, log logr.Logger, desiredConfigMap *corev1.ConfigMap, existingConfigMap *corev1.ConfigMap) (err error) { + hasChanged := false + + if isAdded(desiredConfigMap, existingConfigMap) { + hasChanged = true + log.V(1).Info("Delta found", "create", desiredConfigMap.GetName()) + if err = r.Create(ctx, desiredConfigMap); err != nil { + return err + } + } + + if isUpdated(desiredConfigMap, existingConfigMap) { + hasChanged = true + log.V(1).Info("Delta found", "update", existingConfigMap.GetName()) + rp := desiredConfigMap.DeepCopy() + rp.Labels = existingConfigMap.Labels + + if err = r.Update(ctx, rp); err != nil { + return err + } + } + + if isRemoved(desiredConfigMap, existingConfigMap) { + hasChanged = true + log.V(1).Info("Delta found", "delete", existingConfigMap.GetName()) + if err = r.Delete(ctx, existingConfigMap); err != nil { + return err + } + } + + if !hasChanged { + log.V(1).Info("No delta found") + return nil + } + + if err := r.deleteStorageSecret(ctx, desiredConfigMap.Namespace); err != nil { + log.Error(err, "Failed to delete the storage-config secret to update the custom cert") + return err + } + log.V(1).Info("Deleted the storage-config Secret to update the custom cert") + + return nil +} + +// This section is intended for regenerating StorageSecret using new data. +func (r *KServeCustomCACertReconciler) deleteStorageSecret(ctx context.Context, namespace string) error { + foundStorageSecret := &corev1.Secret{} + + err := r.Get(ctx, types.NamespacedName{ + Name: constants.DefaultStorageConfig, + Namespace: namespace, + }, foundStorageSecret) + + if err == nil && foundStorageSecret.Labels["opendatahub.io/managed"] == "true" { + err = r.Delete(ctx, foundStorageSecret) + if err != nil { + return err + } + } + + return nil +} + +func isAdded(desiredConfigMap *corev1.ConfigMap, existingConfigMap *corev1.ConfigMap) bool { + return desiredConfigMap.Data[kserveCustomCACertFileName] != "" && utils.IsNil(existingConfigMap) +} + +func isUpdated(desiredConfigMap *corev1.ConfigMap, existingConfigMap *corev1.ConfigMap) bool { + return utils.IsNotNil(existingConfigMap) && desiredConfigMap.Data[kserveCustomCACertFileName] != "" && !reflect.DeepEqual(desiredConfigMap.Data, existingConfigMap.Data) +} + +func isRemoved(desiredConfigMap *corev1.ConfigMap, existingConfigMap *corev1.ConfigMap) bool { + return utils.IsNotNil(existingConfigMap) && desiredConfigMap.Data[kserveCustomCACertFileName] == "" +} diff --git a/controllers/kserve_customcacert_controller_test.go b/controllers/kserve_customcacert_controller_test.go new file mode 100644 index 00000000..f8a4970e --- /dev/null +++ b/controllers/kserve_customcacert_controller_test.go @@ -0,0 +1,100 @@ +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package controllers + +import ( + "context" + "reflect" + "time" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/opendatahub-io/odh-model-controller/controllers/constants" + corev1 "k8s.io/api/core/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +const ( + odhtrustedcabundleConfigMapUpdatedPath = "./testdata/configmaps/odh-trusted-ca-bundle-configmap-updated.yaml" + kservecustomcacertConfigMapUpdatedPath = "./testdata/configmaps/odh-kserve-custom-ca-cert-configmap-updated.yaml" +) + +var _ = Describe("KServe Custom CA Cert ConfigMap controller", func() { + ctx := context.Background() + + Context("when a configmap 'odh-trusted-ca-bundle' exists", func() { + It("should create a configmap that is for kserve custom ca cert", func() { + By("creating odh-trusted-ca-bundle configmap") + odhtrustedcacertConfigMap := &corev1.ConfigMap{} + err := convertToStructuredResource(odhtrustedcabundleConfigMapPath, odhtrustedcacertConfigMap) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Create(ctx, odhtrustedcacertConfigMap)).Should(Succeed()) + + _, err = waitForConfigMap(cli, WorkingNamespace, constants.KServeCACertConfigMapName, 30*time.Second) + Expect(err).NotTo(HaveOccurred()) + }) + }) + + Context("when a configmap 'odh-trusted-ca-bundle' updated", func() { + It("should update kserve custom cert configmap", func() { + By("creating odh-trusted-ca-bundle configmap") + odhtrustedcacertConfigMap := &corev1.ConfigMap{} + err := convertToStructuredResource(odhtrustedcabundleConfigMapPath, odhtrustedcacertConfigMap) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Create(ctx, odhtrustedcacertConfigMap)).Should(Succeed()) + + _, err = waitForConfigMap(cli, WorkingNamespace, constants.KServeCACertConfigMapName, 30*time.Second) + Expect(err).NotTo(HaveOccurred()) + + By("updating odh-trusted-ca-bundle configmap") + updatedOdhtrustedcacertConfigMap := &corev1.ConfigMap{} + err = convertToStructuredResource(odhtrustedcabundleConfigMapUpdatedPath, updatedOdhtrustedcacertConfigMap) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Update(ctx, updatedOdhtrustedcacertConfigMap)).Should(Succeed()) + + // Wait for updating ConfigMap + time.Sleep(1 * time.Second) + kserveCACertConfigmap, err := waitForConfigMap(cli, WorkingNamespace, constants.KServeCACertConfigMapName, 30*time.Second) + Expect(err).NotTo(HaveOccurred()) + expectedKserveCACertConfigmap := &corev1.ConfigMap{} + err = convertToStructuredResource(kservecustomcacertConfigMapUpdatedPath, expectedKserveCACertConfigmap) + Expect(err).NotTo(HaveOccurred()) + + Expect(compareConfigMap(kserveCACertConfigmap, expectedKserveCACertConfigmap)).Should((BeTrue())) + }) + }) +}) + +func waitForConfigMap(cli client.Client, namespace, configmapName string, timeout time.Duration) (*corev1.ConfigMap, error) { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + + for { + configmap := &corev1.ConfigMap{} + err := cli.Get(ctx, client.ObjectKey{Namespace: namespace, Name: configmapName}, configmap) + if err != nil { + time.Sleep(1 * time.Second) + continue + } + return configmap, nil + } +} + +// compareConfigMap checks if two ConfigMap data are equal, if not return false +func compareConfigMap(s1 *corev1.ConfigMap, s2 *corev1.ConfigMap) bool { + // Two ConfigMap will be equal if the data is identical + return reflect.DeepEqual(s1.Data, s2.Data) +} diff --git a/controllers/storageconfig_controller.go b/controllers/storageconfig_controller.go index 6f29cc90..2e7fd81c 100644 --- a/controllers/storageconfig_controller.go +++ b/controllers/storageconfig_controller.go @@ -21,6 +21,7 @@ import ( "reflect" "github.com/go-logr/logr" + "github.com/opendatahub-io/odh-model-controller/controllers/constants" corev1 "k8s.io/api/core/v1" apierrs "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" @@ -33,7 +34,7 @@ import ( ) const ( - storageSecretName = "storage-config" + storageSecretName = constants.DefaultStorageConfig ) type StorageSecretReconciler struct { @@ -44,7 +45,7 @@ type StorageSecretReconciler struct { // newStorageSecret takes a list of data connection secrets and generates a single storage config secret // https://github.com/kserve/modelmesh-serving/blob/main/docs/predictors/setup-storage.md -func newStorageSecret(dataConnectionSecretsList *corev1.SecretList) *corev1.Secret { +func newStorageSecret(dataConnectionSecretsList *corev1.SecretList, odhCustomCertData string) *corev1.Secret { desiredSecret := &corev1.Secret{} desiredSecret.Data = map[string][]byte{} dataConnectionElement := map[string]string{} @@ -59,8 +60,10 @@ func newStorageSecret(dataConnectionSecretsList *corev1.SecretList) *corev1.Secr dataConnectionElement["default_bucket"] = string(secret.Data["AWS_S3_BUCKET"]) dataConnectionElement["bucket"] = string(secret.Data["AWS_S3_BUCKET"]) dataConnectionElement["region"] = string(secret.Data["AWS_DEFAULT_REGION"]) - if secret.Data["AWS_CA_BUNDLE"] != nil { - dataConnectionElement["certificate"] = string(secret.Data["AWS_CA_BUNDLE"]) + + if odhCustomCertData != "" { + dataConnectionElement["certificate"] = odhCustomCertData + dataConnectionElement["cabundle_configmap"] = constants.KServeCACertConfigMapName } jsonBytes, _ := json.Marshal(dataConnectionElement) storageByteData[secret.Name] = jsonBytes @@ -77,7 +80,7 @@ func CompareStorageSecrets(s1 corev1.Secret, s2 corev1.Secret) bool { // reconcileSecret grabs all data connection secrets in the triggering namespace and // creates/updates the storage config secret func (r *StorageSecretReconciler) reconcileSecret(secret *corev1.Secret, - ctx context.Context, newStorageSecret func(dataConnectionSecretsList *corev1.SecretList) *corev1.Secret) error { + ctx context.Context, newStorageSecret func(dataConnectionSecretsList *corev1.SecretList, odhCustomCertData string) *corev1.Secret) error { // Initialize logger format log := r.Log.WithValues("secret", secret.Name, "namespace", secret.Namespace) @@ -91,11 +94,25 @@ func (r *StorageSecretReconciler) reconcileSecret(secret *corev1.Secret, if err != nil { if apierrs.IsNotFound(err) { log.Info("No data connections found in namespace ", secret.Namespace) + return nil + } else { + return err } } + odhCustomCertData := "" + odhGlobalCertConfigMap := &corev1.ConfigMap{} + err = r.Get(ctx, types.NamespacedName{ + Name: constants.ODHGlobalCertConfigMapName, + Namespace: secret.Namespace, + }, odhGlobalCertConfigMap) + + if err == nil { + odhCustomCertData = odhGlobalCertConfigMap.Data[constants.ODHCustomCACertFileName] + } + // Generate desire Storage Config Secret - desiredStorageSecret := newStorageSecret(dataConnectionSecretsList) + desiredStorageSecret := newStorageSecret(dataConnectionSecretsList, odhCustomCertData) desiredStorageSecret.Name = storageSecretName desiredStorageSecret.Namespace = secret.Namespace desiredStorageSecret.Labels = map[string]string{} @@ -166,15 +183,11 @@ func reconcileOpenDataHubSecrets() predicate.Predicate { CreateFunc: func(e event.CreateEvent) bool { objectLabels := e.Object.GetLabels() return checkOpenDataHubLabel(objectLabels) - }, + }, DeleteFunc: func(e event.DeleteEvent) bool { objectLabels := e.Object.GetLabels() return checkOpenDataHubLabel(objectLabels) }, - GenericFunc: func(e event.GenericEvent) bool { - objectLabels := e.Object.GetLabels() - return checkOpenDataHubLabel(objectLabels) - }, UpdateFunc: func(e event.UpdateEvent) bool { objectNewLabels := e.ObjectNew.GetLabels() return checkOpenDataHubLabel(objectNewLabels) diff --git a/controllers/storageconfig_controller_test.go b/controllers/storageconfig_controller_test.go index 1bd37efc..e94b6fc5 100644 --- a/controllers/storageconfig_controller_test.go +++ b/controllers/storageconfig_controller_test.go @@ -26,12 +26,15 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + "github.com/opendatahub-io/odh-model-controller/controllers/constants" ) const ( - dataconnectionStringPath = "./testdata/secrets/dataconnection-string.yaml" - storageconfigEncodedPath = "./testdata/secrets/storageconfig-encoded.yaml" - storageconfigEncodedUnmanagedPath = "./testdata/secrets/storageconfig-encoded-unmanaged.yaml" + dataconnectionStringPath = "./testdata/secrets/dataconnection-string.yaml" + storageconfigEncodedPath = "./testdata/secrets/storageconfig-encoded.yaml" + storageconfigEncodedUnmanagedPath = "./testdata/secrets/storageconfig-encoded-unmanaged.yaml" + storageconfigCertEncodedPath = "./testdata/secrets/storageconfig-cert-encoded.yaml" + storageconfigUpdatedCertEncodedPath = "./testdata/secrets/storageconfig-updated-cert-encoded.yaml" ) var _ = Describe("StorageConfig controller", func() { @@ -46,13 +49,12 @@ var _ = Describe("StorageConfig controller", func() { Expect(err).NotTo(HaveOccurred()) Expect(cli.Create(ctx, dataconnectionStringSecret)).Should(Succeed()) - storegeconfigSecret, err := waitForSecret(cli, WorkingNamespace, "storage-config", 30*time.Second) + storegeconfigSecret, err := waitForSecret(cli, WorkingNamespace, constants.DefaultStorageConfig, 30*time.Second) Expect(err).NotTo(HaveOccurred()) expectedStorageConfigSecret := &corev1.Secret{} err = convertToStructuredResource(storageconfigEncodedPath, expectedStorageConfigSecret) Expect(err).NotTo(HaveOccurred()) - Expect(compareSecrets(storegeconfigSecret, expectedStorageConfigSecret)).Should((BeTrue())) }) }) @@ -67,12 +69,12 @@ var _ = Describe("StorageConfig controller", func() { Expect(cli.Create(ctx, dataconnectionStringSecret)).Should(Succeed()) storageconfigSecret := &corev1.Secret{} - storageconfigSecret, err = waitForSecret(cli, WorkingNamespace, "storage-config", 30*time.Second) + _, err = waitForSecret(cli, WorkingNamespace, constants.DefaultStorageConfig, 30*time.Second) Expect(err).NotTo(HaveOccurred()) err = updateSecretLabel(cli, WorkingNamespace, storageSecretName, "opendatahub.io/managed", "false") Expect(err).NotTo(HaveOccurred()) - storageconfigSecret, err = waitForSecret(cli, WorkingNamespace, storageSecretName, 30*time.Second) + _, err = waitForSecret(cli, WorkingNamespace, storageSecretName, 30*time.Second) Expect(err).NotTo(HaveOccurred()) err = updateSecretData(cli, WorkingNamespace, storageSecretName, "aws-connection-minio", "unmanaged") @@ -84,8 +86,50 @@ var _ = Describe("StorageConfig controller", func() { expectedStorageConfigSecret := &corev1.Secret{} err = convertToStructuredResource(storageconfigEncodedUnmanagedPath, expectedStorageConfigSecret) Expect(err).NotTo(HaveOccurred()) + Expect(compareSecrets(storageconfigSecret, expectedStorageConfigSecret)).Should((BeTrue())) + }) + }) + + Context("when a configmap 'odh-trusted-ca-bundle' exists or updates", func() { + It("should add/update certificate keys into storage-config secret", func() { + dataconnectionStringSecret := &corev1.Secret{} + + By("creating odh-trusted-ca-bundle configmap") + odhtrustedcabundleConfigMap := &corev1.ConfigMap{} + err := convertToStructuredResource(odhtrustedcabundleConfigMapPath, odhtrustedcabundleConfigMap) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Create(ctx, odhtrustedcabundleConfigMap)).Should(Succeed()) + By("creating dataconnection secret") + err = convertToStructuredResource(dataconnectionStringPath, dataconnectionStringSecret) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Create(ctx, dataconnectionStringSecret)).Should(Succeed()) + + storageconfigSecret, err := waitForSecret(cli, WorkingNamespace, constants.DefaultStorageConfig, 30*time.Second) + Expect(err).NotTo(HaveOccurred()) + + // Check storage-config secret + expectedStorageConfigSecret := &corev1.Secret{} + err = convertToStructuredResource(storageconfigCertEncodedPath, expectedStorageConfigSecret) + Expect(err).NotTo(HaveOccurred()) Expect(compareSecrets(storageconfigSecret, expectedStorageConfigSecret)).Should((BeTrue())) + + By("updating odh-trusted-ca-bundle configmap") + updatedOdhtrustedcacertConfigMap := &corev1.ConfigMap{} + err = convertToStructuredResource(odhtrustedcabundleConfigMapUpdatedPath, updatedOdhtrustedcacertConfigMap) + Expect(err).NotTo(HaveOccurred()) + Expect(cli.Update(ctx, updatedOdhtrustedcacertConfigMap)).Should(Succeed()) + + // Wait for updating Secret + time.Sleep(2 * time.Second) + // Check updated storage-config secret + updatedStorageconfigSecret, err := waitForSecret(cli, WorkingNamespace, constants.DefaultStorageConfig, 30*time.Second) + Expect(err).NotTo(HaveOccurred()) + expectedUpdatedStorageConfigSecret := &corev1.Secret{} + err = convertToStructuredResource(storageconfigUpdatedCertEncodedPath, expectedUpdatedStorageConfigSecret) + Expect(err).NotTo(HaveOccurred()) + + Expect(compareSecrets(updatedStorageconfigSecret, expectedUpdatedStorageConfigSecret)).Should((BeTrue())) }) }) }) @@ -140,6 +184,8 @@ func waitForSecret(cli client.Client, namespace, secretName string, timeout time ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() + // Wait for updating Secret + time.Sleep(1 * time.Second) for { secret := &corev1.Secret{} err := cli.Get(ctx, client.ObjectKey{Namespace: namespace, Name: secretName}, secret) diff --git a/controllers/suite_test.go b/controllers/suite_test.go index a6b90381..17759636 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -62,20 +62,21 @@ var ( ) const ( - WorkingNamespace = "default" - MonitoringNS = "monitoring-ns" - RoleBindingPath = "./testdata/results/model-server-ns-role.yaml" - ServingRuntimePath1 = "./testdata/deploy/test-openvino-serving-runtime-1.yaml" - KserveServingRuntimePath1 = "./testdata/deploy/kserve-openvino-serving-runtime-1.yaml" - ServingRuntimePath2 = "./testdata/deploy/test-openvino-serving-runtime-2.yaml" - InferenceService1 = "./testdata/deploy/openvino-inference-service-1.yaml" - InferenceServiceNoRuntime = "./testdata/deploy/openvino-inference-service-no-runtime.yaml" - KserveInferenceServicePath1 = "./testdata/deploy/kserve-openvino-inference-service-1.yaml" - InferenceServiceConfigPath1 = "./testdata/configmaps/inferenceservice-config.yaml" - ExpectedRoutePath = "./testdata/results/example-onnx-mnist-route.yaml" - ExpectedRouteNoRuntimePath = "./testdata/results/example-onnx-mnist-no-runtime-route.yaml" - timeout = time.Second * 20 - interval = time.Millisecond * 10 + WorkingNamespace = "default" + MonitoringNS = "monitoring-ns" + RoleBindingPath = "./testdata/results/model-server-ns-role.yaml" + ServingRuntimePath1 = "./testdata/deploy/test-openvino-serving-runtime-1.yaml" + KserveServingRuntimePath1 = "./testdata/deploy/kserve-openvino-serving-runtime-1.yaml" + ServingRuntimePath2 = "./testdata/deploy/test-openvino-serving-runtime-2.yaml" + InferenceService1 = "./testdata/deploy/openvino-inference-service-1.yaml" + InferenceServiceNoRuntime = "./testdata/deploy/openvino-inference-service-no-runtime.yaml" + KserveInferenceServicePath1 = "./testdata/deploy/kserve-openvino-inference-service-1.yaml" + InferenceServiceConfigPath1 = "./testdata/configmaps/inferenceservice-config.yaml" + ExpectedRoutePath = "./testdata/results/example-onnx-mnist-route.yaml" + ExpectedRouteNoRuntimePath = "./testdata/results/example-onnx-mnist-no-runtime-route.yaml" + odhtrustedcabundleConfigMapPath = "./testdata/configmaps/odh-trusted-ca-bundle-configmap.yaml" + timeout = time.Second * 20 + interval = time.Millisecond * 10 ) func init() { @@ -171,6 +172,13 @@ var _ = BeforeSuite(func() { }).SetupWithManager(mgr) Expect(err).ToNot(HaveOccurred()) + err = (&KServeCustomCACertReconciler{ + Client: cli, + Log: ctrl.Log.WithName("controllers").WithName("KServe-Custom-CA-Bundle-ConfigMap-Controller"), + Scheme: scheme.Scheme, + }).SetupWithManager(mgr) + Expect(err).ToNot(HaveOccurred()) + // Start the manager go func() { defer GinkgoRecover() @@ -198,6 +206,7 @@ var _ = AfterEach(func() { Expect(cli.DeleteAllOf(context.TODO(), &k8srbacv1.RoleBinding{}, inNamespace)).ToNot(HaveOccurred()) Expect(cli.DeleteAllOf(context.TODO(), &corev1.Secret{}, inNamespace)).ToNot(HaveOccurred()) Expect(cli.DeleteAllOf(context.TODO(), &authorinov1beta2.AuthConfig{}, inNamespace)).ToNot(HaveOccurred()) + Expect(cli.DeleteAllOf(context.TODO(), &corev1.ConfigMap{}, inNamespace)).ToNot(HaveOccurred()) } cleanUp(WorkingNamespace, cli) for _, ns := range Namespaces.All() { diff --git a/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap-updated.yaml b/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap-updated.yaml new file mode 100644 index 00000000..d57ba17a --- /dev/null +++ b/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap-updated.yaml @@ -0,0 +1,37 @@ +apiVersion: v1 +data: + cabundle.crt: | + -----BEGIN CERTIFICATE----- + MIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQEL + BQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0 + MDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJ + bmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC + AgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49 + xQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZG + u98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNd + ED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTx + PJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWC + seWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFd + Ia0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0F + nfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJ + ZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1cz + TyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z + /wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYD + VR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69 + d5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB + ADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwP + brhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV + 7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTj + eOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBm + ON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7 + yxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sb + jv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuW + jtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/Vtnya + UCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORhe + TbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK + 5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5tsUPDATED + -----END CERTIFICATE----- +kind: ConfigMap +metadata: + name: odh-kserve-custom-ca-bundle + namespace: default diff --git a/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap.yaml b/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap.yaml new file mode 100644 index 00000000..feb422bc --- /dev/null +++ b/controllers/testdata/configmaps/odh-kserve-custom-ca-cert-configmap.yaml @@ -0,0 +1,37 @@ +apiVersion: v1 +data: + cabundle.crt: | + -----BEGIN CERTIFICATE----- + MIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQEL + BQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0 + MDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJ + bmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC + AgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49 + xQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZG + u98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNd + ED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTx + PJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWC + seWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFd + Ia0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0F + nfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJ + ZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1cz + TyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z + /wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYD + VR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69 + d5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB + ADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwP + brhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV + 7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTj + eOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBm + ON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7 + yxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sb + jv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuW + jtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/Vtnya + UCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORhe + TbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK + 5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5ts + -----END CERTIFICATE----- +kind: ConfigMap +metadata: + name: odh-kserve-custom-ca-bundle + namespace: default diff --git a/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap-updated.yaml b/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap-updated.yaml new file mode 100644 index 00000000..77789714 --- /dev/null +++ b/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap-updated.yaml @@ -0,0 +1,40 @@ +apiVersion: v1 +data: + odh-ca-bundle.crt: | + -----BEGIN CERTIFICATE----- + MIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQEL + BQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0 + MDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJ + bmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC + AgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49 + xQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZG + u98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNd + ED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTx + PJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWC + seWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFd + Ia0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0F + nfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJ + ZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1cz + TyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z + /wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYD + VR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69 + d5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB + ADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwP + brhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV + 7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTj + eOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBm + ON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7 + yxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sb + jv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuW + jtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/Vtnya + UCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORhe + TbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK + 5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5tsUPDATED + -----END CERTIFICATE----- +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/part-of: opendatahub-operator + config.openshift.io/inject-trusted-cabundle: "true" + name: odh-trusted-ca-bundle + namespace: default diff --git a/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap.yaml b/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap.yaml new file mode 100644 index 00000000..710a224e --- /dev/null +++ b/controllers/testdata/configmaps/odh-trusted-ca-bundle-configmap.yaml @@ -0,0 +1,40 @@ +apiVersion: v1 +data: + odh-ca-bundle.crt: | + -----BEGIN CERTIFICATE----- + MIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQEL + BQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0 + MDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJ + bmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC + AgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49 + xQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZG + u98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNd + ED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTx + PJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWC + seWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFd + Ia0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0F + nfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJ + ZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1cz + TyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z + /wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYD + VR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69 + d5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB + ADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwP + brhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV + 7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTj + eOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBm + ON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7 + yxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sb + jv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuW + jtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/Vtnya + UCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORhe + TbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK + 5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5ts + -----END CERTIFICATE----- +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/part-of: opendatahub-operator + config.openshift.io/inject-trusted-cabundle: "true" + name: odh-trusted-ca-bundle + namespace: default diff --git a/controllers/testdata/secrets/dataconnection-encoded.yaml b/controllers/testdata/secrets/dataconnection-encoded.yaml index b1deea5e..e32b2127 100644 --- a/controllers/testdata/secrets/dataconnection-encoded.yaml +++ b/controllers/testdata/secrets/dataconnection-encoded.yaml @@ -1,12 +1,10 @@ apiVersion: v1 data: - AWS_ACCESS_KEY_ID: VEhFQUNDRVNTS0VZ - AWS_CA_BUNDLE: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY2VENDQTlHZ0F3SUJBZ0lVYTRwekx2ZG5ZWFdabDNydnFSaHF0UUdxOFhVd0RRWUpLb1pJaHZjTkFRRUwKQlFBd2ZERUxNQWtHQTFVRUJoTUNRMEV4RFRBTEJnTlZCQWdNQkZSeWRXVXhEekFOQmdOVkJBY01CazFKVEZSUApUakVQTUEwR0ExVUVDZ3dHVWtWRVNFRlVNUXd3Q2dZRFZRUUxEQU5UUTBVeEVEQU9CZ05WQkFNTUIxSnZiM1FnClEwRXhIREFhQmdrcWhraUc5dzBCQ1FFV0RYUmxjM1JBZEdWemRDNWpiMjB3SGhjTk1qTXdOekkzTWpBeE16TTIKV2hjTk5ETXdOekl5TWpBeE16TTJXakI4TVFzd0NRWURWUVFHRXdKRFFURU5NQXNHQTFVRUNBd0VWSEoxWlRFUApNQTBHQTFVRUJ3d0dUVWxNVkU5T01ROHdEUVlEVlFRS0RBWlNSVVJJUVZReEREQUtCZ05WQkFzTUExTkRSVEVRCk1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRFY01Cb0dDU3FHU0liM0RRRUpBUllOZEdWemRFQjBaWE4wTG1OdmJUQ0MKQWlJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dJUEFEQ0NBZ29DZ2dJQkFMWTFYWkEzbmxrbSszMjBIMDZUM1FEdgozVjVNL0VDZWQ0Yk5BNDdKalZDcWlrMTFNdUU3ZEd2UlpjTnFZeDhlVHlqL0FvdEw4NXZGTTAzdk1IZ2NJU2UxCnkwdktLeC9odDJKeFBWRitVNmxzS0QyTllUV1U0dFpmOFZMSjYyM0VLUGxSZmY0ZlF4bFd6VkJ1R3VpVXIxZGMKaHlPUjlpeWtVV0FmNllXYmk5L2J3RWlUYnloTG5VZm1oazVkN29TeE5mNC9KZEx4Nkh1M1doNk9HZWI4ODdZMApDcjlFODM3YitSeWpNQ3poYWw1K29pamtkS1dNcUVoUzh5K2dwcXVRTnVPWEkrMTJ1TGwyZDFDM0ZHVzd2MWIrCjMvL2QxeXliNnNpWFhvZC9ObGZBRGtuVnlxZXhXbWMzTWVFMXRRV2JTNGxPaVhjanFlRmp0QlVtaXhuaFNFQTcKRmN4ZjF6SXZsbzRWRE5Pa2QxdCtDSzJOWitkT1NLaHh4eHhWWk1sVEdWMjdMd0cxUzRkTHZ5Unk0V0hQVlJaZgo3WUgwL2FCRWdBSmtFSndxRzFWWEg3OEliVm03azVxL3FIVGYxekJsREZBeVVKbVI0a3J5clhobHhXWTlZZ1ByCmdGZnFFMm8rMC9wWU9CKzI4VWFsbXNuVXl3VDBFNUFBYmZCRk9BTmU2QUpzVWtrU044dW1BRnBFM09tTlI4NTEKQkFmMWFxRXdZMXMvMGpNSjNudVdzUU4zelNEUUViVWtqNlB6MFhKMUpEa1NjUE9oRjRnVDh1R2JVenZsTXF2TgpFTW9mZGhHN3ArU09WeEEyV1h0SVMweGlENDV4anJBNW9hbEEveHAxZmlocG1HbGVZYnhqOUhWU013L3ZhRUE1CmhVSi9nQVo2N2VpYVNNdjd6UnpqQWdNQkFBR2pZekJoTUIwR0ExVWREZ1FXQkJSbTU1aFVWWWVuWFNrc1RQM1kKSjBORTRJRVpRVEFmQmdOVkhTTUVHREFXZ0JSbTU1aFVWWWVuWFNrc1RQM1lKME5FNElFWlFUQVBCZ05WSFJNQgpBZjhFQlRBREFRSC9NQTRHQTFVZER3RUIvd1FFQXdJQmhqQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFQU2p0Cm5yM1RqbkpGMEoyZjFmK2Y3S28yYXpNWnE1VWdZcm82WE5GUUw3SjdKZEZDRDFaTU5ZSlZJLzhxQjVqTkRNaEgKdXVZUnhCN1J5REJnUkZYSHhucC9UN0hiRy9XT1dNQ3U0UWd2ZXZPMVlsN1VQNFVvVFdab0VQYmxta1dJUlh6MQoxVWpKeVhLOFlGUERFc1pWT0NHL29oTWM0MXZJMzJKcy91MlJmOUxKNVVyeU5LSTRzOHYvQjI5Z3FBYUVtL1hwCjN6am9QaHBBcks2OEQ5bjVGbU9ZSU1SOStHUWpnM0dWSGN4c0Ricnp4ZEp2L0x4emwyN3Zxc25aQ21maitudTMKZURieUZhYlJISU51QzFjUXVjYlJCeGh5cXptY3A2OTFjeHkxZzBWTVpETE5xRllwVUJ4MDcxOEFPNExMSkI0eQplL1ZMRXF3M1ZpS2U5UkJqTGhXZnZabWsvNHNSMkZ4aW5wT1BadGtOUGJITU0rNHBzNHRMbTNMdmsxeFpDMFFtCkJSdlcwbEVmc1BRcVdpRUFpQlJTSDB3bGw4ZEUrcHV2bEo1YVhJdTUwdXlPcmxNUzk1b3RBM3FJaXBOejhoS2wKbVladTU4UzdoRGl4MmVQZFg4S1ZQbVR2MFZNUUcxaTFsVTZJOE56MHV5R0ZJcVRHUHNYd014UE8zak1Bano0YgpGeTk0RzFnMm0rOGcxc3lsRTJuUGs1ZlFhNDJnYVNRdGY2RllPdmppTlF6K0hyK2MyMUxkdGFxb2xqa3h2Y2N2CkJqaGY2QTZpdDVvcVpMUWd0RVdEU0dmbGxDK3RkN0NwQmdQYmpzUzV1M1BCQWltQy9zZ0RnY2dCYlhWL2IyYUIKU2kxK1ljcnRGZUoyY0d0NDJpSHVrSnNSOWRSMW55Q052RmR6QXp3PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + AWS_ACCESS_KEY_ID: YWRtaW4= AWS_DEFAULT_REGION: dXMtc291dGg= AWS_S3_BUCKET: bW9kZWxtZXNoLWV4YW1wbGUtbW9kZWxz AWS_S3_ENDPOINT: aHR0cHM6Ly9taW5pby5taW5pby5zdmM6OTAwMA== - AWS_SECRET_ACCESS_KEY: ZDdjOWM3M2NjYTE2YmRjOTJkODBlYTg4NmY4YTE1OTIzYzJhMDZmYTE0NWE5ZWYyY2EzNThhMTk1MjNlN2IzNQ== - test: YWJjCg== + AWS_SECRET_ACCESS_KEY: cGFzc3dvcmQ= kind: Secret metadata: annotations: diff --git a/controllers/testdata/secrets/dataconnection-string.yaml b/controllers/testdata/secrets/dataconnection-string.yaml index fb0b00db..cebdbffb 100644 --- a/controllers/testdata/secrets/dataconnection-string.yaml +++ b/controllers/testdata/secrets/dataconnection-string.yaml @@ -10,10 +10,9 @@ metadata: opendatahub.io/connection-type: s3 openshift.io/display-name: dc1 stringData: - AWS_ACCESS_KEY_ID: THEACCESSKEY + AWS_ACCESS_KEY_ID: admin AWS_DEFAULT_REGION: us-south AWS_S3_BUCKET: modelmesh-example-models AWS_S3_ENDPOINT: https://minio.minio.svc:9000 - AWS_SECRET_ACCESS_KEY: d7c9c73cca16bdc92d80ea886f8a15923c2a06fa145a9ef2ca358a19523e7b35 - AWS_CA_BUNDLE: "-----BEGIN CERTIFICATE-----\nMIIF6TCCA9GgAwIBAgIUa4pzLvdnYXWZl3rvqRhqtQGq8XUwDQYJKoZIhvcNAQEL\nBQAwfDELMAkGA1UEBhMCQ0ExDTALBgNVBAgMBFRydWUxDzANBgNVBAcMBk1JTFRP\nTjEPMA0GA1UECgwGUkVESEFUMQwwCgYDVQQLDANTQ0UxEDAOBgNVBAMMB1Jvb3Qg\nQ0ExHDAaBgkqhkiG9w0BCQEWDXRlc3RAdGVzdC5jb20wHhcNMjMwNzI3MjAxMzM2\nWhcNNDMwNzIyMjAxMzM2WjB8MQswCQYDVQQGEwJDQTENMAsGA1UECAwEVHJ1ZTEP\nMA0GA1UEBwwGTUlMVE9OMQ8wDQYDVQQKDAZSRURIQVQxDDAKBgNVBAsMA1NDRTEQ\nMA4GA1UEAwwHUm9vdCBDQTEcMBoGCSqGSIb3DQEJARYNdGVzdEB0ZXN0LmNvbTCC\nAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALY1XZA3nlkm+320H06T3QDv\n3V5M/ECed4bNA47JjVCqik11MuE7dGvRZcNqYx8eTyj/AotL85vFM03vMHgcISe1\ny0vKKx/ht2JxPVF+U6lsKD2NYTWU4tZf8VLJ623EKPlRff4fQxlWzVBuGuiUr1dc\nhyOR9iykUWAf6YWbi9/bwEiTbyhLnUfmhk5d7oSxNf4/JdLx6Hu3Wh6OGeb887Y0\nCr9E837b+RyjMCzhal5+oijkdKWMqEhS8y+gpquQNuOXI+12uLl2d1C3FGW7v1b+\n3//d1yyb6siXXod/NlfADknVyqexWmc3MeE1tQWbS4lOiXcjqeFjtBUmixnhSEA7\nFcxf1zIvlo4VDNOkd1t+CK2NZ+dOSKhxxxxVZMlTGV27LwG1S4dLvyRy4WHPVRZf\n7YH0/aBEgAJkEJwqG1VXH78IbVm7k5q/qHTf1zBlDFAyUJmR4kryrXhlxWY9YgPr\ngFfqE2o+0/pYOB+28UalmsnUywT0E5AAbfBFOANe6AJsUkkSN8umAFpE3OmNR851\nBAf1aqEwY1s/0jMJ3nuWsQN3zSDQEbUkj6Pz0XJ1JDkScPOhF4gT8uGbUzvlMqvN\nEMofdhG7p+SOVxA2WXtIS0xiD45xjrA5oalA/xp1fihpmGleYbxj9HVSMw/vaEA5\nhUJ/gAZ67eiaSMv7zRzjAgMBAAGjYzBhMB0GA1UdDgQWBBRm55hUVYenXSksTP3Y\nJ0NE4IEZQTAfBgNVHSMEGDAWgBRm55hUVYenXSksTP3YJ0NE4IEZQTAPBgNVHRMB\nAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPSjt\nnr3TjnJF0J2f1f+f7Ko2azMZq5UgYro6XNFQL7J7JdFCD1ZMNYJVI/8qB5jNDMhH\nuuYRxB7RyDBgRFXHxnp/T7HbG/WOWMCu4QgvevO1Yl7UP4UoTWZoEPblmkWIRXz1\n1UjJyXK8YFPDEsZVOCG/ohMc41vI32Js/u2Rf9LJ5UryNKI4s8v/B29gqAaEm/Xp\n3zjoPhpArK68D9n5FmOYIMR9+GQjg3GVHcxsDbrzxdJv/Lxzl27vqsnZCmfj+nu3\neDbyFabRHINuC1cQucbRBxhyqzmcp691cxy1g0VMZDLNqFYpUBx0718AO4LLJB4y\ne/VLEqw3ViKe9RBjLhWfvZmk/4sR2FxinpOPZtkNPbHMM+4ps4tLm3Lvk1xZC0Qm\nBRvW0lEfsPQqWiEAiBRSH0wll8dE+puvlJ5aXIu50uyOrlMS95otA3qIipNz8hKl\nmYZu58S7hDix2ePdX8KVPmTv0VMQG1i1lU6I8Nz0uyGFIqTGPsXwMxPO3jMAjz4b\nFy94G1g2m+8g1sylE2nPk5fQa42gaSQtf6FYOvjiNQz+Hr+c21Ldtaqoljkxvccv\nBjhf6A6it5oqZLQgtEWDSGfllC+td7CpBgPbjsS5u3PBAimC/sgDgcgBbXV/b2aB\nSi1+YcrtFeJ2cGt42iHukJsR9dR1nyCNvFdzAzw=\n-----END CERTIFICATE-----\n" + AWS_SECRET_ACCESS_KEY: password type: Opaque diff --git a/controllers/testdata/secrets/storageconfig-cert-encoded.yaml b/controllers/testdata/secrets/storageconfig-cert-encoded.yaml new file mode 100644 index 00000000..86d46329 --- /dev/null +++ b/controllers/testdata/secrets/storageconfig-cert-encoded.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +data: + aws-connection-minio: eyJhY2Nlc3Nfa2V5X2lkIjoiYWRtaW4iLCJidWNrZXQiOiJtb2RlbG1lc2gtZXhhbXBsZS1tb2RlbHMiLCJjYWJ1bmRsZV9jb25maWdtYXAiOiJvZGgta3NlcnZlLWN1c3RvbS1jYS1idW5kbGUiLCJjZXJ0aWZpY2F0ZSI6Ii0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxuTUlJRkxUQ0NBeFdnQXdJQkFnSVVGNHRQNlQxUzVIL0d0OEJwakZzYlhvN2YwU1l3RFFZSktvWklodmNOQVFFTFxuQlFBd0pqRVZNQk1HQTFVRUNnd01SWGhoYlhCc1pTQkpibU11TVEwd0N3WURWUVFEREFSeWIyOTBNQjRYRFRJMFxuTURJeE5qRTVNVE0wTTFvWERUSTFNREl4TlRFNU1UTTBNMW93SmpFVk1CTUdBMVVFQ2d3TVJYaGhiWEJzWlNCSlxuYm1NdU1RMHdDd1lEVlFRRERBUnliMjkwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ1xuQWdFQW5hZkxnZ3RTdUpEd216Nk1OYWVvMldtanI2UzR4dVBZTXJDY21jbEc4WjZxUFlIR1VMVG9qankrRHU0OVxueFErWGY1NGtGSUNFbmRGRXNpMS9tcy9PRzdnVDZEK3lLLzJxZkhISkZEUWlSMXdwUEdVUEIzOUlDUFJtS0paR1xudTk4ZFZHQ1VMRncrWktOSmE5dFFoYkZVNUdaVVcvdUhmdTlTMUNIcjhUS2pRM0M4OCt3ZWlDWmVQKzBiT0JOZFxuRUQrSWdTN0U1YW1MUGh5WlpPc3pOMlRjR2ZJVVpiaGxzaHlqcEVVM2RCdDcrWDdlVUNmQ0FFemxVbkIvL2RUeFxuUEpJNUxPRGpLQVVlcnVDVnp4cW1QWlZkOGRjeG9PTHJPNkdlUmlMbTl0V0FWQXVjOTF0TVBscUJyeDJneE9XQ1xuc2VXQ2M4TWR3Z25lTGhnN2lhTzNsZ3FDeFQ3VU5KTjZWdDBSSjR6SHo1aXgrOXJQek5jVm9TdlBjRkhzRUNGZFxuSWEwS3c5QmVtRFcrQkVsdmZkY080V0tlS3o1dHFKZVFKVjRWTm81RmhpZnF1V0huRER3d2VaR255SGErTWEwRlxubmZETnU2RVh6OVBNYUh3UEdZWVdVYm9vUmlRMWp2b2tTK3BlRXU0Q283SXVUNE4xa2l4M28xN090aWJvejl2SlxuWmt0a01PNFEvOEg4TXo5dS8yMnQzL1R5S2dNWXA0bmcwSm9oR1hVNWptb3hHcWQxaEwwemt4amVha1pYajFjelxuVHlVek5xMFRBWWRqQWM2MERVR3lPOXpQcXlwcFRNak5DQUZKd1dXM0hER2RPcHptbHgzcTdHN0R0cVczOGY5WlxuL3d6UU5yUnpjcmpTQWxrb01oODE1VThLTGUrNDZhUVU4cUtCTlJWQ1dQK1R5aHNDQXdFQUFhTlRNRkV3SFFZRFxuVlIwT0JCWUVGR3g2eVJCWlJPNjlkNVNMSmIwSFJiWDhrZE5nTUI4R0ExVWRJd1FZTUJhQUZHeDZ5UkJaUk82OVxuZDVTTEpiMEhSYlg4a2ROZ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQlxuQUR6aXZmU3JTSkUxbGhtcUpiSjJaSmFxNTlueUZ1OS9yTlM5VWZIWWVpeThlQlpFeWdWRFdGSUF4Yjh4bWJ3UFxuYnJoR3FDeGxBVzdZZHcvbHd3R1VuZHBQOTNMTjlvOTNlVm5FdTdldkVyNEdmbFJ0MysrTUNOVVhqRWJZNVRIVlxuN1hBVStSbTAybHdlalVKdGszTDlFbTBQVUZpVXAzOHZiTEMwb1pLQUVPcU5nR2V4UE9sVUk3K1dXMmtwRVdUalxuZU9tZUVPT1cydEtjeTJwU0lkOVRYNlB0ekVCSXd1aUdaTHNEL3ZTUTF5WHMwQ1pFOTZ4cW1SbFBvUUoyZnlCbVxuT04vM1FZczFvOE1uczV0TWYvaEVXdTRwN2dySHZJQUlISFZjOER5bjJYbExpWFRTV0NncmNZbjBIZU1JWEcrN1xueXhJZGE4R0JKWU8yS1ovZUxrZy9kRTJ2YXJyUThKZWFwTzZvelhTMU1GWUc0clRQRXdTbUx4akd5dTNYRDBzYlxuanY1TEJYbTZvRHZMOGtmSk83dXFLY2l6czJyeDVISWp1UTZtRUV1blZscjlqbEZsTnprTzByZm9lRUNydHd1V1xuanRBeHJwR29uQnVHWTRDY21qeHB2U3dhQkRPQWJablpHN2c1eVJRUVRBL2xPQnZnQmZ6Rm02WHNkbS9WdG55YVxuVUNPbkZyTjB2WExrclFWVnJkWnh4V2h6OUZOK1NVWFF5anNSM0QrVnBKVVZXbXc5cGZpWGk4Ri9KT3BqT1JoZVxuVGJWdW5CbUw5SFVDbEhnVWMyQjBOU2ZOeXFYU3dvK0dwNUtnNGlZSXc0aEp3MkVQd2lsVUZhZmNNOHVWRGt0S1xuNWt3SDMwZTdXVWxrWHorajhwMVVJdUZNNWtLSFcvT3dQQmRMVS8xUGw1dHNcbi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiIsImRlZmF1bHRfYnVja2V0IjoibW9kZWxtZXNoLWV4YW1wbGUtbW9kZWxzIiwiZW5kcG9pbnRfdXJsIjoiaHR0cHM6Ly9taW5pby5taW5pby5zdmM6OTAwMCIsInJlZ2lvbiI6InVzLXNvdXRoIiwic2VjcmV0X2FjY2Vzc19rZXkiOiJwYXNzd29yZCIsInR5cGUiOiJzMyJ9 +kind: Secret +metadata: + labels: + opendatahub.io/managed: "true" + name: storage-config + namespace: default +type: Opaque diff --git a/controllers/testdata/secrets/storageconfig-cert-string.yaml b/controllers/testdata/secrets/storageconfig-cert-string.yaml new file mode 100644 index 00000000..16b786fa --- /dev/null +++ b/controllers/testdata/secrets/storageconfig-cert-string.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: storage-config + namespace: default +stringData: + aws-connection-minio: | + {"access_key_id":"admin","bucket":"modelmesh-example-models","default_bucket":"modelmesh-example-models","endpoint_url":"https://minio.minio.svc:9000","region":"us-south","secret_access_key":"password","cabundle_configmap": "odh-kserve-custom-ca-bundle", "certificate": "-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQELBQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0MDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49xQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZGu98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNdED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTxPJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWCseWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFdIa0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0FnfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1czTyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z/wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYDVR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69d5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIBADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwPbrhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTjeOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBmON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7yxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sbjv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuWjtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/VtnyaUCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORheTbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5ts\n-----END CERTIFICATE-----","type":"s3"} diff --git a/controllers/testdata/secrets/storageconfig-encoded.yaml b/controllers/testdata/secrets/storageconfig-encoded.yaml index 2172c09c..fc785b2f 100644 --- a/controllers/testdata/secrets/storageconfig-encoded.yaml +++ b/controllers/testdata/secrets/storageconfig-encoded.yaml @@ -1,6 +1,6 @@ apiVersion: v1 data: - aws-connection-minio: eyJhY2Nlc3Nfa2V5X2lkIjoiVEhFQUNDRVNTS0VZIiwiYnVja2V0IjoibW9kZWxtZXNoLWV4YW1wbGUtbW9kZWxzIiwiY2VydGlmaWNhdGUiOiItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cbk1JSUY2VENDQTlHZ0F3SUJBZ0lVYTRwekx2ZG5ZWFdabDNydnFSaHF0UUdxOFhVd0RRWUpLb1pJaHZjTkFRRUxcbkJRQXdmREVMTUFrR0ExVUVCaE1DUTBFeERUQUxCZ05WQkFnTUJGUnlkV1V4RHpBTkJnTlZCQWNNQmsxSlRGUlBcblRqRVBNQTBHQTFVRUNnd0dVa1ZFU0VGVU1Rd3dDZ1lEVlFRTERBTlRRMFV4RURBT0JnTlZCQU1NQjFKdmIzUWdcblEwRXhIREFhQmdrcWhraUc5dzBCQ1FFV0RYUmxjM1JBZEdWemRDNWpiMjB3SGhjTk1qTXdOekkzTWpBeE16TTJcbldoY05ORE13TnpJeU1qQXhNek0yV2pCOE1Rc3dDUVlEVlFRR0V3SkRRVEVOTUFzR0ExVUVDQXdFVkhKMVpURVBcbk1BMEdBMVVFQnd3R1RVbE1WRTlPTVE4d0RRWURWUVFLREFaU1JVUklRVlF4RERBS0JnTlZCQXNNQTFORFJURVFcbk1BNEdBMVVFQXd3SFVtOXZkQ0JEUVRFY01Cb0dDU3FHU0liM0RRRUpBUllOZEdWemRFQjBaWE4wTG1OdmJUQ0NcbkFpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFkxWFpBM25sa20rMzIwSDA2VDNRRHZcbjNWNU0vRUNlZDRiTkE0N0pqVkNxaWsxMU11RTdkR3ZSWmNOcVl4OGVUeWovQW90TDg1dkZNMDN2TUhnY0lTZTFcbnkwdktLeC9odDJKeFBWRitVNmxzS0QyTllUV1U0dFpmOFZMSjYyM0VLUGxSZmY0ZlF4bFd6VkJ1R3VpVXIxZGNcbmh5T1I5aXlrVVdBZjZZV2JpOS9id0VpVGJ5aExuVWZtaGs1ZDdvU3hOZjQvSmRMeDZIdTNXaDZPR2ViODg3WTBcbkNyOUU4MzdiK1J5ak1DemhhbDUrb2lqa2RLV01xRWhTOHkrZ3BxdVFOdU9YSSsxMnVMbDJkMUMzRkdXN3YxYitcbjMvL2QxeXliNnNpWFhvZC9ObGZBRGtuVnlxZXhXbWMzTWVFMXRRV2JTNGxPaVhjanFlRmp0QlVtaXhuaFNFQTdcbkZjeGYxekl2bG80VkROT2tkMXQrQ0syTlorZE9TS2h4eHh4VlpNbFRHVjI3THdHMVM0ZEx2eVJ5NFdIUFZSWmZcbjdZSDAvYUJFZ0FKa0VKd3FHMVZYSDc4SWJWbTdrNXEvcUhUZjF6QmxERkF5VUptUjRrcnlyWGhseFdZOVlnUHJcbmdGZnFFMm8rMC9wWU9CKzI4VWFsbXNuVXl3VDBFNUFBYmZCRk9BTmU2QUpzVWtrU044dW1BRnBFM09tTlI4NTFcbkJBZjFhcUV3WTFzLzBqTUozbnVXc1FOM3pTRFFFYlVrajZQejBYSjFKRGtTY1BPaEY0Z1Q4dUdiVXp2bE1xdk5cbkVNb2ZkaEc3cCtTT1Z4QTJXWHRJUzB4aUQ0NXhqckE1b2FsQS94cDFmaWhwbUdsZVlieGo5SFZTTXcvdmFFQTVcbmhVSi9nQVo2N2VpYVNNdjd6UnpqQWdNQkFBR2pZekJoTUIwR0ExVWREZ1FXQkJSbTU1aFVWWWVuWFNrc1RQM1lcbkowTkU0SUVaUVRBZkJnTlZIU01FR0RBV2dCUm01NWhVVlllblhTa3NUUDNZSjBORTRJRVpRVEFQQmdOVkhSTUJcbkFmOEVCVEFEQVFIL01BNEdBMVVkRHdFQi93UUVBd0lCaGpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVBTanRcbm5yM1RqbkpGMEoyZjFmK2Y3S28yYXpNWnE1VWdZcm82WE5GUUw3SjdKZEZDRDFaTU5ZSlZJLzhxQjVqTkRNaEhcbnV1WVJ4QjdSeURCZ1JGWEh4bnAvVDdIYkcvV09XTUN1NFFndmV2TzFZbDdVUDRVb1RXWm9FUGJsbWtXSVJYejFcbjFVakp5WEs4WUZQREVzWlZPQ0cvb2hNYzQxdkkzMkpzL3UyUmY5TEo1VXJ5TktJNHM4di9CMjlncUFhRW0vWHBcbjN6am9QaHBBcks2OEQ5bjVGbU9ZSU1SOStHUWpnM0dWSGN4c0Ricnp4ZEp2L0x4emwyN3Zxc25aQ21maitudTNcbmVEYnlGYWJSSElOdUMxY1F1Y2JSQnhoeXF6bWNwNjkxY3h5MWcwVk1aRExOcUZZcFVCeDA3MThBTzRMTEpCNHlcbmUvVkxFcXczVmlLZTlSQmpMaFdmdlptay80c1IyRnhpbnBPUFp0a05QYkhNTSs0cHM0dExtM0x2azF4WkMwUW1cbkJSdlcwbEVmc1BRcVdpRUFpQlJTSDB3bGw4ZEUrcHV2bEo1YVhJdTUwdXlPcmxNUzk1b3RBM3FJaXBOejhoS2xcbm1ZWnU1OFM3aERpeDJlUGRYOEtWUG1UdjBWTVFHMWkxbFU2SThOejB1eUdGSXFUR1BzWHdNeFBPM2pNQWp6NGJcbkZ5OTRHMWcybSs4ZzFzeWxFMm5QazVmUWE0MmdhU1F0ZjZGWU92amlOUXorSHIrYzIxTGR0YXFvbGpreHZjY3ZcbkJqaGY2QTZpdDVvcVpMUWd0RVdEU0dmbGxDK3RkN0NwQmdQYmpzUzV1M1BCQWltQy9zZ0RnY2dCYlhWL2IyYUJcblNpMStZY3J0RmVKMmNHdDQyaUh1a0pzUjlkUjFueUNOdkZkekF6dz1cbi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cbiIsImRlZmF1bHRfYnVja2V0IjoibW9kZWxtZXNoLWV4YW1wbGUtbW9kZWxzIiwiZW5kcG9pbnRfdXJsIjoiaHR0cHM6Ly9taW5pby5taW5pby5zdmM6OTAwMCIsInJlZ2lvbiI6InVzLXNvdXRoIiwic2VjcmV0X2FjY2Vzc19rZXkiOiJkN2M5YzczY2NhMTZiZGM5MmQ4MGVhODg2ZjhhMTU5MjNjMmEwNmZhMTQ1YTllZjJjYTM1OGExOTUyM2U3YjM1IiwidHlwZSI6InMzIn0= + aws-connection-minio: eyJhY2Nlc3Nfa2V5X2lkIjoiYWRtaW4iLCJidWNrZXQiOiJtb2RlbG1lc2gtZXhhbXBsZS1tb2RlbHMiLCJkZWZhdWx0X2J1Y2tldCI6Im1vZGVsbWVzaC1leGFtcGxlLW1vZGVscyIsImVuZHBvaW50X3VybCI6Imh0dHBzOi8vbWluaW8ubWluaW8uc3ZjOjkwMDAiLCJyZWdpb24iOiJ1cy1zb3V0aCIsInNlY3JldF9hY2Nlc3Nfa2V5IjoicGFzc3dvcmQiLCJ0eXBlIjoiczMifQ== kind: Secret metadata: labels: diff --git a/controllers/testdata/secrets/storageconfig-string.yaml b/controllers/testdata/secrets/storageconfig-string.yaml index 1e0a3d57..203c22a9 100644 --- a/controllers/testdata/secrets/storageconfig-string.yaml +++ b/controllers/testdata/secrets/storageconfig-string.yaml @@ -5,13 +5,4 @@ metadata: namespace: default stringData: aws-connection-minio: | - { - "type": "s3", - "access_key_id": "THEACCESSKEY", - "secret_access_key": "d7c9c73cca16bdc92d80ea886f8a15923c2a06fa145a9ef2ca358a19523e7b35", - "endpoint_url": "https://minio.minio.svc:9000", - "default_bucket": "modelmesh-example-models", - "bucket": "modelmesh-example-models", - "region": "us-south", - "certificate": "-----BEGIN CERTIFICATE-----\nMIIF6TCCA9GgAwIBAgIUa4pzLvdnYXWZl3rvqRhqtQGq8XUwDQYJKoZIhvcNAQEL\nBQAwfDELMAkGA1UEBhMCQ0ExDTALBgNVBAgMBFRydWUxDzANBgNVBAcMBk1JTFRP\nTjEPMA0GA1UECgwGUkVESEFUMQwwCgYDVQQLDANTQ0UxEDAOBgNVBAMMB1Jvb3Qg\nQ0ExHDAaBgkqhkiG9w0BCQEWDXRlc3RAdGVzdC5jb20wHhcNMjMwNzI3MjAxMzM2\nWhcNNDMwNzIyMjAxMzM2WjB8MQswCQYDVQQGEwJDQTENMAsGA1UECAwEVHJ1ZTEP\nMA0GA1UEBwwGTUlMVE9OMQ8wDQYDVQQKDAZSRURIQVQxDDAKBgNVBAsMA1NDRTEQ\nMA4GA1UEAwwHUm9vdCBDQTEcMBoGCSqGSIb3DQEJARYNdGVzdEB0ZXN0LmNvbTCC\nAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALY1XZA3nlkm+320H06T3QDv\n3V5M/ECed4bNA47JjVCqik11MuE7dGvRZcNqYx8eTyj/AotL85vFM03vMHgcISe1\ny0vKKx/ht2JxPVF+U6lsKD2NYTWU4tZf8VLJ623EKPlRff4fQxlWzVBuGuiUr1dc\nhyOR9iykUWAf6YWbi9/bwEiTbyhLnUfmhk5d7oSxNf4/JdLx6Hu3Wh6OGeb887Y0\nCr9E837b+RyjMCzhal5+oijkdKWMqEhS8y+gpquQNuOXI+12uLl2d1C3FGW7v1b+\n3//d1yyb6siXXod/NlfADknVyqexWmc3MeE1tQWbS4lOiXcjqeFjtBUmixnhSEA7\nFcxf1zIvlo4VDNOkd1t+CK2NZ+dOSKhxxxxVZMlTGV27LwG1S4dLvyRy4WHPVRZf\n7YH0/aBEgAJkEJwqG1VXH78IbVm7k5q/qHTf1zBlDFAyUJmR4kryrXhlxWY9YgPr\ngFfqE2o+0/pYOB+28UalmsnUywT0E5AAbfBFOANe6AJsUkkSN8umAFpE3OmNR851\nBAf1aqEwY1s/0jMJ3nuWsQN3zSDQEbUkj6Pz0XJ1JDkScPOhF4gT8uGbUzvlMqvN\nEMofdhG7p+SOVxA2WXtIS0xiD45xjrA5oalA/xp1fihpmGleYbxj9HVSMw/vaEA5\nhUJ/gAZ67eiaSMv7zRzjAgMBAAGjYzBhMB0GA1UdDgQWBBRm55hUVYenXSksTP3Y\nJ0NE4IEZQTAfBgNVHSMEGDAWgBRm55hUVYenXSksTP3YJ0NE4IEZQTAPBgNVHRMB\nAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPSjt\nnr3TjnJF0J2f1f+f7Ko2azMZq5UgYro6XNFQL7J7JdFCD1ZMNYJVI/8qB5jNDMhH\nuuYRxB7RyDBgRFXHxnp/T7HbG/WOWMCu4QgvevO1Yl7UP4UoTWZoEPblmkWIRXz1\n1UjJyXK8YFPDEsZVOCG/ohMc41vI32Js/u2Rf9LJ5UryNKI4s8v/B29gqAaEm/Xp\n3zjoPhpArK68D9n5FmOYIMR9+GQjg3GVHcxsDbrzxdJv/Lxzl27vqsnZCmfj+nu3\neDbyFabRHINuC1cQucbRBxhyqzmcp691cxy1g0VMZDLNqFYpUBx0718AO4LLJB4y\ne/VLEqw3ViKe9RBjLhWfvZmk/4sR2FxinpOPZtkNPbHMM+4ps4tLm3Lvk1xZC0Qm\nBRvW0lEfsPQqWiEAiBRSH0wll8dE+puvlJ5aXIu50uyOrlMS95otA3qIipNz8hKl\nmYZu58S7hDix2ePdX8KVPmTv0VMQG1i1lU6I8Nz0uyGFIqTGPsXwMxPO3jMAjz4b\nFy94G1g2m+8g1sylE2nPk5fQa42gaSQtf6FYOvjiNQz+Hr+c21Ldtaqoljkxvccv\nBjhf6A6it5oqZLQgtEWDSGfllC+td7CpBgPbjsS5u3PBAimC/sgDgcgBbXV/b2aB\nSi1+YcrtFeJ2cGt42iHukJsR9dR1nyCNvFdzAzw=\n-----END CERTIFICATE-----\n" - } + {"access_key_id":"admin","bucket":"modelmesh-example-models","default_bucket":"modelmesh-example-models","endpoint_url":"https://minio.minio.svc:9000","region":"us-south","secret_access_key":"password","type":"s3"} diff --git a/controllers/testdata/secrets/storageconfig-updated-cert-encoded.yaml b/controllers/testdata/secrets/storageconfig-updated-cert-encoded.yaml new file mode 100644 index 00000000..01e7df87 --- /dev/null +++ b/controllers/testdata/secrets/storageconfig-updated-cert-encoded.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +data: + aws-connection-minio: eyJhY2Nlc3Nfa2V5X2lkIjoiYWRtaW4iLCJidWNrZXQiOiJtb2RlbG1lc2gtZXhhbXBsZS1tb2RlbHMiLCJjYWJ1bmRsZV9jb25maWdtYXAiOiJvZGgta3NlcnZlLWN1c3RvbS1jYS1idW5kbGUiLCJjZXJ0aWZpY2F0ZSI6Ii0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxuTUlJRkxUQ0NBeFdnQXdJQkFnSVVGNHRQNlQxUzVIL0d0OEJwakZzYlhvN2YwU1l3RFFZSktvWklodmNOQVFFTFxuQlFBd0pqRVZNQk1HQTFVRUNnd01SWGhoYlhCc1pTQkpibU11TVEwd0N3WURWUVFEREFSeWIyOTBNQjRYRFRJMFxuTURJeE5qRTVNVE0wTTFvWERUSTFNREl4TlRFNU1UTTBNMW93SmpFVk1CTUdBMVVFQ2d3TVJYaGhiWEJzWlNCSlxuYm1NdU1RMHdDd1lEVlFRRERBUnliMjkwTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ1xuQWdFQW5hZkxnZ3RTdUpEd216Nk1OYWVvMldtanI2UzR4dVBZTXJDY21jbEc4WjZxUFlIR1VMVG9qankrRHU0OVxueFErWGY1NGtGSUNFbmRGRXNpMS9tcy9PRzdnVDZEK3lLLzJxZkhISkZEUWlSMXdwUEdVUEIzOUlDUFJtS0paR1xudTk4ZFZHQ1VMRncrWktOSmE5dFFoYkZVNUdaVVcvdUhmdTlTMUNIcjhUS2pRM0M4OCt3ZWlDWmVQKzBiT0JOZFxuRUQrSWdTN0U1YW1MUGh5WlpPc3pOMlRjR2ZJVVpiaGxzaHlqcEVVM2RCdDcrWDdlVUNmQ0FFemxVbkIvL2RUeFxuUEpJNUxPRGpLQVVlcnVDVnp4cW1QWlZkOGRjeG9PTHJPNkdlUmlMbTl0V0FWQXVjOTF0TVBscUJyeDJneE9XQ1xuc2VXQ2M4TWR3Z25lTGhnN2lhTzNsZ3FDeFQ3VU5KTjZWdDBSSjR6SHo1aXgrOXJQek5jVm9TdlBjRkhzRUNGZFxuSWEwS3c5QmVtRFcrQkVsdmZkY080V0tlS3o1dHFKZVFKVjRWTm81RmhpZnF1V0huRER3d2VaR255SGErTWEwRlxubmZETnU2RVh6OVBNYUh3UEdZWVdVYm9vUmlRMWp2b2tTK3BlRXU0Q283SXVUNE4xa2l4M28xN090aWJvejl2SlxuWmt0a01PNFEvOEg4TXo5dS8yMnQzL1R5S2dNWXA0bmcwSm9oR1hVNWptb3hHcWQxaEwwemt4amVha1pYajFjelxuVHlVek5xMFRBWWRqQWM2MERVR3lPOXpQcXlwcFRNak5DQUZKd1dXM0hER2RPcHptbHgzcTdHN0R0cVczOGY5WlxuL3d6UU5yUnpjcmpTQWxrb01oODE1VThLTGUrNDZhUVU4cUtCTlJWQ1dQK1R5aHNDQXdFQUFhTlRNRkV3SFFZRFxuVlIwT0JCWUVGR3g2eVJCWlJPNjlkNVNMSmIwSFJiWDhrZE5nTUI4R0ExVWRJd1FZTUJhQUZHeDZ5UkJaUk82OVxuZDVTTEpiMEhSYlg4a2ROZ01BOEdBMVVkRXdFQi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQlxuQUR6aXZmU3JTSkUxbGhtcUpiSjJaSmFxNTlueUZ1OS9yTlM5VWZIWWVpeThlQlpFeWdWRFdGSUF4Yjh4bWJ3UFxuYnJoR3FDeGxBVzdZZHcvbHd3R1VuZHBQOTNMTjlvOTNlVm5FdTdldkVyNEdmbFJ0MysrTUNOVVhqRWJZNVRIVlxuN1hBVStSbTAybHdlalVKdGszTDlFbTBQVUZpVXAzOHZiTEMwb1pLQUVPcU5nR2V4UE9sVUk3K1dXMmtwRVdUalxuZU9tZUVPT1cydEtjeTJwU0lkOVRYNlB0ekVCSXd1aUdaTHNEL3ZTUTF5WHMwQ1pFOTZ4cW1SbFBvUUoyZnlCbVxuT04vM1FZczFvOE1uczV0TWYvaEVXdTRwN2dySHZJQUlISFZjOER5bjJYbExpWFRTV0NncmNZbjBIZU1JWEcrN1xueXhJZGE4R0JKWU8yS1ovZUxrZy9kRTJ2YXJyUThKZWFwTzZvelhTMU1GWUc0clRQRXdTbUx4akd5dTNYRDBzYlxuanY1TEJYbTZvRHZMOGtmSk83dXFLY2l6czJyeDVISWp1UTZtRUV1blZscjlqbEZsTnprTzByZm9lRUNydHd1V1xuanRBeHJwR29uQnVHWTRDY21qeHB2U3dhQkRPQWJablpHN2c1eVJRUVRBL2xPQnZnQmZ6Rm02WHNkbS9WdG55YVxuVUNPbkZyTjB2WExrclFWVnJkWnh4V2h6OUZOK1NVWFF5anNSM0QrVnBKVVZXbXc5cGZpWGk4Ri9KT3BqT1JoZVxuVGJWdW5CbUw5SFVDbEhnVWMyQjBOU2ZOeXFYU3dvK0dwNUtnNGlZSXc0aEp3MkVQd2lsVUZhZmNNOHVWRGt0S1xuNWt3SDMwZTdXVWxrWHorajhwMVVJdUZNNWtLSFcvT3dQQmRMVS8xUGw1dHNVUERBVEVEXG4tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tXG4iLCJkZWZhdWx0X2J1Y2tldCI6Im1vZGVsbWVzaC1leGFtcGxlLW1vZGVscyIsImVuZHBvaW50X3VybCI6Imh0dHBzOi8vbWluaW8ubWluaW8uc3ZjOjkwMDAiLCJyZWdpb24iOiJ1cy1zb3V0aCIsInNlY3JldF9hY2Nlc3Nfa2V5IjoicGFzc3dvcmQiLCJ0eXBlIjoiczMifQ== +kind: Secret +metadata: + labels: + opendatahub.io/managed: "true" + name: storage-config + namespace: default +type: Opaque diff --git a/controllers/testdata/secrets/storageconfig-updated-cert-string.yaml b/controllers/testdata/secrets/storageconfig-updated-cert-string.yaml new file mode 100644 index 00000000..880d45ee --- /dev/null +++ b/controllers/testdata/secrets/storageconfig-updated-cert-string.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Secret +metadata: + name: storage-config + namespace: default +stringData: + aws-connection-minio: | + {"access_key_id":"admin","bucket":"modelmesh-example-models","cabundle_configmap":"odh-kserve-custom-ca-bundle","certificate":"-----BEGIN CERTIFICATE-----\nMIIFLTCCAxWgAwIBAgIUF4tP6T1S5H/Gt8BpjFsbXo7f0SYwDQYJKoZIhvcNAQEL\nBQAwJjEVMBMGA1UECgwMRXhhbXBsZSBJbmMuMQ0wCwYDVQQDDARyb290MB4XDTI0\nMDIxNjE5MTM0M1oXDTI1MDIxNTE5MTM0M1owJjEVMBMGA1UECgwMRXhhbXBsZSBJ\nbmMuMQ0wCwYDVQQDDARyb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC\nAgEAnafLggtSuJDwmz6MNaeo2Wmjr6S4xuPYMrCcmclG8Z6qPYHGULTojjy+Du49\nxQ+Xf54kFICEndFEsi1/ms/OG7gT6D+yK/2qfHHJFDQiR1wpPGUPB39ICPRmKJZG\nu98dVGCULFw+ZKNJa9tQhbFU5GZUW/uHfu9S1CHr8TKjQ3C88+weiCZeP+0bOBNd\nED+IgS7E5amLPhyZZOszN2TcGfIUZbhlshyjpEU3dBt7+X7eUCfCAEzlUnB//dTx\nPJI5LODjKAUeruCVzxqmPZVd8dcxoOLrO6GeRiLm9tWAVAuc91tMPlqBrx2gxOWC\nseWCc8MdwgneLhg7iaO3lgqCxT7UNJN6Vt0RJ4zHz5ix+9rPzNcVoSvPcFHsECFd\nIa0Kw9BemDW+BElvfdcO4WKeKz5tqJeQJV4VNo5FhifquWHnDDwweZGnyHa+Ma0F\nnfDNu6EXz9PMaHwPGYYWUbooRiQ1jvokS+peEu4Co7IuT4N1kix3o17Otiboz9vJ\nZktkMO4Q/8H8Mz9u/22t3/TyKgMYp4ng0JohGXU5jmoxGqd1hL0zkxjeakZXj1cz\nTyUzNq0TAYdjAc60DUGyO9zPqyppTMjNCAFJwWW3HDGdOpzmlx3q7G7DtqW38f9Z\n/wzQNrRzcrjSAlkoMh815U8KLe+46aQU8qKBNRVCWP+TyhsCAwEAAaNTMFEwHQYD\nVR0OBBYEFGx6yRBZRO69d5SLJb0HRbX8kdNgMB8GA1UdIwQYMBaAFGx6yRBZRO69\nd5SLJb0HRbX8kdNgMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggIB\nADzivfSrSJE1lhmqJbJ2ZJaq59nyFu9/rNS9UfHYeiy8eBZEygVDWFIAxb8xmbwP\nbrhGqCxlAW7Ydw/lwwGUndpP93LN9o93eVnEu7evEr4GflRt3++MCNUXjEbY5THV\n7XAU+Rm02lwejUJtk3L9Em0PUFiUp38vbLC0oZKAEOqNgGexPOlUI7+WW2kpEWTj\neOmeEOOW2tKcy2pSId9TX6PtzEBIwuiGZLsD/vSQ1yXs0CZE96xqmRlPoQJ2fyBm\nON/3QYs1o8Mns5tMf/hEWu4p7grHvIAIHHVc8Dyn2XlLiXTSWCgrcYn0HeMIXG+7\nyxIda8GBJYO2KZ/eLkg/dE2varrQ8JeapO6ozXS1MFYG4rTPEwSmLxjGyu3XD0sb\njv5LBXm6oDvL8kfJO7uqKcizs2rx5HIjuQ6mEEunVlr9jlFlNzkO0rfoeECrtwuW\njtAxrpGonBuGY4CcmjxpvSwaBDOAbZnZG7g5yRQQTA/lOBvgBfzFm6Xsdm/Vtnya\nUCOnFrN0vXLkrQVVrdZxxWhz9FN+SUXQyjsR3D+VpJUVWmw9pfiXi8F/JOpjORhe\nTbVunBmL9HUClHgUc2B0NSfNyqXSwo+Gp5Kg4iYIw4hJw2EPwilUFafcM8uVDktK\n5kwH30e7WUlkXz+j8p1UIuFM5kKHW/OwPBdLU/1Pl5tsUPDATED\n-----END CERTIFICATE-----\n","default_bucket":"modelmesh-example-models","endpoint_url":"https://minio.minio.svc:9000","region":"us-south","secret_access_key":"password","type":"s3"} diff --git a/controllers/utils/utils.go b/controllers/utils/utils.go index 526384da..0c9385b7 100644 --- a/controllers/utils/utils.go +++ b/controllers/utils/utils.go @@ -1,8 +1,9 @@ package utils import ( - kservev1beta1 "github.com/kserve/kserve/pkg/apis/serving/v1beta1" "reflect" + + kservev1beta1 "github.com/kserve/kserve/pkg/apis/serving/v1beta1" ) const ( diff --git a/go.mod b/go.mod index 818a6026..0f6675f3 100644 --- a/go.mod +++ b/go.mod @@ -24,6 +24,7 @@ require ( knative.dev/serving v0.37.1 maistra.io/api v0.0.0-20230417135504-0536f6c22b1c sigs.k8s.io/controller-runtime v0.14.6 + sigs.k8s.io/yaml v1.3.0 ) require ( @@ -105,7 +106,6 @@ require ( knative.dev/networking v0.0.0-20231017124814-2a7676e912b7 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( diff --git a/go.sum b/go.sum index 665cba3f..7b802b60 100644 --- a/go.sum +++ b/go.sum @@ -12,51 +12,115 @@ cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzc cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= +cloud.google.com/go/kms v1.15.5/go.mod h1:cU2H5jnp6G2TDpUGZyqTCoy1n16fbubHZjmVXSMtwDI= cloud.google.com/go/storage v1.33.0 h1:PVrDOkIC8qQVa1P3SXGpQvfuJhN2LHOoyZvWs8D2X5M= cloud.google.com/go/storage v1.33.0/go.mod h1:Hhh/dogNRGca7IWv1RC2YqEn0c0G77ctA/OxflYkiD8= contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d h1:LblfooH1lKOpp1hIhukktmSAxFkqMPFk9KR6iZ0MJNI= +contrib.go.opencensus.io/exporter/ocagent v0.7.1-0.20200907061046-05415f1de66d/go.mod h1:IshRmMJBhDfFj5Y67nVhMYTTIze91RUeT73ipWKs/GY= contrib.go.opencensus.io/exporter/prometheus v0.4.2 h1:sqfsYl5GIY/L570iT+l93ehxaWJs2/OwXtiWwew3oAg= +contrib.go.opencensus.io/exporter/prometheus v0.4.2/go.mod h1:dvEHbiKmgvbr5pjaF9fpw1KeYcjrnC1J8B+JKjsZyRQ= +contrib.go.opencensus.io/exporter/zipkin v0.1.2/go.mod h1:mP5xM3rrgOjpn79MM8fZbj3gsxcuytSqtH0dxSWW1RE= dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +github.com/Azure/azure-sdk-for-go v67.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= +github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= +github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= +github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= +github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20210609063737-0067dc6dcea2/go.mod h1:TdjdkYhlOifCQWPs1UdTma97kQQMozf5h26hTuG70u8= +github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/antlr/antlr4/runtime/Go/antlr v1.4.10/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.44.264 h1:5klL62ebn6uv3oJ0ixF7K12hKItj8lV3QqWeQPlkFSs= github.com/aws/aws-sdk-go v1.44.264/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k= +github.com/aws/aws-sdk-go-v2/config v1.17.8/go.mod h1:UkCI3kb0sCdvtjiXYiU4Zx5h07BOpgBTtkPu/49r+kA= +github.com/aws/aws-sdk-go-v2/credentials v1.12.21/go.mod h1:O+4XyAt4e+oBAoIwNUYkRg3CVMscaIJdmZBOcPgJ8D8= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.17/go.mod h1:yIkQcCDYNsZfXpd5UX2Cy+sWA1jPgIhGTw9cOBzfVnQ= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.23/go.mod h1:2DFxAQ9pfIRy0imBCJv+vZ2X6RKxves6fbnEuSry6b4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.17/go.mod h1:pRwaTYCJemADaqCbUAxltMoHKata7hmB5PjEXeu0kfg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.24/go.mod h1:jULHjqqjDlbyTa7pfM7WICATnOv+iOhjletM3N0Xbu8= +github.com/aws/aws-sdk-go-v2/service/ecr v1.17.18/go.mod h1:DQtDYmexqR+z+B6HBCvY7zK/tuXKv6Zy/IwOXOK3eow= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.13.17/go.mod h1:r1Vuka0kyzqN0sZm4lYTXf0Vhl+o/mTLq6vKpBBZYaQ= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.17/go.mod h1:4nYOrY41Lrbk2170/BGkcJKBhws9Pfn8MG3aGqjjeFI= +github.com/aws/aws-sdk-go-v2/service/sso v1.11.23/go.mod h1:/w0eg9IhFGjGyyncHIQrXtU8wvNsTJOP0R6PPj0wf80= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.6/go.mod h1:csZuQY65DAdFBt1oIjO5hhBR49kQqop4+lcuCjf2arA= +github.com/aws/aws-sdk-go-v2/service/sts v1.16.19/go.mod h1:h4J3oPZQbxLhzGnk+j9dfYHi5qIOVJ5kczZd658/ydM= +github.com/aws/smithy-go v1.13.3/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20221004211355-a250ad2ca1e3/go.mod h1:m06KtrZgOloUaePAQMv+Ha8kRmTnKdozTHZrweepIrw= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= +github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chrismellard/docker-credential-acr-env v0.0.0-20221002210726-e883f69e0206/go.mod h1:1UmFRnmMnVsHwD+ZntmLkoVBB1ZLa6V+XXEbF6hZCxU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudevents/sdk-go v1.2.0/go.mod h1:ss+jWJ88wypiewnPEzChSBzTYXGpdcILoN9YHk8uhTQ= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= +github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd/v22 v22.4.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deepmap/oapi-codegen v1.8.2/go.mod h1:YLgSKSDv/bZQB7N4ws6luhozi3cEdRktEqrX88CvjIw= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= +github.com/docker/cli v23.0.5+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= +github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig1seQen0cKYlM= +github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -66,33 +130,49 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= +github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/getkin/kin-openapi v0.116.0/go.mod h1:l5e9PaFUo9fyLJCPGQeXI2ML8c3P8BHOEV2VaAVf/pc= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq8Jd4h5lpwo= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/gobuffalo/flect v1.0.2/go.mod h1:A5msMlrHtLqh9umBSnvabjsMrCcCpAyzglnDvkbYKHs= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gofrs/uuid/v5 v5.0.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= @@ -102,6 +182,7 @@ github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4er github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -113,8 +194,10 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= @@ -127,15 +210,22 @@ github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-containerregistry v0.15.2 h1:MMkSh+tjSdnmJZO7ljvEqV1DjfekB6VUEAZgy3a+TQE= github.com/google/go-containerregistry v0.15.2/go.mod h1:wWK+LnOv4jXMM23IT/F1wdYftGWGr47Is8CG+pmHK1Q= +github.com/google/go-containerregistry/pkg/authn/k8schain v0.0.0-20230209165335-3624968304fd/go.mod h1:x5fIlj5elU+/eYF60q4eASMQ9kDc+GMFa7UU9M3mFFw= +github.com/google/go-containerregistry/pkg/authn/kubernetes v0.0.0-20230209165335-3624968304fd/go.mod h1:6pjZpt+0dg+Z0kUEn53qLtD57raiZo/bqWzsuX6dDjo= +github.com/google/go-github/v27 v27.0.6/go.mod h1:/0Gr8pJ55COkmv+S/yPKCczSkUPIM/LnFyubufRNIS0= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/mako v0.0.0-20190821191249-122f8dcef9e3/go.mod h1:YzLcVlL+NqWnmUEPuhS1LxDDwGO9WNbVlEXaF4IH35g= github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -147,32 +237,54 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720 h1:zC34cGQu69FG7qzJ3WiKW244WfhDC3xxYMeNOX2gtUQ= github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2 h1:gDLXvp5S9izjldquuoAhDzccbskOL6tDC5jMSyx3zxE= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.15.2/go.mod h1:7pdNwVWBBHGiCxa9lAszqCJMbfTISJ7oMftp8+UGV08= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/influxdata/influxdb-client-go/v2 v2.9.0/go.mod h1:x7Jo5UHHl+w8wu8UnGiNobDDHygojXwJX4mx7rXGKMk= +github.com/influxdata/line-protocol v0.0.0-20200327222509-2487e7298839/go.mod h1:xaLFMmpvUxqXtVkUJfg9QmT88cDaCJ3ZKgdZ78oO8Qo= +github.com/influxdata/tdigest v0.0.1/go.mod h1:Z0kXnxzbTC2qrx4NaIzYkE1k66+6oEDQTvL95hQFh5Y= +github.com/invopop/yaml v0.2.0/go.mod h1:2XuRLgs/ouIrW3XNzuNj7J3Nvu/Dig5MXvbCEdiBN3Q= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -181,23 +293,36 @@ github.com/kserve/kserve v0.11.0 h1:7ZPTjxuRd/qKFTygmYsTZKFCvuzOzjaM83NYAXu8DE4= github.com/kserve/kserve v0.11.0/go.mod h1:oLeSCIZ6jQqoXYG1HyolzHN1PW0ioCNCWZGnin5yTDg= github.com/kuadrant/authorino v0.15.0 h1:Xw/buh/wTINdL+IpLSxhlpet4hpleMxZzfx39c4VQng= github.com/kuadrant/authorino v0.15.0/go.mod h1:vXkHKrntn8DR7kt8a8Ohxq+2lgAD0jWivThoP+7ASew= +github.com/lightstep/tracecontext.go v0.0.0-20181129014701-1757c391b1ac/go.mod h1:Frd2bnT3w5FB5q49ENTfVlztJES+1k/7lyWX2+9gq/M= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= @@ -206,6 +331,7 @@ github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108 github.com/onsi/ginkgo v1.16.4 h1:29JGrr5oVBm5ulCWet69zQkzWipVXIol6ygQUe/EzNc= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo/v2 v2.9.2 h1:BA2GMJOtfGAfagzYtrAlufIP0lq6QERkFmHLMLPwFSU= +github.com/onsi/ginkgo/v2 v2.9.2/go.mod h1:WHcJJG2dIlcCqVfBAwUCrJxSPFb6v4azBwgxeMeDuts= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.27.6 h1:ENqfyGeS5AX/rlXDd/ETokDz93u0YufY1Pgxuy/PvWE= @@ -213,11 +339,15 @@ github.com/onsi/gomega v1.27.6/go.mod h1:PIQNjfQwkP3aQAH7lf7j87O/5FiNr+ZR8+ipb+q github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= +github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= github.com/opendatahub-io/model-registry v0.1.1 h1:q5KJIRhOAwUarodz/SP1NDx25rUNcV/ek0vi4ziBQZU= github.com/opendatahub-io/model-registry v0.1.1/go.mod h1:LlAAyLOh4Fn3AESXKXpgfERzQlBeTSyYex1vrDIgog0= github.com/openshift/api v3.9.0+incompatible h1:fJ/KsefYuZAjmrr3+5U9yZIZbTOpVkDDLDLFresAeYs= github.com/openshift/api v3.9.0+incompatible/go.mod h1:dh9o4Fs58gpFXGSYfnVxGR9PnV53I8TW84pQaJDdGiY= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/perimeterx/marshmallow v1.1.4/go.mod h1:dsXbUu8CRzfYP5a87xpp0xq9S3u0Vchtcl8we9tYaXw= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -236,14 +366,27 @@ github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/prometheus/statsd_exporter v0.23.1 h1:TiNAE1XevlZZrpSbmf51l/Ryl2Eek9rYh//KlvcNvKw= +github.com/prometheus/statsd_exporter v0.23.1/go.mod h1:FFmnBRWf+HxX+PR+2fnc0ciBIONVAPJ6k4lqIbdqVxo= +github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417/go.mod h1:qe5TWALJ8/a1Lqznoc5BDHpYX/8HU60Hm2AwRmqzxqA= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/shirou/gopsutil/v3 v3.23.9 h1:ZI5bWVeu2ep4/DIxB4U9okeYJ7zp/QLTO4auRb/ty/E= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= @@ -255,6 +398,9 @@ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= github.com/testcontainers/testcontainers-go v0.26.0 h1:uqcYdoOHBy1ca7gKODfBd9uTHVK3a7UL848z09MVZ0c= github.com/tidwall/gjson v1.14.4 h1:uo0p8EbA09J7RQaflQ1aBRffTR7xedD2bcIVSYxLnkM= github.com/tidwall/gjson v1.14.4/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= @@ -265,23 +411,40 @@ github.com/tidwall/pretty v1.2.1 h1:qjsOFOWWQl+N3RsoF5/ssm1pHmJJwhjlSbZ51I6wMl4= github.com/tidwall/pretty v1.2.1/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= +github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= +github.com/tsenart/go-tsz v0.0.0-20180814235614-0bd30b3df1c3/go.mod h1:SWZznP1z5Ki7hDT2ioqiFKEse8K9tU2OUvaRI0NeGQo= +github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/etcd/api/v3 v3.5.7/go.mod h1:9qew1gCdDDLu+VwmeG+iFpL+QlpHTo7iubavdVDgCAA= +go.etcd.io/etcd/client/pkg/v3 v3.5.7/go.mod h1:o0Abi1MK86iad3YrWhgUsbGx1pmTS+hrORWc2CamuhY= +go.etcd.io/etcd/client/v2 v2.305.7/go.mod h1:GQGT5Z3TBuAQGvgPfhR7VPySu/SudxmEkRq9BgzFU6s= +go.etcd.io/etcd/client/v3 v3.5.7/go.mod h1:sOWmj9DZUMyAngS7QQwCyAXXAL6WhgTOPLNS/NabQgw= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnwa1WM0= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -295,6 +458,7 @@ golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= @@ -309,6 +473,7 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -419,6 +584,7 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= +golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -477,6 +643,9 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -491,6 +660,8 @@ gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -499,6 +670,7 @@ istio.io/api v0.0.0-20230712174848-a2b2de508c88 h1:w7lSk+XcYNzGC5xtHBFvaV7QTBMQC istio.io/api v0.0.0-20230712174848-a2b2de508c88/go.mod h1:owGDRg9uqMob8CN1gxaOzk6nJxnbT8wrP7PmggpJHHY= istio.io/client-go v1.17.4 h1:BFVO3q4/qT3vwd30T+a8LdvW+vM7psqebluXiXsSWCI= istio.io/client-go v1.17.4/go.mod h1:994/wFLmyN7Th6Cat2pACSwvp6VaGYlonm3mpuRAOq8= +istio.io/gogo-genproto v0.0.0-20190930162913-45029607206a/go.mod h1:OzpAts7jljZceG4Vqi5/zXy/pOg1b209T3jb7Nv5wIs= k8s.io/api v0.26.4 h1:qSG2PmtcD23BkYiWfoYAcak870eF/hE7NNYBYavTT94= k8s.io/api v0.26.4/go.mod h1:WwKEXU3R1rgCZ77AYa7DFksd9/BAIKyOmRlbVxgvjCk= k8s.io/apiextensions-apiserver v0.27.6 h1:mOwSBJtThZhpJr+8gEkc3wFDIjq87E3JspR5mtZxIg8= @@ -509,6 +681,8 @@ k8s.io/client-go v0.26.4 h1:/7P/IbGBuT73A+G97trf44NTPSNqvuBREpOfdLbHvD4= k8s.io/client-go v0.26.4/go.mod h1:6qOItWm3EwxJdl/8p5t7FWtWUOwyMdA8N9ekbW4idpI= k8s.io/component-base v0.27.6 h1:hF5WxX7Tpi9/dXAbLjPVkIA6CA6Pi6r9JOHyo0uCDYI= k8s.io/component-base v0.27.6/go.mod h1:NvjLtaneUeb0GgMPpCBF+4LNB9GuhDHi16uUTjBhQfU= +k8s.io/gengo v0.0.0-20221011193443-fad74ee6edd9/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20230515203736-54b630e78af5 h1:azYPdzztXxPSa8wb+hksEKayiz0o+PPisO/d+QhWnoo= @@ -524,8 +698,10 @@ knative.dev/serving v0.39.3/go.mod h1:bWylSgwnRZeL659qy7m3/TZioYk25TIfusPUEeR695 maistra.io/api v0.0.0-20230417135504-0536f6c22b1c h1:WNBqA7R23P/TDkzP/wa3mfE4Bd9eM8NzWiwhcNyWAgk= maistra.io/api v0.0.0-20230417135504-0536f6c22b1c/go.mod h1:YdrOpeJBddUNHKIuhqlsNje9YUBFHl2pho7mhYwmsYs= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.1.2/go.mod h1:+qG7ISXqCDVVcyO8hLn12AKVYYUjM7ftlqsqmrhMZE0= sigs.k8s.io/controller-runtime v0.14.6 h1:oxstGVvXGNnMvY7TAESYk+lzr6S3V5VFxQ6d92KcwQA= sigs.k8s.io/controller-runtime v0.14.6/go.mod h1:WqIdsAY6JBsjfc/CqO0CORmNtoCtE4S6qbPc9s68h+0= +sigs.k8s.io/controller-tools v0.7.0/go.mod h1:bpBAo0VcSDDLuWt47evLhMLPxRPxMDInTEH/YbdeMK0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= diff --git a/main.go b/main.go index 6bfce8d9..0cb6a445 100644 --- a/main.go +++ b/main.go @@ -134,6 +134,15 @@ func main() { os.Exit(1) } + if err = (&controllers.KServeCustomCACertReconciler{ + Client: mgr.GetClient(), + Log: ctrl.Log.WithName("controllers").WithName("KServeCustomeCABundleConfigMap"), + Scheme: mgr.GetScheme(), + }).SetupWithManager(mgr); err != nil { + setupLog.Error(err, "unable to create controller", "controller", "KServeCustomeCABundleConfigMap") + os.Exit(1) + } + if monitoringNS != "" { setupLog.Info("Monitoring namespace provided, setting up monitoring controller.") if err = (&controllers.MonitoringReconciler{