private async Task TryFastFindApiResourceAsync()

in src/Azure.Deployments.Extensibility.Extensions.Kubernetes/Api/K8sApiDiscovery.cs [58:83]


        private async Task<V1APIResource?> TryFastFindApiResourceAsync(GroupVersionKind groupVersionKind, CancellationToken cancellationToken)
        {
            var (group, version, kind) = groupVersionKind;

            if (K8sApiCatalog.Instance.TryFindMatchingRecord(new(group, version, kind)) is { } apiMetadata)
            {
                var serverVersionInfo = await this.client.GetServerVersionInfoAsync(cancellationToken);
                var serverMajorVersion = int.Parse(serverVersionInfo.Major);
                var serverMinorVersion = int.Parse(serverVersionInfo.Minor);
                var serverMajorMinorVersion = new SemVersion(serverMajorVersion, serverMinorVersion);

                if (apiMetadata.Matches(serverMajorMinorVersion))
                {
                    return new V1APIResource
                    {
                        Group = group,
                        Version = version,
                        Kind = kind,
                        Name = apiMetadata.Plural,
                        Namespaced = apiMetadata.Namespaced,
                    };
                }
            }

            return null;
        }