diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml index 217399c693..42303d8471 100644 --- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml +++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml @@ -68,6 +68,10 @@ spec: description: IntegrationPlatformBuildSpec contains platform related build information properties: + PublishStrategyOptions: + additionalProperties: + type: string + type: object baseImage: type: string buildStrategy: @@ -77,6 +81,7 @@ spec: - pod type: string kanikoBuildCache: + description: 'Deprecated: Use PublishStrategyOptions instead' type: boolean maven: description: MavenSpec -- @@ -184,6 +189,7 @@ spec: type: string type: object persistentVolumeClaim: + description: 'Deprecated: Use PublishStrategyOptions instead' type: string publishStrategy: description: IntegrationPlatformBuildPublishStrategy enumerates @@ -275,6 +281,10 @@ spec: description: IntegrationPlatformBuildSpec contains platform related build information properties: + PublishStrategyOptions: + additionalProperties: + type: string + type: object baseImage: type: string buildStrategy: @@ -284,6 +294,7 @@ spec: - pod type: string kanikoBuildCache: + description: 'Deprecated: Use PublishStrategyOptions instead' type: boolean maven: description: MavenSpec -- @@ -391,6 +402,7 @@ spec: type: string type: object persistentVolumeClaim: + description: 'Deprecated: Use PublishStrategyOptions instead' type: string publishStrategy: description: IntegrationPlatformBuildPublishStrategy enumerates diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc index 90bbd2bffb..9d79f70ff4 100644 --- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc +++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc @@ -1582,7 +1582,7 @@ string | - +Deprecated: Use PublishStrategyOptions instead |`maven` + *xref:#_camel_apache_org_v1_MavenSpec[MavenSpec]* @@ -1596,6 +1596,13 @@ bool | +Deprecated: Use PublishStrategyOptions instead + +|`PublishStrategyOptions` + +map[string]string +| + + @@ -1960,9 +1967,9 @@ Deprecated: use the IntegrationKit field Deprecated: Use camel trait (camel.properties) to manage properties -Use container trait (container.configs) to manage configs -Use container trait (container.resources) to manage resources -Use container trait (container.volumes) to manage volumes +Use container trait (mount.configs) to manage configs +Use container trait (mount.resources) to manage resources +Use container trait (mount.volumes) to manage volumes |`repositories` + []string @@ -2530,7 +2537,6 @@ string *Appears on:* * <<#_camel_apache_org_v1_Flow, Flow>> -* <<#_camel_apache_org_v1_Template, Template>> * <<#_camel_apache_org_v1_TraitConfiguration, TraitConfiguration>> RawMessage is a raw encoded JSON value. @@ -3002,26 +3008,6 @@ Task -- -|=== - -[#_camel_apache_org_v1_Template] -=== Template - -Template is an unstructured object representing a Kamelet template in YAML/JSON DSL - -[cols="2,2a",options="header"] -|=== -|Field -|Description - -|`RawMessage` + -*xref:#_camel_apache_org_v1_RawMessage[RawMessage]* -|(Members of `RawMessage` are embedded into this type.) - - - - - |=== [#_camel_apache_org_v1_TraitConfiguration] diff --git a/docs/modules/ROOT/partials/apis/kamelets-crds.adoc b/docs/modules/ROOT/partials/apis/kamelets-crds.adoc index 0a23dc2fa5..3ca5d9028d 100644 --- a/docs/modules/ROOT/partials/apis/kamelets-crds.adoc +++ b/docs/modules/ROOT/partials/apis/kamelets-crds.adoc @@ -112,7 +112,7 @@ BeanProperties represent an unstructured object properties to be set on a bean |Description |`RawMessage` + -*xref:apis/camel-k.adoc#_camel_apache_org_v1_RawMessage[github.com/apache/camel-k/pkg/apis/camel/v1.RawMessage]* +*xref:#_camel_apache_org_v1alpha1_RawMessage[RawMessage]* | @@ -182,7 +182,7 @@ EndpointProperties is a key/value struct represented as JSON raw to allow numeri |Description |`RawMessage` + -*xref:apis/camel-k.adoc#_camel_apache_org_v1_RawMessage[github.com/apache/camel-k/pkg/apis/camel/v1.RawMessage]* +*xref:#_camel_apache_org_v1alpha1_RawMessage[RawMessage]* |(Members of `RawMessage` are embedded into this type.) @@ -266,7 +266,7 @@ ErrorHandlerParameters represent an unstructured object for error handler parame |Description |`RawMessage` + -*xref:apis/camel-k.adoc#_camel_apache_org_v1_RawMessage[github.com/apache/camel-k/pkg/apis/camel/v1.RawMessage]* +*xref:#_camel_apache_org_v1alpha1_RawMessage[RawMessage]* | @@ -317,7 +317,7 @@ ErrorHandlerSpec represents an unstructured object for an error handler |Description |`RawMessage` + -*xref:apis/camel-k.adoc#_camel_apache_org_v1_RawMessage[github.com/apache/camel-k/pkg/apis/camel/v1.RawMessage]* +*xref:#_camel_apache_org_v1alpha1_RawMessage[RawMessage]* | @@ -1043,7 +1043,7 @@ KameletSpec defines the desired state of Kamelet |`template` + -*xref:apis/camel-k.adoc#_camel_apache_org_v1_Template[github.com/apache/camel-k/pkg/apis/camel/v1.Template]* +*xref:#_camel_apache_org_v1alpha1_Template[Template]* | @@ -1123,8 +1123,38 @@ KameletStatus defines the observed state of Kamelet *Appears on:* +* <<#_camel_apache_org_v1alpha1_BeanProperties, BeanProperties>> +* <<#_camel_apache_org_v1alpha1_EndpointProperties, EndpointProperties>> +* <<#_camel_apache_org_v1alpha1_ErrorHandlerParameters, ErrorHandlerParameters>> +* <<#_camel_apache_org_v1alpha1_ErrorHandlerSpec, ErrorHandlerSpec>> * <<#_camel_apache_org_v1alpha1_JSON, JSON>> +* <<#_camel_apache_org_v1alpha1_Template, Template>> RawMessage is a raw encoded JSON value. It implements Marshaler and Unmarshaler and can be used to delay JSON decoding or precompute a JSON encoding. + + +[#_camel_apache_org_v1alpha1_Template] +=== Template + +*Appears on:* + +* <<#_camel_apache_org_v1alpha1_KameletSpec, KameletSpec>> + +Template is an unstructured object representing a Kamelet template in YAML/JSON DSL + +[cols="2,2a",options="header"] +|=== +|Field +|Description + +|`RawMessage` + +*xref:#_camel_apache_org_v1alpha1_RawMessage[RawMessage]* +|(Members of `RawMessage` are embedded into this type.) + + + + + +|=== \ No newline at end of file diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml index 217399c693..42303d8471 100644 --- a/helm/camel-k/crds/crd-integration-platform.yaml +++ b/helm/camel-k/crds/crd-integration-platform.yaml @@ -68,6 +68,10 @@ spec: description: IntegrationPlatformBuildSpec contains platform related build information properties: + PublishStrategyOptions: + additionalProperties: + type: string + type: object baseImage: type: string buildStrategy: @@ -77,6 +81,7 @@ spec: - pod type: string kanikoBuildCache: + description: 'Deprecated: Use PublishStrategyOptions instead' type: boolean maven: description: MavenSpec -- @@ -184,6 +189,7 @@ spec: type: string type: object persistentVolumeClaim: + description: 'Deprecated: Use PublishStrategyOptions instead' type: string publishStrategy: description: IntegrationPlatformBuildPublishStrategy enumerates @@ -275,6 +281,10 @@ spec: description: IntegrationPlatformBuildSpec contains platform related build information properties: + PublishStrategyOptions: + additionalProperties: + type: string + type: object baseImage: type: string buildStrategy: @@ -284,6 +294,7 @@ spec: - pod type: string kanikoBuildCache: + description: 'Deprecated: Use PublishStrategyOptions instead' type: boolean maven: description: MavenSpec -- @@ -391,6 +402,7 @@ spec: type: string type: object persistentVolumeClaim: + description: 'Deprecated: Use PublishStrategyOptions instead' type: string publishStrategy: description: IntegrationPlatformBuildPublishStrategy enumerates diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go index 87c66ac84f..dfe87a8fa4 100644 --- a/pkg/apis/camel/v1/integrationplatform_types.go +++ b/pkg/apis/camel/v1/integrationplatform_types.go @@ -107,16 +107,19 @@ var AllTraitProfiles = []TraitProfile{TraitProfileKubernetes, TraitProfileKnativ // IntegrationPlatformBuildSpec contains platform related build information type IntegrationPlatformBuildSpec struct { - BuildStrategy BuildStrategy `json:"buildStrategy,omitempty"` - PublishStrategy IntegrationPlatformBuildPublishStrategy `json:"publishStrategy,omitempty"` - RuntimeVersion string `json:"runtimeVersion,omitempty"` - RuntimeProvider RuntimeProvider `json:"runtimeProvider,omitempty"` - BaseImage string `json:"baseImage,omitempty"` - Registry RegistrySpec `json:"registry,omitempty"` - Timeout *metav1.Duration `json:"timeout,omitempty"` - PersistentVolumeClaim string `json:"persistentVolumeClaim,omitempty"` - Maven MavenSpec `json:"maven,omitempty"` - KanikoBuildCache *bool `json:"kanikoBuildCache,omitempty"` + BuildStrategy BuildStrategy `json:"buildStrategy,omitempty"` + PublishStrategy IntegrationPlatformBuildPublishStrategy `json:"publishStrategy,omitempty"` + RuntimeVersion string `json:"runtimeVersion,omitempty"` + RuntimeProvider RuntimeProvider `json:"runtimeProvider,omitempty"` + BaseImage string `json:"baseImage,omitempty"` + Registry RegistrySpec `json:"registry,omitempty"` + Timeout *metav1.Duration `json:"timeout,omitempty"` + // Deprecated: Use PublishStrategyOptions instead + PersistentVolumeClaim string `json:"persistentVolumeClaim,omitempty"` + Maven MavenSpec `json:"maven,omitempty"` + // Deprecated: Use PublishStrategyOptions instead + KanikoBuildCache *bool `json:"kanikoBuildCache,omitempty"` + PublishStrategyOptions map[string]string `json:"PublishStrategyOptions,omitempty"` } // IntegrationPlatformKameletSpec -- diff --git a/pkg/apis/camel/v1/integrationplatform_types_support.go b/pkg/apis/camel/v1/integrationplatform_types_support.go index 41de3ea627..b644f462e1 100644 --- a/pkg/apis/camel/v1/integrationplatform_types_support.go +++ b/pkg/apis/camel/v1/integrationplatform_types_support.go @@ -18,6 +18,7 @@ limitations under the License. package v1 import ( + "strconv" "strings" corev1 "k8s.io/api/core/v1" @@ -178,13 +179,17 @@ func (in *IntegrationPlatformStatus) RemoveCondition(condType IntegrationPlatfor in.Conditions = newConditions } -// IsKanikoCacheEnabled tells if the KanikoCache is enabled on the integration platform build spec -func (b IntegrationPlatformBuildSpec) IsKanikoCacheEnabled() bool { - if b.KanikoBuildCache == nil { - // Cache is disabled by default - return false +// IsOptionEnabled tells if provided option key is present in PublishStrategyOptions and enabled +func (b IntegrationPlatformBuildSpec) IsOptionEnabled(option string) bool { + //Key defined in builder/kaniko.go + if enabled, ok := b.PublishStrategyOptions[option]; ok { + res, err := strconv.ParseBool(enabled) + if err != nil { + return false + } + return res } - return *b.KanikoBuildCache + return false } // GetTimeout returns the specified duration or a default one diff --git a/pkg/apis/camel/v1/zz_generated.deepcopy.go b/pkg/apis/camel/v1/zz_generated.deepcopy.go index 69ddb11deb..b1ae683dd2 100644 --- a/pkg/apis/camel/v1/zz_generated.deepcopy.go +++ b/pkg/apis/camel/v1/zz_generated.deepcopy.go @@ -439,6 +439,13 @@ func (in *CamelLoader) DeepCopyInto(out *CamelLoader) { *out = make([]MavenArtifact, len(*in)) copy(*out, *in) } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CamelLoader. @@ -872,6 +879,13 @@ func (in *IntegrationPlatformBuildSpec) DeepCopyInto(out *IntegrationPlatformBui *out = new(bool) **out = **in } + if in.PublishStrategyOptions != nil { + in, out := &in.PublishStrategyOptions, &out.PublishStrategyOptions + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntegrationPlatformBuildSpec. diff --git a/pkg/builder/kaniko.go b/pkg/builder/kaniko.go index 82177a76e5..260dc72ec3 100644 --- a/pkg/builder/kaniko.go +++ b/pkg/builder/kaniko.go @@ -19,3 +19,5 @@ package builder // KanikoCacheDir is the cache directory for Kaniko builds (mounted into the Kaniko pod). const KanikoCacheDir = "/kaniko/cache" +const KanikoPVCName = "KanikoPersistentVolumeClaim" +const KanikoBuildCacheEnabled = "KanikoBuildCacheEnabled" diff --git a/pkg/cmd/install.go b/pkg/cmd/install.go index 92ad2c4a1a..504e098c82 100644 --- a/pkg/cmd/install.go +++ b/pkg/cmd/install.go @@ -22,6 +22,7 @@ import ( "fmt" "os" "regexp" + "strconv" "strings" "time" @@ -39,6 +40,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/client" "github.com/apache/camel-k/pkg/install" "github.com/apache/camel-k/pkg/util" @@ -443,7 +445,7 @@ func (o *installCmdOptions) install(cobraCmd *cobra.Command, _ []string) error { kanikoBuildCacheFlag := cobraCmd.Flags().Lookup("kaniko-build-cache") if kanikoBuildCacheFlag.Changed { - platform.Spec.Build.KanikoBuildCache = &o.KanikoBuildCache + platform.Spec.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled] = strconv.FormatBool(o.KanikoBuildCache) } // Always create a platform in the namespace where the operator is located diff --git a/pkg/cmd/trait_help_test.go b/pkg/cmd/trait_help_test.go index 6659b6b66a..63d5356470 100644 --- a/pkg/cmd/trait_help_test.go +++ b/pkg/cmd/trait_help_test.go @@ -1,3 +1,4 @@ +//go:build common // +build common /* diff --git a/pkg/controller/integrationplatform/initialize.go b/pkg/controller/integrationplatform/initialize.go index 6bb5b3b1b2..b7d8f9d871 100644 --- a/pkg/controller/integrationplatform/initialize.go +++ b/pkg/controller/integrationplatform/initialize.go @@ -19,13 +19,13 @@ package integrationplatform import ( "context" - corev1 "k8s.io/api/core/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/client" platformutil "github.com/apache/camel-k/pkg/platform" "github.com/apache/camel-k/pkg/util/defaults" @@ -68,9 +68,13 @@ func (action *initializeAction) Handle(ctx context.Context, platform *v1.Integra if err = platformutil.ConfigureDefaults(ctx, action.client, platform, true); err != nil { return nil, err } - + // nolint: staticcheck if platform.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko { - if platform.Status.Build.IsKanikoCacheEnabled() { + cacheEnabled := platform.Status.Build.IsOptionEnabled(builder.KanikoBuildCacheEnabled) + if _, found := platform.Status.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled]; !found { + cacheEnabled = *platform.Status.Build.KanikoBuildCache + } + if cacheEnabled { // Create the persistent volume claim used by the Kaniko cache action.L.Info("Create persistent volume claim") err := createPersistentVolumeClaim(ctx, action.client, platform) @@ -120,6 +124,10 @@ func createPersistentVolumeClaim(ctx context.Context, client client.Client, plat if err != nil { return err } + pvcName := platform.Status.Build.PersistentVolumeClaim + if persistentVolumeClaim, found := platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]; found { + pvcName = persistentVolumeClaim + } pvc := &corev1.PersistentVolumeClaim{ TypeMeta: metav1.TypeMeta{ @@ -128,7 +136,7 @@ func createPersistentVolumeClaim(ctx context.Context, client client.Client, plat }, ObjectMeta: metav1.ObjectMeta{ Namespace: platform.Namespace, - Name: platform.Status.Build.PersistentVolumeClaim, + Name: pvcName, Labels: map[string]string{ "app": "camel-k", }, diff --git a/pkg/controller/integrationplatform/kaniko_cache.go b/pkg/controller/integrationplatform/kaniko_cache.go index 8be897604a..6292eea9b3 100644 --- a/pkg/controller/integrationplatform/kaniko_cache.go +++ b/pkg/controller/integrationplatform/kaniko_cache.go @@ -40,6 +40,12 @@ func createKanikoCacheWarmerPod(ctx context.Context, client client.Client, platf // See: // - https://kubernetes.io/docs/concepts/storage/persistent-volumes/#node-affinity // - https://kubernetes.io/docs/concepts/storage/volumes/#local + // nolint: staticcheck + pvcName := platform.Status.Build.PersistentVolumeClaim + if persistentVolumeClaim, found := platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]; found { + pvcName = persistentVolumeClaim + } + pod := corev1.Pod{ TypeMeta: metav1.TypeMeta{ APIVersion: corev1.SchemeGroupVersion.String(), @@ -91,7 +97,7 @@ func createKanikoCacheWarmerPod(ctx context.Context, client client.Client, platf Name: "kaniko-cache", VolumeSource: corev1.VolumeSource{ PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{ - ClaimName: platform.Status.Build.PersistentVolumeClaim, + ClaimName: pvcName, }, }, }, diff --git a/pkg/platform/defaults.go b/pkg/platform/defaults.go index 0f0eb25041..af4a890df1 100644 --- a/pkg/platform/defaults.go +++ b/pkg/platform/defaults.go @@ -34,6 +34,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" v1 "github.com/apache/camel-k/pkg/apis/camel/v1" + "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/client" "github.com/apache/camel-k/pkg/install" "github.com/apache/camel-k/pkg/kamelet/repository" @@ -153,6 +154,9 @@ func configureRegistry(ctx context.Context, c client.Client, p *v1.IntegrationPl } func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error { + if p.Status.Build.PublishStrategyOptions == nil { + p.Status.Build.PublishStrategyOptions = map[string]string{} + } if p.Status.Build.RuntimeVersion == "" { p.Status.Build.RuntimeVersion = defaults.DefaultRuntimeVersion } @@ -169,8 +173,8 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error { "-Dstyle.color=never", } } - if p.Status.Build.PersistentVolumeClaim == "" { - p.Status.Build.PersistentVolumeClaim = p.Name + if _, ok := p.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]; !ok { + p.Status.Build.PublishStrategyOptions[builder.KanikoPVCName] = p.Name } if p.Status.Build.GetTimeout().Duration != 0 { @@ -189,15 +193,15 @@ func setPlatformDefaults(p *v1.IntegrationPlatform, verbose bool) error { Duration: 5 * time.Minute, } } - - if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko && p.Status.Build.KanikoBuildCache == nil { + _, cacheEnabled := p.Status.Build.PublishStrategyOptions["KanikoBuildCache"] + if p.Status.Build.PublishStrategy == v1.IntegrationPlatformBuildPublishStrategyKaniko && !cacheEnabled { // Default to disabling Kaniko cache warmer // Using the cache warmer pod seems unreliable with the current Kaniko version // and requires relying on a persistent volume. - defaultKanikoBuildCache := false - p.Status.Build.KanikoBuildCache = &defaultKanikoBuildCache + defaultKanikoBuildCache := "false" + p.Status.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled] = defaultKanikoBuildCache if verbose { - log.Log.Infof("Kaniko cache set to %t", *p.Status.Build.KanikoBuildCache) + log.Log.Infof("Kaniko cache set to %s", defaultKanikoBuildCache) } } diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go index f1d33bdfdb..c2f9a3d863 100644 --- a/pkg/resources/resources.go +++ b/pkg/resources/resources.go @@ -38,6 +38,13 @@ var assets = func() http.FileSystem { name: "/", modTime: time.Time{}, }, + "/.DS_Store": &vfsgen۰CompressedFileInfo{ + name: ".DS_Store", + modTime: time.Time{}, + uncompressedSize: 8196, + + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x99\x3f\x8b\xd4\x40\x18\xc6\x9f\xd9\x5d\xb8\x55\x39\x48\x73\x70\x8d\x90\x42\xb0\x3e\x1b\x3b\x89\x47\xec\x85\xe0\xbf\x46\x36\x9b\xc9\xdd\x89\x89\x09\xc9\x6e\x9f\x46\x10\x41\xf0\x5a\x41\x3f\x80\x85\x8d\xb5\x20\x28\x88\xa5\x7e\x22\xc9\xcd\x1b\x33\xb3\x33\x39\xd3\xc8\xc9\xfa\xfe\x60\xf7\x81\x7d\x9f\xe4\x7d\x08\x93\x49\x66\x16\x80\x38\x5c\xcb\x03\x60\x1f\xc0\x1c\x4a\xbd\x2b\x70\x32\xa7\x8f\xc5\x84\xd4\x6f\xcf\x07\x78\x38\x88\x92\x22\x2f\xcf\x7e\xdb\x75\x9f\x8b\x61\x18\x86\x61\x98\x0b\x46\x28\x99\x0f\x3c\xf7\x19\x86\xf9\x8f\x11\xfd\xbb\x3d\x02\xd2\x46\xa9\xa0\xfa\x84\x74\xa6\x1d\xe3\x91\xfa\xa4\x01\x69\xa3\x54\x90\x6f\x42\x3a\x23\x9d\x93\x7a\xa4\x3e\x69\x40\xda\x28\xa5\x49\x4b\xd0\xe2\x43\x50\x67\x41\x2b\x14\xe1\x91\xfa\xa4\xc1\xdf\xb9\x36\x0c\xb3\x0d\xb4\xb7\xc9\x14\x09\x2a\xc8\xec\x58\x5f\xbf\x9f\xbe\xe8\x2b\x79\x11\x86\xcb\xac\x58\xb6\x2f\x0b\x37\xcb\xfb\xf7\xbe\xdd\xfd\x72\x5b\xaf\xca\x73\xaa\xe5\x89\x7e\xd6\xcf\xed\xf7\x0e\x24\x52\x1c\x21\xc6\x1a\x19\x56\x46\x5f\xec\xee\xd9\x0e\xbd\xff\xe9\xd7\xdf\x1d\x2c\x97\x1c\xe1\x32\xf2\xa8\xc9\x66\x07\x39\x62\x3c\x43\x8c\x63\xa4\xa8\xcc\x3c\x7b\x4f\x6d\x87\x9e\xe7\xfb\xcf\x07\x7d\xa7\x0d\x97\x1c\xe1\x32\xf3\x9c\xcd\x56\x97\xc8\xf1\x04\x47\x48\x51\x63\x85\xda\xcc\x74\xfd\xa3\xdb\xa5\xe7\x7a\xf5\xe3\x61\xd7\xd1\xe9\x94\x23\x9d\x8e\x7c\x97\x51\xa2\x42\x81\x1c\x29\x56\x38\x41\x8a\xf5\x66\xc2\xab\x1f\x86\x7c\x7a\xc6\x5b\x6f\x1f\x75\x9d\x07\xbc\x72\xb4\xd7\x91\x73\x86\x0a\x4b\xc4\x48\xcc\x6c\xcf\x23\xbd\xa6\xe7\xb9\xf1\xee\x71\xd7\x43\xab\xcb\x73\xeb\x46\x5f\xf1\x5a\x8d\xa7\x1a\x31\x72\x94\xc8\xda\xab\x68\x76\xbf\xf6\xc9\x76\xe8\x19\xca\x68\xd1\x8f\x94\x0d\x97\x1c\xe1\x32\xaf\x43\xa3\xc6\x53\x8d\x04\x05\x2a\xa4\x48\x10\x5b\xf7\x3a\xa6\xef\xdd\x2e\x3d\xd7\xcb\x37\x8b\x7e\x94\x38\x9c\x72\xa4\xd3\xba\xff\xf8\xf9\xcf\x30\x17\xc1\x54\xc9\x7e\xbb\xfe\xbf\x33\xbc\xff\xcf\x30\xcc\x16\x23\x66\x61\x14\x1e\xf6\x1b\x82\x16\x13\x5a\x28\x2c\xba\x03\xfe\xb0\x11\x20\xb4\x3f\x0c\x79\x23\x80\x61\xfe\x3d\x7e\x05\x00\x00\xff\xff\x1e\x4b\x19\xd0\x04\x20\x00\x00"), + }, "/addons": &vfsgen۰DirInfo{ name: "addons", modTime: time.Time{}, @@ -138,9 +145,9 @@ var assets = func() http.FileSystem { "/crd/bases/camel.apache.org_integrationplatforms.yaml": &vfsgen۰CompressedFileInfo{ name: "camel.apache.org_integrationplatforms.yaml", modTime: time.Time{}, - uncompressedSize: 23568, + uncompressedSize: 24200, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1c\x5d\x8f\xe3\xb6\xf1\xdd\xbf\x62\x70\x7e\xb8\x04\xb0\xe4\xa4\x49\xd1\xd4\x45\x51\x6c\x7c\x77\xa8\x7b\x77\xbb\x8b\xb5\xef\xd2\xbc\x85\x96\xc6\x32\x63\x8a\x54\x49\x6a\x7d\x4e\xd1\xff\x5e\x0c\x29\xd9\xf2\x5a\x5f\xbb\x7b\x41\x9b\x40\x7c\xd9\xb5\x44\x0e\xe7\xfb\x83\x1c\x68\x0c\xc1\xe7\x1b\xa3\x31\xbc\xe3\x11\x4a\x83\x31\x58\x05\x76\x8b\x70\x95\xb1\x68\x8b\xb0\x54\x1b\xbb\x67\x1a\xe1\x8d\xca\x65\xcc\x2c\x57\x12\xbe\xb8\x5a\xbe\xf9\x12\x72\x19\xa3\x06\x25\x11\x94\x86\x54\x69\x1c\x8d\x21\x52\xd2\x6a\xbe\xce\xad\xd2\x20\x3c\x40\x60\x89\x46\x4c\x51\x5a\x13\x02\x2c\x11\x1d\xf4\xeb\x9b\xd5\x62\xfe\x1a\x36\x5c\x20\xc4\xdc\xf8\x45\x18\xc3\x9e\xdb\xed\x68\x0c\x76\xcb\x0d\xec\x95\xde\xc1\x46\x69\x60\x71\xcc\x69\x63\x26\x80\xcb\x8d\xd2\xa9\x47\x43\x63\xc2\x74\xcc\x65\x02\x91\xca\x0e\x9a\x27\x5b\x0b\x6a\x2f\x51\x9b\x2d\xcf\xc2\xd1\x18\x56\x44\xc6\xf2\x4d\x89\x89\xf1\x60\xdd\x9e\x56\xc1\x8f\x2a\x2f\x68\xa8\x90\x5b\x70\x61\x02\x1f\x51\x1b\xda\xe4\x0f\xe1\x57\xa3\x31\x7c\x41\x53\x5e\x14\x2f\x5f\x7c\xf9\x17\x38\xa8\x1c\x52\x76\x00\xa9\x2c\xe4\x06\x2b\x90\xf1\x53\x84\x99\x05\x2e\x21\x52\x69\x26\x38\x93\x11\x9e\xc8\x3a\xee\x10\x82\x43\x80\x60\xa8\xb5\x65\x5c\x02\x73\x64\x80\xda\x54\xa7\x01\xb3\xa3\xf1\x68\x0c\x6e\x6c\xad\xcd\x66\xd3\xe9\x7e\xbf\x0f\x99\x43\x37\x54\x3a\x99\x96\xd4\x4d\xdf\x2d\xe6\xaf\xaf\x97\xaf\x03\x87\xf2\x68\x0c\x1f\xa4\x40\x63\x40\xe3\xbf\x72\xae\x31\x86\xf5\x01\x58\x96\x09\x1e\xb1\xb5\x40\x10\x6c\x4f\x82\x73\xd2\x71\x42\xe7\x12\xf6\x9a\x5b\x2e\x93\x09\x98\x42\xea\xa3\xf1\x99\x74\x4e\xec\x2a\xd1\xe3\xe6\x6c\x82\x92\xc0\x24\xbc\xb8\x5a\xc2\x62\xf9\x02\xbe\xbf\x5a\x2e\x96\x93\xd1\x18\x7e\x58\xac\xfe\x7e\xf3\x61\x05\x3f\x5c\xdd\xdd\x5d\x5d\xaf\x16\xaf\x97\x70\x73\x07\xf3\x9b\xeb\x57\x8b\xd5\xe2\xe6\x7a\x09\x37\x6f\xe0\xea\xfa\x47\x78\xbb\xb8\x7e\x35\x01\xe4\x76\x8b\x1a\xf0\x53\xa6\x09\x7f\xa5\x81\x13\x23\x31\x26\x99\x96\x0a\x54\x22\x40\xfa\x41\xbf\x4d\x86\x11\xdf\xf0\x08\x04\x93\x49\xce\x12\x84\x44\xdd\xa3\x96\xa4\x1e\x19\xea\x94\x1b\x12\xa7\x01\x26\xe3\xd1\x18\x04\x4f\xb9\x75\x5a\x64\x2e\x89\xa2\x6d\x3e\xa7\x6d\x8d\x58\xc6\x0b\x75\x9a\x01\xcb\x38\x7e\xb2\x28\x1d\x36\xe1\xee\x3b\x13\x72\x35\xbd\xff\x7a\xb4\xe3\x32\x9e\xc1\x3c\x37\x56\xa5\x77\x68\x54\xae\x23\x7c\x85\x1b\x2e\x9d\xe6\x8f\x52\xb4\x2c\x66\x96\xcd\x46\x00\x4c\x4a\x55\x20\x4f\x3f\xc1\x5b\x9d\x12\x02\x75\x90\xa0\x0c\x77\xf9\x1a\xd7\x39\x17\x31\x6a\x07\xbc\xdc\xfa\xfe\xab\xf0\xdb\xf0\xeb\x11\x40\xa4\xd1\x2d\x5f\xf1\x14\x8d\x65\x69\x36\x03\x99\x0b\x31\x02\x10\x6c\x8d\xa2\x80\xca\xb2\x6c\x06\x11\x4b\x51\x04\xbb\x11\x80\x64\x29\xce\x80\x4b\x8b\x89\x76\xab\x33\xc1\x2c\x19\xa3\x09\xdd\xa4\x8a\x4a\x8e\x48\x18\x04\x24\xd1\x2a\x2f\x81\x54\xdf\x7b\x68\x25\xf6\xcc\x62\xa2\x34\x2f\x7f\x07\xb0\xa3\xf9\xc5\xff\xd1\xf1\x7f\xcf\xa1\xc5\x09\x81\xdb\x02\x01\xf7\x56\x70\x63\xdf\x36\xcd\x78\xc7\x8d\x75\xb3\x32\x91\x6b\x26\xea\xc9\x70\x13\xcc\x56\x69\x7b\x7d\x42\x2e\x00\x9e\xf9\x17\x5c\x26\xb9\x60\xba\x76\xed\x08\xc0\x44\x2a\xc3\x19\xb8\xa5\x19\x8b\x30\x1e\x01\x14\x9c\x77\xa0\x82\x8a\x17\xbb\xd5\x04\x43\xcf\x95\xc8\x53\x79\xdc\x28\x46\x13\x69\x9e\x59\x27\x2b\x72\x5d\x95\x8d\xa0\xdc\x09\xb2\x2d\x33\x38\xf2\xfe\xe0\x67\xa3\xe4\x2d\xb3\xdb\x19\x84\xc6\x32\x9b\x9b\xb0\xfa\xd6\x0b\xec\xb6\xf2\xc4\x1e\x08\x45\xb2\x56\x99\x8c\x4e\x53\xee\xbf\xf6\x14\x46\x5b\x4c\xd9\xac\x98\xab\x32\x94\x57\xb7\x8b\x8f\xdf\x2c\xcf\x1e\xc3\x39\x9a\x35\xbc\x26\x97\x40\xc6\xe4\xd7\x1d\xed\xb3\x91\xe3\x7e\x5c\xdd\x2e\x8e\xbf\x32\xad\x32\xd4\xf6\xa8\x10\x7e\x54\x8c\xa8\xf2\xf4\x01\x3e\x2f\x09\xe5\xc2\x73\xc7\x64\x3d\xe8\x91\x29\x24\x81\x71\x41\xa5\xf7\xb2\x9c\x9c\x23\x39\x19\x94\xde\x9e\xce\x00\x03\x4d\x62\x12\xd4\xfa\x67\x8c\x6c\x08\x4b\xd4\x04\x86\x54\x24\x17\x31\x19\xdd\x3d\x6a\x0b\x1a\x23\x95\x48\xfe\xcb\x11\xb6\x29\x23\xa8\x60\x16\x0b\xbd\x3b\x0d\x27\x79\x8a\x64\xf7\x4c\xe4\x38\x21\x7f\xe4\x82\x80\x46\xda\x05\x72\x59\x81\xe7\xa6\x98\x10\xde\x2b\x8d\x2e\xf2\xcd\x5c\x08\x30\xb3\xe9\x34\xe1\xb6\x74\x1e\x91\x4a\xd3\x5c\x72\x7b\x98\x56\xa2\xaf\x99\xc6\x78\x8f\x62\x6a\x78\x12\x30\x1d\x6d\xb9\xc5\xc8\xe6\x1a\xa7\x2c\xe3\x81\x43\x5d\x3a\x07\x12\xa6\xf1\x58\x17\xee\xc6\xbc\x3c\xc3\xf5\x42\x5b\xfc\x70\x66\xd8\x22\x01\x32\x42\xd2\x01\x56\x2c\xf5\x54\x9c\x18\x4d\x8f\x88\x3b\x77\xaf\x97\x2b\x28\xb7\x76\xc2\x78\xc8\x7d\xc7\xf7\xd3\x42\x73\x12\x01\x31\x8c\xcb\x8d\x73\xdb\x14\x77\xb5\x4a\x1d\x4c\x94\x71\xa6\xb8\xb4\xee\x47\x24\x38\xca\x87\xec\x37\xf9\x3a\xe5\xd6\x07\x45\x34\x96\x64\x15\xc2\xdc\x79\x54\x58\x23\xe4\x59\xcc\x2c\xc6\x21\x2c\x24\xcc\xc9\xf3\xcc\x19\x85\xea\x5f\x59\x00\xc4\x69\x13\x10\x63\xfb\x89\xa0\x1a\x0c\x1e\x4e\xf6\x5c\xab\xbc\x28\x7d\x71\x83\xbc\x6a\x2c\x78\x99\x61\x74\x66\x3d\x31\x1a\x97\x40\x90\x93\x41\xb2\x8a\x26\x27\x5c\x8e\x7a\x0b\xa6\xe1\xe2\xd2\xc3\x87\xdd\x28\x7d\x4f\xcb\x1c\x5e\xc4\x62\xc6\xa5\x39\x79\x44\x8d\x64\x68\xf1\x05\xcc\x62\xb3\x6a\xca\x78\x31\xa7\x19\x51\xb7\x9e\x19\x5c\xa4\x2c\xc1\xba\x97\x8d\xd2\x39\xdb\x7d\x69\x35\x85\xb7\x43\x3d\x84\x33\xb2\xbf\xaf\xce\x2f\xf3\x19\x34\xb0\x55\x7b\x27\x05\xf7\xbe\xf4\x3e\x6b\x4a\x34\x31\xca\xeb\x09\x07\x40\x99\xa7\xf5\x7b\x06\xa0\x55\x6e\xb9\xc4\x86\xb7\x99\xaa\x87\xd8\x41\xed\x8e\x49\xbe\x53\x0e\xc7\x39\xc5\xf9\x36\x96\xad\x95\x12\xc8\x2e\xa5\x01\x90\xb2\x7b\x94\x3d\x78\xf5\x9e\xe6\x39\x7d\x08\x82\xda\xd9\xed\x82\x05\x97\x76\x2c\x31\xd2\x68\x9b\xde\xc3\x65\x40\xf6\x0b\x5c\xd4\x74\x7e\x7b\x87\x87\x49\xa9\x90\xa5\x5b\x9b\x5f\x41\x44\x1b\x6f\x38\xe5\x35\x5f\x98\x2f\x1b\xc1\x03\x15\x0e\x2e\xf3\x8e\x94\x94\xe4\xea\xac\x02\x8d\xa9\xb2\xe8\xe9\x23\xd7\xa7\x0c\xb7\x2e\x37\x0a\x61\x61\x21\x62\xb2\xdc\xaf\x05\xec\x3f\xc3\x3f\x7e\xf5\xe7\x2a\x16\xc6\x87\x99\xdb\xb7\xf3\xe5\xf8\x4f\xe0\xad\x81\xb2\xf5\xca\x14\x88\xb6\x64\x55\x61\x0b\xd8\x2b\xf8\xc7\xdb\x65\x65\xf5\x0e\x0f\xc6\x3a\xc7\x68\x80\xe5\x56\x91\x89\x45\x4c\x88\x83\xcf\x2f\x3d\x69\x6e\x46\x0b\xd0\x5a\x96\x79\x74\x23\x25\x37\x3c\xc9\xb5\x07\x44\xce\x99\xd8\xc5\x28\xb2\x58\x9d\x9b\x26\xcd\xf7\xe3\x1c\x20\x95\x3e\xb4\x93\x67\x2b\xf9\x6b\x26\x63\x13\xc2\x35\xf1\xda\x6e\x99\x0f\x18\x5a\xa9\x87\xe1\xa2\x3a\xce\xd1\x34\x40\x45\x31\x13\x46\x51\x75\xa2\x34\xd1\xcb\x65\x11\xf9\x4b\x06\x94\x2c\x6a\x66\x6b\xb7\x9e\xd2\xd8\x61\x83\x03\x29\xc7\x85\xaa\xee\xf0\x58\x49\x1a\xaf\xb5\x24\x0c\x14\xa4\x66\x14\x2e\x43\x80\xf7\xf9\x45\x72\xf2\x70\xac\x11\x18\xc5\x6f\x1e\x97\x50\x76\x78\x68\xd3\x91\x4e\x37\x51\x0e\x97\x79\xf6\x27\xe9\x25\xe5\xd5\x25\x41\x1a\x37\xa8\x51\xda\xda\xb8\x4c\xc5\x8f\x96\x68\xd1\x85\xe6\x58\x45\x86\xa2\x32\x95\xe4\x66\x4a\x05\xe1\x3d\xc7\xfd\x74\xaf\xf4\x8e\xcb\x24\xa0\xb2\x3c\xf0\x11\xd3\x4c\x5d\x49\x32\x1d\xbb\x3f\x1d\x7c\x59\xdd\xbc\xba\x99\xc1\x55\x1c\x83\x72\xa5\x6a\x6e\x70\x93\x0b\xd8\x70\x14\xa4\x56\xa7\x54\x75\xe2\xd2\xa5\x09\xe4\x3c\xfe\xdb\xcb\xcf\xc1\x37\x95\xf9\x12\xe2\x11\xbc\x5b\xba\x48\x72\x80\xfd\x16\x1d\xb2\xf6\xe4\xc9\xa8\xb4\xb6\xc6\x29\x4b\xda\x4b\x1b\x7c\x56\xd0\x66\x78\xdd\x3e\xde\x8f\xf2\x54\xa2\x99\x90\x80\xf0\x6a\x7c\xdb\x90\xed\x54\x47\x24\xf8\x4d\x56\x29\x93\xeb\xc6\x85\xe1\xcc\xdf\x2d\x0a\x26\x1b\xef\x19\x9c\x99\x67\x19\xca\xf8\x74\x36\x26\x78\x2b\xb3\xa8\x6e\xd0\x49\xee\xce\xbc\x5c\x01\x74\xee\x77\x26\x80\x61\x12\x4e\xe0\xa7\xe0\xe3\x24\x08\xa4\x0a\xac\x66\xd2\x6c\x50\x07\x99\x56\x89\x46\x63\x26\xc1\x2b\x63\x0f\x02\xc3\x48\x09\xa5\xff\x2a\xf1\x1e\xf5\x4f\x6d\x76\xb7\x44\x3c\x5a\x80\x8b\xa1\xd5\x03\x22\x8d\x9b\xe9\x37\xe1\x77\xe1\xb7\xfe\x55\x80\xe9\x1a\xe3\x18\xf5\x34\x12\x3c\xdc\xda\x54\x34\x43\xe6\x16\xd3\x56\xcf\xd4\x4b\x6d\xfd\x24\xa6\x35\x6b\x92\xe7\xf1\x48\xe4\x11\x92\xf2\x4c\xf5\x39\x5e\xe5\x48\xa5\x9d\x17\x49\xce\x63\x34\xd3\x94\x4b\xee\xff\x0f\x72\xaa\xec\x83\x0a\x80\x67\x72\xe4\x32\x4f\xb9\xa2\xa0\xc1\x22\x7b\xcc\xa9\x59\x81\x3b\x2b\x5e\xb4\x40\xeb\x17\x1f\xe0\x08\x6a\xd1\x62\x50\x7e\xf4\x74\x34\xc5\xe1\xcd\x67\x84\x77\x5f\x57\xbd\x3f\x19\x5e\xb7\xff\x70\x67\x2e\x47\xb6\xb4\x4e\x2b\x48\xed\xd4\xf3\x56\x77\xd3\x47\xcf\x85\x8a\x98\xb8\x2b\xd3\xba\x96\xa0\x7e\xa1\xed\x19\xb3\xdb\x32\x00\x3a\x28\x0f\x73\xc4\x96\xb8\xdc\x83\xa5\x7d\xf4\xac\x7a\x80\xd5\x47\x2b\x7b\x49\xb2\xc1\xac\x4f\xf8\x74\x91\xd5\x2a\x13\x83\xd6\x72\x99\xf4\x0d\x00\x57\x65\x6e\x11\x61\xe9\xea\xe7\x2e\x0b\x7d\xcf\x32\x0a\x96\xcb\x63\x12\xe4\x62\x43\x5b\xfe\x59\x96\xa9\xa7\xb4\xb3\xc4\xe5\xb9\xc9\x60\x54\x62\xf4\x16\x0f\x77\xb8\x79\x4c\x26\xe0\xf2\x3f\xf2\x3f\x45\x7a\xc8\x4e\xe4\xb5\x67\x75\x7d\xdd\x50\x8f\x54\xf5\x02\xab\x32\x5d\x3d\x26\xa8\xed\xa8\xc0\x63\x7c\x4e\x9f\x44\xf3\x02\xa1\xff\xb3\x64\x13\x9e\x90\x70\xf6\x00\xd9\x9d\x92\xc2\xe3\x38\xdd\x2f\x35\x85\x3e\xe9\xe9\x99\xd1\x71\xdb\x87\x43\x65\x0e\xdb\x37\x4b\x85\xde\x99\x2a\xf4\x8c\x36\x5d\x19\x2b\xf4\x0d\x23\x50\x14\x5b\x9f\xc3\xbe\x3d\xa4\xff\xbd\x71\x3f\xbf\x16\x85\xa7\xd5\xa3\x30\xb8\x8b\xdf\xbd\xbb\xb8\xa8\x66\x7b\xd0\xf3\x3b\xf1\x15\x3d\x26\x59\x9e\xa2\xca\xfb\x9e\x73\xbe\x7c\x85\x99\xc6\x88\x59\x8c\x67\xae\xb3\xa1\xe6\x34\x3e\x24\x21\x84\xee\xac\x37\x5c\x79\xe8\x2d\x94\x70\x69\x2c\xb2\xb8\x59\x79\x3a\x95\xa6\x83\xc8\x8c\x74\xd9\x58\x94\xf6\xa3\x12\x79\x8a\x73\xc1\x78\xc3\xe1\x77\xc7\x56\x59\xbe\x16\xdc\x6c\x1f\x71\x68\xdf\x74\x57\x71\x7b\x0e\xc9\x9d\xc7\x23\xfd\xdf\x64\xbe\x4c\x08\xd7\xe6\xe0\x3a\x65\x30\x2e\x51\x21\x5c\x09\x02\x6f\x58\xd8\x41\x90\xc6\x84\x1b\xdb\x54\x68\x9c\x51\x72\x57\x4c\x75\xa7\xea\x99\x56\xf7\x54\x28\xfb\xd3\xcc\xe2\x20\xd6\xdf\x44\x97\x17\xba\x45\x86\x8b\xba\x81\xa0\x72\xeb\x27\x1e\xcf\xb3\x38\xd6\x68\x5a\x22\x52\x0f\x57\x13\xb1\x67\x2d\xe7\xd2\x60\x94\xeb\x96\x78\xd0\xc7\x29\x28\x9d\x30\xc9\x7f\x71\xcc\x7b\x16\x3a\xa6\xe3\xba\xe2\xb9\x66\xa4\x73\x49\xae\xe2\xd6\x8b\x5e\xf7\x51\x99\xf3\x15\x4d\x77\x31\x5d\x3a\xea\xa1\xd4\x5e\xee\xf7\x04\xd1\xea\xe2\x5a\xd7\xb6\xf0\x24\x12\xb9\xb1\x75\x7c\xe8\x72\x00\x73\xbf\xb0\x6c\x84\xa0\x08\x4b\xe9\x81\xd2\xd1\x16\x9d\x39\xd7\xdd\x44\x1e\xf7\x73\x6b\xb2\x4a\x33\x05\xf9\x4f\x26\x44\x71\xbf\xd0\x40\x41\x2d\x79\x67\x86\x7b\x49\x47\xe3\x51\xd6\x19\x81\xf3\x2a\x90\xe6\x2b\xb7\x2e\x8b\x2e\x6f\xfa\xdf\x36\xa7\x90\x9d\x0a\x5c\xc2\x78\xaf\x72\x69\x6f\x15\x97\x8d\xd6\xd0\x1b\xd4\x8a\x26\x3e\x15\x88\x7d\xce\x62\xd7\x16\xf1\xc4\xd5\x6d\x29\x46\xe0\x16\xd7\xbe\x70\x5b\xd6\x99\x4f\x9b\x63\x68\x3e\xd4\x72\x6d\x5a\x75\x1e\xa9\xcb\x40\xde\xfa\x85\x4d\xca\xd4\xae\x4a\xd5\x4b\xd1\x7a\xf6\xb5\x1e\xd1\xf6\xc4\xed\x74\x46\xd7\x76\xcb\xdc\xaf\x76\xca\x35\x7f\xe6\x31\x59\x67\x96\xd7\x76\xf2\xd8\xb2\x38\xd3\x6a\xc3\x45\x8d\x16\x9e\xd7\x70\x9a\x71\x7b\xeb\xa7\x56\xda\x71\xdc\x2d\x88\x71\x85\x0f\x4d\xa8\x5c\x97\xa0\x64\x6b\x51\x9b\x53\x5f\x74\x6b\x16\xce\xcd\x89\x60\x5a\xe9\x11\x7b\x8c\x9b\x3b\xf6\x2f\x3d\x5e\x13\xcb\x4e\x4b\xf3\xe8\xde\x92\xe3\xa6\x8f\xe1\xb7\x67\xd4\x25\x9a\x7d\x4f\x56\x1f\x1c\x56\x3a\xc1\x9c\x63\x7e\x99\xaf\xb9\x63\x00\xb7\xf1\x13\xbc\x76\x47\x04\xa9\xc1\xca\xe1\x74\x16\x33\x9a\x8d\xa7\x47\xf1\xf2\x29\x38\x15\xcd\x81\xd3\x3c\x7d\x8f\x41\x2e\x77\x52\xed\x65\xe0\x0b\xda\x19\x58\x5d\xeb\xd7\xda\xdd\xe4\x19\x6d\x4f\xf3\x8a\x35\x2f\x9b\xba\xb0\x5c\x7f\xe6\x23\xfb\xb0\xdc\x9a\xb3\x4e\x2c\xb5\x76\x0c\x18\x5a\xb1\x6a\xc5\x31\xb4\x62\xb9\x31\xb4\x62\x0d\xad\x58\x43\x2b\xd6\xd0\x8a\x35\xb4\x62\x0d\xad\x58\x43\x2b\xd6\xd0\x8a\x75\x39\x69\x68\xc5\x1a\x5a\xb1\x86\x56\xac\xa1\x15\xab\x83\xd0\xa1\x15\x6b\x68\xc5\xea\x5a\x3f\xf4\x56\xfc\xbe\x7b\x2b\x86\x56\xac\xa1\x15\xab\x6e\x0c\xad\x58\x83\xbb\x18\x5a\xb1\x1e\x39\x69\x68\xc5\xea\xbd\xd5\xd0\x8a\x35\xb4\x62\x9d\xc6\xd0\x8a\x75\x39\x86\x56\xac\xdf\x56\x2b\x96\xaf\xd8\x6b\xcc\xa8\x5f\x1f\x56\x1d\x75\x25\xd0\x62\xe6\xba\xf0\x12\xe5\xe5\x70\xad\x0c\xd8\xe9\xa3\x2b\xcc\x02\x73\x17\x29\x8c\x4b\x70\x1f\x4e\xa9\x4b\xe0\xba\x1c\x84\x60\xc6\xae\x34\x93\x86\x97\xdf\x94\xea\xd5\x28\xf0\x8e\x19\xeb\xb4\xa5\x74\x61\x05\x29\xf6\x08\x0a\x63\xff\x65\x17\x25\xb1\xb8\x3f\x6f\x36\x38\x05\x4c\xba\x04\xab\x29\x05\xf5\x97\x65\x33\x88\x99\xc5\x80\xb6\x6d\x0a\xd1\x5d\xa6\x4b\xe4\x7e\x70\x9f\x89\xe9\x4d\xea\xca\x7d\x0c\xe8\x44\x2e\x37\x15\x7a\xf7\xcc\x1c\x3f\x3b\xf3\x6b\xe3\x9e\xa2\x31\x8d\x77\xe8\x17\x07\x30\xdb\x3c\x65\x32\xd0\xc8\x62\xf7\xc1\xb8\x62\x31\x70\x19\xf3\x88\xb9\xef\xf8\xc4\x68\x19\x17\x06\xd8\xba\x2d\xef\x20\xf9\x9e\xa4\xda\x44\x64\x8f\x96\x3d\x66\xfa\x36\xa1\xb8\xf4\x9f\xa6\x57\x63\xa4\x67\xf8\x4b\x53\xc8\xe2\xf9\x18\xd5\x35\x75\x34\x60\x54\xf4\x72\x14\xa5\xc9\x11\x99\x89\xff\x7e\xe2\x06\x56\x3a\xc7\x09\xbc\x61\xc2\xe0\x04\x3e\xf8\xf6\x96\x27\xe3\xd5\xd6\x97\x78\xce\xa7\x43\xe6\x76\xaf\x7e\x69\xec\x88\xdb\x13\xb7\x6f\x6f\xba\x69\xb4\xe3\xc6\xb6\xc5\x27\x36\x27\x0e\xbd\xaf\x43\xef\x6b\xf5\xc5\x67\xee\x7d\x75\xa7\x09\x17\xf3\xfb\x1e\xcb\x3f\x35\x0f\x1a\x3a\x6e\x7f\xf3\x1d\xb7\x5b\x66\xba\xfa\x6d\x6b\x78\xe4\xbe\xe2\x58\xc7\x93\x16\x52\x86\xe6\xde\xa1\xb9\x77\x68\xee\xfd\xac\xcd\xbd\x2d\x37\xe7\x8d\x2a\x5c\x0b\xec\xe2\xa1\x6f\xeb\xad\x10\x6b\xac\xd2\x94\xaa\x57\x9e\xe4\xeb\x0b\x63\x28\x32\x50\xf8\xf7\x7f\x46\xff\x0d\x00\x00\xff\xff\x1f\x18\xaa\x09\x10\x5c\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5c\x5f\x8f\xe3\xb6\x11\x7f\xf7\xa7\x18\x9c\x1f\x2e\x01\x2c\x39\x69\x52\x34\x75\x51\x14\x8e\xef\x0e\x75\xf7\x6e\x77\xb1\xf6\x5d\x9a\xb7\xd0\xd2\x58\x66\x4c\x91\x2a\x49\xad\xcf\x29\xfa\xdd\x8b\x21\x25\x5b\x5e\x4b\xb2\xf6\x4f\xd0\x26\x10\x5f\x76\x2d\x91\xc3\x99\xe1\xfc\x23\xf9\x83\x86\x10\xbc\x5c\x1b\x0c\xe1\x3d\x8f\x50\x1a\x8c\xc1\x2a\xb0\x1b\x84\x69\xc6\xa2\x0d\xc2\x42\xad\xed\x8e\x69\x84\x77\x2a\x97\x31\xb3\x5c\x49\xf8\x62\xba\x78\xf7\x25\xe4\x32\x46\x0d\x4a\x22\x28\x0d\xa9\xd2\x38\x18\x42\xa4\xa4\xd5\x7c\x95\x5b\xa5\x41\x78\x82\xc0\x12\x8d\x98\xa2\xb4\x26\x04\x58\x20\x3a\xea\xd7\x37\xcb\xf9\xec\x2d\xac\xb9\x40\x88\xb9\xf1\x83\x30\x86\x1d\xb7\x9b\xc1\x10\xec\x86\x1b\xd8\x29\xbd\x85\xb5\xd2\xc0\xe2\x98\xd3\xc4\x4c\x00\x97\x6b\xa5\x53\xcf\x86\xc6\x84\xe9\x98\xcb\x04\x22\x95\xed\x35\x4f\x36\x16\xd4\x4e\xa2\x36\x1b\x9e\x85\x83\x21\x2c\x49\x8c\xc5\xbb\x92\x13\xe3\xc9\xba\x39\xad\x82\x1f\x55\x5e\xc8\x50\x11\xb7\xd0\xc2\x08\x3e\xa1\x36\x34\xc9\x1f\xc2\xaf\x06\x43\xf8\x82\xba\xbc\x2a\x5e\xbe\xfa\xf2\x2f\xb0\x57\x39\xa4\x6c\x0f\x52\x59\xc8\x0d\x56\x28\xe3\xe7\x08\x33\x0b\x5c\x42\xa4\xd2\x4c\x70\x26\x23\x3c\x8a\x75\x98\x21\x04\xc7\x00\xd1\x50\x2b\xcb\xb8\x04\xe6\xc4\x00\xb5\xae\x76\x03\x66\x07\xc3\xc1\x10\x5c\xdb\x58\x9b\x4d\xc6\xe3\xdd\x6e\x17\x32\xc7\x6e\xa8\x74\x32\x2e\xa5\x1b\xbf\x9f\xcf\xde\x5e\x2f\xde\x06\x8e\xe5\xc1\x10\x3e\x4a\x81\xc6\x80\xc6\x7f\xe5\x5c\x63\x0c\xab\x3d\xb0\x2c\x13\x3c\x62\x2b\x81\x20\xd8\x8e\x16\xce\xad\x8e\x5b\x74\x2e\x61\xa7\xb9\xe5\x32\x19\x81\x29\x56\x7d\x30\x3c\x59\x9d\xa3\xba\x4a\xf6\xb8\x39\xe9\xa0\x24\x30\x09\xaf\xa6\x0b\x98\x2f\x5e\xc1\xf7\xd3\xc5\x7c\x31\x1a\x0c\xe1\x87\xf9\xf2\xef\x37\x1f\x97\xf0\xc3\xf4\xee\x6e\x7a\xbd\x9c\xbf\x5d\xc0\xcd\x1d\xcc\x6e\xae\xdf\xcc\x97\xf3\x9b\xeb\x05\xdc\xbc\x83\xe9\xf5\x8f\x70\x35\xbf\x7e\x33\x02\xe4\x76\x83\x1a\xf0\x73\xa6\x89\x7f\xa5\x81\x93\x22\x31\xa6\x35\x2d\x0d\xa8\x64\x80\xec\x83\x7e\x9b\x0c\x23\xbe\xe6\x11\x08\x26\x93\x9c\x25\x08\x89\xba\x47\x2d\xc9\x3c\x32\xd4\x29\x37\xb4\x9c\x06\x98\x8c\x07\x43\x10\x3c\xe5\xd6\x59\x91\x39\x17\x8a\xa6\x79\x49\xdf\x1a\xb0\x8c\x17\xe6\x34\x01\x96\x71\xfc\x6c\x51\x3a\x6e\xc2\xed\x77\x26\xe4\x6a\x7c\xff\xf5\x60\xcb\x65\x3c\x81\x59\x6e\xac\x4a\xef\xd0\xa8\x5c\x47\xf8\x06\xd7\x5c\x3a\xcb\x1f\xa4\x68\x59\xcc\x2c\x9b\x0c\x00\x98\x94\xaa\x60\x9e\x7e\x82\xf7\x3a\x25\x04\xea\x20\x41\x19\x6e\xf3\x15\xae\x72\x2e\x62\xd4\x8e\x78\x39\xf5\xfd\x57\xe1\xb7\xe1\xd7\x03\x80\x48\xa3\x1b\xbe\xe4\x29\x1a\xcb\xd2\x6c\x02\x32\x17\x62\x00\x20\xd8\x0a\x45\x41\x95\x65\xd9\x04\x22\x96\xa2\x08\xb6\x03\x00\xc9\x52\x9c\x00\x97\x16\x13\xed\x46\x67\x82\x59\x72\x46\x13\xba\x4e\x15\x93\x1c\xd0\x62\x10\x91\x44\xab\xbc\x24\x52\x7d\xef\xa9\x95\xdc\x33\x8b\x89\xd2\xbc\xfc\x1d\xc0\x96\xfa\x17\xff\x47\x87\xff\xbd\x86\xe6\x47\x06\x6e\x0b\x06\xdc\x5b\xc1\x8d\xbd\x6a\xea\xf1\x9e\x1b\xeb\x7a\x65\x22\xd7\x4c\xd4\x8b\xe1\x3a\x98\x8d\xd2\xf6\xfa\xc8\x5c\x00\x3c\xf3\x2f\xb8\x4c\x72\xc1\x74\xed\xd8\x01\x80\x89\x54\x86\x13\x70\x43\x33\x16\x61\x3c\x00\x28\x34\xef\x48\x05\x95\x28\x76\xab\x89\x86\x9e\x29\x91\xa7\xf2\x30\x51\x8c\x26\xd2\x3c\xb3\x6e\xad\x28\x74\x55\x26\x82\x72\x26\xc8\x36\xcc\xe0\xc0\xc7\x83\x9f\x8d\x92\xb7\xcc\x6e\x26\x10\x1a\xcb\x6c\x6e\xc2\xea\x5b\xbf\x60\xb7\x95\x27\x76\x4f\x2c\x92\xb7\xca\x64\x70\xec\x72\xff\xb5\x97\x30\xda\x60\xca\x26\x45\x5f\x95\xa1\x9c\xde\xce\x3f\x7d\xb3\x38\x79\x0c\xa7\x6c\xd6\xe8\x9a\x42\x02\x39\x93\x1f\x77\xf0\xcf\x46\x8d\xfb\x36\xbd\x9d\x1f\x7e\x65\x5a\x65\xa8\xed\xc1\x20\x7c\xab\x38\x51\xe5\xe9\x03\x7e\x5e\x13\xcb\x45\xe4\x8e\xc9\x7b\xd0\x33\x53\xac\x04\xc6\x85\x94\x3e\xca\x72\x0a\x8e\x14\x64\x50\x7a\x7f\x3a\x21\x0c\xd4\x89\x49\x50\xab\x9f\x31\xb2\x21\x2c\x50\x13\x19\x32\x91\x5c\xc4\xe4\x74\xf7\xa8\x2d\x68\x8c\x54\x22\xf9\x2f\x07\xda\xa6\xcc\xa0\x82\x59\x2c\xec\xee\xd8\xdc\xca\x53\x26\xbb\x67\x22\xc7\x11\xc5\x23\x97\x04\x34\xd2\x2c\x90\xcb\x0a\x3d\xd7\xc5\x84\xf0\x41\x69\x74\x99\x6f\xe2\x52\x80\x99\x8c\xc7\x09\xb7\x65\xf0\x88\x54\x9a\xe6\x92\xdb\xfd\xb8\x92\x7d\xcd\x38\xc6\x7b\x14\x63\xc3\x93\x80\xe9\x68\xc3\x2d\x46\x36\xd7\x38\x66\x19\x0f\x1c\xeb\xd2\x05\x90\x30\x8d\x87\xba\x08\x37\xe6\xf5\x09\xaf\x67\xd6\xe2\x9b\x73\xc3\x96\x15\x20\x27\x24\x1b\x60\xc5\x50\x2f\xc5\x51\xd1\xf4\x88\xb4\x73\xf7\x76\xb1\x84\x72\x6a\xb7\x18\x0f\xb5\xef\xf4\x7e\x1c\x68\x8e\x4b\x40\x0a\xe3\x72\xed\xc2\x36\xe5\x5d\xad\x52\x47\x13\x65\x9c\x29\x2e\xad\xfb\x11\x09\x8e\xf2\xa1\xfa\x4d\xbe\x4a\xb9\xf5\x49\x11\x8d\xa5\xb5\x0a\x61\xe6\x22\x2a\xac\x10\xf2\x2c\x66\x16\xe3\x10\xe6\x12\x66\x14\x79\x66\x8c\x52\xf5\xaf\xbc\x00\xa4\x69\x13\x90\x62\xbb\x2d\x41\x35\x19\x3c\xec\xec\xb5\x56\x79\x51\xc6\xe2\x86\xf5\xaa\xf1\xe0\x45\x86\xd1\x89\xf7\xc4\x68\x5c\x01\x41\x41\x06\xc9\x2b\x9a\x82\x70\xd9\xea\x3d\x98\x9a\xcb\x4b\x0f\x1f\x5e\x66\xe9\x7b\x1a\xe6\xf8\x22\x15\x33\x2e\xcd\x31\x22\x6a\x24\x47\x8b\xcf\x68\x16\x93\x55\x4b\xc6\xb3\x3e\xcd\x8c\x52\xbb\xcd\x57\x82\x9b\xcd\xc2\x6a\x4a\x51\xfb\x9b\xac\x92\x73\x1f\xb6\x6a\x74\x6f\xa3\x09\xcd\xcb\xfa\xb0\xc3\xd9\x52\x1e\xe4\x62\x06\xe7\x29\x4b\xb0\x7e\x82\x0b\xe4\x9d\x56\x4a\x99\xea\x29\x9c\x2c\xc7\xf7\xd5\xfe\x65\x9d\x85\x06\x36\x6a\xe7\xac\xc3\xbd\x2f\xa3\xe2\x8a\x0a\x60\x8c\xf2\xfa\x05\x01\x40\x99\xa7\xf5\x73\x06\xa0\x55\x6e\xb9\xc4\x86\xb7\x99\xaa\xa7\x78\x41\xda\x2d\x93\x7c\xab\x1c\x8f\x33\xaa\x3f\x3a\x08\xfc\xfa\x0d\x85\x1c\x2a\x4b\xe2\x09\x7c\x34\xd8\x60\x07\xc0\xa5\xb1\xc8\xe2\xd7\x2d\x6c\xad\x94\x12\xc8\xce\xed\x0e\x20\x65\xf7\x28\x3b\x30\xf3\x81\xfa\x39\xcb\x0f\x82\xda\xde\xed\x26\x0c\xae\xc0\x5a\x60\xa4\xd1\x36\xbd\x87\xf3\xd2\xc3\x0f\x70\xf5\x81\xcb\x50\x5b\xdc\x8f\x4a\xd7\x2b\x03\xf8\x6c\x0a\x11\x4d\xbc\xe6\xa4\xaa\x2f\xcc\x97\x8d\xe4\x81\xb6\x48\x6e\x8f\x11\x29\x29\x29\xa8\x5b\x05\x1a\x53\x65\xd1\xcb\x47\x41\x5e\x19\x6e\x5d\x15\x18\xc2\xdc\x42\xc4\x64\x39\x5f\x0b\xd9\x7f\x86\x7f\xfc\xea\xcf\x55\x2e\x8c\x4f\xa8\xb7\x57\xb3\xc5\xf0\x4f\xe0\xfd\x9e\xf6\x25\x95\x2e\x10\x6d\x28\x7e\x84\x2d\x64\xa7\xf0\x8f\xab\x45\x65\xf4\x16\xf7\xc6\xba\x14\x60\x80\xe5\x56\x51\x30\x89\x98\x10\x7b\x5f\x49\x7b\xd1\x5c\x8f\x16\xa2\xb5\x2a\xf3\xec\x46\x4a\xae\x79\x92\x6b\x4f\x88\xd2\x10\xa9\x8b\x51\x0e\xb5\x3a\x37\x4d\xbe\xe4\xdb\x29\x41\xda\xe4\xd1\x4c\x5e\xad\x94\x99\x98\x8c\x4d\x08\xd7\xa4\x6b\xbb\x61\x3e\x35\x6a\xa5\xea\xe2\x4a\xd9\x4e\xd9\x34\x40\xdb\x7f\x26\x8c\xa2\x7d\x98\xd2\x24\x2f\x97\x45\x8d\x53\x2a\xa0\x54\x51\xb3\x5a\x2f\xdb\x29\xb5\x2d\x36\x84\xa4\xb2\x9d\x99\xea\x16\x0f\x7b\x66\xe3\xad\x96\x16\x03\x05\x99\x19\x15\x06\x21\xc0\x87\xfc\xac\x0c\x7b\xd8\x56\x08\x8c\x2a\x15\x1e\x97\x54\xb6\xb8\x6f\xb3\x91\x0e\x51\xdc\x37\x57\x63\x77\x17\xe9\x35\xed\x20\x4a\x81\x34\xae\x51\xa3\xb4\xb5\x15\x08\x6d\xf3\xb4\x44\x8b\xae\x08\x89\x55\x64\xa8\xfe\x88\x30\xb3\x66\x4c\x5b\xdf\x7b\x8e\xbb\xf1\x4e\xe9\x2d\x97\x49\xb0\xe3\x76\x13\xf8\x84\x62\xc6\x6e\xf3\x35\x1e\xba\x3f\x17\xf4\xb2\xbc\x79\x73\x33\x81\x69\x1c\x83\x72\x9b\xf2\xdc\xe0\x3a\x17\xb0\xe6\x28\xc8\xac\x8e\x45\xf9\xc8\x15\x86\x23\xc8\x79\xfc\xb7\xfa\x88\xf8\x48\xbd\xa9\xcc\xa7\xd3\x47\xe8\x6e\xe1\x72\xd3\x1e\x76\x1b\x74\xcc\xda\x63\x24\x53\x1a\xa8\xec\x23\x63\x49\x3b\x59\x83\xaf\x7f\xda\x1c\xef\x72\x8c\xf7\xad\x3c\x7f\x69\x16\x24\x20\xbe\x1a\xdf\x5e\x28\x06\xa8\x45\x82\xb7\x16\x27\x50\xe7\x38\xb3\xf7\xf3\x42\xc9\xc6\x47\x06\xe7\xe6\x59\x86\x32\x3e\x9e\x02\x0a\xde\xaa\x2c\xda\x21\xe9\x24\x77\xa7\x7b\x6e\xab\x77\x1a\x77\x46\x80\x61\x12\x8e\xe0\xa7\xe0\xd3\x28\x08\xa4\x0a\xac\x66\xd2\xac\x51\x07\x99\x56\x89\x46\x63\x46\xc1\x1b\x63\xf7\x02\xc3\x48\x09\xa5\xff\x2a\xf1\x1e\xf5\x4f\x6d\x7e\xb7\x40\x3c\x78\x80\xcb\xa1\xd5\xa3\x30\x8d\xeb\xf1\x37\xe1\x77\xe1\xb7\xfe\x55\x80\xe9\x0a\xe3\x18\xf5\x38\x12\x3c\xdc\xd8\x54\x34\x53\xe6\x16\xd3\xd6\xc8\xd4\xc9\x6c\x7d\x27\xa6\x35\x6b\x5a\xcf\xc3\xe1\xcf\x23\x56\xca\x2b\xd5\x57\xb3\x95\xc3\xa3\x76\x5d\x24\x39\x8f\xd1\x8c\x53\x2e\xb9\xff\x3f\xc8\x0d\x45\x82\x0a\x81\x67\x6a\xe4\xbc\x4e\x99\x52\xd2\x60\x91\x3d\xec\x1e\x58\xc1\x3b\x2b\x5e\xb4\x50\xeb\x96\x1f\xe0\x40\x6a\xde\xe2\x50\xbe\x75\x0c\x34\xc5\x31\xd5\x0b\xd2\xbb\xaf\x3b\xa7\x78\x32\xbd\xcb\xf1\xc3\x9d\x2e\x1d\xd4\xd2\xda\xad\x10\xf5\xa2\x9d\xb7\x86\x9b\x2e\x76\x2e\x54\xc4\xc4\x5d\x59\xd6\xb5\x24\xf5\x33\x6b\xcf\x98\xdd\x94\x09\xd0\x51\x79\x58\x23\xb6\xe4\xe5\x0e\x2a\xed\x62\x67\x8f\xd9\xcc\x75\x9c\xb6\xd1\xad\x8f\xfc\x5c\x12\xab\x75\x4d\x0c\x5a\xcb\x65\xd2\x35\x01\x4c\xcb\xda\x22\xc2\x32\xd4\xcf\x5c\x15\xfa\x81\x65\x94\x2c\x17\x87\x22\xc8\xe5\x86\xb6\xfa\xb3\xdc\x90\x1f\xcb\xce\x92\x97\xe7\x16\x83\x51\xc9\xd1\x15\xee\xef\x70\xfd\x98\x4a\xc0\xd5\x7f\x14\x7f\x8a\xf2\x90\x1d\xc5\x6b\xaf\xea\xba\x86\xa1\x0e\xa5\xea\x19\x57\x65\xb9\x7a\x28\x50\xdb\x59\x81\xc7\xc4\x9c\x2e\x85\xe6\x19\x43\xff\x67\xc5\x26\x3c\xa1\xe0\xec\x40\xf2\x72\x49\x0a\x8f\xd3\x74\xb7\xd2\x14\xba\x94\xa7\x27\x4e\xc7\x6d\x17\x0d\x95\x35\x6c\xd7\x2a\x15\x3a\x57\xaa\xd0\x31\xdb\x5c\xaa\x58\xa1\x6b\x1a\x81\x62\xb3\xf5\x12\xfe\xed\x29\xfd\xef\x9d\xfb\xf9\x7b\x51\x78\xda\x7e\x14\xfa\x70\xf1\xbb\x0f\x17\x67\xbb\xd9\x0e\xf2\xfc\x4e\x62\x45\x87\x4e\x96\xa7\xa8\xf2\xae\xe7\x9c\x27\xc7\xbc\xb9\xc1\xba\x7b\x87\x90\x16\x21\x74\xa7\xc7\xe1\xd2\x53\x6f\x91\xa4\xf5\x40\x18\x5e\xe0\xe0\x3f\x23\x5b\x36\x16\xa5\xfd\xa4\x44\x9e\xe2\x4c\x30\xde\x70\x9c\xfe\x6b\x9d\x68\x37\x32\x9f\x9d\x92\xec\xc0\x55\xd3\x3d\xcf\x03\xe6\xdc\x9d\x01\xd2\xff\x4d\x01\x81\x09\xe1\x20\x22\x0e\x65\x84\x71\xc9\x0a\xf1\x4a\x14\x78\xc3\xc0\x0b\x02\x69\x4c\xb8\xb1\x4d\x5b\x97\x13\x49\xee\x8a\xae\xee\x9c\x3e\xd3\xea\x9e\xb6\xde\xfe\x7c\xb4\x38\xda\xf5\xb7\xf8\xe5\x65\x78\x51\x33\xa3\x6e\x10\xa8\x9c\xfa\x89\x07\xfe\x2c\x8e\x35\x9a\x96\x1c\xd7\x21\x78\x45\xec\x59\xc3\xb9\x34\x18\xe5\xba\x25\xc3\x74\x09\x33\x4a\x27\x4c\xf2\x5f\x9c\xf2\x9e\xc5\x8e\xb9\x70\x01\xf2\x5c\xc7\xd4\xb9\xa4\xe0\x73\xeb\x97\x5e\x77\x31\x99\xd3\x11\x4d\xb7\x3b\x97\x6c\xd4\x53\xa9\x05\x46\x74\x24\xd1\x1a\x34\x5b\xc7\xb6\xe8\x24\x12\xb9\xb1\x75\x7a\xb8\x14\x00\x66\x7e\x60\x09\x22\xa1\x9c\x4d\x05\x87\xd2\xd1\x06\x9d\x3b\xd7\xdd\xe2\x1e\xe6\x73\x63\xb2\x0a\x10\x85\x02\x1a\x13\xa2\xb8\xb1\x68\x90\xa0\x56\xbc\x13\xc7\x3d\x97\xa3\xf1\x70\xec\x44\xc0\x59\x95\x48\xf3\x25\xde\x25\x8f\x2e\x51\x12\x57\xcd\x45\xe9\x45\x03\x2e\x69\x7c\x50\xb9\xb4\xb7\x8a\xcb\x46\x6f\xe8\x4c\x6a\x49\x1d\x9f\x4a\xc4\x3e\x67\xb0\x83\x94\x3c\x71\x74\x5b\xd1\x12\xb8\xc1\xb5\x2f\xdc\x94\x75\xee\xd3\x16\x18\x9a\x8f\xc9\x1c\xc4\xad\x2e\x22\x5d\x72\x90\x2b\x3f\xb0\xc9\x98\xda\x4d\xa9\x7a\xcd\x5a\xaf\xbe\xd6\x43\xdf\x8e\xbc\x1d\x4f\xfd\xda\xee\xad\xbb\xed\xc6\x72\xcd\x9f\x79\xf0\x76\xb1\x6e\x6c\x3b\xcb\x6c\x19\x9c\x69\xb5\xe6\xa2\xc6\x0a\x4f\x77\x85\x9a\x71\x7b\xeb\xbb\x56\xa0\x4c\xee\x5e\xc5\xb8\xad\x14\x75\xa8\x5c\xc0\xa0\x64\x2b\x51\x5b\xa5\x9f\x21\x5d\x8b\xe0\xe6\x96\x60\x5c\xc1\xd7\x3d\x26\xcc\x1d\xb0\x5f\x8f\xb7\xc4\x12\xa5\x6a\x1e\x8d\xcb\x39\x4c\xfa\x18\x7d\x7b\x45\x9d\xb3\xd9\xf5\xac\xf6\xc1\xf1\xa7\x5b\x98\x53\xce\xcf\xeb\x35\x77\xb0\xe0\x26\x7e\x42\xd4\xbe\x90\x41\x6a\xb8\x72\x3c\x9d\xe4\x8c\x66\xe7\xe9\xb0\x1d\xfa\x1c\x1c\xb7\xe1\x81\xb3\x3c\x7d\x8f\x41\x2e\xb7\x52\xed\x64\xe0\xb7\xc8\x13\xb0\xba\x36\xae\xb5\x87\xc9\x13\xd9\x9e\x16\x15\x6b\x5e\x36\x21\xd8\x1c\xb6\xf5\x91\x18\x36\x37\xe6\x04\xc5\xa6\x56\x4e\x01\x3d\x8c\xad\x87\xb1\xf5\x30\xb6\x1e\xc6\xd6\xc3\xd8\x7a\x18\x5b\x0f\x63\xeb\x61\x6c\x3d\x8c\xad\x87\xb1\xf5\x30\xb6\xba\x4e\x3d\x8c\xad\x87\xb1\xf5\x30\xb6\x1e\xc6\x76\x41\xd0\x1e\xc6\xd6\xc3\xd8\x2e\x8d\xef\x71\x29\xbf\x6f\x5c\x4a\x0f\x63\xeb\x61\x6c\x75\xad\x87\xb1\xf5\xe1\xa2\x87\xb1\x3d\xb2\x53\x0f\x63\xeb\x22\x6a\x0f\x63\xeb\x26\x50\x0f\x63\x7b\xc6\xf0\x1e\xc6\x76\xde\x7a\x18\xdb\x6f\x0b\xc6\xe6\xcf\x00\x6a\xdc\xa8\x1b\x86\xad\x4e\xba\x92\x68\xd1\x73\x55\x44\x89\xf2\x62\xbd\x76\x0d\xd8\xf1\x63\x3f\xcc\x02\x73\x57\x33\x8c\x4b\x70\x1f\xec\xa9\x2b\x09\x2f\x05\x08\xc1\x8c\x5d\x6a\x26\x8d\x63\x85\xd2\x5a\x27\x90\xc5\x7b\x66\xac\xb3\x96\x32\x84\x15\xa2\xd8\x03\x29\x8c\xfd\x17\x85\x94\xc4\x02\x7b\xd0\xec\x70\x0a\x98\x74\x25\x5b\x53\x51\xeb\xaf\xdf\x26\x10\x33\x8b\x01\x4d\xdb\x94\xf4\x2f\xb9\x2e\x89\xfb\xd1\x7d\x9e\xa8\xb3\xa8\x4b\xf7\x11\xaa\xa3\xb8\xdc\x54\xe4\xdd\x31\x73\xf8\xdc\xd1\xaf\xcd\x7b\x8a\xc6\x34\xde\xf3\x9f\x1d\xe9\x6c\xf2\x94\xc9\x40\x23\x8b\xdd\x87\x0a\x8b\xc1\xc0\x65\xcc\x23\xe6\xbe\x1f\x15\xa3\x65\x5c\x18\x60\xab\xb6\x4a\x86\xd6\xf7\xb8\xaa\x4d\x42\x76\x80\x3b\x32\xd3\x15\xc0\xe3\x36\x14\xd4\xbd\x9a\x23\xbd\xc2\x5f\x9b\x62\x2d\x9e\xcf\x51\x1d\x20\xa6\x81\xa3\x02\x07\x53\x6c\x76\x0e\xcc\x8c\xfc\x77\x3b\xd7\xb0\xd4\x39\x8e\xe0\x1d\x13\x06\x47\xf0\xd1\x43\x83\x9e\xcc\x57\x1b\xa6\xf3\x54\x4f\xfb\xcc\xcd\x5e\xfd\xc2\xdd\x81\xb7\x27\x4e\xdf\x0e\x58\x6a\xf4\xe3\x46\xc8\xe7\x13\x81\x9d\x3d\x6e\xb8\xc7\x0d\x57\x5f\xbc\x30\x6e\xd8\x9d\x4f\x9c\xf5\xef\x7a\xd0\xff\xd4\x3a\xa8\x47\x2b\xff\xe6\xd1\xca\x1b\x66\x2e\x61\x95\x6b\x74\xe4\xbe\x1e\x5a\xa7\x93\x16\x51\x7a\x60\x74\x0f\x8c\xee\x81\xd1\x2f\x0a\x8c\x6e\xb9\x8b\x6f\x34\xe1\x5a\x62\x67\x0f\x3d\x24\xba\x22\xac\xb1\x4a\x53\xa9\x5e\x79\x92\xaf\xce\x9c\xa1\xa8\x40\xe1\xdf\xff\x19\xfc\x37\x00\x00\xff\xff\x77\xc4\x70\x26\x88\x5e\x00\x00"), }, "/crd/bases/camel.apache.org_integrations.yaml": &vfsgen۰CompressedFileInfo{ name: "camel.apache.org_integrations.yaml", @@ -582,6 +589,7 @@ var assets = func() http.FileSystem { }, } fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{ + fs["/.DS_Store"].(os.FileInfo), fs["/addons"].(os.FileInfo), fs["/builder"].(os.FileInfo), fs["/camel-catalog-1.10.0.yaml"].(os.FileInfo), diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go index 34cc89048a..21908ed032 100644 --- a/pkg/trait/builder.go +++ b/pkg/trait/builder.go @@ -111,8 +111,19 @@ func (t *builderTrait) Apply(e *Environment) error { }, Verbose: t.Verbose, }}) - + // nolint: staticcheck case v1.IntegrationPlatformBuildPublishStrategyKaniko: + var persistentVolumeClaim string + var found, cacheEnabled bool + if persistentVolumeClaim, found = e.Platform.Status.Build.PublishStrategyOptions[builder.KanikoPVCName]; !found { + persistentVolumeClaim = e.Platform.Status.Build.PersistentVolumeClaim + } + + cacheEnabled = e.Platform.Status.Build.IsOptionEnabled(builder.KanikoBuildCacheEnabled) + if _, found = e.Platform.Status.Build.PublishStrategyOptions[builder.KanikoBuildCacheEnabled]; !found { + cacheEnabled = *e.Platform.Status.Build.KanikoBuildCache + } + e.BuildTasks = append(e.BuildTasks, v1.Task{Kaniko: &v1.KanikoTask{ BaseTask: v1.BaseTask{ Name: "kaniko", @@ -122,8 +133,8 @@ func (t *builderTrait) Apply(e *Environment) error { Registry: e.Platform.Status.Build.Registry, }, Cache: v1.KanikoTaskCache{ - Enabled: e.Platform.Status.Build.KanikoBuildCache, - PersistentVolumeClaim: e.Platform.Status.Build.PersistentVolumeClaim, + Enabled: &cacheEnabled, + PersistentVolumeClaim: persistentVolumeClaim, }, Verbose: t.Verbose, }}) diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go index e1bb1c9e16..d96b167a95 100644 --- a/pkg/trait/builder_test.go +++ b/pkg/trait/builder_test.go @@ -129,10 +129,11 @@ func createBuilderTestEnv(cluster v1.IntegrationPlatformCluster, strategy v1.Int Spec: v1.IntegrationPlatformSpec{ Cluster: cluster, Build: v1.IntegrationPlatformBuildSpec{ - PublishStrategy: strategy, - Registry: v1.RegistrySpec{Address: "registry"}, - RuntimeVersion: defaults.DefaultRuntimeVersion, - RuntimeProvider: v1.RuntimeProviderQuarkus, + PublishStrategy: strategy, + Registry: v1.RegistrySpec{Address: "registry"}, + RuntimeVersion: defaults.DefaultRuntimeVersion, + RuntimeProvider: v1.RuntimeProviderQuarkus, + PublishStrategyOptions: map[string]string{}, KanikoBuildCache: &kanikoCache, }, },