This is an automated email from the ASF dual-hosted git repository. astefanutti pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 4e2a7b2c95aad4fffb2992aed00208b9d02ad5d6 Author: Antonin Stefanutti <anto...@stefanutti.fr> AuthorDate: Thu Mar 25 11:23:43 2021 +0100 feat(build): Support custom CA certificate in OpenAPI builds --- pkg/trait/openapi.go | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go index 197eb92..b0880b7 100644 --- a/pkg/trait/openapi.go +++ b/pkg/trait/openapi.go @@ -39,13 +39,11 @@ import ( "github.com/apache/camel-k/pkg/util/defaults" "github.com/apache/camel-k/pkg/util/digest" "github.com/apache/camel-k/pkg/util/gzip" + "github.com/apache/camel-k/pkg/util/jvm" "github.com/apache/camel-k/pkg/util/kubernetes" "github.com/apache/camel-k/pkg/util/maven" ) -// OpenAPITraitName --- -const OpenAPITraitName = "openapi" - // The OpenAPI DSL trait is internally used to allow creating integrations from a OpenAPI specs. // // +camel-k:trait=openapi @@ -55,7 +53,7 @@ type openAPITrait struct { func newOpenAPITrait() Trait { return &openAPITrait{ - BaseTrait: NewBaseTrait(OpenAPITraitName, 300), + BaseTrait: NewBaseTrait("openapi", 300), } } @@ -117,9 +115,7 @@ func (t *openAPITrait) Apply(e *Environment) error { generatedSources := make([]v1.SourceSpec, 0, len(e.Integration.Status.GeneratedSources)) if e.Integration.Status.GeneratedSources != nil { - // // Filter out the previously generated source - // for _, x := range e.Integration.Status.GeneratedSources { if x.Name != generatedSourceName { generatedSources = append(generatedSources, x) @@ -127,9 +123,7 @@ func (t *openAPITrait) Apply(e *Environment) error { } } - // // Add an additional source that references the config map - // generatedSources = append(generatedSources, v1.SourceSpec{ DataSpec: v1.DataSpec{ Name: generatedSourceName, @@ -221,6 +215,19 @@ func (t *openAPITrait) createNewOpenAPIConfigMap(e *Environment, resource v1.Res mc.SettingsContent = []byte(settings) } + if e.Platform.Status.Build.Maven.CaCert != nil { + certData, err := kubernetes.GetSecretRefData(e.C, e.Client, e.Platform.Namespace, e.Platform.Status.Build.Maven.CaCert) + if err != nil { + return err + } + trustStoreName := "trust.jks" + err = jvm.GenerateJavaKeystore(e.C, tmpDir, trustStoreName, certData) + if err != nil { + return err + } + mc.ExtraMavenOpts = append(mc.ExtraMavenOpts, "-Djavax.net.ssl.trustStore="+trustStoreName) + } + err = maven.Run(mc) if err != nil { return err @@ -246,10 +253,8 @@ func (t *openAPITrait) createNewOpenAPIConfigMap(e *Environment, resource v1.Res return err } - // // Store the generated rest xml in a separate config map in order // not to pollute the integration with generated data - // cm := corev1.ConfigMap{ TypeMeta: metav1.TypeMeta{ Kind: "ConfigMap",