jfrog / charts

JFrog official Helm Charts
https://jfrog.com/integration/helm-repository/
Apache License 2.0
260 stars 447 forks source link

using helm: Artifactory CE does not start with google-storage-v2-direct binarystore #1801

Closed compiaffe closed 1 year ago

compiaffe commented 1 year ago

Is this a request for help?: Yes


BUG REPORT :

Version of Helm and Kubernetes: helm: version.BuildInfo{Version:"v3.11.2", GitCommit:"912ebc1cd10d38d340f048efaf0abda047c3468e", GitTreeState:"clean", GoVersion:"go1.18.10"}

k8s: 1.27.2-gke.1200

Which chart: artifactory

Which product license (Enterprise/Pro/oss):

CE

JFrog support reference (if already raised with support team):

What happened:

When using the google-storage-v2 or google-storage-v2-direct filestore, artifactory fails to start due to Application could not be initialized: Cannot invoke "java.lang.Class.newInstance()" because "binaryProviderClass" is null

The docs claim that S3 cloud interfaces are only available for paid subscriptions: https://jfrog.com/help/r/jfrog-installation-setup-documentation/s3-object-storage

However, that is not mentioned for Google CLoud Storage: https://jfrog.com/help/r/jfrog-installation-setup-documentation/google-cloud-storage

2023-08-01T07:18:23.815Z [jfrt ] [INFO ] [ef66eef8ad074cbb] [o.j.c.ConfigWrapperImpl:342   ] [Catalina-utility-2  ] - [Node ID: artifactory-cpp-ce-0]  detected local  modify for config 'artifactory/config/binarystore.xml'
2023-08-01T07:19:09.528Z [jfrt ] [WARN ] [6498d1910a555231] [ifactoryApplicationContext:288] [art-init            ] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'blobInfoServiceImpl' defined in URL [jar:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/artifactory/WEB-INF/lib/artifactory-addons-common-7.63.8.jar!/org/artifactory/addon/common/blobinfo/BlobInfoServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'replicatorServiceImpl' defined in URL [jar:file:/opt/jfrog/artifactory/app/artifactory/tomcat/webapps/artifactory/WEB-INF/lib/artifactory-addons-common-7.63.8.jar!/org/artifactory/addon/common/replicator/ReplicatorServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'centralConfig': Unsatisfied dependency expressed through field 'authService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityServiceImpl': Unsatisfied dependency expressed through method 'setAccessService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'accessServiceImpl': Unsatisfied dependency expressed through method 'setRepositoryService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'repositoryServiceImpl': Unsatisfied dependency expressed through field 'uploadService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'uploadServiceImpl': Unsatisfied dependency expressed through method 'setBinaryService' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'artifactoryBinaryServiceImpl': Unsatisfied dependency expressed through method 'setBinaryService' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'binaryInternalService': Invocation of init method failed; nested exception is java.lang.RuntimeException: Failed to initiate binary provider.
2023-08-01T07:19:09.622Z [jfrt ] [ERROR] [6498d1910a555231] [ctoryContextConfigListener:126] [art-init            ] - Application could not be initialized: Cannot invoke "java.lang.Class.newInstance()" because "binaryProviderClass" is null

What you expected to happen:

Artifactory CE to support using GCS as filestore

How to reproduce it (as minimally and precisely as possible):

helm upgrade --atomic --install artifactory-cpp-ce --create-namespace --namespace artifactory-cpp-ce jfrog/artifactory-cpp-ce -f custom_value_overwrites.yaml
...
    persistence:
      type: google-storage-v2-direct
      googleStorage: 
        gcpServiceAccount:
          enabled: true
          customSecretName: artifactory-gcp-creds
          httpsOnly: false
          # Set a unique bucket name
          bucketName: "correct-bucket-name"
          bucketExists: true
...

We do have a secret matching the artifactory-gcp-creds

Anything else we need to know:

ssarivis commented 1 year ago

Hi @compiaffe , As per the documentation ( https://jfrog.com/help/r/jfrog-hosting-models-documentation/artifactory-comparison-matrix ) artifactory-cpp-ce doesnt support google-storage-v2-direct.