microservices-demo
microservices-demo copied to clipboard
[WIP] Use upstream Kubernetes gRPC Health Check feature
Experimental PR to test/implement https://github.com/GoogleCloudPlatform/microservices-demo/issues/662
This won't work with the current GKE cluster used in CI because it's GKE < 1.24.
In order to test this, you could provision a GKE cluster in 1.24:
gcloud container clusters create test-grpc \
--release-channel=rapid \
--cluster-version=1.24
Note: Not an option with 1.23 because it's in alpha and forces users to enable alpha features flag on their Kubernetes clusters.
- [ ] Test on GKE 1.24
- [ ] Validate approach for a potential future merge into
main - [ ] Run image scanning to see differences in terms of CVEs (
docker run aquasec/trivy image) - [ ] Update CI's + OB Live's GKE clusters to 1.24 to make sure everything works
Once tested/approved, but before thinking about merging it, what are we going to do with this PR?
If we want to support Kubernetes < 1.24 we need to:
- either have 2 containers (one with the old bin and the other without) + some Kustomize or Helm or manifests duplication - not ideal here...
- or wait for the end of life of 1.23 as an example which is planned for 2023-02-28 (source and source). Apparently for GKE it's 2023-06 (source)
I think 2. is a fair option if we could say that starting 2023-02-28 (or 2023-06) Online Boutique will only work on Kubernetes 1.24+ moving forward?
Complementary information:
Image size locally
emailservice: -24%gcr.io/google-samples/microservices-demo/emailservice:v0.3.8: 220MBgcr.io/online-boutique-ci/refs/pull/849/emailservice:849: 190MB
paymentservice: -7%gcr.io/google-samples/microservices-demo/paymentservice:v0.3.8: 162MBgcr.io/online-boutique-ci/refs/pull/849/paymentservice:849: 151MB
cartservice: -18%gcr.io/google-samples/microservices-demo/cartservice:v0.3.8: 62.1MBgcr.io/online-boutique-ci/refs/pull/849/cartservice:849: 51.2MB
frontend: +3% (?)gcr.io/google-samples/microservices-demo/frontend:v0.3.8: 39.9MBgcr.io/online-boutique-ci/refs/pull/849/frontend:849: 41.1MB
@mathieu-benoit Thanks for making progress on this! Also, this (built-in gRPC health-checking) is a really cool features of Kubernetes.
Option 2 is a long wait. Whereas, option 1 seems a bit messy. Especially, considering the fact that we'll just be demonstrating the following:
livenessProbe:
grpc:
port: 50051
And also considering the fact that this problem is already well documented. In other words, how much value are we creating by demo-ing the feature on Online Boutique?
I'm leaning toward option 2 (waiting), but still open to either. Let's talk through this during out 1-on-1. For option 2, we need to decide on exactly what to wait on (e.g., wait until the Regular GKE channel becomes 1.24, or just wait until end-of-life for Kubernetes 1.23, etc.). For option 1, we need to determine the engineering effort.
Too Early Today (Jun 9, 2022)
I ran:
gcloud container get-server-config --format "yaml(channels)" --zone us-central1-a
And got (Jun 9, 2022):
Fetching server config for us-central1-a
channels:
- channel: RAPID
defaultVersion: 1.23.5-gke.2400
validVersions:
- 1.24.0-gke.1000
- 1.23.6-gke.1700
- 1.23.6-gke.1500
- 1.23.5-gke.2400
- 1.22.9-gke.1500
- 1.22.9-gke.1300
- 1.22.8-gke.2200
- 1.21.12-gke.1700
- 1.21.12-gke.1500
- channel: REGULAR
defaultVersion: 1.22.8-gke.201
validVersions:
- 1.23.5-gke.1501
- 1.22.8-gke.201
- 1.21.11-gke.1900
- 1.21.11-gke.1100
- 1.20.15-gke.6000
- channel: STABLE
defaultVersion: 1.21.11-gke.1100
validVersions:
- 1.22.8-gke.201
- 1.22.8-gke.200
- 1.21.11-gke.1900
- 1.21.11-gke.1100
- 1.20.15-gke.6000
- 1.19.16-gke.11800
- 1.19.16-gke.11000
Looks like the currently default for GKE's REGULAR channel is 1.22.8-gke.201.
Which means, today, it's too early (since the --enable-kubernetes-alpha arg is only supported on Kubernetes 1.23).
:boom: CI tests failed :see_no_evil:
CI test log
Building go plugin
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=tyk.cov github.com/TykTechnologies/tyk
? github.com/TykTechnologies/tyk [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=apidef.cov github.com/TykTechnologies/tyk/apidef
=== RUN TestSchema
--- PASS: TestSchema (0.02s)
=== RUN TestEncodeForDB
=== RUN TestEncodeForDB/update_ScopeClaim_when_Scopes.JWT_is_not_empty_and_OIDC_is_not_enabled
=== RUN TestEncodeForDB/update_ScopeClaim_when_Scopes.OIDC_is_not_empty_and_OpenID_is_enabled
=== RUN TestEncodeForDB/EncodeForDB_persist_schema_objects_from_extended_path
--- PASS: TestEncodeForDB (0.00s)
--- PASS: TestEncodeForDB/update_ScopeClaim_when_Scopes.JWT_is_not_empty_and_OIDC_is_not_enabled (0.00s)
--- PASS: TestEncodeForDB/update_ScopeClaim_when_Scopes.OIDC_is_not_empty_and_OpenID_is_enabled (0.00s)
--- PASS: TestEncodeForDB/EncodeForDB_persist_schema_objects_from_extended_path (0.00s)
=== RUN TestDecodeFromDB
=== RUN TestDecodeFromDB/update_Scopes.JWT_when_JWTScopeClaimName_is_not_empty
time="Jul 13 19:42:51" level=error msg="Couldn't Decode, leaving as it may be legacy..."
=== RUN TestDecodeFromDB/update_Scopes.OIDC_when_JWTScopeClaimName_is_not_empty_and_OpenID_is_enabled
time="Jul 13 19:42:51" level=error msg="Couldn't Decode, leaving as it may be legacy..."
--- PASS: TestDecodeFromDB (0.00s)
--- PASS: TestDecodeFromDB/update_Scopes.JWT_when_JWTScopeClaimName_is_not_empty (0.00s)
--- PASS: TestDecodeFromDB/update_Scopes.OIDC_when_JWTScopeClaimName_is_not_empty_and_OpenID_is_enabled (0.00s)
=== RUN TestSchemaGraphqlConfig
--- PASS: TestSchemaGraphqlConfig (0.01s)
=== RUN TestAPIDefinition_DecodeFromDB_AuthDeprecation
time="Jul 13 19:42:51" level=error msg="Couldn't Decode, leaving as it may be legacy..."
time="Jul 13 19:42:51" level=error msg="Couldn't Decode, leaving as it may be legacy..."
--- PASS: TestAPIDefinition_DecodeFromDB_AuthDeprecation (0.00s)
=== RUN TestAPIDefinition_GenerateAPIID
--- PASS: TestAPIDefinition_GenerateAPIID (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning
--- PASS: TestAPIDefinition_MigrateVersioning (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning_Disabled
=== RUN TestAPIDefinition_MigrateVersioning_Disabled/multiple_versions
=== RUN TestAPIDefinition_MigrateVersioning_Disabled/one_version
--- PASS: TestAPIDefinition_MigrateVersioning_Disabled (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_Disabled/multiple_versions (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_Disabled/one_version (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning_DefaultEmpty
=== RUN TestAPIDefinition_MigrateVersioning_DefaultEmpty/Default
--- PASS: TestAPIDefinition_MigrateVersioning_DefaultEmpty (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_DefaultEmpty/Default (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning_Expires
=== RUN TestAPIDefinition_MigrateVersioning_Expires/version_enabled
=== RUN TestAPIDefinition_MigrateVersioning_Expires/version_disabled
--- PASS: TestAPIDefinition_MigrateVersioning_Expires (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_Expires/version_enabled (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_Expires/version_disabled (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning_OverrideTarget
=== RUN TestAPIDefinition_MigrateVersioning_OverrideTarget/base
=== RUN TestAPIDefinition_MigrateVersioning_OverrideTarget/version
--- PASS: TestAPIDefinition_MigrateVersioning_OverrideTarget (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_OverrideTarget/base (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_OverrideTarget/version (0.00s)
=== RUN TestAPIDefinition_MigrateVersioning_StripPath
=== RUN TestAPIDefinition_MigrateVersioning_StripPath/url
=== RUN TestAPIDefinition_MigrateVersioning_StripPath/param
=== RUN TestAPIDefinition_MigrateVersioning_StripPath/header
--- PASS: TestAPIDefinition_MigrateVersioning_StripPath (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_StripPath/url (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_StripPath/param (0.00s)
--- PASS: TestAPIDefinition_MigrateVersioning_StripPath/header (0.00s)
=== RUN TestAPIDefinition_MigrateEndpointMeta
--- PASS: TestAPIDefinition_MigrateEndpointMeta (0.00s)
=== RUN TestAPIDefinition_MigrateCachePlugin
--- PASS: TestAPIDefinition_MigrateCachePlugin (0.00s)
=== RUN TestAPIDefinition_MigrateAuthConfigNames
--- PASS: TestAPIDefinition_MigrateAuthConfigNames (0.00s)
=== RUN TestValidationResult_HasErrors
--- PASS: TestValidationResult_HasErrors (0.00s)
=== RUN TestValidationResult_FirstError
--- PASS: TestValidationResult_FirstError (0.00s)
=== RUN TestValidationResult_ErrorStrings
--- PASS: TestValidationResult_ErrorStrings (0.00s)
=== RUN TestRuleUniqueDataSourceNames_Validate
=== RUN TestRuleUniqueDataSourceNames_Validate/should_return_invalid_when_data_source_name_is_duplicated
=== RUN TestRuleUniqueDataSourceNames_Validate/return_valid_when_data_source_names_are_not_duplicated
=== RUN TestRuleUniqueDataSourceNames_Validate/return_valid_when_there_are_no_data_sources
--- PASS: TestRuleUniqueDataSourceNames_Validate (0.00s)
--- PASS: TestRuleUniqueDataSourceNames_Validate/should_return_invalid_when_data_source_name_is_duplicated (0.00s)
--- PASS: TestRuleUniqueDataSourceNames_Validate/return_valid_when_data_source_names_are_not_duplicated (0.00s)
--- PASS: TestRuleUniqueDataSourceNames_Validate/return_valid_when_there_are_no_data_sources (0.00s)
=== RUN TestRuleAtLeastEnableOneAuthConfig_Validate
=== RUN TestRuleAtLeastEnableOneAuthConfig_Validate/should_return_invalid_when_all_sources_are_disabled_for_enabled_auth_mechanisms
=== RUN TestRuleAtLeastEnableOneAuthConfig_Validate/should_return_valid_when_at_least_one_source_is_enabled_for_enabled_auth_mechanisms
--- PASS: TestRuleAtLeastEnableOneAuthConfig_Validate (0.00s)
--- PASS: TestRuleAtLeastEnableOneAuthConfig_Validate/should_return_invalid_when_all_sources_are_disabled_for_enabled_auth_mechanisms (0.00s)
--- PASS: TestRuleAtLeastEnableOneAuthConfig_Validate/should_return_valid_when_at_least_one_source_is_enabled_for_enabled_auth_mechanisms (0.00s)
PASS
coverage: 61.7% of statements
ok github.com/TykTechnologies/tyk/apidef 0.074s coverage: 61.7% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=adapter.cov github.com/TykTechnologies/tyk/apidef/adapter
=== RUN TestGraphQLConfigAdapter_EngineConfigV2
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_proxy-only_mode
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_internal_proxy-only_api
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_engine_execution_mode_without_error
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_supergraph_execution_mode_without_error
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_supergraph_with_batching_disabled
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_subgraph_without_error
=== RUN TestGraphQLConfigAdapter_EngineConfigV2/should_return_an_error_for_unsupported_config
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2 (0.04s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_proxy-only_mode (0.01s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_internal_proxy-only_api (0.00s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_engine_execution_mode_without_error (0.01s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_supergraph_execution_mode_without_error (0.01s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_supergraph_with_batching_disabled (0.01s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_create_v2_config_for_subgraph_without_error (0.00s)
--- PASS: TestGraphQLConfigAdapter_EngineConfigV2/should_return_an_error_for_unsupported_config (0.00s)
=== RUN TestGraphQLConfigAdapter_supergraphDataSourceConfigs
--- PASS: TestGraphQLConfigAdapter_supergraphDataSourceConfigs (0.00s)
=== RUN TestGraphQLConfigAdapter_engineConfigV2FieldConfigs
--- PASS: TestGraphQLConfigAdapter_engineConfigV2FieldConfigs (0.01s)
=== RUN TestGraphQLConfigAdapter_engineConfigV2DataSources
--- PASS: TestGraphQLConfigAdapter_engineConfigV2DataSources (0.01s)
PASS
coverage: 88.9% of statements
ok github.com/TykTechnologies/tyk/apidef/adapter 0.103s coverage: 88.9% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=importer.cov github.com/TykTechnologies/tyk/apidef/importer
=== RUN TestToAPIDefinition_Swagger
--- PASS: TestToAPIDefinition_Swagger (0.00s)
=== RUN TestToAPIDefinition_WSDL
time="Jul 13 19:42:54" level=error msg="Port for service HolidayService2 not found. Skiping processing of the service"
time="Jul 13 19:42:54" level=error msg="Unsupported transport protocol. Skipping process of the service StockQuoteService"
time="Jul 13 19:42:54" level=error msg="Port for service StockQuoteService not found. Skiping processing of the service"
--- PASS: TestToAPIDefinition_WSDL (0.02s)
PASS
coverage: 65.7% of statements
ok github.com/TykTechnologies/tyk/apidef/importer 0.062s coverage: 65.7% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=oas.cov github.com/TykTechnologies/tyk/apidef/oas
=== RUN TestAuthentication
=== RUN TestAuthentication/Fill_just_GoPlugin
--- PASS: TestAuthentication (0.00s)
--- PASS: TestAuthentication/Fill_just_GoPlugin (0.00s)
=== RUN TestScopes
--- PASS: TestScopes (0.00s)
=== RUN TestAuthSources
--- PASS: TestAuthSources (0.00s)
=== RUN TestAuthSource
=== RUN TestAuthSource/param
=== RUN TestAuthSource/cookie
--- PASS: TestAuthSource (0.00s)
--- PASS: TestAuthSource/param (0.00s)
--- PASS: TestAuthSource/cookie (0.00s)
=== RUN TestSignature
--- PASS: TestSignature (0.00s)
=== RUN TestHMAC
--- PASS: TestHMAC (0.00s)
=== RUN TestOIDC
--- PASS: TestOIDC (0.00s)
=== RUN TestGoPlugin
--- PASS: TestGoPlugin (0.00s)
=== RUN TestCustomPlugin
--- PASS: TestCustomPlugin (0.00s)
=== RUN TestOAS_BuildDefaultTykExtension
=== PAUSE TestOAS_BuildDefaultTykExtension
=== RUN TestGetTykExtensionConfigParams
=== RUN TestGetTykExtensionConfigParams/extract_all_params_when_provided
=== RUN TestGetTykExtensionConfigParams/nil_when_no_params_provided
=== RUN TestGetTykExtensionConfigParams/nil_for_middleware_when_params_not_provided
=== RUN TestGetTykExtensionConfigParams/not_nil_when_at_least_one_parameter_is_provided
--- PASS: TestGetTykExtensionConfigParams (0.00s)
--- PASS: TestGetTykExtensionConfigParams/extract_all_params_when_provided (0.00s)
--- PASS: TestGetTykExtensionConfigParams/nil_when_no_params_provided (0.00s)
--- PASS: TestGetTykExtensionConfigParams/nil_for_middleware_when_params_not_provided (0.00s)
--- PASS: TestGetTykExtensionConfigParams/not_nil_when_at_least_one_parameter_is_provided (0.00s)
=== RUN TestOAS_importAuthentication
=== RUN TestOAS_importAuthentication/security_is_empty
=== RUN TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition
=== RUN TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition/enable=true
=== RUN TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition/enable=false
=== RUN TestOAS_importAuthentication/update_existing_one
=== RUN TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition
=== RUN TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition/enable=true
=== RUN TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition/enable=false
--- PASS: TestOAS_importAuthentication (0.00s)
--- PASS: TestOAS_importAuthentication/security_is_empty (0.00s)
--- PASS: TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition (0.00s)
--- PASS: TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition/enable=true (0.00s)
--- PASS: TestOAS_importAuthentication/add_first_authentication_in_case_of_OR_condition/enable=false (0.00s)
--- PASS: TestOAS_importAuthentication/update_existing_one (0.00s)
--- PASS: TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition (0.00s)
--- PASS: TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition/enable=true (0.00s)
--- PASS: TestOAS_importAuthentication/add_multiple_authentication_with_AND_condition/enable=false (0.00s)
=== RUN TestSecuritySchemes_Import
=== RUN TestSecuritySchemes_Import/token
=== RUN TestSecuritySchemes_Import/token/enable=true
=== RUN TestSecuritySchemes_Import/token/enable=false
=== RUN TestSecuritySchemes_Import/jwt
=== RUN TestSecuritySchemes_Import/basic
=== RUN TestSecuritySchemes_Import/oauth
=== RUN TestSecuritySchemes_Import/unsupported_scheme
=== RUN TestSecuritySchemes_Import/update_existing_one
--- PASS: TestSecuritySchemes_Import (0.00s)
--- PASS: TestSecuritySchemes_Import/token (0.00s)
--- PASS: TestSecuritySchemes_Import/token/enable=true (0.00s)
--- PASS: TestSecuritySchemes_Import/token/enable=false (0.00s)
--- PASS: TestSecuritySchemes_Import/jwt (0.00s)
--- PASS: TestSecuritySchemes_Import/basic (0.00s)
--- PASS: TestSecuritySchemes_Import/oauth (0.00s)
--- PASS: TestSecuritySchemes_Import/unsupported_scheme (0.00s)
--- PASS: TestSecuritySchemes_Import/update_existing_one (0.00s)
=== RUN TestSecuritySchemes_GetBaseIdentityProvider
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/empty
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/empty/zero
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/empty/one
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/token
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/jwt
=== RUN TestSecuritySchemes_GetBaseIdentityProvider/oauth
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/empty (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/empty/zero (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/empty/one (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/token (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/jwt (0.00s)
--- PASS: TestSecuritySchemes_GetBaseIdentityProvider/oauth (0.00s)
=== RUN TestToken_Import
--- PASS: TestToken_Import (0.00s)
=== RUN TestAuthSources_Import
=== RUN TestAuthSources_Import/header
=== RUN TestAuthSources_Import/query
=== RUN TestAuthSources_Import/cookie
--- PASS: TestAuthSources_Import (0.00s)
--- PASS: TestAuthSources_Import/header (0.00s)
--- PASS: TestAuthSources_Import/query (0.00s)
--- PASS: TestAuthSources_Import/cookie (0.00s)
=== RUN TestJWT_Import
--- PASS: TestJWT_Import (0.00s)
=== RUN TestBasic_Import
--- PASS: TestBasic_Import (0.00s)
=== RUN TestOAuth_Import
--- PASS: TestOAuth_Import (0.00s)
=== RUN TestRetainOldServerURL
=== RUN TestRetainOldServerURL/empty_old_servers
=== RUN TestRetainOldServerURL/existing_old_servers
=== RUN TestRetainOldServerURL/duplicate_in_servers
=== RUN TestRetainOldServerURL/empty_new_servers
=== RUN TestRetainOldServerURL/empty_old_servers#01
--- PASS: TestRetainOldServerURL (0.00s)
--- PASS: TestRetainOldServerURL/empty_old_servers (0.00s)
--- PASS: TestRetainOldServerURL/existing_old_servers (0.00s)
--- PASS: TestRetainOldServerURL/duplicate_in_servers (0.00s)
--- PASS: TestRetainOldServerURL/empty_new_servers (0.00s)
--- PASS: TestRetainOldServerURL/empty_old_servers#01 (0.00s)
=== RUN TestMiddleware
--- PASS: TestMiddleware (0.00s)
=== RUN TestGlobal
--- PASS: TestGlobal (0.00s)
=== RUN TestCORS
--- PASS: TestCORS (0.00s)
=== RUN TestCache
--- PASS: TestCache (0.00s)
=== RUN TestExtendedPaths
=== RUN TestExtendedPaths/empty
=== RUN TestExtendedPaths/filled
--- PASS: TestExtendedPaths (0.00s)
--- PASS: TestExtendedPaths/empty (0.00s)
--- PASS: TestExtendedPaths/filled (0.00s)
=== RUN TestMockResponse
--- PASS: TestMockResponse (0.00s)
=== RUN TestOAS
=== PAUSE TestOAS
=== RUN TestOAS_AddServers
=== PAUSE TestOAS_AddServers
=== RUN TestOAS_UpdateServers
=== PAUSE TestOAS_UpdateServers
=== RUN TestOAS_GetSecuritySchemes
--- PASS: TestOAS_GetSecuritySchemes (0.01s)
=== RUN Test_toStructIfMap
--- PASS: Test_toStructIfMap (0.00s)
=== RUN TestOAS_MarshalJSON
--- PASS: TestOAS_MarshalJSON (0.00s)
=== RUN TestShouldOmit
--- PASS: TestShouldOmit (0.00s)
=== RUN TestOAS_PathsAndOperations
=== PAUSE TestOAS_PathsAndOperations
=== RUN TestOAS_PathsAndOperationsRegex
=== PAUSE TestOAS_PathsAndOperationsRegex
=== RUN TestOAS_RegexOperationIDs
=== PAUSE TestOAS_RegexOperationIDs
=== RUN TestOAS_RegexPaths
=== PAUSE TestOAS_RegexPaths
=== RUN TestValidateRequest
--- PASS: TestValidateRequest (0.00s)
=== RUN TestXTykAPIGateway
=== RUN TestXTykAPIGateway/empty
=== RUN TestXTykAPIGateway/filled_OAS
=== RUN TestXTykAPIGateway/filled_old
--- PASS: TestXTykAPIGateway (0.00s)
--- PASS: TestXTykAPIGateway/empty (0.00s)
--- SKIP: TestXTykAPIGateway/filled_OAS (0.00s)
--- SKIP: TestXTykAPIGateway/filled_old (0.00s)
=== RUN TestInfo
--- PASS: TestInfo (0.00s)
=== RUN TestState
--- PASS: TestState (0.00s)
=== RUN TestVersioning
--- PASS: TestVersioning (0.00s)
=== RUN TestOAS_Security
--- PASS: TestOAS_Security (0.00s)
=== RUN TestOAS_ApiKeyScheme
=== RUN TestOAS_ApiKeyScheme/should_not_set_header_name_in_tyk_extension
=== RUN TestOAS_ApiKeyScheme/should_not_set_query_name_in_tyk_extension
=== RUN TestOAS_ApiKeyScheme/should_not_set_cookie_name_in_tyk_extension
=== RUN TestOAS_ApiKeyScheme/already_filled_scheme_in=header_value_should_be_respected
=== RUN TestOAS_ApiKeyScheme/already_filled_scheme_in=query_value_should_be_respected
=== RUN TestOAS_ApiKeyScheme/already_filled_scheme_in=cookie_value_should_be_respected
--- PASS: TestOAS_ApiKeyScheme (0.00s)
--- PASS: TestOAS_ApiKeyScheme/should_not_set_header_name_in_tyk_extension (0.00s)
--- PASS: TestOAS_ApiKeyScheme/should_not_set_query_name_in_tyk_extension (0.00s)
--- PASS: TestOAS_ApiKeyScheme/should_not_set_cookie_name_in_tyk_extension (0.00s)
--- PASS: TestOAS_ApiKeyScheme/already_filled_scheme_in=header_value_should_be_respected (0.00s)
--- PASS: TestOAS_ApiKeyScheme/already_filled_scheme_in=query_value_should_be_respected (0.00s)
--- PASS: TestOAS_ApiKeyScheme/already_filled_scheme_in=cookie_value_should_be_respected (0.00s)
=== RUN TestOAS_Token
--- PASS: TestOAS_Token (0.00s)
=== RUN TestOAS_Token_MultipleSecuritySchemes
--- PASS: TestOAS_Token_MultipleSecuritySchemes (0.00s)
=== RUN TestOAS_AppendSecurity
=== RUN TestOAS_AppendSecurity/append_new
=== RUN TestOAS_AppendSecurity/append_same
--- PASS: TestOAS_AppendSecurity (0.00s)
--- PASS: TestOAS_AppendSecurity/append_new (0.00s)
--- PASS: TestOAS_AppendSecurity/append_same (0.00s)
=== RUN TestOAS_JWT
--- PASS: TestOAS_JWT (0.00s)
=== RUN TestOAS_Basic
--- PASS: TestOAS_Basic (0.00s)
=== RUN TestOAS_OAuth
--- PASS: TestOAS_OAuth (0.00s)
=== RUN TestOAS_OIDC
--- PASS: TestOAS_OIDC (0.00s)
=== RUN TestOAS_CustomPlugin
--- PASS: TestOAS_CustomPlugin (0.00s)
=== RUN TestOAS_GoPlugin
--- PASS: TestOAS_GoPlugin (0.00s)
=== RUN TestOAS_TykAuthentication_NoOASSecurity
--- PASS: TestOAS_TykAuthentication_NoOASSecurity (0.00s)
=== RUN TestServer
=== PAUSE TestServer
=== RUN TestListenPath
=== PAUSE TestListenPath
=== RUN TestGatewayTags
=== PAUSE TestGatewayTags
=== RUN TestClientCertificates
=== PAUSE TestClientCertificates
=== RUN TestCustomDomain
=== RUN TestCustomDomain/extractTo_api_definition
=== RUN TestCustomDomain/extractTo_api_definition/enabled=false,_name=nil
=== RUN TestCustomDomain/extractTo_api_definition/enabled=false,_name=(valid-domain)
=== RUN TestCustomDomain/extractTo_api_definition/enabled=true,_name=nil
=== RUN TestCustomDomain/extractTo_api_definition/enabled=true,_name=(valid-domain)
=== RUN TestCustomDomain/fillFrom_api_definition
=== RUN TestCustomDomain/fillFrom_api_definition/disabled=false,_name=nil
=== RUN TestCustomDomain/fillFrom_api_definition/disabled=false,_name=(valid-domain)
=== RUN TestCustomDomain/fillFrom_api_definition/disabled=true,_name=nil
=== RUN TestCustomDomain/fillFrom_api_definition/disabled=true,_name=(valid-domain)
--- PASS: TestCustomDomain (0.00s)
--- PASS: TestCustomDomain/extractTo_api_definition (0.00s)
--- PASS: TestCustomDomain/extractTo_api_definition/enabled=false,_name=nil (0.00s)
--- PASS: TestCustomDomain/extractTo_api_definition/enabled=false,_name=(valid-domain) (0.00s)
--- PASS: TestCustomDomain/extractTo_api_definition/enabled=true,_name=nil (0.00s)
--- PASS: TestCustomDomain/extractTo_api_definition/enabled=true,_name=(valid-domain) (0.00s)
--- PASS: TestCustomDomain/fillFrom_api_definition (0.00s)
--- PASS: TestCustomDomain/fillFrom_api_definition/disabled=false,_name=nil (0.00s)
--- PASS: TestCustomDomain/fillFrom_api_definition/disabled=false,_name=(valid-domain) (0.00s)
--- PASS: TestCustomDomain/fillFrom_api_definition/disabled=true,_name=nil (0.00s)
--- PASS: TestCustomDomain/fillFrom_api_definition/disabled=true,_name=(valid-domain) (0.00s)
=== RUN TestTagsExportServer
=== PAUSE TestTagsExportServer
=== RUN TestUpstream
--- PASS: TestUpstream (0.00s)
=== RUN TestServiceDiscovery
--- PASS: TestServiceDiscovery (0.00s)
=== RUN TestTest
--- PASS: TestTest (0.00s)
=== RUN TestUpstreamMutualTLS
=== PAUSE TestUpstreamMutualTLS
=== RUN TestPinnedPublicKeys
=== PAUSE TestPinnedPublicKeys
=== RUN TestCertificatePinning
=== RUN TestCertificatePinning/extractTo_api_definition
=== RUN TestCertificatePinning/extractTo_api_definition/enabled=false,_domain_to_public_keys_nil
=== RUN TestCertificatePinning/extractTo_api_definition/enabled=false,_valid_domain_to_public_keys_mapping
=== RUN TestCertificatePinning/extractTo_api_definition/enabled=true,_valid_domain_to_public_keys_mapping
=== RUN TestCertificatePinning/extractTo_api_definition/enabled=true,_empty_domain_to_public_keys_mapping
=== RUN TestCertificatePinning/fillFrom_api_definition
=== RUN TestCertificatePinning/fillFrom_api_definition/disabled=false,_empty_domain_to_cert_mapping
=== RUN TestCertificatePinning/fillFrom_api_definition/disabled=true,_empty_domain_to_cert_mapping
=== RUN TestCertificatePinning/fillFrom_api_definition/disabled=false,_valid_domain_to_cert_mapping
=== RUN TestCertificatePinning/fillFrom_api_definition/disabled=true,_valid_domain_to_cert_mapping
=== RUN TestCertificatePinning/empty
=== PAUSE TestCertificatePinning/empty
=== CONT TestCertificatePinning/empty
--- PASS: TestCertificatePinning (0.00s)
--- PASS: TestCertificatePinning/extractTo_api_definition (0.00s)
--- PASS: TestCertificatePinning/extractTo_api_definition/enabled=false,_domain_to_public_keys_nil (0.00s)
--- PASS: TestCertificatePinning/extractTo_api_definition/enabled=false,_valid_domain_to_public_keys_mapping (0.00s)
--- PASS: TestCertificatePinning/extractTo_api_definition/enabled=true,_valid_domain_to_public_keys_mapping (0.00s)
--- PASS: TestCertificatePinning/extractTo_api_definition/enabled=true,_empty_domain_to_public_keys_mapping (0.00s)
--- PASS: TestCertificatePinning/fillFrom_api_definition (0.00s)
--- PASS: TestCertificatePinning/fillFrom_api_definition/disabled=false,_empty_domain_to_cert_mapping (0.00s)
--- PASS: TestCertificatePinning/fillFrom_api_definition/disabled=true,_empty_domain_to_cert_mapping (0.00s)
--- PASS: TestCertificatePinning/fillFrom_api_definition/disabled=false,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestCertificatePinning/fillFrom_api_definition/disabled=true,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestCertificatePinning/empty (0.00s)
=== RUN TestValidateOASObject
=== PAUSE TestValidateOASObject
=== RUN Test_loadOASSchema
=== PAUSE Test_loadOASSchema
=== RUN Test_findDefaultVersion
=== PAUSE Test_findDefaultVersion
=== RUN Test_setDefaultVersion
--- PASS: Test_setDefaultVersion (0.15s)
=== RUN TestGetOASSchema
=== RUN TestGetOASSchema/return_default_version_when_req_version_is_empty
=== RUN TestGetOASSchema/return_minor_version_schema_when_req_version_is_including_patch_version
=== RUN TestGetOASSchema/return_minor_version_0_when_only_major_version_is_requested
=== RUN TestGetOASSchema/return_error_when_non_existing_oas_schema_is_requested
=== RUN TestGetOASSchema/return_error_when_requested_version_is_not_of_semver
--- PASS: TestGetOASSchema (0.16s)
--- PASS: TestGetOASSchema/return_default_version_when_req_version_is_empty (0.00s)
--- PASS: TestGetOASSchema/return_minor_version_schema_when_req_version_is_including_patch_version (0.00s)
--- PASS: TestGetOASSchema/return_minor_version_0_when_only_major_version_is_requested (0.00s)
--- PASS: TestGetOASSchema/return_error_when_non_existing_oas_schema_is_requested (0.00s)
--- PASS: TestGetOASSchema/return_error_when_requested_version_is_not_of_semver (0.00s)
=== RUN TestExtractDocFromXTyk
xtyk_doc_test.go:28: field Info.Expiration is missing documentation
field Info.State is missing documentation
field Info.Versioning is missing documentation
field Versioning.Enabled is missing documentation
field Versioning.Name is missing documentation
field Versioning.Default is missing documentation
field Versioning.Location is missing documentation
field Versioning.Key is missing documentation
field Versioning.Versions is missing documentation
field VersionToID.Name is missing documentation
field VersionToID.ID is missing documentation
field Versioning.StripVersioningData is missing documentation
field DomainToCertificate.Domain is missing documentation
field DomainToCertificate.Certificate is missing documentation
field PinnedPublicKey.Domain is missing documentation
field PinnedPublicKey.PublicKeys is missing documentation
field OIDC.SegregateByClientId is missing documentation
field OIDC.Providers is missing documentation
field Provider.Issuer is missing documentation
field Provider.ClientToPolicyMapping is missing documentation
field ClientToPolicy.ClientID is missing documentation
field ClientToPolicy.PolicyID is missing documentation
field OIDC.Scopes is missing documentation
field Scopes.ClaimName is missing documentation
field Scopes.ScopeToPolicyMapping is missing documentation
field ScopeToPolicy.Scope is missing documentation
field ScopeToPolicy.PolicyID is missing documentation
field Authentication.SecuritySchemes is missing documentation
field Global.CORS is missing documentation
field CORS.Enabled is missing documentation
field CORS.MaxAge is missing documentation
field CORS.AllowCredentials is missing documentation
field CORS.ExposedHeaders is missing documentation
field CORS.AllowedHeaders is missing documentation
field CORS.OptionsPassthrough is missing documentation
field CORS.Debug is missing documentation
field CORS.AllowedOrigins is missing documentation
field CORS.AllowedMethods is missing documentation
field Middleware.Operations is missing documentation
field Operation.Allow is missing documentation
field Allowance.Enabled is missing documentation
field Allowance.IgnoreCase is missing documentation
field Operation.Block is missing documentation
field Operation.IgnoreAuthentication is missing documentation
field Operation.Cache is missing documentation
field CachePlugin.Enabled is missing documentation
field CachePlugin.CacheByRegex is missing documentation
field CachePlugin.CacheResponseCodes is missing documentation
field Operation.EnforceTimeout is missing documentation
field EnforceTimeout.Enabled is missing documentation
field EnforceTimeout.Value is missing documentation
field Operation.ValidateRequest is missing documentation
field ValidateRequest.Enabled is missing documentation
field ValidateRequest.ErrorResponseCode is missing documentation
--- PASS: TestExtractDocFromXTyk (0.04s)
=== RUN TestExtractDocUtils
=== RUN TestExtractDocUtils/objParser
=== RUN TestExtractDocUtils/objParser/empty_scope
=== RUN TestExtractDocUtils/objParser/field_for_internal_use
=== RUN TestExtractDocUtils/objParser/ignored_field
=== RUN TestExtractDocUtils/objParser/parse_inline_field_with_name
=== RUN TestExtractDocUtils/objParser/field_not_known
=== RUN TestExtractDocUtils/jsonTagFromBasicLit
=== RUN TestExtractDocUtils/fieldTypeToMarkdown
=== RUN TestExtractDocUtils/fieldInfoToMarkdown
=== RUN TestExtractDocUtils/xTykDocToMarkdown
--- PASS: TestExtractDocUtils (0.00s)
--- PASS: TestExtractDocUtils/objParser (0.00s)
--- PASS: TestExtractDocUtils/objParser/empty_scope (0.00s)
--- PASS: TestExtractDocUtils/objParser/field_for_internal_use (0.00s)
--- PASS: TestExtractDocUtils/objParser/ignored_field (0.00s)
--- PASS: TestExtractDocUtils/objParser/parse_inline_field_with_name (0.00s)
--- PASS: TestExtractDocUtils/objParser/field_not_known (0.00s)
--- PASS: TestExtractDocUtils/jsonTagFromBasicLit (0.00s)
--- PASS: TestExtractDocUtils/fieldTypeToMarkdown (0.00s)
--- PASS: TestExtractDocUtils/fieldInfoToMarkdown (0.00s)
--- PASS: TestExtractDocUtils/xTykDocToMarkdown (0.00s)
=== CONT TestOAS_BuildDefaultTykExtension
=== CONT TestListenPath
=== RUN TestOAS_BuildDefaultTykExtension/build_tyk_extension_with_no_supplied_params
=== CONT TestOAS_RegexPaths
--- PASS: TestListenPath (0.00s)
=== RUN TestOAS_BuildDefaultTykExtension/build_tyk_extension_with_supplied_params
=== RUN TestOAS_BuildDefaultTykExtension/do_not_override_existing_tyk_extension_by_default
--- PASS: TestOAS_RegexPaths (0.00s)
=== CONT TestOAS_RegexOperationIDs
=== RUN TestOAS_BuildDefaultTykExtension/override_existing_tyk_extension_with_supplied_params
--- PASS: TestOAS_RegexOperationIDs (0.00s)
=== CONT TestServer
--- PASS: TestServer (0.00s)
=== RUN TestOAS_BuildDefaultTykExtension/error_when_supplied_invalid_upstreamURL_param
=== CONT TestOAS_PathsAndOperations
--- PASS: TestOAS_PathsAndOperations (0.00s)
=== CONT TestOAS_PathsAndOperationsRegex
=== RUN TestOAS_BuildDefaultTykExtension/error_when_no_supplied_params_and_invalid_URL_in_servers
--- PASS: TestOAS_PathsAndOperationsRegex (0.00s)
=== CONT TestOAS_UpdateServers
=== RUN TestOAS_UpdateServers/empty_servers
=== RUN TestOAS_UpdateServers/non-empty_servers_replace_with_new
=== RUN TestOAS_BuildDefaultTykExtension/error_when_no_supplied_params_and_no_servers
=== RUN TestOAS_UpdateServers/non-empty_servers_not_replace
=== RUN TestOAS_BuildDefaultTykExtension/middlewares
--- PASS: TestOAS_UpdateServers (0.00s)
--- PASS: TestOAS_UpdateServers/empty_servers (0.00s)
--- PASS: TestOAS_UpdateServers/non-empty_servers_replace_with_new (0.00s)
--- PASS: TestOAS_UpdateServers/non-empty_servers_not_replace (0.00s)
=== CONT TestOAS_AddServers
=== RUN TestOAS_AddServers/empty_servers
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList
=== RUN TestOAS_AddServers/non-empty_servers
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/enable_allowList_for_all_paths_when_no_configured_operationID_in_OAS
=== RUN TestOAS_AddServers/non-empty_servers_having_same_URL_that_of_apiURL
=== RUN TestOAS_AddServers/non-empty_servers_having_same_URL_that_of_apiURL#01
--- PASS: TestOAS_AddServers (0.00s)
--- PASS: TestOAS_AddServers/empty_servers (0.00s)
--- PASS: TestOAS_AddServers/non-empty_servers (0.00s)
--- PASS: TestOAS_AddServers/non-empty_servers_having_same_URL_that_of_apiURL (0.00s)
--- PASS: TestOAS_AddServers/non-empty_servers_having_same_URL_that_of_apiURL#01 (0.00s)
=== CONT TestOAS
=== RUN TestOAS/empty_paths
=== PAUSE TestOAS/empty_paths
=== RUN TestOAS/nil_paths
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/enable_allowList_for_all_paths_when_operationID_is_configured_in_OAS
=== PAUSE TestOAS/nil_paths
=== RUN TestOAS/extract_paths
=== PAUSE TestOAS/extract_paths
=== RUN TestOAS/auth_configs
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/disable_allowList_for_all_paths_when_no_configured_operationID_in_OAS
=== PAUSE TestOAS/auth_configs
=== CONT TestPinnedPublicKeys
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/disable_allowList_for_all_paths_when_operationID_is_configured_in_OAS
--- PASS: TestPinnedPublicKeys (0.00s)
=== CONT Test_loadOASSchema
=== RUN Test_loadOASSchema/load_OAS
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/override_allowList_(disable)_configured_in_tyk_extension_-_do_not_toggle_block_list_if_any
=== PAUSE Test_loadOASSchema/load_OAS
=== CONT TestValidateOASObject
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/override_allowList_(enable)_configured_in_tyk_extension_-_toggle_enabled_block_list_if_any
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/allowList/do_not_configure_allowList_when_parameter_is_not_provided_(nil)
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_for_paths_where_request_body_is_not_specified_for_application/json
=== RUN TestValidateOASObject/valid_OAS_object
=== PAUSE TestValidateOASObject/valid_OAS_object
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/enable_validateRequest_for_all_paths_with_application/json_req_body_when_no_configured_operationID_in_OAS
=== RUN TestValidateOASObject/invalid_OAS_object
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/enable_validateRequest_for_all_paths_with_application/json_req_body_when_operationID_is_configured_in_OAS
=== PAUSE TestValidateOASObject/invalid_OAS_object
=== RUN TestValidateOASObject/wrong_typed_OAS_object
=== PAUSE TestValidateOASObject/wrong_typed_OAS_object
=== RUN TestValidateOASObject/should_error_when_requested_oas_schema_not_found
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/disable_validateRequest_for_all_paths_with_application/json_req_body_when_no_configured_operationID_in_OAS
=== PAUSE TestValidateOASObject/should_error_when_requested_oas_schema_not_found
=== CONT Test_findDefaultVersion
=== RUN Test_findDefaultVersion/single_version
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/disable_validateRequest_for_all_paths_with_application/json_req_body_when_operationID_is_configured_in_OAS
=== RUN Test_findDefaultVersion/multiple_versions
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/override_validateRequest_configured_in_tyk_extension
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_when_parameter_is_not_provided_(nil)
--- PASS: Test_findDefaultVersion (0.00s)
--- PASS: Test_findDefaultVersion/single_version (0.00s)
--- PASS: Test_findDefaultVersion/multiple_versions (0.00s)
=== CONT TestUpstreamMutualTLS
=== RUN TestUpstreamMutualTLS/extractTo_api_definition
=== RUN TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_when_no_paths_have_application/json_req_body
=== PAUSE TestUpstreamMutualTLS/extractTo_api_definition
=== RUN TestUpstreamMutualTLS/fillFrom_api_definition
=== PAUSE TestUpstreamMutualTLS/fillFrom_api_definition
=== CONT TestClientCertificates
--- PASS: TestClientCertificates (0.00s)
=== CONT TestTagsExportServer
=== RUN TestTagsExportServer/export_segment_tags_if_enabled
=== PAUSE TestTagsExportServer/export_segment_tags_if_enabled
=== RUN TestTagsExportServer/export_segment_tags_if_disabled
=== PAUSE TestTagsExportServer/export_segment_tags_if_disabled
=== RUN TestTagsExportServer/empty_segment_tags
=== PAUSE TestTagsExportServer/empty_segment_tags
=== CONT TestGatewayTags
=== RUN TestGatewayTags/Fill_GatewayTags_from_APIDef
=== RUN TestOAS_BuildDefaultTykExtension/do_not_configure_upstream_URL_with_servers_when_upstream_URL_params_is_not_provided_and_upstream_URL_in_x-tyk_in_not_empty
=== CONT TestGatewayTags/Fill_GatewayTags_from_APIDef
server_test.go:76:
=== RUN TestGatewayTags/Fill_OAS_GatewayTags_from_APIDef
=== RUN TestOAS_BuildDefaultTykExtension/do_not_configure_state_active,_internal_or_strip_listen_path_when_not_importing
=== PAUSE TestGatewayTags/Fill_OAS_GatewayTags_from_APIDef
=== CONT TestOAS/extract_paths
--- PASS: TestOAS_BuildDefaultTykExtension (0.02s)
--- PASS: TestOAS_BuildDefaultTykExtension/build_tyk_extension_with_no_supplied_params (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/build_tyk_extension_with_supplied_params (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/do_not_override_existing_tyk_extension_by_default (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/override_existing_tyk_extension_with_supplied_params (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/error_when_supplied_invalid_upstreamURL_param (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/error_when_no_supplied_params_and_invalid_URL_in_servers (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/error_when_no_supplied_params_and_no_servers (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares (0.01s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList (0.01s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/enable_allowList_for_all_paths_when_no_configured_operationID_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/enable_allowList_for_all_paths_when_operationID_is_configured_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/disable_allowList_for_all_paths_when_no_configured_operationID_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/disable_allowList_for_all_paths_when_operationID_is_configured_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/override_allowList_(disable)_configured_in_tyk_extension_-_do_not_toggle_block_list_if_any (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/override_allowList_(enable)_configured_in_tyk_extension_-_toggle_enabled_block_list_if_any (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/allowList/do_not_configure_allowList_when_parameter_is_not_provided_(nil) (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest (0.01s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_for_paths_where_request_body_is_not_specified_for_application/json (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/enable_validateRequest_for_all_paths_with_application/json_req_body_when_no_configured_operationID_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/enable_validateRequest_for_all_paths_with_application/json_req_body_when_operationID_is_configured_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/disable_validateRequest_for_all_paths_with_application/json_req_body_when_no_configured_operationID_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/disable_validateRequest_for_all_paths_with_application/json_req_body_when_operationID_is_configured_in_OAS (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/override_validateRequest_configured_in_tyk_extension (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_when_parameter_is_not_provided_(nil) (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/middlewares/validateRequest/do_not_configure_validateRequest_when_no_paths_have_application/json_req_body (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/do_not_configure_upstream_URL_with_servers_when_upstream_URL_params_is_not_provided_and_upstream_URL_in_x-tyk_in_not_empty (0.00s)
--- PASS: TestOAS_BuildDefaultTykExtension/do_not_configure_state_active,_internal_or_strip_listen_path_when_not_importing (0.00s)
=== CONT TestOAS/auth_configs
=== CONT TestOAS/nil_paths
=== CONT TestOAS/empty_paths
=== CONT Test_loadOASSchema/load_OAS
--- PASS: TestOAS (0.00s)
--- PASS: TestOAS/extract_paths (0.00s)
--- PASS: TestOAS/nil_paths (0.00s)
--- PASS: TestOAS/auth_configs (0.00s)
--- PASS: TestOAS/empty_paths (0.00s)
=== CONT TestValidateOASObject/valid_OAS_object
--- PASS: Test_loadOASSchema (0.00s)
--- PASS: Test_loadOASSchema/load_OAS (0.15s)
=== CONT TestValidateOASObject/should_error_when_requested_oas_schema_not_found
=== CONT TestValidateOASObject/invalid_OAS_object
=== CONT TestValidateOASObject/wrong_typed_OAS_object
=== CONT TestUpstreamMutualTLS/fillFrom_api_definition
=== RUN TestUpstreamMutualTLS/fillFrom_api_definition/disabled=false,_empty_domain_to_cert_mapping
=== RUN TestUpstreamMutualTLS/fillFrom_api_definition/disabled=true,_empty_domain_to_cert_mapping
=== RUN TestUpstreamMutualTLS/fillFrom_api_definition/disabled=false,_valid_domain_to_cert_mapping
=== RUN TestUpstreamMutualTLS/fillFrom_api_definition/disabled=true,_valid_domain_to_cert_mapping
=== CONT TestUpstreamMutualTLS/extractTo_api_definition
=== RUN TestUpstreamMutualTLS/extractTo_api_definition/enabled=false,_domain_to_certs_nil
=== RUN TestUpstreamMutualTLS/extractTo_api_definition/enabled=false,_valid_domain_to_cert_mapping
=== RUN TestUpstreamMutualTLS/extractTo_api_definition/enabled=true,_valid_domain_to_cert_mapping
=== RUN TestUpstreamMutualTLS/extractTo_api_definition/enabled=true,_empty_domain_to_cert_mapping
--- PASS: TestUpstreamMutualTLS (0.00s)
--- PASS: TestUpstreamMutualTLS/fillFrom_api_definition (0.00s)
--- PASS: TestUpstreamMutualTLS/fillFrom_api_definition/disabled=false,_empty_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/fillFrom_api_definition/disabled=true,_empty_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/fillFrom_api_definition/disabled=false,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/fillFrom_api_definition/disabled=true,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/extractTo_api_definition (0.00s)
--- PASS: TestUpstreamMutualTLS/extractTo_api_definition/enabled=false,_domain_to_certs_nil (0.00s)
--- PASS: TestUpstreamMutualTLS/extractTo_api_definition/enabled=false,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/extractTo_api_definition/enabled=true,_valid_domain_to_cert_mapping (0.00s)
--- PASS: TestUpstreamMutualTLS/extractTo_api_definition/enabled=true,_empty_domain_to_cert_mapping (0.00s)
=== CONT TestTagsExportServer/export_segment_tags_if_disabled
=== CONT TestTagsExportServer/empty_segment_tags
=== CONT TestTagsExportServer/export_segment_tags_if_enabled
--- PASS: TestTagsExportServer (0.00s)
--- PASS: TestTagsExportServer/export_segment_tags_if_disabled (0.00s)
--- PASS: TestTagsExportServer/empty_segment_tags (0.00s)
--- PASS: TestTagsExportServer/export_segment_tags_if_enabled (0.00s)
=== CONT TestGatewayTags/Fill_OAS_GatewayTags_from_APIDef
--- PASS: TestGatewayTags (0.00s)
--- SKIP: TestGatewayTags/Fill_GatewayTags_from_APIDef (0.00s)
--- PASS: TestGatewayTags/Fill_OAS_GatewayTags_from_APIDef (0.00s)
--- PASS: TestValidateOASObject (0.00s)
--- PASS: TestValidateOASObject/should_error_when_requested_oas_schema_not_found (0.00s)
--- PASS: TestValidateOASObject/valid_OAS_object (0.19s)
--- PASS: TestValidateOASObject/invalid_OAS_object (0.04s)
--- PASS: TestValidateOASObject/wrong_typed_OAS_object (0.04s)
PASS
coverage: 91.0% of statements
ok github.com/TykTechnologies/tyk/apidef/oas 0.839s coverage: 91.0% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=schema.cov github.com/TykTechnologies/tyk/apidef/oas/schema
? github.com/TykTechnologies/tyk/apidef/oas/schema [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=certs.cov github.com/TykTechnologies/tyk/certs
=== RUN TestAddCertificate
util.go:32: Skipping flaky test
--- SKIP: TestAddCertificate (0.00s)
=== RUN TestCertificateStorage
=== RUN TestCertificateStorage/File_certificates
time="2022-07-13T19:43:00Z" level=warning msg="Can't retrieve certificate:wrongopen wrong: no such file or directory" prefix=cert_storage
=== RUN TestCertificateStorage/Remote_storage_certificates
=== RUN TestCertificateStorage/Private_certificates
=== RUN TestCertificateStorage/Public_keys
--- PASS: TestCertificateStorage (1.66s)
--- PASS: TestCertificateStorage/File_certificates (0.00s)
--- PASS: TestCertificateStorage/Remote_storage_certificates (0.00s)
--- PASS: TestCertificateStorage/Private_certificates (0.00s)
--- PASS: TestCertificateStorage/Public_keys (0.00s)
=== RUN TestStorageIndex
--- PASS: TestStorageIndex (0.43s)
PASS
coverage: 46.5% of statements
ok github.com/TykTechnologies/tyk/certs 2.129s coverage: 46.5% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=checkup.cov github.com/TykTechnologies/tyk/checkup
? github.com/TykTechnologies/tyk/checkup [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=cli.cov github.com/TykTechnologies/tyk/cli
? github.com/TykTechnologies/tyk/cli [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=bundler.cov github.com/TykTechnologies/tyk/cli/bundler
=== RUN TestCommands
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=warning msg="Using default bundle path 'bundle.zip'" prefix=tyk
time="Jul 13 19:43:02" level=warning msg="The bundle will be unsigned" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Wrote 'bundle.zip' (377 bytes)" prefix=tyk
--- PASS: TestCommands (0.01s)
=== RUN TestBuild
=== RUN TestBuild/Bundle_errors
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
=== RUN TestBuild/Simple_bundle_build
time="Jul 13 19:43:02" level=info msg="Building bundle using 'manifest.json'" prefix=tyk
time="Jul 13 19:43:02" level=warning msg="Using default bundle path 'bundle.zip'" prefix=tyk
time="Jul 13 19:43:02" level=warning msg="The bundle will be unsigned" prefix=tyk
time="Jul 13 19:43:02" level=info msg="Wrote 'bundle.zip' (506 bytes)" prefix=tyk
--- PASS: TestBuild (0.01s)
--- PASS: TestBuild/Bundle_errors (0.00s)
--- PASS: TestBuild/Simple_bundle_build (0.01s)
PASS
coverage: 70.7% of statements
ok github.com/TykTechnologies/tyk/cli/bundler 0.062s coverage: 70.7% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=importer.cov github.com/TykTechnologies/tyk/cli/importer
? github.com/TykTechnologies/tyk/cli/importer [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=linter.cov github.com/TykTechnologies/tyk/cli/linter
=== RUN TestLint
=== RUN TestLint/InvalidJSON
=== RUN TestLint/WrongType
=== RUN TestLint/FieldTypo
=== RUN TestLint/Empty
=== RUN TestLint/Default
=== RUN TestLint/OldMonitor
=== RUN TestLint/NullObject
=== RUN TestLint/MissingPath
=== RUN TestLint/ExtraPort
=== RUN TestLint/BadHost
=== RUN TestLint/BadLogLevel
=== RUN TestLint/BadStorageType
=== RUN TestLint/BadPolicySource
=== RUN TestLint/MalformedDnsCacheEntry
=== RUN TestLint/BadDnsCacheTTL
=== RUN TestLint/ExtraDnsCacheCheckInterval
=== RUN TestLint/InvalidDnsCacheMultipleIPsHandleStrategy
--- PASS: TestLint (0.22s)
--- PASS: TestLint/InvalidJSON (0.00s)
--- PASS: TestLint/WrongType (0.00s)
--- PASS: TestLint/FieldTypo (0.01s)
--- PASS: TestLint/Empty (0.01s)
--- PASS: TestLint/Default (0.02s)
--- PASS: TestLint/OldMonitor (0.01s)
--- PASS: TestLint/NullObject (0.01s)
--- PASS: TestLint/MissingPath (0.02s)
--- PASS: TestLint/ExtraPort (0.01s)
--- PASS: TestLint/BadHost (0.01s)
--- PASS: TestLint/BadLogLevel (0.01s)
--- PASS: TestLint/BadStorageType (0.01s)
--- PASS: TestLint/BadPolicySource (0.01s)
--- PASS: TestLint/MalformedDnsCacheEntry (0.01s)
--- PASS: TestLint/BadDnsCacheTTL (0.01s)
--- PASS: TestLint/ExtraDnsCacheCheckInterval (0.01s)
--- PASS: TestLint/InvalidDnsCacheMultipleIPsHandleStrategy (0.01s)
PASS
coverage: 89.8% of statements
ok github.com/TykTechnologies/tyk/cli/linter 0.267s coverage: 89.8% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=config.cov github.com/TykTechnologies/tyk/config
=== RUN TestDefaultValueAndWriteDefaultConf
=== RUN TestDefaultValueAndWriteDefaultConf/ListenPort
=== RUN TestDefaultValueAndWriteDefaultConf/DnsCacheEnabled
=== RUN TestDefaultValueAndWriteDefaultConf/DnsCacheTTL
=== RUN TestDefaultValueAndWriteDefaultConf/CheckInterval
=== RUN TestDefaultValueAndWriteDefaultConf/CheckMultipleIPsHandleStrategy
--- PASS: TestDefaultValueAndWriteDefaultConf (0.03s)
--- PASS: TestDefaultValueAndWriteDefaultConf/ListenPort (0.01s)
--- PASS: TestDefaultValueAndWriteDefaultConf/DnsCacheEnabled (0.01s)
--- PASS: TestDefaultValueAndWriteDefaultConf/DnsCacheTTL (0.01s)
--- PASS: TestDefaultValueAndWriteDefaultConf/CheckInterval (0.01s)
--- PASS: TestDefaultValueAndWriteDefaultConf/CheckMultipleIPsHandleStrategy (0.01s)
=== RUN TestConfigFiles
time="Jul 13 19:43:05" level=warning msg="No config file found, writing default to /tmp/tyk323441396/tyk1.conf"
time="Jul 13 19:43:05" level=info msg="Loading default configuration..."
--- PASS: TestConfigFiles (0.03s)
=== RUN TestConfig_GetEventTriggers
=== RUN TestConfig_GetEventTriggers/Deprecated_configuration
=== RUN TestConfig_GetEventTriggers/Current_configuration
=== RUN TestConfig_GetEventTriggers/Both_configured
time="Jul 13 19:43:05" level=info msg="Both event_trigers_defunct and event_triggers_defunct are configured in the config, event_triggers_defunct will be used."
--- PASS: TestConfig_GetEventTriggers (0.01s)
--- PASS: TestConfig_GetEventTriggers/Deprecated_configuration (0.00s)
--- PASS: TestConfig_GetEventTriggers/Current_configuration (0.00s)
--- PASS: TestConfig_GetEventTriggers/Both_configured (0.00s)
=== RUN TestLoad_tracing
=== RUN TestLoad_tracing/Read_and_write_config_with_tracing
=== RUN TestLoad_tracing/Read_and_write_config_with_tracing/testdata/jaeger.json
=== RUN TestLoad_tracing/Read_and_write_config_with_tracing/testdata/zipkin.json
=== RUN TestLoad_tracing/Env_only
=== RUN TestLoad_tracing/Env_only/testdata/env.jaeger.json
=== RUN TestLoad_tracing/Env_only/testdata/env.zipkin.json
--- PASS: TestLoad_tracing (0.02s)
--- PASS: TestLoad_tracing/Read_and_write_config_with_tracing (0.01s)
--- PASS: TestLoad_tracing/Read_and_write_config_with_tracing/testdata/jaeger.json (0.01s)
--- PASS: TestLoad_tracing/Read_and_write_config_with_tracing/testdata/zipkin.json (0.00s)
--- PASS: TestLoad_tracing/Env_only (0.01s)
--- PASS: TestLoad_tracing/Env_only/testdata/env.jaeger.json (0.01s)
--- PASS: TestLoad_tracing/Env_only/testdata/env.zipkin.json (0.00s)
=== RUN TestCustomEnvDecoders
--- PASS: TestCustomEnvDecoders (0.00s)
=== RUN TestLoadZipkin
=== RUN TestLoadZipkin/loads_env_vars
--- PASS: TestLoadZipkin (0.00s)
--- PASS: TestLoadZipkin/loads_env_vars (0.00s)
=== RUN TestLoadJaeger
=== RUN TestLoadJaeger/Loads_env_vars
--- PASS: TestLoadJaeger (0.01s)
--- PASS: TestLoadJaeger/Loads_env_vars (0.01s)
PASS
coverage: 69.8% of statements
ok github.com/TykTechnologies/tyk/config 0.153s coverage: 69.8% of statements
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=coprocess.cov github.com/TykTechnologies/tyk/coprocess
? github.com/TykTechnologies/tyk/coprocess [no test files]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=grpc.cov github.com/TykTechnologies/tyk/coprocess/grpc
=== RUN TestGRPCDispatch
time="Jul 13 19:43:09" level=info msg="starting test"
time="Jul 13 19:43:09" level=info msg="gRPC dispatcher was initialized" prefix=coprocess
=== RUN TestGRPCDispatch/Pre_Hook_with_SetHeaders
=== RUN TestGRPCDispatch/Pre_Hook_with_UTF-8/non-UTF-8_request_data
=== RUN TestGRPCDispatch/Post_Hook_with_metadata
=== RUN TestGRPCDispatch/Response_hook
=== RUN TestGRPCDispatch/Post_Hook_with_allowed_message_length
util.go:32: Skipping flaky test
=== RUN TestGRPCDispatch/Post_Hook_with_with_unallowed_message_length
util.go:32: Skipping flaky test
redis: 2022/07/13 19:43:10 pubsub.go:159: redis: discarding bad PubSub connection: read tcp [::1]:43196->[::1]:6379: use of closed network connection
--- PASS: TestGRPCDispatch (0.32s)
--- PASS: TestGRPCDispatch/Pre_Hook_with_SetHeaders (0.01s)
--- PASS: TestGRPCDispatch/Pre_Hook_with_UTF-8/non-UTF-8_request_data (0.01s)
--- PASS: TestGRPCDispatch/Post_Hook_with_metadata (0.01s)
--- PASS: TestGRPCDispatch/Response_hook (0.01s)
--- SKIP: TestGRPCDispatch/Post_Hook_with_allowed_message_length (0.00s)
--- SKIP: TestGRPCDispatch/Post_Hook_with_with_unallowed_message_length (0.00s)
=== RUN TestGRPCIgnore
redis: 2022/07/13 19:43:10 pubsub.go:159: redis: discarding bad PubSub connection: read tcp [::1]:43204->[::1]:6379: use of closed network connection
--- PASS: TestGRPCIgnore (0.28s)
PASS
coverage: [no statements]
ok github.com/TykTechnologies/tyk/coprocess/grpc 0.888s coverage: [no statements]
go test -race -count=1 -failfast -v -timeout 15m -coverprofile=python.cov github.com/TykTechnologies/tyk/coprocess/python
=== RUN TestValueExtractorHeaderSource
util.go:32: Skipping flaky test
--- SKIP: TestValueExtractorHeaderSource (0.00s)
=== RUN TestPythonBundles
time="Jul 13 19:43:13" level=info msg="starting test"
=== RUN TestPythonBundles/Single-file_bundle_with_authentication_hook
FAIL github.com/TykTechnologies/tyk/coprocess/python 1.046s
FAIL
gofmt
all ok
goimports
all ok
gogenerate
all ok
If the above are ok, please look at the run or in the Checks tab.
I think just waiting for 1.24 to be default on GKE's STABLE channel should suffice. Like you hinted at, the 5-month footprint might be minor.
Also, thank you for listing out the value of this change. That helps!
We shall keep this PR open for now.
Note for myself for next rotation, let's update this PR with:
- Merge from
mainand resolve conflicts - Update next steps based on the fact that GKE 1.25 is now in
Rapidchannel: https://cloud.google.com/kubernetes-engine/docs/release-notes#September_14_2022
Closing this experimental research and tests, first concrete implementation of this there now: https://github.com/GoogleCloudPlatform/microservices-demo/pull/1102