Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error loading native library "/home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so" #326

Closed
mrfelton opened this issue Oct 1, 2019 · 25 comments · Fixed by #327
Labels
bug Something isn't working

Comments

@mrfelton
Copy link

mrfelton commented Oct 1, 2019

Describe the bug

I'm trying to set up integration with Google KMS but am getting the kamus-controller wont start up and is in a crash loop with the following error:

Error loading native library "/home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so"

Unhandled exception. System.IO.IOException: Error loading native library "/home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so". Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so) at Grpc.Core.Internal.UnmanagedLibrary..ctor(String[] libraryPathAlternatives) at Grpc.Core.Internal.NativeExtension.LoadUnmanagedLibrary() at Grpc.Core.Internal.NativeExtension.LoadNativeMethods() at Grpc.Core.Internal.NativeExtension..ctor() at Grpc.Core.Internal.NativeExtension.Get() at Grpc.Core.Internal.NativeMethods.Get() at Grpc.Core.GrpcEnvironment.GrpcNativeInit() at Grpc.Core.GrpcEnvironment..ctor() at Grpc.Core.GrpcEnvironment.AddRef() at Grpc.Core.Channel..ctor(String target, ChannelCredentials credentials, IEnumerable1 options) at Grpc.Core.Channel..ctor(String host, Int32 port, ChannelCredentials credentials, IEnumerable1 options) at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint, ChannelCredentials credentials) at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint) at Google.Cloud.Kms.V1.KeyManagementServiceClient.Create(ServiceEndpoint endpoint, KeyManagementServiceSettings settings) at Kamus.KeyManagement.ServiceCollectionExtensions.GetGoogleCloudKeyManagement(IConfiguration configuration) in /app/key-managment/ServiceCollectionExtensions.cs:line 81 at Kamus.KeyManagement.ServiceCollectionExtensions.<>c__DisplayClass0_0.b__0(IServiceProvider s) in /app/key-managment/ServiceCollectionExtensions.cs:line 33 at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.b__0(ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at CustomResourceDescriptorController.Program.Main(String[] args) in /app/crd-controller/Program.cs:line 19

Versions used
Kamus (API images): soluto/kamus-init-container:1.2.0
KMS provider: GKE

@rockstardev
Copy link

rockstardev commented Oct 1, 2019

This can also be caused by the fact that when building on CircleCi with machine tag you may get only 32bit version of apk package pulled:

https://discuss.circleci.com/t/plans-for-64-bit-option-on-free-plan/12695

Now really curious to see how you'll resolve this within Dockerfile (plus fix that cahce ;)

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

Are you sure you're using the latest version of the CRD? We had this issue in the past and we solved it (see the comment here) - you can see we added it in the dockerfile.

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Using kamus 0.4.1 helm chart in conjunction with kamus-init-container:1.2.0

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

This is a pretty old version if you don't have any CRD objects in use, please use the latest version - otherwise, please try using 0.4.5.0.

@omerlh omerlh added the bug Something isn't working label Oct 2, 2019
@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Oh wow, not sure how that happened. I only set this all up this week. Perhaps some of the documentation is still referencing the older version number. Will try to find the culprit (and will update my installation and retest this issue). Thanks.

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

Maybe you used a specific chart version? Sorry for the inconvenience...

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Yes, in my requirements I have:

dependencies:
  - name: kamus
    version: ~0.4.1
    repository: https://charts.soluto.io

I'm just unsure why I would have pinned that to 0.4 when 0.5 is the latest.

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

We just released 0.5 last week, but I'm pretty sure 0.4.1 is not the latest chart. This was fixed in #251 - but it was released on chart version 0.3.1 🤷‍♂

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

From https://hub.helm.sh/charts/soluto/kamus :

image

Shows that 0.4.1 is the latest chart version - which is what I'm running.

In that, it looks like image.version defaults to 0.3.4.0.

Is that intended?

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

How do you see that? Using helm inspect:

apiVersion: v1
appVersion: 0.5.1.0
description: An open source, git-ops, zero-trust secrets encryption and decryption
  solution for Kubernetes applications
home: https://kamus.soluto.io
icon: https://raw.githubusercontent.com/Soluto/kamus/master/images/logo.png
keywords:
- gitops
- secrets
maintainers:
- name: omerlh
- name: shaikatz
name: kamus
sources:
- https://github.com/Soluto/Kamus
version: 0.4.1

---
# Default values for kamus.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
useAirbag: false
airbag:
  repository: soluto
  tag: 0.8
image:
  version: 0.5.1.0
  repository: soluto
  pullPolicy: IfNotPresent
pod:
  annotations: {}
service:
  type: ClusterIP
  annotations:
    prometheus.io/scrape: "true"
ingress:
  enabled: false
resources:
  limits:
    cpu: 500m
    memory: 600Mi
  requests:
    cpu: 100m
    memory: 128Mi
autoscale:
  minReplicas: 2
  maxReplicas: 10
  targetCPU: 50
keyManagement:
  provider: AESKey
  AES:
    key: rWnWbaFutavdoeqUiVYMNJGvmjQh31qaIej/vAxJ9G0=

---
# Kamus Helm Chart

[Kamus](https://github.com/Soluto/kamus) is an open source, git-ops, zero-trust secret encryption and decryption solution for Kubernetes applications.
This chart should be used to deploy Kamus in a production environment.

Kamus deployment contains 2 pods, one for encryption and one for decryption. Both pods are installed by this chart.

### Installing the Chart

To install the chart with the release name `my-kamus`:

helm repo add soluto https://charts.soluto.io
helm install --name my-kamus soluto/kamus


The chart can be customized using the following configurable parameters. Most settings affect both APIs, unless specified otherwise:

| Parameter                                      | Description                                                                                                                                                              | Default                                                            |
|------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `replicaCount`                                 | The number of replicas                                                               | 1
| `useAirbag`                                    | Enable [Airbag](https://github.com/Soluto/airbag) side car for encryption API. Enable to protect encryption API with Openid-Connect authentication.  | `false`
| `airbag.repository`                       | The docker repository to pull Airbag from.                                    | `soluto`
| `airbag.tag`                       | The docker image tag to use when pulling Airbag. Image name will be `airbag:{tag}`.                                    | `soluto`     
| `airbag.authority`                             | The authority issueing the token | 
| `airbag.audience`                              | The audience used to validate the token (`aud` claim) |
| `airbag.issuer`                                | The issuer used to validate the token (`iss` claim) |              
| `image.version`                                | The image of Kamus to pull. Image naming convention is `kamus:encryption-{version}` and `kamus:encryption-{version}`                        | `0.3.4.0`     
| `image.repository`                              | The docker repository to pull the images from                                                     | `soluto`                                        
| `image.pullPolicy`                              | Kamus containers pull policy                                          | `IfNotPresent`                                                            
| `service.type`                                 | The type of the service (careful, values other than `ClusterIp` expose the decryptor to the internet)                         | `ClusterIp`   
| `service.type`                                 | The type of the service (careful, values other than `ClusterIp` expose the decryptor to the internet)                         | `ClusterIp`  
| `service.annotations`                          | The annotations for the service |  `prometheus.io/scrape: "true"`
| `ingress.enabled`                              | Enable or disable ingress for encryptor API |  `false`
| `ingress.hosts`                                 | Array of hosts for the ingress |                 
| `ingress.annotations`                          | The annotations for the ingress | 
| `ingress.tls.secretName`                       | The name of the TLS secret that should be used by the ingress | 
| `resources.limit.cpu`                          | The maximum CPU cores that can be consumed  | `500m`
| `resources.limit.memory`                       | The maximum amount of memory that can be consumed    | `600Mi`
| `resource.request.cpu`                         | The minimum CPU cores     | `100m`
| `resource.request.memory`                      | The minimum amount of memory | ` 128Mi`   
| `autoscale.minReplicas`                        | The minimum number of pods   | 2
| `autoscale.maxReplicas`                        | The maximum number of pods   | 10 
| `autoscale.targetCPU`                          | Scale up the numnber of pods when CPU usage is above this percentage       |   50
| `keyManagement.provider`                        | The KMS provider (AESKey/AzureKeyVault/GoogleKms/AwsKms)  | AES
| `keyManagement.AES.key`                         | The encryption key used by the AES provider, *ovveride for production deployments*. This value *must* kept secret            | `rWnWbaFutavdoeqUiVYMNJGvmjQh31qaIej/vAxJ9G0=`
| `keyManagement.azureKeyVault.clientId`           | A client ID for a valid Azure Active Directory that has permissions to access the requested key vault |    
| `keyManagement.azureKeyVault.clientSecret`          | A client secret for a valid Azure Active Directory that has permissions to access the requested key vault. This value *must* kept secret |   
| `keyManagement.azureKeyVault.keyVaultName`          | The name of the KeyVault to use | 
| `keyManagement.azureKeyVault.keyType`                | The type of the keys  |  `RSA-HSM` 
| `keyManagement.azureKeyVault.keySize`                | The size of the keys. Do not set to values smaller than 2048 for RSA keys   |  `2048` 
| `keyManagement.azureKeyVault.maximumDataLength`                | The maximum number of bytes that can be encrypted by KeyVaults. For data in bigger size, envelope encryption is used.   |  `214` 
| `keyManagement.googleKms.location`                | The location of the keyring used for encryption/decryption   |  
| `keyManagement.googleKms.keyRing`                | The name of the keyring used for encryption/decryption   |  
| `keyManagement.googleKms.protectionLevel`                | The protection of the keys, can be either HSM or SOFTWARE   |  HSM
| `keyManagement.googleKms.credentials`                | Base64 encoded credentials files (the JSON file that is created when creating keys for service account on google)  | 
| `keyManagement.awsKms.key`                | User access key to use for AWS KMS authentication   |  
| `keyManagement.awsKms.secret`                | User access secret to use for AWS KMS authentication   |  
| `keyManagement.awsKms.region`                | AWS KMS region   | 
| `keyManagement.awsKms.cmkPrefix`                | Prefix for the customer master keys that are created in the KMS  | 
| `pod.annotations`                             | Set the annotations for Kamus's pods | 
| `crdConersationEnabled`                       | See bellow, relevant if running Kamus on a cluster version bellow 1.15.0 |

Then use this command to install the chart:
```bash
helm install --name my-kamus soluto/kamus -f values.yaml

Consult the installtion guide for more details on how to configure Kamus for a production deployment.

Multiple KamusSecrets versions

Kamus 0.5.0 introduced a new version of the KamusSecret CRD - v1alpha2. The chart and the API still support the older version (v1alpha1) using a conversion webhook. This feature is enabled by default since Kubernetes version 1.15.0. If you run Kamus on an older version, and have the older version of the CRD you need to enable the relevant feature flag - CustomResourceWebhookConversion. See Feature Gate documentation for more details.

Look like the image version is 0.5.0.1

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Ok, maybe it is just the docs that are out of date then.

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

image

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

So... with that in mind, it seems that I am running 0.5.1.0

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Can confirm - in GKE yaml of kamus container that is in crash loop shows soluto/kamus:controller-0.5.1.0

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

ok, that's progress :) can you please try the same chart just with setting the version to 0.4.5.0? Let's try to find the issue

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Looks the same:

Unhandled exception. System.IO.IOException: Error loading native library "/home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so". Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by /home/dotnet/app/runtimes/linux/native/libgrpc_csharp_ext.x64.so) at Grpc.Core.Internal.UnmanagedLibrary..ctor(String[] libraryPathAlternatives) at Grpc.Core.Internal.NativeExtension.LoadUnmanagedLibrary() at Grpc.Core.Internal.NativeExtension.LoadNativeMethods() at Grpc.Core.Internal.NativeExtension..ctor() at Grpc.Core.Internal.NativeExtension.Get() at Grpc.Core.Internal.NativeMethods.Get() at Grpc.Core.GrpcEnvironment.GrpcNativeInit() at Grpc.Core.GrpcEnvironment..ctor() at Grpc.Core.GrpcEnvironment.AddRef() at Grpc.Core.Channel..ctor(String target, ChannelCredentials credentials, IEnumerable1 options) at Grpc.Core.Channel..ctor(String host, Int32 port, ChannelCredentials credentials, IEnumerable1 options) at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint, ChannelCredentials credentials) at Google.Api.Gax.Grpc.ChannelPool.GetChannel(ServiceEndpoint endpoint) at Google.Cloud.Kms.V1.KeyManagementServiceClient.Create(ServiceEndpoint endpoint, KeyManagementServiceSettings settings) at Kamus.KeyManagement.ServiceCollectionExtensions.GetGoogleCloudKeyManagement(IConfiguration configuration) in /app/key-managment/ServiceCollectionExtensions.cs:line 81 at Kamus.KeyManagement.ServiceCollectionExtensions.<>c__DisplayClass0_0.b__0(IServiceProvider s) in /app/key-managment/ServiceCollectionExtensions.cs:line 33 at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite factoryCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.b__0(ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at CustomResourceDescriptorController.Program.Main(String[] args) in /app/crd-controller/Program.cs:line 19

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

I think @rockstardev was right, it might be 32/64 issues. I'll look into how we can force apk to pull the 64 version, not 32 - if one of you is familiar with those areas, help is appreciated :)

@omerlh
Copy link
Contributor

omerlh commented Oct 2, 2019

Find the root cause (see grpc/grpc#18428) and opened a fix PR. Damn, that was very magical...

@mrfelton
Copy link
Author

mrfelton commented Oct 2, 2019

Can this be fixed in the 4.x series too? The needed feature gate for 5.x is not available on GKE stable release line

@omerlh
Copy link
Contributor

omerlh commented Oct 3, 2019

We might be able to do that - but just to clarify, the feature gate is required only if you need migration support - e.g. if you have existing KamusSecret in v1alpha1 version. If you don't have any, it is not required.

@omerlh
Copy link
Contributor

omerlh commented Oct 3, 2019

Version 0.5.2.0 is now released with the fix, please retest and let us know if it helped 🙏

@mrfelton
Copy link
Author

mrfelton commented Oct 3, 2019

Sorted!! Great job @omerlh . Thanks for the speedy fix :)

@omerlh
Copy link
Contributor

omerlh commented Oct 7, 2019

Adding now support for this in the latest chart version

1 similar comment
@omerlh
Copy link
Contributor

omerlh commented Oct 7, 2019

Adding now support for this in the latest chart version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants