Skip to content
This repository was archived by the owner on May 15, 2025. It is now read-only.
This repository was archived by the owner on May 15, 2025. It is now read-only.

DSC fails to start on MacOS 15 (Sequoia) #653

@VeraPochobut

Description

@VeraPochobut

Brige-to-Kubernetes dsc cli fails to start on MacOS 15 (Sequoia) because of compatibility issue affecting .NET prior to 8.0.10, see dotnet/announcements#324 for details.

Error message is:

./dsc check-credentials --namespace default                                                                                                                                                                        The specified item is no longer valid. It may have been deleted from the keychain.

Stack trace:

An exception of type 'Interop.AppleCrypto.AppleCommonCryptoCryptographicException' occurred in System.Security.Cryptography.dll but was not handled in user code: 'The specified item is no longer valid. It may have been deleted from the keychain.'
   at Interop.AppleCrypto.X509CopyWithPrivateKey(SafeSecCertificateHandle certHandle, SafeSecKeyRefHandle privateKeyHandle, SafeKeychainHandle targetKeychain)
   at System.Security.Cryptography.X509Certificates.AppleCertificatePal.CopyWithPrivateKey(SafeSecKeyRefHandle privateKey)
   at System.Security.Cryptography.X509Certificates.AppleCertificatePal.CopyWithPrivateKey(RSA privateKey)
   at System.Security.Cryptography.X509Certificates.RSACertificateExtensions.CopyWithPrivateKey(X509Certificate2 certificate, RSA privateKey)
   at System.Security.Cryptography.X509Certificates.X509Certificate2.ExtractKeyFromPem[TAlg](ReadOnlySpan`1 keyPem, String[] labels, Func`1 factory, Func`2 import)
   at System.Security.Cryptography.X509Certificates.X509Certificate2.CreateFromPem(ReadOnlySpan`1 certPem, ReadOnlySpan`1 keyPem)
   at k8s.CertUtils.GeneratePfx(KubernetesClientConfiguration config)
   at k8s.CertUtils.GetClientCert(KubernetesClientConfiguration config)
   at k8s.Kubernetes.InitializeFromConfig(KubernetesClientConfiguration config)
   at k8s.Kubernetes..ctor(KubernetesClientConfiguration config, DelegatingHandler[] handlers)
   at Microsoft.BridgeToKubernetes.Common.Kubernetes.K8sClientFactory.CreateFromKubeConfig(K8SConfiguration kubeConfig) in /Users/verapocobut/Projects/Bridge-To-Kubernetes/src/common/Kubernetes/K8sClientFactory.cs:line 119
   at Microsoft.BridgeToKubernetes.Common.Kubernetes.KubernetesClient.<>c__DisplayClass12_0.<.ctor>b__0() in /Users/verapocobut/Projects/Bridge-To-Kubernetes/src/common/Kubernetes/KubernetesClient.cs:line 81
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)

Same error is displayed when starting via VS Code Bridge to Kubernetes plugin.

Workaround is to re-target to .net 8.0 instead and set custom binaries path for VS Code plugin:

export BRIDGE_BUILD_PATH="/Users/....../Bridge-To-Kubernetes/src/dsc/bin/Debug/net8.0/"
export DOTNET_ROOT=/usr/local/share/dotnet
code

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions