├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── dco.yml ├── dependabot.yml └── workflows │ ├── composites │ ├── build-controllers-project │ │ └── action.yaml │ ├── build-integration-tests-project │ │ └── action.yaml │ ├── cache │ │ └── action.yaml │ ├── clean-space │ │ └── action.yaml │ ├── env-variables │ │ └── action.yaml │ ├── matrix-bounds-on-test-times-cache-hit │ │ └── action.yaml │ ├── maven-build-with-dry-run-for-tests │ │ └── action.yaml │ ├── pre-test-actions │ │ └── action.yaml │ ├── restore-docker-images │ │ └── action.yaml │ ├── run-and-save-test-times-when-cache-missing │ │ └── action.yaml │ ├── run-and-save-test-times-when-cache-present │ │ └── action.yaml │ ├── setup-jdk17 │ │ └── action.yaml │ ├── test-bounds │ │ └── action.yaml │ └── test-times │ │ └── action.yaml │ ├── deploy-docs.yml │ └── maven.yaml ├── .gitignore ├── .mvn ├── jvm.config ├── maven.config └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .sdkmanrc ├── .settings.xml ├── .springformat ├── LICENSE ├── NOTICE ├── README.adoc ├── config └── releaser.yml ├── docs ├── antora-playbook.yml ├── antora.yml ├── modules │ └── ROOT │ │ ├── nav.adoc │ │ ├── pages │ │ ├── _attributes.adoc │ │ ├── appendix.adoc │ │ ├── configprops.adoc │ │ ├── discovery-client.adoc │ │ ├── discovery-kubernetes-native.adoc │ │ ├── examples.adoc │ │ ├── getting-started.adoc │ │ ├── index.adoc │ │ ├── info-contributor.adoc │ │ ├── kubernetes-awareness.adoc │ │ ├── leader-election.adoc │ │ ├── load-balancer.adoc │ │ ├── other-resources.adoc │ │ ├── pod-health-indicator.adoc │ │ ├── property-source-config.adoc │ │ ├── property-source-config │ │ │ ├── configmap-propertysource.adoc │ │ │ ├── namespace-label-filtering.adoc │ │ │ ├── namespace-resolution.adoc │ │ │ ├── order_of_configMaps_and_secrets.adoc │ │ │ ├── propertysource-reload.adoc │ │ │ └── secrets-propertysource.adoc │ │ ├── security-service-accounts.adoc │ │ ├── service-registry.adoc │ │ ├── spring-cloud-kubernetes-configserver.adoc │ │ ├── spring-cloud-kubernetes-configuration-watcher.adoc │ │ ├── spring-cloud-kubernetes-discoveryserver.adoc │ │ └── spring-cloud-kubernetes.adoc │ │ └── partials │ │ └── _configprops.adoc ├── package.json ├── pom.xml └── src │ └── main │ ├── antora │ └── resources │ │ └── antora-resources │ │ └── antora.yml │ └── asciidoc │ └── README.adoc ├── header.txt ├── mvnw ├── mvnw.cmd ├── pom.xml ├── runSonar.sh ├── scripts ├── deploy.sh └── integration-tests.sh ├── spring-cloud-kubernetes-client-autoconfig ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── client │ │ │ ├── KubernetesClientActuatorConfiguration.java │ │ │ ├── KubernetesClientAutoConfiguration.java │ │ │ ├── KubernetesClientHealthIndicator.java │ │ │ ├── KubernetesClientInfoContributor.java │ │ │ ├── KubernetesClientPodUtils.java │ │ │ ├── KubernetesClientUtils.java │ │ │ └── profile │ │ │ └── KubernetesClientProfileEnvironmentPostProcessor.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── kubernetes │ └── client │ ├── ActuatorDisabledHealthTest.java │ ├── ActuatorEnabledFailFastExceptionTest.java │ ├── ActuatorEnabledHealthTest.java │ ├── ActuatorEnabledNoFailFastExceptionTest.java │ ├── KubernetesClientHealthIndicatorInsideTests.java │ ├── KubernetesClientHealthIndicatorNotInsideTests.java │ ├── KubernetesClientHealthIndicatorTests.java │ ├── KubernetesClientInfoContributorInsideTests.java │ ├── KubernetesClientInfoContributorNotInsideTests.java │ ├── KubernetesClientInfoContributorTests.java │ ├── KubernetesClientPodUtilsTests.java │ ├── KubernetesClientUtilsTests.java │ ├── StubProvider.java │ ├── default_api │ ├── ApiClientUserAgentDefaultHeader.java │ ├── ApiClientUserAgentNonDefaultHeader.java │ ├── App.java │ └── DefaultApiClientNotSameAsApiClient.java │ ├── example │ └── App.java │ └── profile │ ├── KubernetesClientProfileEnvironmentPostProcessorNoProfileTests.java │ └── KubernetesClientProfileEnvironmentPostProcessorTests.java ├── spring-cloud-kubernetes-client-config ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── client │ │ │ └── config │ │ │ ├── KubernetesClientBootstrapConfiguration.java │ │ │ ├── KubernetesClientConfigContext.java │ │ │ ├── KubernetesClientConfigDataLocationResolver.java │ │ │ ├── KubernetesClientConfigMapPropertySource.java │ │ │ ├── KubernetesClientConfigMapPropertySourceLocator.java │ │ │ ├── KubernetesClientConfigMapsCache.java │ │ │ ├── KubernetesClientConfigUtils.java │ │ │ ├── KubernetesClientContextToSourceData.java │ │ │ ├── KubernetesClientRetryBootstrapConfiguration.java │ │ │ ├── KubernetesClientSecretsCache.java │ │ │ ├── KubernetesClientSecretsPropertySource.java │ │ │ ├── KubernetesClientSecretsPropertySourceLocator.java │ │ │ ├── LabeledConfigMapContextToSourceDataProvider.java │ │ │ ├── LabeledSecretContextToSourceDataProvider.java │ │ │ ├── NamedConfigMapContextToSourceDataProvider.java │ │ │ ├── NamedSecretContextToSourceDataProvider.java │ │ │ ├── RetryableKubernetesClientConfigMapPropertySourceLocator.java │ │ │ ├── RetryableKubernetesClientSecretsPropertySourceLocator.java │ │ │ └── reload │ │ │ ├── KubernetesClientConfigReloadAutoConfiguration.java │ │ │ ├── KubernetesClientEventBasedConfigMapChangeDetector.java │ │ │ └── KubernetesClientEventBasedSecretsChangeDetector.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── client │ │ └── config │ │ ├── Application.java │ │ ├── EnableRetryBootstrapConfiguration.java │ │ ├── KubernetesClientConfigDataLocationResolverTests.java │ │ ├── KubernetesClientConfigMapErrorOnReadingSourceTests.java │ │ ├── KubernetesClientConfigMapPropertySourceLocatorTests.java │ │ ├── KubernetesClientConfigMapPropertySourceTests.java │ │ ├── KubernetesClientConfigReloadAutoConfigurationTest.java │ │ ├── KubernetesClientConfigUtilsTests.java │ │ ├── KubernetesClientSecretsPropertySourceLocatorTests.java │ │ ├── KubernetesClientSecretsPropertySourceTests.java │ │ ├── LabeledConfigMapContextToSourceDataProviderTests.java │ │ ├── LabeledSecretContextToSourceDataProviderTests.java │ │ ├── NamedConfigMapContextToSourceDataProviderTests.java │ │ ├── NamedSecretContextToSourceDataProviderTests.java │ │ ├── VisibleKubernetesClientEventBasedConfigMapChangeDetector.java │ │ ├── VisibleKubernetesClientEventBasedSecretsChangeDetector.java │ │ ├── applications │ │ ├── labeled_config_map_with_prefix │ │ │ ├── LabeledConfigMapWithPrefixApp.java │ │ │ ├── LabeledConfigMapWithPrefixBootstrapTests.java │ │ │ ├── LabeledConfigMapWithPrefixConfigDataTests.java │ │ │ ├── LabeledConfigMapWithPrefixTests.java │ │ │ ├── controller │ │ │ │ └── LabeledConfigMapWithPrefixController.java │ │ │ └── properties │ │ │ │ ├── Four.java │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── labeled_config_map_with_profile │ │ │ ├── LabeledConfigMapWithProfileApp.java │ │ │ ├── LabeledConfigMapWithProfileBootstrapTests.java │ │ │ ├── LabeledConfigMapWithProfileConfigDataTests.java │ │ │ ├── LabeledConfigMapWithProfileTests.java │ │ │ └── properties │ │ │ │ ├── Blue.java │ │ │ │ ├── Green.java │ │ │ │ ├── GreenK8s.java │ │ │ │ ├── GreenProd.java │ │ │ │ ├── GreenPurple.java │ │ │ │ └── GreenPurpleK8s.java │ │ ├── labeled_secret_with_prefix │ │ │ ├── LabeledSecretWithPrefixApp.java │ │ │ ├── LabeledSecretWithPrefixBootstrapTests.java │ │ │ ├── LabeledSecretWithPrefixConfigDataTests.java │ │ │ ├── LabeledSecretWithPrefixTests.java │ │ │ ├── controller │ │ │ │ └── LabeledSecretWithPrefixController.java │ │ │ └── properties │ │ │ │ ├── Four.java │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── labeled_secret_with_profile │ │ │ ├── LabeledSecretWithProfileApp.java │ │ │ ├── LabeledSecretWithProfileBootstrapTests.java │ │ │ ├── LabeledSecretWithProfileConfigDataTests.java │ │ │ ├── LabeledSecretWithProfileTests.java │ │ │ └── properties │ │ │ │ ├── Blue.java │ │ │ │ ├── Green.java │ │ │ │ ├── GreenK8s.java │ │ │ │ ├── GreenProd.java │ │ │ │ ├── GreenPurple.java │ │ │ │ └── GreenPurpleK8s.java │ │ ├── named_config_map_with_prefix │ │ │ ├── NamedConfigMapWithPrefixApp.java │ │ │ ├── NamedConfigMapWithPrefixBootstrapTests.java │ │ │ ├── NamedConfigMapWithPrefixConfigDataTests.java │ │ │ ├── NamedConfigMapWithPrefixTests.java │ │ │ ├── controller │ │ │ │ └── NamedConfigWithPrefixController.java │ │ │ └── properties │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── named_config_map_with_profile │ │ │ ├── NamedConfigMapWithProfileApp.java │ │ │ ├── NamedConfigMapWithProfileBootstrapTests.java │ │ │ ├── NamedConfigMapWithProfileConfigDataTests.java │ │ │ ├── NamedConfigMapWithProfileTests.java │ │ │ ├── controller │ │ │ │ └── NamedConfigMapWithProfileController.java │ │ │ └── properties │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── named_secret_with_prefix │ │ │ ├── NamedSecretWithPrefixApp.java │ │ │ ├── NamedSecretWithPrefixBootstrapTests.java │ │ │ ├── NamedSecretWithPrefixConfigDataTests.java │ │ │ ├── NamedSecretWithPrefixTests.java │ │ │ ├── controller │ │ │ │ └── NamedSecretWithPrefixController.java │ │ │ └── properties │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── named_secret_with_profile │ │ │ ├── NamedSecretWithLabelApp.java │ │ │ ├── NamedSecretWithProfileBootstrapTests.java │ │ │ ├── NamedSecretWithProfileConfigDataTests.java │ │ │ ├── NamedSecretWithProfileTests.java │ │ │ ├── controller │ │ │ │ └── NamedSecretWithProfileController.java │ │ │ └── properties │ │ │ │ ├── One.java │ │ │ │ ├── Three.java │ │ │ │ └── Two.java │ │ ├── single_source_multiple_files │ │ │ ├── SingleSourceMultipleFilesApp.java │ │ │ ├── SingleSourceMultipleFilesBootstrapTests.java │ │ │ ├── SingleSourceMultipleFilesConfigDataTests.java │ │ │ ├── SingleSourceMultipleFilesTests.java │ │ │ ├── controller │ │ │ │ └── SingleSourceMultipleFilesController.java │ │ │ └── properties │ │ │ │ ├── Color.java │ │ │ │ ├── Name.java │ │ │ │ ├── Shape.java │ │ │ │ └── Type.java │ │ └── sources_order │ │ │ ├── BootstrapRetryableSourcesOrderTests.java │ │ │ ├── BootstrapSourcesOrderTests.java │ │ │ ├── ConfigDataRetryableSourcesOrderTests.java │ │ │ ├── ConfigDataSourcesOrderTests.java │ │ │ ├── SourcesOrderApp.java │ │ │ ├── SourcesOrderTests.java │ │ │ ├── controller │ │ │ └── SourcesOrderController.java │ │ │ └── properties │ │ │ └── Properties.java │ │ ├── bootstrap │ │ └── stubs │ │ │ ├── BootstrapKubernetesClientSanitizeEnvEndpointStub.java │ │ │ ├── LabeledConfigMapWithPrefixConfigurationStub.java │ │ │ ├── LabeledConfigMapWithProfileConfigurationStub.java │ │ │ ├── LabeledSecretWithPrefixConfigurationStub.java │ │ │ ├── LabeledSecretWithProfileConfigurationStub.java │ │ │ ├── NamedConfigMapWithPrefixConfigurationStub.java │ │ │ ├── NamedConfigMapWithProfileConfigurationStub.java │ │ │ ├── NamedSecretWithPrefixConfigurationStub.java │ │ │ ├── NamedSecretWithProfileConfigurationStub.java │ │ │ ├── SingleSourceMultipleFilesConfigurationStub.java │ │ │ └── SourcesOrderConfigurationStub.java │ │ ├── bootstrap_configurations │ │ ├── KubernetesClientBootstrapConfigurationInsideK8s.java │ │ ├── KubernetesClientBootstrapConfigurationNotInsideK8s.java │ │ ├── KubernetesDisabled.java │ │ ├── KubernetesEnabled.java │ │ ├── KubernetesEnabledConfigDisabled.java │ │ ├── KubernetesEnabledOnPurpose.java │ │ ├── KubernetesEnabledSecretsAndConfigDisabled.java │ │ └── KubernetesEnabledSecretsDisabled.java │ │ ├── configmap_retry │ │ ├── App.java │ │ ├── BootstrapConfigFailFastDisabled.java │ │ ├── BootstrapConfigFailFastEnabledButRetryDisabled.java │ │ ├── BootstrapConfigRetryDisabledButSecretsRetryEnabled.java │ │ ├── BootstrapConfigRetryEnabled.java │ │ ├── ConfigDataConfigFailFastDisabled.java │ │ ├── ConfigDataConfigFailFastEnabledButRetryDisabled.java │ │ ├── ConfigDataConfigRetryDisabledButSecretsRetryEnabled.java │ │ ├── ConfigDataConfigRetryEnabled.java │ │ ├── ConfigFailFastDisabled.java │ │ ├── ConfigFailFastEnabledButRetryDisabled.java │ │ ├── ConfigMapEnableRetryWithoutFailFastTest.java │ │ ├── ConfigRetryDisabledButSecretsRetryEnabled.java │ │ └── ConfigRetryEnabled.java │ │ ├── reload │ │ ├── KubernetesClientEventBasedConfigMapChangeDetectorTests.java │ │ ├── KubernetesClientEventBasedSecretsChangeDetectorTests.java │ │ └── KubernetesMockEnvironment.java │ │ ├── reload_it │ │ ├── EventReloadConfigMapTest.java │ │ ├── EventReloadSecretTest.java │ │ ├── PollingReloadConfigMapTest.java │ │ └── PollingReloadSecretTest.java │ │ ├── sanitize_secrets │ │ ├── BootstrapKubernetesClientSanitizeConfigpropsEndpointTests.java │ │ ├── BootstrapKubernetesClientSanitizeEnvEndpointTests.java │ │ ├── ConfigDataFabric8ConfigpropsEndpointTests.java │ │ ├── ConfigDataKubernetesClientSanitizeEnvEndpointTests.java │ │ ├── ConfigDataSanitize.java │ │ ├── SanitizeApp.java │ │ ├── SanitizeController.java │ │ └── SanitizeProperties.java │ │ └── secrets_retry │ │ ├── SecretsEnableRetryWithoutFailFastTest.java │ │ ├── SecretsFailFastDisabledTests.java │ │ ├── SecretsFailFastEnabledButRetryDisabled.java │ │ ├── SecretsRetryApplication.java │ │ ├── SecretsRetryDisabledButConfigRetryEnabled.java │ │ └── SecretsRetryEnabledTests.java │ └── resources │ ├── META-INF │ └── spring.factories │ ├── include-profile-specific-sources.yaml │ ├── labeled-configmap-with-prefix.yaml │ ├── labeled-configmap-with-profile.yaml │ ├── labeled-secret-with-prefix.yaml │ ├── labeled-secret-with-profile.yaml │ ├── logback-test.xml │ ├── named-configmap-with-prefix.yaml │ ├── named-configmap-with-profile.yaml │ ├── named-secret-with-prefix.yaml │ ├── named-secret-with-profile.yaml │ ├── retryable-sources-order.yaml │ ├── sanitize-two.yaml │ ├── sanitize.yaml │ ├── single-source-multiple-files.yaml │ └── sources-order.yaml ├── spring-cloud-kubernetes-client-discovery ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── client │ │ │ └── discovery │ │ │ ├── ConditionalOnBlockingOrReactiveEnabled.java │ │ │ ├── ConditionalOnSelectiveNamespacesMissing.java │ │ │ ├── ConditionalOnSelectiveNamespacesPresent.java │ │ │ ├── K8sInstanceIdHostPodNameSupplier.java │ │ │ ├── K8sPodLabelsAndAnnotationsSupplier.java │ │ │ ├── KubernetesClientConfigServerBootstrapper.java │ │ │ ├── KubernetesClientInformerAutoConfiguration.java │ │ │ ├── KubernetesClientInformerSelectiveNamespacesAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryClientConfigClientBootstrapConfiguration.java │ │ │ ├── KubernetesDiscoveryClientUtils.java │ │ │ ├── KubernetesInformerAutoConfiguration.java │ │ │ ├── KubernetesInformerDiscoveryClient.java │ │ │ ├── KubernetesInformerDiscoveryClientAutoConfiguration.java │ │ │ ├── catalog │ │ │ ├── KubernetesCatalogWatch.java │ │ │ ├── KubernetesCatalogWatchAutoConfiguration.java │ │ │ ├── KubernetesCatalogWatchContext.java │ │ │ ├── KubernetesEndpointSlicesCatalogWatch.java │ │ │ └── KubernetesEndpointsCatalogWatch.java │ │ │ └── reactive │ │ │ ├── KubernetesInformerReactiveDiscoveryClient.java │ │ │ └── KubernetesInformerReactiveDiscoveryClientAutoConfiguration.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── client │ │ └── discovery │ │ ├── ConditionalOnSelectiveNamespacesDisabledTests.java │ │ ├── ConditionalOnSelectiveNamespacesEnabledTests.java │ │ ├── K8sInstanceIdHostPodNameSupplierTests.java │ │ ├── K8sPodLabelsAndAnnotationsSupplierTests.java │ │ ├── KubernetesClientConfigServerBootstrapperTests.java │ │ ├── KubernetesClientInformerSelectiveNamespacesAutoConfigurationTests.java │ │ ├── KubernetesDiscoveryClientAutoConfigurationTests.java │ │ ├── KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java │ │ ├── KubernetesDiscoveryClientFilterMetadataTest.java │ │ ├── KubernetesDiscoveryClientFilterTests.java │ │ ├── KubernetesDiscoveryClientServiceWithoutPortNameTests.java │ │ ├── KubernetesDiscoveryClientTests.java │ │ ├── KubernetesDiscoveryClientUtilsTests.java │ │ ├── KubernetesInformerDiscoveryClientAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesInformerDiscoveryClientTests.java │ │ ├── SharedInformerFactoryStub.java │ │ ├── SharedInformerStub.java │ │ ├── TestUtils.java │ │ ├── catalog │ │ ├── KubernetesCatalogWatchAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesCatalogWatchContextTests.java │ │ ├── KubernetesCatalogWatchEndpointSlicesTests.java │ │ ├── KubernetesCatalogWatchEndpointsTests.java │ │ ├── KubernetesClientCatalogWatchEndpointSlicesSupportTests.java │ │ └── KubernetesEndpointsAndEndpointSlicesTests.java │ │ └── reactive │ │ ├── KubernetesInformerReactiveDiscoveryClientAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesInformerReactiveDiscoveryClientAutoConfigurationTests.java │ │ └── KubernetesInformerReactiveDiscoveryClientTests.java │ └── resources │ └── logback-test.xml ├── spring-cloud-kubernetes-client-loadbalancer ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── client │ │ │ └── loadbalancer │ │ │ ├── KubernetesClientLoadBalancerAutoConfiguration.java │ │ │ ├── KubernetesClientLoadBalancerClientConfiguration.java │ │ │ ├── KubernetesClientServiceInstanceMapper.java │ │ │ └── KubernetesClientServicesListSupplier.java │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── client │ │ └── loadbalancer │ │ ├── KubernetesClientServiceInstanceMapperTests.java │ │ ├── KubernetesClientServicesListSupplierTests.java │ │ └── it │ │ ├── Util.java │ │ └── mode │ │ ├── pod │ │ ├── AllNamespacesTest.java │ │ ├── SelectiveNamespacesTest.java │ │ └── SpecificNamespaceTest.java │ │ └── service │ │ ├── AllNamespacesTest.java │ │ ├── SelectiveNamespacesTest.java │ │ └── SpecificNamespaceTest.java │ └── resources │ └── logback-test.xml ├── spring-cloud-kubernetes-commons ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── commons │ │ │ ├── AbstractKubernetesHealthIndicator.java │ │ │ ├── AbstractKubernetesInfoContributor.java │ │ │ ├── ConditionalOnKubernetesConfigEnabled.java │ │ │ ├── ConditionalOnKubernetesConfigMapsOrSecretsEnabled.java │ │ │ ├── ConditionalOnKubernetesSecretsEnabled.java │ │ │ ├── ConditionalOnSanitizeSecrets.java │ │ │ ├── EnvReader.java │ │ │ ├── KubernetesClientProperties.java │ │ │ ├── KubernetesCommonsAutoConfiguration.java │ │ │ ├── KubernetesCommonsSanitizeAutoConfiguration.java │ │ │ ├── KubernetesNamespaceProvider.java │ │ │ ├── LazilyInstantiate.java │ │ │ ├── PodUtils.java │ │ │ ├── autoconfig │ │ │ └── ConditionalOnKubernetesHealthIndicatorEnabled.java │ │ │ ├── config │ │ │ ├── ConditionalOnKubernetesAndConfigEnabled.java │ │ │ ├── ConditionalOnKubernetesConfigFailFastEnabled.java │ │ │ ├── ConditionalOnKubernetesConfigOrSecretsRetryEnabled.java │ │ │ ├── ConditionalOnKubernetesConfigRetryDisabled.java │ │ │ ├── ConditionalOnKubernetesConfigRetryEnabled.java │ │ │ ├── ConditionalOnKubernetesSecretsFailFastEnabled.java │ │ │ ├── ConditionalOnKubernetesSecretsRetryDisabled.java │ │ │ ├── ConditionalOnKubernetesSecretsRetryEnabled.java │ │ │ ├── ConfigDataRetryableConfigMapPropertySourceLocator.java │ │ │ ├── ConfigDataRetryableSecretsPropertySourceLocator.java │ │ │ ├── ConfigMapCache.java │ │ │ ├── ConfigMapConfigProperties.java │ │ │ ├── ConfigMapPropertySourceLocator.java │ │ │ ├── ConfigUtils.java │ │ │ ├── Constants.java │ │ │ ├── KubernetesBootstrapConfiguration.java │ │ │ ├── KubernetesConfigDataLoader.java │ │ │ ├── KubernetesConfigDataLocationResolver.java │ │ │ ├── KubernetesConfigDataResource.java │ │ │ ├── KubernetesConfigServerBootstrapper.java │ │ │ ├── KubernetesConfigServerInstanceProvider.java │ │ │ ├── LabeledConfigMapNormalizedSource.java │ │ │ ├── LabeledSecretNormalizedSource.java │ │ │ ├── LabeledSourceData.java │ │ │ ├── MountConfigMapPropertySource.java │ │ │ ├── MultipleSourcesContainer.java │ │ │ ├── NamedConfigMapNormalizedSource.java │ │ │ ├── NamedSecretNormalizedSource.java │ │ │ ├── NamedSourceData.java │ │ │ ├── NamespaceResolutionFailedException.java │ │ │ ├── NormalizedSource.java │ │ │ ├── NormalizedSourceType.java │ │ │ ├── PrefixContext.java │ │ │ ├── PropertySourceUtils.java │ │ │ ├── RetryProperties.java │ │ │ ├── SecretsCache.java │ │ │ ├── SecretsConfigProperties.java │ │ │ ├── SecretsPropertySource.java │ │ │ ├── SecretsPropertySourceLocator.java │ │ │ ├── SourceData.java │ │ │ ├── SourceDataEntriesProcessor.java │ │ │ ├── SourceDataFlattener.java │ │ │ ├── StrippedSourceContainer.java │ │ │ └── reload │ │ │ │ ├── ConfigReloadAutoConfiguration.java │ │ │ │ ├── ConfigReloadProperties.java │ │ │ │ ├── ConfigReloadPropertiesAutoConfiguration.java │ │ │ │ ├── ConfigReloadUtil.java │ │ │ │ ├── ConfigurationChangeDetector.java │ │ │ │ ├── ConfigurationUpdateStrategy.java │ │ │ │ ├── PollingConfigMapChangeDetector.java │ │ │ │ ├── PollingSecretsChangeDetector.java │ │ │ │ └── condition │ │ │ │ ├── ConditionalOnConfigMapsReloadEnabled.java │ │ │ │ ├── ConditionalOnKubernetesReloadEnabled.java │ │ │ │ ├── ConditionalOnSecretsReloadEnabled.java │ │ │ │ ├── EventReloadDetectionMode.java │ │ │ │ └── PollingReloadDetectionMode.java │ │ │ ├── discovery │ │ │ ├── ConditionalOnBlockingOrReactiveDiscoveryEnabled.java │ │ │ ├── ConditionalOnHttpDiscoveryCatalogWatcherEnabled.java │ │ │ ├── ConditionalOnKubernetesCatalogEnabled.java │ │ │ ├── ConditionalOnKubernetesCatalogWatcherEnabled.java │ │ │ ├── ConditionalOnKubernetesDiscoveryEnabled.java │ │ │ ├── ConditionalOnSpringCloudKubernetesBlockingDiscovery.java │ │ │ ├── ConditionalOnSpringCloudKubernetesBlockingDiscoveryHealthInitializer.java │ │ │ ├── ConditionalOnSpringCloudKubernetesReactiveDiscovery.java │ │ │ ├── ConditionalOnSpringCloudKubernetesReactiveDiscoveryHealthInitializer.java │ │ │ ├── DefaultKubernetesServiceInstance.java │ │ │ ├── DiscoveryClientUtils.java │ │ │ ├── EndpointNameAndNamespace.java │ │ │ ├── InstanceIdHostPodName.java │ │ │ ├── KubernetesDiscoveryClientHealthIndicatorInitializer.java │ │ │ ├── KubernetesDiscoveryConstants.java │ │ │ ├── KubernetesDiscoveryProperties.java │ │ │ ├── KubernetesDiscoveryPropertiesAutoConfiguration.java │ │ │ ├── KubernetesServiceInstance.java │ │ │ ├── PodLabelsAndAnnotations.java │ │ │ ├── Service.java │ │ │ ├── ServiceMetadata.java │ │ │ ├── ServicePortNameAndNumber.java │ │ │ └── ServicePortSecureResolver.java │ │ │ ├── leader │ │ │ ├── Leader.java │ │ │ ├── LeaderContext.java │ │ │ ├── LeaderInfoContributor.java │ │ │ ├── LeaderInitiator.java │ │ │ ├── LeaderProperties.java │ │ │ ├── LeaderRecordWatcher.java │ │ │ ├── LeaderUtils.java │ │ │ ├── LeadershipController.java │ │ │ └── PodReadinessWatcher.java │ │ │ ├── loadbalancer │ │ │ ├── ConditionalOnKubernetesLoadBalancerEnabled.java │ │ │ ├── ConditionalOnKubernetesLoadBalancerServiceModeEnabled.java │ │ │ ├── KubernetesLoadBalancerMode.java │ │ │ ├── KubernetesLoadBalancerProperties.java │ │ │ ├── KubernetesServiceInstanceMapper.java │ │ │ └── KubernetesServicesListSupplier.java │ │ │ └── profile │ │ │ └── AbstractKubernetesProfileEnvironmentPostProcessor.java │ └── resources │ │ └── META-INF │ │ ├── additional-spring-configuration-metadata.json │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── commons │ │ ├── KubernetesClientPropertiesTests.java │ │ ├── KubernetesCommonsAutoConfigurationTests.java │ │ ├── KubernetesCommonsSanitizeAutoConfigurationTests.java │ │ ├── KubernetesNamespaceProviderTests.java │ │ ├── LazilyInstantiateTest.java │ │ ├── SanitizeTests.java │ │ ├── config │ │ ├── App.java │ │ ├── ConfigMapConfigPropertiesBindingTests.java │ │ ├── ConfigMapConfigPropertiesTests.java │ │ ├── ConfigReloadPropertiesTests.java │ │ ├── ConfigUtilsProcessSourceTests.java │ │ ├── ConfigUtilsRawDataContainsProfileBasedSourceTests.java │ │ ├── ConfigUtilsTests.java │ │ ├── KubernetesConfigDataLoaderTests.java │ │ ├── KubernetesConfigDataLocationResolverTests.java │ │ ├── LabeledConfigMapNormalizedSourceTests.java │ │ ├── LabeledSecretNormalizedSourceTests.java │ │ ├── NamedConfigMapNormalizedSourceTests.java │ │ ├── NamedSecretNormalizedSourceTests.java │ │ ├── PropertySourceUtilsTest.java │ │ ├── SecretsConfigPropertiesBindingTests.java │ │ ├── SecretsConfigPropertiesTests.java │ │ ├── SourceDataEntriesProcessorOrderedPropertiesTests.java │ │ ├── SourceDataEntriesProcessorSortedTests.java │ │ ├── SourceDataEntriesProcessorTests.java │ │ ├── SourceDataFlattenerTests.java │ │ ├── SourceDataTests.java │ │ ├── bootstrap │ │ │ ├── ConfigAndSecretsFailFastEnabledWithDefaultRetryConfiguration.java │ │ │ ├── ConfigFailFastEnabled.java │ │ │ ├── ConfigFailFastEnabledButRetryDisabled.java │ │ │ ├── ConfigFailFastEnabledWithCustomRetryConfiguration.java │ │ │ ├── FailFastDisabled.java │ │ │ ├── FailFastEnabledWithoutSpringRetryOnClasspath.java │ │ │ ├── SecretsFailFastEnabled.java │ │ │ ├── SecretsFailFastEnabledButRetryDisabled.java │ │ │ └── SecretsFailFastEnabledWithCustomRetryConfiguration.java │ │ └── reload │ │ │ ├── ConfigReloadUtilTests.java │ │ │ └── condition │ │ │ ├── EventReloadDetectionModeTest.java │ │ │ └── PollingReloadDetectionModeTest.java │ │ ├── discovery │ │ ├── DiscoveryClientUtilsTests.java │ │ ├── KubernetesDiscoveryClientHealthIndicatorInitializerTests.java │ │ ├── KubernetesDiscoveryPropertiesMetadataTests.java │ │ ├── KubernetesDiscoveryPropertiesTests.java │ │ ├── KubernetesServiceInstanceTests.java │ │ └── ServicePortSecureResolverTest.java │ │ ├── leader │ │ ├── LeaderInfoContributorTests.java │ │ ├── LeaderPropertiesTests.java │ │ ├── LeaderUtilsTests.java │ │ └── LeadershipControllerStub.java │ │ ├── loadbalancer │ │ ├── KubernetesLoadBalancerPropertiesTests.java │ │ └── KubernetesServiceInstanceMapperTests.java │ │ ├── profile │ │ └── KubernetesProfileEnvironmentPostProcessorTest.java │ │ └── reload │ │ └── ConfigReloadAutoConfigurationApplicationContextTests.java │ └── resources │ └── logback-test.xml ├── spring-cloud-kubernetes-controllers ├── pom.xml ├── spring-cloud-kubernetes-configserver │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── configserver │ │ │ │ ├── KubernetesConfigServerApplication.java │ │ │ │ ├── KubernetesConfigServerAutoConfiguration.java │ │ │ │ ├── KubernetesConfigServerEnvironment.java │ │ │ │ ├── KubernetesConfigServerProperties.java │ │ │ │ ├── KubernetesEnvironmentRepository.java │ │ │ │ ├── KubernetesEnvironmentRepositoryFactory.java │ │ │ │ └── KubernetesPropertySourceSupplier.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ └── application.yaml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── configserver │ │ │ ├── CompositeProfileWithGitAndKubernetesConfigSourcesTests.java │ │ │ ├── CompositeProfileWithMultipleKubernetesConfigSourcesTests.java │ │ │ ├── CompositeProfileWithOnlyKubernetesConfigSourceTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesDisabledTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesEnabledProfileIncludedConfigApiDisabledTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesEnabledProfileIncludedConfigMapDisabledTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesEnabledProfileIncludedSecretsApiDisabledTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesEnabledProfileIncludedSecretsApiEnabledTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesEnabledProfileIncludedTests.java │ │ │ ├── ConfigServerAutoConfigurationKubernetesProfileMissingTests.java │ │ │ ├── KubernetesEnvironmentRepositoryFactoryTests.java │ │ │ ├── KubernetesEnvironmentRepositoryTests.java │ │ │ ├── KubernetesPropertySourceSupplierTests.java │ │ │ ├── configurations │ │ │ ├── FirstConfig.java │ │ │ ├── MockConfig.java │ │ │ ├── SecondConfig.java │ │ │ └── ThirdConfig.java │ │ │ └── it │ │ │ ├── BootstrapConfigServerIntegrationTests.java │ │ │ ├── CompositeKubernetesIntegrationTests.java │ │ │ ├── ConfigDataConfigServerIntegrationTests.java │ │ │ └── ConfigServerIntegration.java │ │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports ├── spring-cloud-kubernetes-configuration-watcher │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── configuration │ │ │ │ └── watcher │ │ │ │ ├── BusEventBasedConfigMapWatcherChangeDetector.java │ │ │ │ ├── BusEventBasedSecretsWatcherChangeDetector.java │ │ │ │ ├── BusKafkaAutoConfiguration.java │ │ │ │ ├── BusRabbitAutoConfiguration.java │ │ │ │ ├── BusRefreshTrigger.java │ │ │ │ ├── ConfigMapWatcherChangeDetector.java │ │ │ │ ├── ConfigUpdateStrategyAutoConfiguration.java │ │ │ │ ├── ConfigurationWatcherApplication.java │ │ │ │ ├── ConfigurationWatcherAutoConfiguration.java │ │ │ │ ├── ConfigurationWatcherConfigurationProperties.java │ │ │ │ ├── HttpBasedConfigMapWatchChangeDetector.java │ │ │ │ ├── HttpBasedSecretsWatchChangeDetector.java │ │ │ │ ├── HttpRefreshTrigger.java │ │ │ │ ├── RefreshTrigger.java │ │ │ │ ├── RefreshTriggerAutoConfiguration.java │ │ │ │ ├── SecretsWatcherChangeDetector.java │ │ │ │ └── WatcherUtil.java │ │ └── resources │ │ │ ├── META-INF │ │ │ └── spring │ │ │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ │ │ ├── application-bus-amqp.yaml │ │ │ ├── application-bus-kafka.yaml │ │ │ └── application.yml │ │ └── test │ │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── configuration │ │ └── watcher │ │ ├── BusEventBasedConfigMapWatcherChangeDetectorTests.java │ │ ├── BusEventBasedSecretsWatcherChangeDetectorTests.java │ │ ├── ConfigurationWatcherConfigurationPropertiesTests.java │ │ ├── HttpBasedConfigMapWatchChangeDetectorTests.java │ │ ├── HttpBasedSecretsWatchChangeDetectorTests.java │ │ ├── RefreshTriggerAutoConfigurationTests.java │ │ └── WatcherUtilTests.java └── spring-cloud-kubernetes-discoveryserver │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── discoveryserver │ │ │ ├── DiscoveryCatalogWatcherController.java │ │ │ ├── DiscoveryServerApplication.java │ │ │ ├── DiscoveryServerController.java │ │ │ └── HeartBeatListener.java │ └── resources │ │ └── application.yaml │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── kubernetes │ ├── client │ └── discovery │ │ └── reactive │ │ └── HandleToReactiveDiscoveryClient.java │ └── discoveryserver │ ├── DiscoveryCatalogWatcherControllerTests.java │ ├── DiscoveryServerApplicationContextTests.java │ ├── DiscoveryServerControllerTests.java │ ├── DiscoveryServerIntegrationAppsEndpointTests.java │ ├── DiscoveryServerIntegrationAppsNameEndpointTests.java │ ├── DiscoveryServerIntegrationInstanceEndpointTests.java │ ├── HeartbeatTests.java │ └── Util.java ├── spring-cloud-kubernetes-dependencies └── pom.xml ├── spring-cloud-kubernetes-discovery ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── discovery │ │ │ ├── ConfigServerBootstrapper.java │ │ │ ├── DiscoveryServerUrlInvalidException.java │ │ │ ├── KubernetesCatalogWatch.java │ │ │ ├── KubernetesCatalogWatchAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryClient.java │ │ │ ├── KubernetesDiscoveryClientAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryClientBlockingAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryClientProperties.java │ │ │ ├── KubernetesDiscoveryClientReactiveAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryPodUtils.java │ │ │ ├── KubernetesReactiveDiscoveryClient.java │ │ │ ├── KubernetesServiceInstance.java │ │ │ └── Service.java │ └── resources │ │ └── META-INF │ │ ├── spring-configuration-metadata.json │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── discovery │ │ ├── App.java │ │ ├── BlockingDiscoveryHealthPublishedEventTest.java │ │ ├── ConfigServerBootstrapperTests.java │ │ ├── HealthEventListenerConfiguration.java │ │ ├── KubernetesCatalogWatchAutoConfigurationTests.java │ │ ├── KubernetesCatalogWatchTests.java │ │ ├── KubernetesDiscoveryAutoConfigurationTests.java │ │ ├── KubernetesDiscoveryClientAutoConfigurationTests.java │ │ ├── KubernetesDiscoveryClientTests.java │ │ ├── KubernetesReactiveDiscoveryClientTests.java │ │ └── ReactiveDiscoveryHealthPublishedEventTest.java │ └── resources │ └── logback-test.xml ├── spring-cloud-kubernetes-examples ├── kubernetes-leader-election-example │ ├── README.md │ ├── leader-role.yml │ ├── leader-rolebinding.yml │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── examples │ │ │ │ ├── App.java │ │ │ │ └── LeaderController.java │ │ └── resources │ │ │ └── application.properties │ │ └── test │ │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── examples │ │ └── LeaderControllerTest.java └── pom.xml ├── spring-cloud-kubernetes-fabric8-autoconfig ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ ├── Fabric8ActuatorConfiguration.java │ │ │ ├── Fabric8AutoConfiguration.java │ │ │ ├── Fabric8HealthIndicator.java │ │ │ ├── Fabric8InfoContributor.java │ │ │ ├── Fabric8PodUtils.java │ │ │ ├── Fabric8Utils.java │ │ │ └── profile │ │ │ └── Fabric8ProfileEnvironmentPostProcessor.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── kubernetes │ ├── Fabric8AutoConfigurationTests.java │ ├── Fabric8HealthIndicatorDisabledTest.java │ ├── Fabric8InsideHealthIndicatorTest.java │ ├── Fabric8InsideInfoContributorTest.java │ ├── Fabric8NotInsideHealthIndicatorTest.java │ ├── Fabric8NotInsideInfoContributorTest.java │ ├── Fabric8PodUtilsTest.java │ ├── example │ └── App.java │ └── fabric8 │ ├── Fabric8ClientUserAgentEnvPropertyTests.java │ ├── Fabric8UserAgentDefaultConfigurationTests.java │ ├── Fabric8UserAgentPropertiesConfigurationTests.java │ ├── Fabric8UtilsMockTests.java │ ├── Fabric8UtilsTests.java │ └── profile │ └── Fabric8ProfileEnvironmentPostProcessorTests.java ├── spring-cloud-kubernetes-fabric8-config ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── config │ │ │ ├── Fabric8BootstrapConfiguration.java │ │ │ ├── Fabric8ConfigContext.java │ │ │ ├── Fabric8ConfigDataLocationResolver.java │ │ │ ├── Fabric8ConfigMapPropertySource.java │ │ │ ├── Fabric8ConfigMapPropertySourceLocator.java │ │ │ ├── Fabric8ConfigMapsCache.java │ │ │ ├── Fabric8ConfigUtils.java │ │ │ ├── Fabric8ContextToSourceData.java │ │ │ ├── Fabric8RetryBootstrapConfiguration.java │ │ │ ├── Fabric8SecretsCache.java │ │ │ ├── Fabric8SecretsPropertySource.java │ │ │ ├── Fabric8SecretsPropertySourceLocator.java │ │ │ ├── LabeledConfigMapContextToSourceDataProvider.java │ │ │ ├── LabeledSecretContextToSourceDataProvider.java │ │ │ ├── NamedConfigMapContextToSourceDataProvider.java │ │ │ ├── NamedSecretContextToSourceDataProvider.java │ │ │ ├── RetryableFabric8ConfigMapPropertySourceLocator.java │ │ │ ├── RetryableFabric8SecretsPropertySourceLocator.java │ │ │ └── reload │ │ │ ├── Fabric8ConfigReloadAutoConfiguration.java │ │ │ ├── Fabric8EventBasedConfigMapChangeDetector.java │ │ │ └── Fabric8EventBasedSecretsChangeDetector.java │ └── resources │ │ └── META-INF │ │ ├── additional-spring-configuration-metadata.json │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── fabric8 │ │ └── config │ │ ├── ConfigMapTestUtil.java │ │ ├── ConfigMapsTest.java │ │ ├── EventBasedConfigurationChangeDetectorTests.java │ │ ├── Fabric8ConfigDataLocationResolverTests.java │ │ ├── Fabric8ConfigMapErrorOnReadingSourceTests.java │ │ ├── Fabric8ConfigMapPropertySourceLocatorMockTests.java │ │ ├── Fabric8ConfigMapPropertySourceLocatorTests.java │ │ ├── Fabric8ConfigMapPropertySourceMockTests.java │ │ ├── Fabric8ConfigMapPropertySourceTests.java │ │ ├── Fabric8ConfigUtilsTests.java │ │ ├── Fabric8SecretErrorOnReadingSourceTests.java │ │ ├── Fabric8SecretsPropertySourceLocatorTests.java │ │ ├── Fabric8SecretsPropertySourceMockTests.java │ │ ├── HealthIndicatorTest.java │ │ ├── LabeledConfigMapContextToSourceDataProviderTests.java │ │ ├── LabeledSecretContextToSourceDataProviderTests.java │ │ ├── MissingActuatorTest.java │ │ ├── NamedConfigMapContextToSourceDataProviderTests.java │ │ ├── NamedSecretContextToSourceDataProviderTests.java │ │ ├── SecretsEnableRetryWithoutFailFastTests.java │ │ ├── TestApplication.java │ │ ├── VisibleFabric8ConfigMapPropertySourceLocator.java │ │ ├── VisibleFabric8SecretsPropertySourceLocator.java │ │ ├── actuator │ │ ├── DisabledHealthTests.java │ │ └── EnabledHealthTests.java │ │ ├── bootstrap │ │ ├── Fabric8BootstrapConfigurationInsideK8sTests.java │ │ ├── Fabric8BootstrapConfigurationNotInsideK8sTests.java │ │ ├── kubernetes_disabled │ │ │ ├── BootstrapKubernetesDisabledTests.java │ │ │ ├── ConfigDataKubernetesDisabledTests.java │ │ │ └── KubernetesDisabled.java │ │ ├── kubernetes_disabled_secrets_enabled │ │ │ ├── BootstrapKubernetesEnabledSecretsDisabledTests.java │ │ │ ├── ConfigDataKubernetesEnabledSecretsDisabledTests.java │ │ │ └── KubernetesEnabledSecretsDisabled.java │ │ ├── kubernetes_enabled │ │ │ ├── BootstrapKubernetesEnabledTests.java │ │ │ ├── ConfigDataKubernetesEnabledTests.java │ │ │ └── KubernetesEnabled.java │ │ ├── kubernetes_enabled_config_disabled │ │ │ ├── BoostrapKubernetesEnabledConfigDisabledTests.java │ │ │ ├── ConfigDataKubernetesEnabledConfigDisabledTests.java │ │ │ └── KubernetesEnabledConfigDisabled.java │ │ ├── kubernetes_enabled_explicitly │ │ │ ├── BootstrapKubernetesEnabledExplicitlyTests.java │ │ │ ├── ConfigDataKubernetesEnabledExplicitlyTests.java │ │ │ └── KubernetesEnabledExplicitly.java │ │ └── kubernetes_secrets_enabled_config_disabled │ │ │ ├── BootstrapKubernetesEnabledSecretsAndConfigDisabledTests.java │ │ │ ├── ConfigDataKubernetesEnabledSecretsAndConfigDisabledTests.java │ │ │ └── KubernetesEnabledSecretsAndConfigDisabled.java │ │ ├── config_map_source │ │ ├── BoostrapConfigMapsTests.java │ │ ├── ConfigDataConfigMapsTests.java │ │ └── ConfigMapSource.java │ │ ├── config_map_with_active_profile_no_profile │ │ ├── BootstrapConfigMapsWithProfilesNoActiveProfileTests.java │ │ ├── ConfigDataConfigMapsWithProfilesNoActiveProfileTests.java │ │ └── ConfigMapsWithProfilesNoActiveProfile.java │ │ ├── config_map_with_profile_expression │ │ ├── BootstrapConfigMapsWithProfileExpressionTests.java │ │ ├── ConfigDataConfigMapsWithProfileExpressionTests.java │ │ └── ConfigMapsWithProfileExpression.java │ │ ├── config_map_with_profiles │ │ ├── BootstrapConfigMapsWithProfilesTests.java │ │ ├── ConfigDataConfigMapsWithProfilesTests.java │ │ └── ConfigMapsWithProfiles.java │ │ ├── config_maps_mixed │ │ ├── BootstrapConfigMapsMixedTests.java │ │ ├── ConfigDataConfigMapsMixedTests.java │ │ └── ConfigMapsMixed.java │ │ ├── config_maps_with_active_profiles │ │ ├── BootstrapConfigMapsWithActiveProfilesNameTests.java │ │ ├── ConfigDataConfigMapsWithActiveProfilesNameTests.java │ │ └── ConfigMapsWithActiveProfilesName.java │ │ ├── config_maps_without_profiles │ │ ├── BootstrapConfigMapsWithoutProfilesTests.java │ │ ├── ConfigDataConfigMapsWithoutProfilesTests.java │ │ └── ConfigMapsWithoutProfiles.java │ │ ├── configmaps_from_file_paths │ │ ├── BootstrapConfigMapsFromFilePathsTests.java │ │ ├── ConfigDataConfigMapsFromFilePathsTests.java │ │ └── ConfigMapsFromFilePaths.java │ │ ├── core │ │ ├── BootstrapCoreTests.java │ │ ├── ConfigDataCoreTests.java │ │ └── Core.java │ │ ├── core_system_properties │ │ ├── BootstrapCoreTestClientViaSystemPropertiesTests.java │ │ ├── ConfigDataCoreTestClientViaSystemPropertiesTests.java │ │ └── CoreTestClientViaSystemProperties.java │ │ ├── example │ │ ├── App.java │ │ ├── GreetingController.java │ │ ├── GreetingProperties.java │ │ └── ResponseMessage.java │ │ ├── example2 │ │ ├── ExampleApp.java │ │ └── ExampleAppProps.java │ │ ├── example3 │ │ ├── MultiSecretsApp.java │ │ └── MultiSecretsProperties.java │ │ ├── labeled_config_map_with_prefix │ │ ├── LabeledConfigMapWithPrefix.java │ │ ├── LabeledConfigMapWithPrefixApp.java │ │ ├── LabeledConfigMapWithPrefixBootstrapTests.java │ │ ├── LabeledConfigMapWithPrefixConfigDataTests.java │ │ ├── controller │ │ │ └── LabeledConfigMapWithPrefixController.java │ │ └── properties │ │ │ ├── Four.java │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── labeled_config_map_with_profile │ │ ├── LabeledConfigMapWithProfile.java │ │ ├── LabeledConfigMapWithProfileApp.java │ │ ├── LabeledConfigMapWithProfileBootstrapTests.java │ │ ├── LabeledConfigMapWithProfileConfigDataTests.java │ │ └── properties │ │ │ ├── Blue.java │ │ │ ├── Green.java │ │ │ ├── GreenK8s.java │ │ │ ├── GreenProd.java │ │ │ ├── GreenPurple.java │ │ │ └── GreenPurpleK8s.java │ │ ├── labeled_secret_with_prefix │ │ ├── LabeledSecretWithPrefix.java │ │ ├── LabeledSecretWithPrefixApp.java │ │ ├── LabeledSecretWithPrefixBootstrapTests.java │ │ ├── LabeledSecretWithPrefixConfigDataTests.java │ │ ├── controller │ │ │ └── LabeledSecretWithPrefixController.java │ │ └── properties │ │ │ ├── Four.java │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── labeled_secret_with_profile │ │ ├── LabeledSecretWithProfile.java │ │ ├── LabeledSecretWithProfileApp.java │ │ ├── LabeledSecretWithProfileBootstrapTests.java │ │ ├── LabeledSecretWithProfileConfigDataTests.java │ │ └── properties │ │ │ ├── Blue.java │ │ │ ├── Green.java │ │ │ ├── GreenPurple.java │ │ │ ├── GreenPurpleK8s.java │ │ │ ├── GreenSecretK8s.java │ │ │ └── GreenSecretProd.java │ │ ├── locator_retry │ │ ├── config_fail_fast_disabled │ │ │ ├── BoostrapConfigFailFastDisabledTests.java │ │ │ ├── ConfigDataConfigFailFastDisabledTests.java │ │ │ └── ConfigFailFastDisabled.java │ │ ├── config_retry_disabled_sercrets_enabled │ │ │ ├── BoostrapConfigRetryDisabledButSecretsRetryEnabledTests.java │ │ │ ├── ConfigDataConfigRetryDisabledButSecretsRetryEnabledTests.java │ │ │ └── ConfigRetryDisabledButSecretsRetryEnabled.java │ │ ├── config_retry_enabled │ │ │ ├── BoostrapConfigRetryEnabledTests.java │ │ │ ├── ConfigDataConfigRetryEnabledTests.java │ │ │ └── ConfigRetryEnabled.java │ │ └── fail_fast_enabled_retry_disabled │ │ │ ├── BootstrapConfigFailFastEnabledButRetryDisabledTests.java │ │ │ ├── ConfigDataConfigFailFastEnabledButRetryDisabledTests.java │ │ │ └── ConfigFailFastEnabledButRetryDisabled.java │ │ ├── multiple_configmaps_sources │ │ ├── BoostrapMultipleConfigMapsTests.java │ │ ├── ConfigDataMultipleConfigMapsTests.java │ │ └── MultipleConfigMapsSources.java │ │ ├── multiple_secrets │ │ ├── BootstrapMultipleSecretsTests.java │ │ ├── ConfigDataMultipleSecretsTests.java │ │ └── MultipleSecrets.java │ │ ├── named_config_map_with_prefix │ │ ├── NamedConfigMapWithPrefix.java │ │ ├── NamedConfigMapWithPrefixApp.java │ │ ├── NamedConfigMapWithPrefixBootstrapTests.java │ │ ├── NamedConfigMapWithPrefixConfigDataTests.java │ │ ├── controller │ │ │ └── NamedConfigMapWithPrefixController.java │ │ └── properties │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── named_config_map_with_profile │ │ ├── NamedConfigMapWithProfile.java │ │ ├── NamedConfigMapWithProfileApp.java │ │ ├── NamedConfigMapWithProfileBootstrapTests.java │ │ ├── NamedConfigMapWithProfileConfigDataTests.java │ │ ├── controller │ │ │ └── NamedConfigMapWithProfileController.java │ │ └── properties │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── named_secret_with_prefix │ │ ├── NamedSecretWithPrefix.java │ │ ├── NamedSecretWithPrefixApp.java │ │ ├── NamedSecretWithPrefixBootstrapTests.java │ │ ├── NamedSecretWithPrefixConfigDataTests.java │ │ ├── controller │ │ │ └── NamedSecretWithPrefixController.java │ │ └── properties │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── named_secret_with_profile │ │ ├── NamedSecretWithProfile.java │ │ ├── NamedSecretWithProfileApp.java │ │ ├── NamedSecretWithProfileBootstrapTests.java │ │ ├── NamedSecretWithProfileConfigDataTests.java │ │ ├── controller │ │ │ └── NamedSecretWithProfileController.java │ │ └── properties │ │ │ ├── One.java │ │ │ ├── Three.java │ │ │ └── Two.java │ │ ├── reload │ │ ├── ConfigReloadAutoConfigurationTest.java │ │ ├── KubernetesConfigConfigurationTest.java │ │ └── KubernetesConfigTestBase.java │ │ ├── reload_it │ │ ├── EventReloadConfigMapTest.java │ │ ├── EventReloadSecretTest.java │ │ ├── PollingReloadConfigMapTest.java │ │ └── PollingReloadSecretTest.java │ │ ├── retry │ │ ├── ConfigMapEnableRetryWithoutFailFastTest.java │ │ ├── secrets_enabled │ │ │ ├── BootstrapSecretsRetryEnabledTests.java │ │ │ ├── ConfigDataSecretsRetryEnabledTests.java │ │ │ └── SecretsRetryEnabled.java │ │ ├── secrets_fail_fast_disabled │ │ │ ├── BootstrapSecretsFailFastDisabledTests.java │ │ │ ├── ConfigDataSecretsFailFastDisabledTests.java │ │ │ └── SecretsFailFastDisabled.java │ │ ├── secrets_fail_fast_enabled_retry_disabled │ │ │ ├── BootstrapSecretsFailFastEnabledButRetryDisabledTests.java │ │ │ ├── ConfigDataSecretsFailFastEnabledButRetryDisabledTests.java │ │ │ └── SecretsFailFastEnabledButRetryDisabled.java │ │ └── secrets_retry_disabled_config_enabled │ │ │ ├── BootstrapSecretsRetryDisabledButConfigRetryEnabledTests.java │ │ │ ├── ConfigDataSecretsRetryDisabledButConfigRetryEnabledTests.java │ │ │ └── SecretsRetryDisabledButConfigRetryEnabled.java │ │ ├── retryable_sources_order │ │ ├── BootstrapRetryableSourcesOrderTests.java │ │ ├── ConfigDataRetryableSourcesOrderTests.java │ │ ├── Properties.java │ │ ├── RetryableSourcesOrder.java │ │ ├── RetryableSourcesOrderApp.java │ │ └── RetryableSourcesOrderController.java │ │ ├── sanitize_secrets │ │ ├── BootstrapFabric8SanitizeConfigpropsEndpointTests.java │ │ ├── BootstrapFabric8SanitizeEnvEndpointTests.java │ │ ├── ConfigDataFabric8ConfigpropsEndpointTests.java │ │ ├── ConfigDataFabric8SanitizeEnvEndpointTests.java │ │ ├── Fabric8SecretsSanitize.java │ │ ├── SanitizeApp.java │ │ ├── SanitizeController.java │ │ └── SanitizeProperties.java │ │ ├── secrets_property_source │ │ ├── BoostrapFabric8SecretsPropertySourceTests.java │ │ ├── ConfigDataFabric8SecretsPropertySourceTests.java │ │ └── Fabric8SecretsPropertySource.java │ │ ├── secrets_with_labels │ │ ├── BootstrapSecretsWithLabelsTests.java │ │ ├── ConfigDataSecretsWithLabelsTests.java │ │ ├── One.java │ │ ├── SecretsWithLabels.java │ │ ├── SecretsWithLabelsApp.java │ │ └── SecretsWithLabelsController.java │ │ ├── single_source_multiple_files │ │ ├── SingleSourceMultipleFiles.java │ │ ├── SingleSourceMultipleFilesApp.java │ │ ├── SingleSourceMultipleFilesBootstrapTests.java │ │ ├── SingleSourceMultipleFilesConfigDataTests.java │ │ ├── controller │ │ │ └── SingleSourceMultipleFilesController.java │ │ └── properties │ │ │ ├── Color.java │ │ │ ├── Name.java │ │ │ ├── Shape.java │ │ │ └── Type.java │ │ └── sources_order │ │ ├── BootstrapSourcesOrderTests.java │ │ ├── ConfigDataSourcesOrderTests.java │ │ ├── Properties.java │ │ ├── SourcesOrder.java │ │ ├── SourcesOrderApp.java │ │ └── SourcesOrderController.java │ └── resources │ ├── META-INF │ └── spring.factories │ ├── adhoc.properties │ ├── adhoc.yml │ ├── application-path.yaml │ ├── application-secrets.properties │ ├── application-with-active-profiles-name.yaml │ ├── application-with-profiles.yaml │ ├── application-without-profiles.yaml │ ├── application.properties │ ├── application.yaml │ ├── include-profile-specific-sources.yaml │ ├── labeled-configmap-with-prefix.yaml │ ├── labeled-configmap-with-profile.yaml │ ├── labeled-secret-with-prefix.yaml │ ├── labeled-secret-with-profile.yaml │ ├── logback-test.xml │ ├── multiple-secrets.yml │ ├── multiplecms.yml │ ├── named-config-map-with-prefix.yaml │ ├── named-configmap-with-profile.yaml │ ├── named-secret-with-prefix.yaml │ ├── named-secret-with-profile.yaml │ ├── retryable-sources-order.yaml │ ├── sanitize-two.yaml │ ├── sanitize.yaml │ ├── secret-with-labels-config.yaml │ ├── single-source-multiple-files.yaml │ └── sources-order.yaml ├── spring-cloud-kubernetes-fabric8-discovery ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── discovery │ │ │ ├── Fabric8CatalogWatchContext.java │ │ │ ├── Fabric8ConfigServerBootstrapper.java │ │ │ ├── Fabric8DiscoveryServicesAdapter.java │ │ │ ├── Fabric8EndpointSliceV1CatalogWatch.java │ │ │ ├── Fabric8EndpointsCatalogWatch.java │ │ │ ├── Fabric8InstanceIdHostPodNameSupplier.java │ │ │ ├── Fabric8KubernetesDiscoveryClientUtils.java │ │ │ ├── Fabric8PodLabelsAndAnnotationsSupplier.java │ │ │ ├── KubernetesCatalogWatch.java │ │ │ ├── KubernetesCatalogWatchAutoConfiguration.java │ │ │ ├── KubernetesClientServicesFunction.java │ │ │ ├── KubernetesClientServicesFunctionProvider.java │ │ │ ├── KubernetesDiscoveryClient.java │ │ │ ├── KubernetesDiscoveryClientAutoConfiguration.java │ │ │ ├── KubernetesDiscoveryClientConfigClientBootstrapConfiguration.java │ │ │ └── reactive │ │ │ ├── KubernetesReactiveDiscoveryClient.java │ │ │ └── KubernetesReactiveDiscoveryClientAutoConfiguration.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ ├── DummyConfigDataLocationResolver.java │ │ └── fabric8 │ │ └── discovery │ │ ├── Fabric8CatalogWatchContextTests.java │ │ ├── Fabric8ConfigServerBootstrapperTests.java │ │ ├── Fabric8ConfigServerTest.java │ │ ├── Fabric8DiscoveryServicesAdapterTests.java │ │ ├── Fabric8EndpointsAndEndpointSlicesTests.java │ │ ├── Fabric8InstanceIdHostPodNameSupplierTests.java │ │ ├── Fabric8KubernetesCatalogWatchEndpointSlicesSupportTests.java │ │ ├── Fabric8KubernetesCatalogWatchEndpointSlicesTests.java │ │ ├── Fabric8KubernetesCatalogWatchEndpointsTests.java │ │ ├── Fabric8KubernetesDiscoveryClientServiceWithoutPortNameTests.java │ │ ├── Fabric8KubernetesDiscoveryClientTest.java │ │ ├── Fabric8KubernetesDiscoveryClientTests.java │ │ ├── Fabric8KubernetesDiscoveryClientUtilsFilterTests.java │ │ ├── Fabric8KubernetesDiscoveryClientUtilsTests.java │ │ ├── Fabric8PodLabelsAndAnnotationsSupplierTests.java │ │ ├── KubernetesCatalogServicesWatchConfigurationTest.java │ │ ├── KubernetesCatalogWatchAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesCatalogWatchTest.java │ │ ├── KubernetesDiscoveryClientAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesDiscoveryClientAutoConfigurationPropertiesTests.java │ │ ├── KubernetesDiscoveryClientAutoConfigurationTests.java │ │ ├── KubernetesDiscoveryClientConfigClientBootstrapConfigurationTests.java │ │ ├── KubernetesDiscoveryClientFilterMetadataTest.java │ │ ├── KubernetesDiscoveryClientFilterTest.java │ │ ├── KubernetesDiscoveryClientUtilsTests.java │ │ └── reactive │ │ ├── KubernetesReactiveDiscoveryClientAutoConfigurationApplicationContextTests.java │ │ ├── KubernetesReactiveDiscoveryClientAutoConfigurationTests.java │ │ └── KubernetesReactiveDiscoveryClientTests.java │ └── resources │ ├── META-INF │ └── spring.factories │ └── logback-test.xml ├── spring-cloud-kubernetes-fabric8-istio ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── client │ │ │ └── istio │ │ │ ├── IstioAutoConfiguration.java │ │ │ ├── IstioBootstrapConfiguration.java │ │ │ ├── IstioClientProperties.java │ │ │ └── utils │ │ │ └── MeshUtils.java │ └── resources │ │ └── META-INF │ │ ├── spring.factories │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── kubernetes │ └── fabric8 │ └── client │ └── istio │ ├── App.java │ ├── IstioAutoConfigurationClientNotPresentWhenIstioDisabledTest.java │ ├── IstioAutoConfigurationClientNotPresentWhenKubernetesDisabledTest.java │ ├── IstioAutoConfigurationClientPresentByDefaultTest.java │ └── IstioAutoConfigurationClientPresentWhenIstioEnabledTest.java ├── spring-cloud-kubernetes-fabric8-leader ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── leader │ │ │ ├── Fabric8LeaderAutoConfiguration.java │ │ │ ├── Fabric8LeaderRecordWatcher.java │ │ │ ├── Fabric8LeadershipController.java │ │ │ └── Fabric8PodReadinessWatcher.java │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── kubernetes │ └── fabric8 │ └── leader │ ├── Fabric8LeaderAutoConfigurationTests.java │ ├── Fabric8LeaderContextTest.java │ ├── Fabric8LeaderInitiatorTest.java │ ├── Fabric8LeaderRecordWatcherTest.java │ ├── Fabric8LeaderTest.java │ ├── Fabric8LeadershipControllerTest.java │ └── Fabric8PodReadinessWatcherTest.java ├── spring-cloud-kubernetes-fabric8-loadbalancer ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── loadbalancer │ │ │ ├── Fabric8LoadBalancerAutoConfiguration.java │ │ │ ├── Fabric8LoadBalancerClientConfiguration.java │ │ │ ├── Fabric8ServiceInstanceMapper.java │ │ │ └── Fabric8ServicesListSupplier.java │ └── resources │ │ └── META-INF │ │ └── spring │ │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ └── fabric8 │ │ └── loadbalancer │ │ ├── Fabric8LoadBalancerAutoConfigurationTests.java │ │ ├── Fabric8ServiceInstanceMapperTests.java │ │ ├── Fabric8ServiceListSupplierTests.java │ │ ├── Fabric8ServicesListSupplierMockClientTests.java │ │ └── it │ │ ├── Util.java │ │ └── mode │ │ ├── pod │ │ ├── AllNamespacesTest.java │ │ ├── SelectiveNamespacesTest.java │ │ └── SpecificNamespaceTest.java │ │ └── service │ │ ├── AllNamespacesTest.java │ │ ├── SelectiveNamespacesTest.java │ │ └── SpecificNamespaceTest.java │ └── resources │ └── logback-test.xml ├── spring-cloud-kubernetes-integration-tests ├── README ├── pom.xml ├── spring-cloud-kubernetes-fabric8-client-catalog-watcher │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── catalog │ │ │ └── watch │ │ │ ├── Application.java │ │ │ ├── EndpointNameAndNamespaceService.java │ │ │ ├── HeartBeatListener.java │ │ │ └── HeartbeatController.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── catalog │ │ │ └── watch │ │ │ ├── Fabric8CatalogWatchBase.java │ │ │ ├── Fabric8CatalogWatchEndpointSlicesIT.java │ │ │ ├── Fabric8CatalogWatchEndpointsIT.java │ │ │ └── TestAssertions.java │ │ └── resources │ │ └── logback-test.xml ├── spring-cloud-kubernetes-fabric8-client-discovery │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── fabric8 │ │ │ │ └── client │ │ │ │ └── discovery │ │ │ │ └── Fabric8DiscoveryApp.java │ │ └── resources │ │ │ └── application.yaml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── client │ │ │ └── discovery │ │ │ ├── Fabric8DiscoveryAllServicesIT.java │ │ │ ├── Fabric8DiscoveryBase.java │ │ │ ├── Fabric8DiscoveryBlockingIT.java │ │ │ ├── Fabric8DiscoveryFilterIT.java │ │ │ ├── Fabric8DiscoveryReactiveIT.java │ │ │ └── TestAssertions.java │ │ └── resources │ │ ├── external-name-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-fabric8-client-istio │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── fabric8 │ │ │ │ └── client │ │ │ │ └── istio │ │ │ │ ├── IstioApp.java │ │ │ │ └── IstioController.java │ │ └── resources │ │ │ └── bootstrap.yml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── client │ │ │ └── istio │ │ │ └── Fabric8IstioIT.java │ │ └── resources │ │ ├── istio-deployment.yaml │ │ ├── istio-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-fabric8-client-reload │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── fabric8 │ │ │ │ └── client │ │ │ │ └── reload │ │ │ │ ├── App.java │ │ │ │ ├── ConfigMapProperties.java │ │ │ │ ├── Controller.java │ │ │ │ ├── LeftProperties.java │ │ │ │ ├── RightProperties.java │ │ │ │ ├── RightWithLabelsProperties.java │ │ │ │ └── SecretProperties.java │ │ └── resources │ │ │ ├── application-mount.yaml │ │ │ ├── application-no-mount.yaml │ │ │ ├── application-one.yaml │ │ │ ├── application-three.yaml │ │ │ ├── application-two.yaml │ │ │ ├── application-with-bootstrap.yaml │ │ │ ├── application-with-secret.yaml │ │ │ ├── bootstrap-one.yaml │ │ │ ├── bootstrap-three.yaml │ │ │ ├── bootstrap-two.yaml │ │ │ └── bootstrap-with-bootstrap.yaml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── fabric8 │ │ │ └── client │ │ │ └── reload │ │ │ ├── Fabric8ConfigMapMountPollingBootstrapIT.java │ │ │ ├── Fabric8ConfigMapMountPollingReloadIT.java │ │ │ ├── Fabric8EventReloadBase.java │ │ │ ├── Fabric8EventReloadConfigMapBootstrapIT.java │ │ │ ├── Fabric8EventReloadInformWithLabelIT.java │ │ │ ├── Fabric8EventReloadSecretConfigDataIT.java │ │ │ └── TestAssertions.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ ├── logback-test.xml │ │ └── manifests │ │ ├── configmap.yaml │ │ ├── deployment.yaml │ │ ├── left-configmap.yaml │ │ ├── right-configmap-with-label.yaml │ │ ├── right-configmap.yaml │ │ ├── secret.yaml │ │ └── service.yaml ├── spring-cloud-kubernetes-k8s-client-catalog-watcher │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── k8s │ │ │ └── client │ │ │ └── catalog │ │ │ └── watcher │ │ │ ├── Application.java │ │ │ ├── EndpointNameAndNamespaceService.java │ │ │ ├── HeartBeatListener.java │ │ │ └── HeartbeatController.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── k8s │ │ │ └── client │ │ │ └── catalog │ │ │ └── watcher │ │ │ ├── KubernetesClientCatalogWatchBase.java │ │ │ ├── KubernetesClientCatalogWatchEndpointSlicesIT.java │ │ │ ├── KubernetesClientCatalogWatchEndpointsIT.java │ │ │ └── TestAssertions.java │ │ └── resources │ │ ├── app │ │ ├── watcher-deployment.yaml │ │ ├── watcher-ingress.yaml │ │ └── watcher-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-k8s-client-configuration-watcher │ ├── pom.xml │ └── src │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── configuration │ │ │ └── watcher │ │ │ ├── ActuatorRefreshIT.java │ │ │ ├── ActuatorRefreshMultipleNamespacesIT.java │ │ │ └── TestUtil.java │ │ └── resources │ │ ├── config-watcher │ │ ├── spring-cloud-kubernetes-configuration-watcher-deployment.yaml │ │ └── spring-cloud-kubernetes-configuration-watcher-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-k8s-client-discovery-server │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── discoveryclient │ │ │ └── it │ │ │ ├── App.java │ │ │ └── HeartbeatListener.java │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── discoveryclient │ │ │ └── it │ │ │ ├── DiscoveryServerClientBase.java │ │ │ └── DiscoveryServerClientIT.java │ │ └── resources │ │ ├── logback-test.xml │ │ └── manifests │ │ ├── cluster-role.yaml │ │ ├── discoveryserver-deployment.yaml │ │ └── discoveryserver-service.yaml ├── spring-cloud-kubernetes-k8s-client-discovery │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── k8s │ │ │ │ └── client │ │ │ │ └── discovery │ │ │ │ └── DiscoveryApp.java │ │ └── resources │ │ │ └── application.yaml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── k8s │ │ │ └── client │ │ │ └── discovery │ │ │ ├── KubernetesClientBlockingIT.java │ │ │ ├── KubernetesClientDiscoveryBase.java │ │ │ ├── KubernetesClientDiscoveryFilterIT.java │ │ │ ├── KubernetesClientDiscoverySimpleIT.java │ │ │ ├── KubernetesClientReactiveIT.java │ │ │ └── TestAssertions.java │ │ └── resources │ │ ├── external-name-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-k8s-client-kafka-configmap-reload │ ├── kafka-configmap-app │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── configuration │ │ │ │ └── watcher │ │ │ │ └── appB │ │ │ │ └── AppTestApplication.java │ │ │ └── resources │ │ │ └── application.yaml │ ├── kafka-configmap-test-app │ │ ├── pom.xml │ │ └── src │ │ │ └── test │ │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── configuration │ │ │ │ └── watcher │ │ │ │ └── multiple │ │ │ │ └── apps │ │ │ │ └── ConfigurationWatcherBusKafkaIT.java │ │ │ └── resources │ │ │ ├── app │ │ │ ├── app-deployment.yaml │ │ │ └── app-service.yaml │ │ │ ├── config-watcher │ │ │ ├── watcher-bus-kafka-deployment.yaml │ │ │ └── watcher-kus-kafka-service.yaml │ │ │ └── logback-test.xml │ └── pom.xml ├── spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload │ ├── pom.xml │ ├── rabbitmq-secret-app │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── configuration │ │ │ │ └── watcher │ │ │ │ └── appA │ │ │ │ └── AppTestApplication.java │ │ │ └── resources │ │ │ └── application.yaml │ └── rabbitmq-secret-test-app │ │ ├── pom.xml │ │ └── src │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── configuration │ │ │ └── watcher │ │ │ └── multiple │ │ │ └── apps │ │ │ └── ConfigurationWatcherBusAmqpIT.java │ │ └── resources │ │ ├── app │ │ ├── app-deployment.yaml │ │ └── app-service.yaml │ │ ├── config-watcher │ │ ├── watcher-deployment.yaml │ │ └── watcher-service.yaml │ │ └── logback-test.xml ├── spring-cloud-kubernetes-k8s-client-reload │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── org │ │ │ │ └── springframework │ │ │ │ └── cloud │ │ │ │ └── kubernetes │ │ │ │ └── k8s │ │ │ │ └── client │ │ │ │ └── reload │ │ │ │ ├── App.java │ │ │ │ ├── ConfigMapProperties.java │ │ │ │ ├── Controller.java │ │ │ │ ├── LeftProperties.java │ │ │ │ ├── RightProperties.java │ │ │ │ ├── RightWithLabelsProperties.java │ │ │ │ └── SecretProperties.java │ │ └── resources │ │ │ ├── application-mount.yaml │ │ │ ├── application-three.yaml │ │ │ ├── application-two.yaml │ │ │ ├── application-with-bootstrap.yaml │ │ │ ├── application-with-secret.yaml │ │ │ ├── bootstrap-three.yaml │ │ │ ├── bootstrap-two.yaml │ │ │ └── bootstrap-with-bootstrap.yaml │ │ └── test │ │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── kubernetes │ │ │ └── k8s │ │ │ └── client │ │ │ └── reload │ │ │ └── it │ │ │ ├── K8sClientConfigMapEventTriggeredIT.java │ │ │ ├── K8sClientConfigMapLabelEventTriggeredIT.java │ │ │ ├── K8sClientConfigMapMountPollingIT.java │ │ │ ├── K8sClientReloadBase.java │ │ │ └── K8sClientSecretMountBootstrapPollingIT.java │ │ └── resources │ │ ├── META-INF │ │ └── spring.factories │ │ ├── logback-test.xml │ │ ├── mount │ │ ├── configmap.yaml │ │ ├── deployment-with-secret.yaml │ │ ├── deployment.yaml │ │ ├── secret.yaml │ │ ├── service-with-secret.yaml │ │ └── service.yaml │ │ ├── right-configmap-with-label.yaml │ │ └── right-configmap.yaml └── src │ └── main │ └── resources │ └── META-INF │ └── springcloudkubernetes-version.txt ├── spring-cloud-kubernetes-test-support ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── kubernetes │ │ ├── integration │ │ └── tests │ │ │ └── commons │ │ │ ├── Commons.java │ │ │ ├── Constants.java │ │ │ ├── FixedPortsK3sContainer.java │ │ │ ├── Images.java │ │ │ ├── Phase.java │ │ │ ├── fabric8_client │ │ │ └── Util.java │ │ │ └── native_client │ │ │ └── Util.java │ │ └── tests │ │ ├── commons │ │ └── junit_extension │ │ │ └── DisabledTestsCondition.java │ │ └── discovery │ │ └── TestsDiscovery.java │ └── resources │ ├── META-INF │ └── services │ │ └── org.junit.jupiter.api.extension.Extension │ ├── busybox │ ├── deployment.yaml │ └── service.yaml │ ├── cluster │ ├── cluster-role-binding.yaml │ ├── cluster-role.yaml │ ├── role-binding.yaml │ └── service-account.yaml │ ├── current-images.txt │ ├── istio │ ├── istioctl-deployment.yaml │ ├── role-binding.yaml │ ├── role.yaml │ └── service-account.yaml │ ├── kafka │ ├── kafka-deployment.yaml │ └── kafka-service.yaml │ ├── rabbitmq │ ├── rabbitmq-deployment.yaml │ └── rabbitmq-service.yaml │ ├── setup │ ├── role-binding.yaml │ ├── role.yaml │ └── service-account.yaml │ └── wiremock │ ├── wiremock-deployment.yaml │ └── wiremock-service.yaml ├── spring-cloud-starter-kubernetes-client-all └── pom.xml ├── spring-cloud-starter-kubernetes-client-config └── pom.xml ├── spring-cloud-starter-kubernetes-client-loadbalancer └── pom.xml ├── spring-cloud-starter-kubernetes-client └── pom.xml ├── spring-cloud-starter-kubernetes-discoveryclient └── pom.xml ├── spring-cloud-starter-kubernetes-fabric8-all └── pom.xml ├── spring-cloud-starter-kubernetes-fabric8-config └── pom.xml ├── spring-cloud-starter-kubernetes-fabric8-loadbalancer └── pom.xml ├── spring-cloud-starter-kubernetes-fabric8 └── pom.xml └── src └── checkstyle └── checkstyle-suppressions.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: https://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | [*] 7 | indent_style = tab 8 | indent_size = 4 9 | end_of_line = lf 10 | insert_final_newline = true 11 | 12 | [*.yml] 13 | indent_style = space 14 | indent_size = 2 15 | 16 | [*.yaml] 17 | indent_style = space 18 | indent_size = 2 19 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | Please provide details of the problem, including the version of Spring Cloud that you 12 | are using. 13 | 14 | **Sample** 15 | If possible, please provide a test case or sample application that reproduces 16 | the problem. This makes it much easier for us to diagnose the problem and to verify that 17 | we have fixed it. 18 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/dco.yml: -------------------------------------------------------------------------------- 1 | require: 2 | members: false 3 | -------------------------------------------------------------------------------- /.github/workflows/composites/build-controllers-project/action.yaml: -------------------------------------------------------------------------------- 1 | name: build controllers project 2 | description: build controllers project 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: build controllers project 7 | shell: bash 8 | env: 9 | CURRENT_INDEX: ${{ matrix.current_index }} 10 | run: | 11 | cd spring-cloud-kubernetes-controllers 12 | .././mvnw -DCURRENT_INSTANCE=${CURRENT_INDEX} -T 1C -U clean install 13 | cd .. 14 | -------------------------------------------------------------------------------- /.github/workflows/composites/build-integration-tests-project/action.yaml: -------------------------------------------------------------------------------- 1 | name: build integration tests project without tests 2 | description: build integration tests project without tests 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: build integration tests project without tests 7 | shell: bash 8 | run: | 9 | 10 | cd spring-cloud-kubernetes-test-support 11 | .././mvnw clean install -U 12 | cd .. 13 | 14 | cd spring-cloud-kubernetes-integration-tests 15 | # build the images, but dont run the tests 16 | .././mvnw -T 1C clean install -DskipTests 17 | cd .. 18 | -------------------------------------------------------------------------------- /.github/workflows/composites/cache/action.yaml: -------------------------------------------------------------------------------- 1 | name: cache 2 | description: cache 3 | runs: 4 | using: "composite" 5 | steps: 6 | 7 | - uses: Wandalen/wretry.action@master 8 | with: 9 | attempt_limit: 3 10 | action: buildjet/cache@v3 11 | with: | 12 | path: ~/.m2/repository 13 | key: ${{ runner.os }}-cache-${{ env.BRANCH_NAME }}-${{ hashFiles('**/pom.xml') }} 14 | restore-keys: ${{ runner.os }}-cache-${{ env.BRANCH_NAME }}-${{ hashFiles('**/pom.xml') }} 15 | 16 | -------------------------------------------------------------------------------- /.github/workflows/composites/clean-space/action.yaml: -------------------------------------------------------------------------------- 1 | name: clean space 2 | description: clean space 3 | runs: 4 | using: "composite" 5 | steps: 6 | 7 | - name: Free Disk Space 8 | uses: jlumbroso/free-disk-space@main 9 | with: 10 | tool-cache: true 11 | android: true 12 | dotnet: true 13 | haskell: true 14 | large-packages: true 15 | swap-storage: true 16 | -------------------------------------------------------------------------------- /.github/workflows/composites/env-variables/action.yaml: -------------------------------------------------------------------------------- 1 | name: sets environment variables 2 | description: sets environment variables 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: set env variables 7 | shell: bash 8 | run: | 9 | 10 | baseRef=$GITHUB_BASE_REF 11 | if [[ ! -z $baseRef ]]; then 12 | echo "This is a PR to branch : $baseRef" 13 | echo "BASE_BRANCH=$(echo $baseRef)" >> $GITHUB_ENV 14 | else 15 | raw=${{ github.ref }} 16 | echo "${raw}" 17 | branch=${raw##*/} 18 | echo "This is a merge to branch : ${branch}" 19 | echo "BASE_BRANCH=$(echo ${branch})" >> $GITHUB_ENV 20 | fi 21 | 22 | echo "BRANCH_NAME=$(echo $GITHUB_HEAD_REF)" >> $GITHUB_ENV 23 | echo "BASE_BRANCH_NAME=$(echo $GITHUB_BASE_REF)" >> $GITHUB_ENV 24 | -------------------------------------------------------------------------------- /.github/workflows/composites/maven-build-with-dry-run-for-tests/action.yaml: -------------------------------------------------------------------------------- 1 | name: maven-build-with-dry-run-for-tests 2 | description: maven-build-with-dry-run-for-tests 3 | runs: 4 | using: "composite" 5 | steps: 6 | 7 | - name: run 'install' on the project 8 | shell: bash 9 | run: | 10 | ./mvnw install -B \ 11 | -Dspring-boot.build-image.skip=true \ 12 | -DskipTests -DskipITs \ 13 | -T 1C -U -q 14 | 15 | - name: find all classpath entries 16 | shell: bash 17 | run: | 18 | ./mvnw -q exec:exec -Dexec.classpathScope="test" -Dexec.executable="echo" -Dexec.args="%classpath" | tr : "\n" > /tmp/deps.txt 19 | 20 | - name: find all tests 21 | shell: bash 22 | run: | 23 | cd spring-cloud-kubernetes-test-support 24 | .././mvnw -q exec:java -Prun-on-github-actions -Dexec.mainClass="org.springframework.cloud.kubernetes.tests.discovery.TestsDiscovery" > /tmp/tests.txt 25 | cd .. 26 | 27 | - name: show result 28 | if: always() 29 | shell: bash 30 | run: cat /tmp/tests.txt 31 | 32 | - name: upload test 33 | uses: actions/upload-artifact@v4 34 | with: 35 | name: tests.txt 36 | path: /tmp/tests.txt 37 | 38 | -------------------------------------------------------------------------------- /.github/workflows/composites/setup-jdk17/action.yaml: -------------------------------------------------------------------------------- 1 | name: setup project with jdk-17 2 | description: setup project with jdk-17 3 | runs: 4 | using: "composite" 5 | steps: 6 | - uses: actions/setup-java@v4 7 | with: 8 | distribution: 'temurin' 9 | java-version: '17' 10 | -------------------------------------------------------------------------------- /.github/workflows/deploy-docs.yml: -------------------------------------------------------------------------------- 1 | name: Deploy Docs 2 | on: 3 | push: 4 | branches-ignore: [ gh-pages ] 5 | tags: '**' 6 | repository_dispatch: 7 | types: request-build-reference # legacy 8 | #schedule: 9 | #- cron: '0 10 * * *' # Once per day at 10am UTC 10 | workflow_dispatch: 11 | permissions: 12 | actions: write 13 | jobs: 14 | build: 15 | runs-on: ubuntu-latest 16 | # if: github.repository_owner == 'spring-cloud' 17 | steps: 18 | - name: Checkout 19 | uses: actions/checkout@v4 20 | with: 21 | ref: docs-build 22 | fetch-depth: 1 23 | - name: Dispatch (partial build) 24 | if: github.ref_type == 'branch' 25 | env: 26 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 27 | run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) -f build-refname=${{ github.ref_name }} 28 | - name: Dispatch (full build) 29 | if: github.ref_type == 'tag' 30 | env: 31 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 32 | run: gh workflow run deploy-docs.yml -r $(git rev-parse --abbrev-ref HEAD) 33 | -------------------------------------------------------------------------------- /.mvn/jvm.config: -------------------------------------------------------------------------------- 1 | -Xmx1024m -XX:CICompilerCount=1 -XX:TieredStopAtLevel=1 -Djava.security.egd=file:/dev/./urandom -------------------------------------------------------------------------------- /.mvn/maven.config: -------------------------------------------------------------------------------- 1 | -P spring 2 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-cloud/spring-cloud-kubernetes/22930499dbba5f86c68fa4cc9f2f1b3f567c69d6/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.0/apache-maven-3.9.0-bin.zip 2 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 3 | -------------------------------------------------------------------------------- /.sdkmanrc: -------------------------------------------------------------------------------- 1 | # Enable auto-env through the sdkman_auto_env config 2 | # Add key=value pairs of SDKs to use below 3 | java=17.0.1-tem 4 | -------------------------------------------------------------------------------- /.springformat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-cloud/spring-cloud-kubernetes/22930499dbba5f86c68fa4cc9f2f1b3f567c69d6/.springformat -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | 2 | Copyright (C) 2016 to the original authors. 3 | 4 | This project was originally developed by Red Hat Inc. under the Fabric8 project. 5 | https://github.com/fabric8io/spring-cloud-kubernetes 6 | -------------------------------------------------------------------------------- /config/releaser.yml: -------------------------------------------------------------------------------- 1 | releaser.maven.build-command: ./scripts/integration-tests.sh 2 | releaser.maven.deploy-command: ./scripts/deploy.sh {{systemProps}} 3 | -------------------------------------------------------------------------------- /docs/antora-playbook.yml: -------------------------------------------------------------------------------- 1 | antora: 2 | extensions: 3 | - require: '@springio/antora-extensions' 4 | root_component_name: 'cloud-kubernetes' 5 | site: 6 | title: Spring Cloud Kubernetes 7 | url: https://docs.spring.io/spring-cloud-kubernetes/reference/ 8 | content: 9 | sources: 10 | - url: ./.. 11 | branches: HEAD 12 | start_path: docs 13 | worktrees: true 14 | asciidoc: 15 | attributes: 16 | page-stackoverflow-url: https://stackoverflow.com/tags/spring-cloud 17 | page-pagination: '' 18 | hide-uri-scheme: '@' 19 | tabs-sync-option: '@' 20 | chomp: 'all' 21 | extensions: 22 | - '@asciidoctor/tabs' 23 | - '@springio/asciidoctor-extensions' 24 | sourcemap: true 25 | urls: 26 | latest_version_segment: '' 27 | runtime: 28 | log: 29 | failure_level: warn 30 | format: pretty 31 | ui: 32 | bundle: 33 | url: https://github.com/spring-io/antora-ui-spring/releases/download/v0.4.15/ui-bundle.zip 34 | -------------------------------------------------------------------------------- /docs/antora.yml: -------------------------------------------------------------------------------- 1 | name: cloud-kubernetes 2 | version: true 3 | title: Spring Cloud Kubernetes 4 | nav: 5 | - modules/ROOT/nav.adoc 6 | ext: 7 | collector: 8 | run: 9 | command: ./mvnw --no-transfer-progress -B process-resources -Pdocs -pl docs -Dantora-maven-plugin.phase=none -Dgenerate-docs.phase=none -Dgenerate-readme.phase=none -Dgenerate-cloud-resources.phase=none -Dmaven-dependency-plugin-for-docs.phase=none -Dmaven-dependency-plugin-for-docs-classes.phase=none -DskipTests -DdisableConfigurationProperties 10 | local: true 11 | scan: 12 | dir: ./target/classes/antora-resources/ 13 | -------------------------------------------------------------------------------- /docs/modules/ROOT/nav.adoc: -------------------------------------------------------------------------------- 1 | * xref:index.adoc[Introduction] 2 | * xref:getting-started.adoc[] 3 | * xref:discovery-client.adoc[] 4 | * xref:discovery-kubernetes-native.adoc[] 5 | * xref:property-source-config.adoc[] 6 | ** xref:property-source-config/configmap-propertysource.adoc[] 7 | ** xref:property-source-config/secrets-propertysource.adoc[] 8 | ** xref:property-source-config/namespace-resolution.adoc[] 9 | ** xref:property-source-config/order_of_configMaps_and_secrets.adoc[] 10 | ** xref:property-source-config/propertysource-reload.adoc[] 11 | ** xref:property-source-config/namespace-label-filtering.adoc[] 12 | * xref:kubernetes-awareness.adoc[] 13 | * xref:pod-health-indicator.adoc[] 14 | * xref:info-contributor.adoc[] 15 | * xref:leader-election.adoc[] 16 | * xref:load-balancer.adoc[] 17 | * xref:security-service-accounts.adoc[] 18 | * xref:service-registry.adoc[] 19 | * xref:spring-cloud-kubernetes-configuration-watcher.adoc[] 20 | * xref:spring-cloud-kubernetes-configserver.adoc[] 21 | * xref:spring-cloud-kubernetes-discoveryserver.adoc[] 22 | * xref:examples.adoc[] 23 | * xref:other-resources.adoc[] 24 | * xref:appendix.adoc[] 25 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/_attributes.adoc: -------------------------------------------------------------------------------- 1 | :doctype: book 2 | :idprefix: 3 | :idseparator: - 4 | :tabsize: 4 5 | :numbered: 6 | :sectanchors: 7 | :sectnums: 8 | :icons: font 9 | :hide-uri-scheme: 10 | :docinfo: shared,private 11 | 12 | :sc-ext: java 13 | :project-full-name: Spring Cloud Kubernetes 14 | :all: {asterisk}{asterisk} 15 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/appendix.adoc: -------------------------------------------------------------------------------- 1 | :numbered!: 2 | [appendix] 3 | [[common-application-properties]] 4 | = Common application properties 5 | :page-section-summary-toc: 1 6 | 7 | include::_attributes.adoc[] 8 | 9 | Various properties can be specified inside your `application.properties` file, inside your `application.yml` file, or as command line switches. 10 | This appendix provides a list of common {project-full-name} properties and references to the underlying classes that consume them. 11 | 12 | NOTE: Property contributions can come from additional jar files on your classpath, so you should not consider this an exhaustive list. 13 | Also, you can define your own properties. 14 | 15 | include::partial$_configprops.adoc[] -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/configprops.adoc: -------------------------------------------------------------------------------- 1 | [[configuration-properties]] 2 | = Configuration Properties 3 | 4 | Below you can find a list of configuration properties. 5 | 6 | include::partial$_configprops.adoc[] 7 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/discovery-kubernetes-native.adoc: -------------------------------------------------------------------------------- 1 | [[kubernetes-native-service-discovery]] 2 | = Kubernetes native service discovery 3 | :page-section-summary-toc: 1 4 | 5 | Kubernetes itself is capable of (server side) service discovery (see: https://kubernetes.io/docs/concepts/services-networking/service/#discovering-services). 6 | Using native kubernetes service discovery ensures compatibility with additional tooling, such as Istio (https://istio.io), a service mesh that is capable of load balancing, circuit breaker, failover, and much more. 7 | 8 | The caller service then need only refer to names resolvable in a particular Kubernetes cluster. A simple implementation might use a spring `RestTemplate` that refers to a fully qualified domain name (FQDN), such as `https://\{service-name}.\{namespace}.svc.\{cluster}.local:\{service-port}`. 9 | 10 | Additionally, you can use Hystrix for: 11 | 12 | * Circuit breaker implementation on the caller side, by annotating the spring boot application class with `@EnableCircuitBreaker` 13 | * Fallback functionality, by annotating the respective method with `@HystrixCommand(fallbackMethod=` 14 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/index.adoc: -------------------------------------------------------------------------------- 1 | include::spring-cloud-kubernetes.adoc[Introduction] -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/info-contributor.adoc: -------------------------------------------------------------------------------- 1 | [[info-contributor]] 2 | = Info Contributor 3 | :page-section-summary-toc: 1 4 | 5 | Spring Cloud Kubernetes includes an `InfoContributor` which adds Pod information to 6 | Spring Boot's `/info` Actuator endpoint. 7 | 8 | You can disable this `InfoContributor` by setting `management.info.kubernetes.enabled` 9 | to `false` in `application.[properties | yaml]`. 10 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/other-resources.adoc: -------------------------------------------------------------------------------- 1 | [[other-resources]] 2 | = Other Resources 3 | :page-section-summary-toc: 1 4 | 5 | This section lists other resources, such as presentations (slides) and videos about Spring Cloud Kubernetes. 6 | 7 | * https://salaboy.com/2018/09/27/the-s1p-experience/[S1P Spring Cloud on PKS] 8 | * https://salaboy.com/2018/07/18/ljc-july-18-spring-cloud-docker-k8s/[Spring Cloud, Docker, Kubernetes -> London Java Community July 2018] 9 | 10 | 11 | Please feel free to submit other resources through pull requests to https://github.com/spring-cloud/spring-cloud-kubernetes[this repository]. 12 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/pod-health-indicator.adoc: -------------------------------------------------------------------------------- 1 | [[pod-health-indicator]] 2 | = Pod Health Indicator 3 | :page-section-summary-toc: 1 4 | 5 | Spring Boot uses https://github.com/spring-projects/spring-boot/blob/main/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/health/HealthEndpoint.java[`HealthIndicator`] to expose info about the health of an application. 6 | That makes it really useful for exposing health-related information to the user and makes it a good fit for use as https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/[readiness probes]. 7 | 8 | The Kubernetes health indicator (which is part of the core module) exposes the following info: 9 | 10 | * Pod name, IP address, namespace, service account, node name, and its IP address 11 | * A flag that indicates whether the Spring Boot application is internal or external to Kubernetes 12 | 13 | You can disable this `HealthContributor` by setting `management.health.kubernetes.enabled` 14 | to `false` in `application.[properties | yaml]`. 15 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/property-source-config/order_of_configMaps_and_secrets.adoc: -------------------------------------------------------------------------------- 1 | [[order_of_configMaps_and_secrets]] 2 | = Order of ConfigMaps and Secrets 3 | :page-section-summary-toc: 1 4 | 5 | If, for whatever reason, you enabled both configmaps and secrets, and there is a common property between them, the value from the ConfigMap will have a higher precedence. That is: it will override whatever values are found in secrets. 6 | 7 | -------------------------------------------------------------------------------- /docs/modules/ROOT/pages/service-registry.adoc: -------------------------------------------------------------------------------- 1 | [[service-registry-implementation]] 2 | = Service Registry Implementation 3 | :page-section-summary-toc: 1 4 | 5 | In Kubernetes service registration is controlled by the platform, the application itself does not control 6 | registration as it may do in other platforms. For this reason using `spring.cloud.service-registry.auto-registration.enabled` 7 | or setting `@EnableDiscoveryClient(autoRegister=false)` will have no effect in Spring Cloud Kubernetes. 8 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "antora": "3.2.0-alpha.8", 4 | "@antora/atlas-extension": "1.0.0-alpha.2", 5 | "@antora/collector-extension": "1.0.1", 6 | "@asciidoctor/tabs": "1.0.0-beta.6", 7 | "@springio/antora-extensions": "1.14.4", 8 | "@springio/asciidoctor-extensions": "1.0.0-alpha.17" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /docs/src/main/antora/resources/antora-resources/antora.yml: -------------------------------------------------------------------------------- 1 | version: @antora-component.version@ 2 | prerelease: @antora-component.prerelease@ 3 | 4 | asciidoc: 5 | attributes: 6 | attribute-missing: 'warn' 7 | chomp: 'all' 8 | project-root: @maven.multiModuleProjectDirectory@ 9 | github-repo: @docs.main@ 10 | github-raw: https://raw.githubusercontent.com/spring-cloud/@docs.main@/@github-tag@ 11 | github-code: https://github.com/spring-cloud/@docs.main@/tree/@github-tag@ 12 | github-issues: https://github.com/spring-cloud/@docs.main@/issues/ 13 | github-wiki: https://github.com/spring-cloud/@docs.main@/wiki 14 | spring-cloud-version: @project.version@ 15 | github-tag: @github-tag@ 16 | version-type: @version-type@ 17 | docs-url: https://docs.spring.io/@docs.main@/docs/@project.version@ 18 | raw-docs-url: https://raw.githubusercontent.com/spring-cloud/@docs.main@/@github-tag@ 19 | project-version: @project.version@ 20 | project-name: @docs.main@ 21 | -------------------------------------------------------------------------------- /docs/src/main/asciidoc/README.adoc: -------------------------------------------------------------------------------- 1 | include::../../../modules/ROOT/pages/spring-cloud-kubernetes.adoc[] 2 | -------------------------------------------------------------------------------- /header.txt: -------------------------------------------------------------------------------- 1 | Copyright (C) ${project.inceptionYear} ${owner} 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | https://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /runSonar.sh: -------------------------------------------------------------------------------- 1 | ./mvnw -s .settings.xml clean install -Dservice.occurence=${_SERVICE_OCCURENCE} #org.jacoco:jacoco-maven-plugin:prepare-agent install -U -P sonar 2 | -------------------------------------------------------------------------------- /scripts/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | ./mvnw deploy -DskipTests -B -Pfast,deploy ${@} 5 | ./mvnw dockerfile:push -pl :spring-cloud-kubernetes-configuration-watcher -Pdockerpush ${@} 6 | ./mvnw dockerfile:push -pl :spring-cloud-kubernetes-discoveryserver -Pdockerpush ${@} 7 | ./mvnw dockerfile:push -pl :spring-cloud-kubernetes-configserver -Pdockerpush ${@} 8 | -------------------------------------------------------------------------------- /scripts/integration-tests.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -e 3 | 4 | if [ -f "~/.testcontainers.properties" ]; then 5 | rm ~/.testcontainers.properties 6 | fi 7 | echo 'testcontainers.reuse.enable=true' > ~/.testcontainers.properties 8 | 9 | ./mvnw clean install -B -Pdocs ${@} 10 | 11 | rm ~/.testcontainers.properties 12 | docker kill $(docker ps -q) 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.env.EnvironmentPostProcessor=\ 2 | org.springframework.cloud.kubernetes.client.profile.KubernetesClientProfileEnvironmentPostProcessor 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-autoconfig/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.client.KubernetesClientAutoConfiguration 2 | org.springframework.cloud.kubernetes.client.KubernetesClientActuatorConfiguration 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-autoconfig/src/test/java/org/springframework/cloud/kubernetes/client/default_api/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.default_api; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | class App { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/main/java/org/springframework/cloud/kubernetes/client/config/KubernetesClientContextToSourceData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config; 18 | 19 | import java.util.function.Function; 20 | 21 | import org.springframework.cloud.kubernetes.commons.config.SourceData; 22 | 23 | /** 24 | * A more succinct way to define a Function from KubernetesClientConfigContext to 25 | * SourceData. 26 | * 27 | * @author wind57 28 | */ 29 | interface KubernetesClientContextToSourceData extends Function { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.client.config.KubernetesClientBootstrapConfiguration,\ 3 | org.springframework.cloud.kubernetes.client.config.KubernetesClientRetryBootstrapConfiguration 4 | # ConfigData Location Resolvers 5 | org.springframework.boot.context.config.ConfigDataLocationResolver=\ 6 | org.springframework.cloud.kubernetes.client.config.KubernetesClientConfigDataLocationResolver 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.client.config.reload.KubernetesClientConfigReloadAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/Application.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | public class Application { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/labeled_config_map_with_profile/properties/Blue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.labeled_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("blue") 22 | public class Blue { 23 | 24 | private String one; 25 | 26 | public String getOne() { 27 | return one; 28 | } 29 | 30 | public void setOne(String one) { 31 | this.one = one; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/labeled_config_map_with_profile/properties/Green.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.labeled_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-configmap") 22 | public class Green { 23 | 24 | private String two; 25 | 26 | public String getTwo() { 27 | return two; 28 | } 29 | 30 | public void setTwo(String two) { 31 | this.two = two; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/labeled_secret_with_profile/properties/Blue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("blue") 22 | public class Blue { 23 | 24 | private String one; 25 | 26 | public String getOne() { 27 | return one; 28 | } 29 | 30 | public void setOne(String one) { 31 | this.one = one; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/labeled_secret_with_profile/properties/Green.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-secret") 22 | public class Green { 23 | 24 | private String two; 25 | 26 | public String getTwo() { 27 | return two; 28 | } 29 | 30 | public void setTwo(String two) { 31 | this.two = two; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/labeled_secret_with_profile/properties/GreenK8s.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-secret-k8s") 22 | public class GreenK8s { 23 | 24 | private String six; 25 | 26 | public String getSix() { 27 | return six; 28 | } 29 | 30 | public void setSix(String six) { 31 | this.six = six; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/single_source_multiple_files/properties/Name.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.single_source_multiple_files.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("cool") 22 | public class Name { 23 | 24 | private String name; 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | 30 | public void setName(String name) { 31 | this.name = name; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/applications/single_source_multiple_files/properties/Type.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.applications.single_source_multiple_files.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("fruit") 22 | public class Type { 23 | 24 | private String type; 25 | 26 | public String getType() { 27 | return type; 28 | } 29 | 30 | public void setType(String type) { 31 | this.type = type; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/configmap_retry/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.configmap_retry; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | class App { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/java/org/springframework/cloud/kubernetes/client/config/secrets_retry/SecretsRetryApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.config.secrets_retry; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | class SecretsRetryApplication { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/include-profile-specific-sources.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: include-profile-specific-sources 4 | cloud: 5 | kubernetes: 6 | config: 7 | includeProfileSpecificSources: false 8 | namespace: spring-k8s 9 | sources: 10 | - name: config-map-one 11 | includeProfileSpecificSources: true 12 | - name: config-map-two 13 | includeProfileSpecificSources: false 14 | - name: config-map-three 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/labeled-configmap-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-configmap-with-prefix 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | sources: 11 | - labels: 12 | letter: a 13 | useNameAsPrefix: false 14 | - labels: 15 | letter: b 16 | explicitPrefix: two 17 | - labels: 18 | letter: c 19 | - labels: 20 | letter: d 21 | useNameAsPrefix: true 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/labeled-configmap-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-configmap-with-profile 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - labels: 13 | color: blue 14 | explicitPrefix: blue 15 | includeProfileSpecificSources: false 16 | - labels: 17 | color: green 18 | - labels: 19 | color: red 20 | - labels: 21 | color: yellow 22 | useNameAsPrefix: true 23 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/labeled-secret-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-secret-with-prefix 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | sources: 11 | - labels: 12 | letter: a 13 | useNameAsPrefix: false 14 | - labels: 15 | letter: b 16 | explicitPrefix: two 17 | - labels: 18 | letter: c 19 | - labels: 20 | letter: d 21 | useNameAsPrefix: true 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/labeled-secret-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-secret-with-profile 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - labels: 13 | color: blue 14 | explicitPrefix: blue 15 | includeProfileSpecificSources: false 16 | - labels: 17 | color: green 18 | - labels: 19 | color: red 20 | - labels: 21 | color: yellow 22 | useNameAsPrefix: true 23 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/named-configmap-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-config-map-with-prefix 4 | cloud: 5 | kubernetes: 6 | config: 7 | useNameAsPrefix: true 8 | namespace: spring-k8s 9 | sources: 10 | - name: config-map-one 11 | useNameAsPrefix: false 12 | - name: config-map-two 13 | explicitPrefix: two 14 | - name: config-map-three 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/named-configmap-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-configmap-with-profile 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - name: configmap-one 13 | useNameAsPrefix: false 14 | - name: configmap-two 15 | explicitPrefix: two 16 | includeProfileSpecificSources: false 17 | - name: configmap-three 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/named-secret-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-secret-with-prefix 4 | cloud: 5 | kubernetes: 6 | client: 7 | namespace: spring-k8s 8 | secrets: 9 | enableApi: true 10 | useNameAsPrefix: true 11 | sources: 12 | - name: secret-one 13 | useNameAsPrefix: false 14 | - name: secret-two 15 | explicitPrefix: two 16 | - name: secret-three 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/named-secret-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-secret-with-prefix 4 | cloud: 5 | kubernetes: 6 | client: 7 | namespace: spring-k8s 8 | secrets: 9 | enableApi: true 10 | useNameAsPrefix: true 11 | includeProfileSpecificSources: true 12 | sources: 13 | - name: secret-one 14 | useNameAsPrefix: false 15 | - name: secret-two 16 | explicitPrefix: two 17 | includeProfileSpecificSources: false 18 | - name: secret-three 19 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/retryable-sources-order.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sources-order 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | fail-fast: true 8 | enabled: true 9 | enableApi: true 10 | namespace: spring-k8s 11 | sources: 12 | - name: my-secret 13 | config: 14 | fail-fast: true 15 | namespace: spring-k8s 16 | sources: 17 | - name: my-configmap 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/sanitize-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sanitize 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | sources: 9 | - name: sanitize-secret 10 | namespaces: test 11 | - name: sanitize-secret-two 12 | namespaces: test 13 | config: 14 | sources: 15 | - name: sanitize-configmap 16 | namespace: test 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/sanitize.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sanitize 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | sources: 9 | - name: sanitize-secret 10 | namespaces: test 11 | config: 12 | sources: 13 | - name: sanitize-configmap 14 | namespace: test 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/single-source-multiple-files.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: fruit 4 | cloud: 5 | kubernetes: 6 | config: 7 | namespace: spring-k8s 8 | sources: 9 | - name: my-configmap 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-config/src/test/resources/sources-order.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sources-order 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enabled: true 8 | enableApi: true 9 | namespace: spring-k8s 10 | sources: 11 | - name: my-secret 12 | config: 13 | namespace: spring-k8s 14 | sources: 15 | - name: my-configmap 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-discovery/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.client.discovery.KubernetesDiscoveryClientConfigClientBootstrapConfiguration 3 | 4 | org.springframework.boot.BootstrapRegistryInitializer=\ 5 | org.springframework.cloud.kubernetes.client.discovery.KubernetesClientConfigServerBootstrapper 6 | 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.client.discovery.catalog.KubernetesCatalogWatchAutoConfiguration 2 | org.springframework.cloud.kubernetes.client.discovery.KubernetesInformerDiscoveryClientAutoConfiguration 3 | org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerAutoConfiguration 4 | org.springframework.cloud.kubernetes.client.discovery.reactive.KubernetesInformerReactiveDiscoveryClientAutoConfiguration 5 | org.springframework.cloud.kubernetes.client.discovery.KubernetesClientInformerSelectiveNamespacesAutoConfiguration 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-discovery/src/test/java/org/springframework/cloud/kubernetes/client/discovery/SharedInformerFactoryStub.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.client.discovery; 18 | 19 | import io.kubernetes.client.informer.SharedInformerFactory; 20 | 21 | /** 22 | * @author wind57 23 | */ 24 | final class SharedInformerFactoryStub extends SharedInformerFactory { 25 | 26 | @Override 27 | public void startAllRegisteredInformers() { 28 | 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-discovery/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-loadbalancer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.client.loadbalancer.KubernetesClientLoadBalancerAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-client-loadbalancer/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/EnvReader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2020 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons; 18 | 19 | /** 20 | * @author wind57 21 | * 22 | * a class that should be used instead of System::getEnv, uselfull for testing 23 | */ 24 | public final class EnvReader { 25 | 26 | private EnvReader() { 27 | } 28 | 29 | public static String getEnv(String property) { 30 | return System.getenv(property); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/KubernetesConfigServerInstanceProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2012-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import java.util.List; 20 | 21 | import org.springframework.cloud.client.ServiceInstance; 22 | 23 | /** 24 | * @author Ryan Baxter 25 | */ 26 | public interface KubernetesConfigServerInstanceProvider { 27 | 28 | List getInstances(String serviceId); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/MountConfigMapPropertySource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import java.util.Map; 20 | 21 | import org.springframework.core.env.MapPropertySource; 22 | 23 | /** 24 | * @author wind57 25 | */ 26 | public final class MountConfigMapPropertySource extends MapPropertySource { 27 | 28 | public MountConfigMapPropertySource(String name, Map source) { 29 | super(name, source); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/PrefixContext.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import java.util.Map; 20 | import java.util.Set; 21 | 22 | /** 23 | * A holder for data needed to compute prefix based properties, in case of a secret or 24 | * config map. 25 | * 26 | * @author wind57 27 | * @deprecated will be deleted in a future release. 28 | */ 29 | @Deprecated(forRemoval = true) 30 | public record PrefixContext(Map data, String prefix, String namespace, 31 | Set propertySourceNames) { 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/SourceData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import java.util.Map; 20 | 21 | /** 22 | * Holds the data for a certain source. For example the contents (sourceData) for secret 23 | * with name sourceName. 24 | * 25 | * @author wind57 26 | */ 27 | public record SourceData(String sourceName, Map sourceData) { 28 | 29 | public static SourceData emptyRecord(String sourceName) { 30 | return new SourceData(sourceName, Map.of()); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/config/StrippedSourceContainer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import java.util.Map; 20 | 21 | /** 22 | * @author wind57 23 | * 24 | * Container for some of the source's fields, it holds its labels (nullable), name and 25 | * data. 26 | */ 27 | public record StrippedSourceContainer(Map labels, String name, Map data) { 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/EndpointNameAndNamespace.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | /** 20 | * Encapsulates an endpoint name and a namespace, needed for CatalogWatcher 21 | * implementations. 22 | * 23 | * @author wind57 24 | */ 25 | public record EndpointNameAndNamespace(String endpointName, String namespace) { 26 | } 27 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/InstanceIdHostPodName.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | /** 20 | * computes instanceId, host and podName. All needed when calculating ServiceInstance. 21 | * 22 | * @author wind57 23 | */ 24 | public record InstanceIdHostPodName(String instanceId, String host, String podName) { 25 | } 26 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/KubernetesDiscoveryPropertiesAutoConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | import org.springframework.boot.context.properties.EnableConfigurationProperties; 20 | 21 | /** 22 | * @author wind57 23 | */ 24 | @EnableConfigurationProperties(KubernetesDiscoveryProperties.class) 25 | public class KubernetesDiscoveryPropertiesAutoConfiguration { 26 | 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/PodLabelsAndAnnotations.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | import java.util.Map; 20 | 21 | /** 22 | * Holds pod labels and annotations. 23 | * 24 | * @author wind57 25 | */ 26 | public record PodLabelsAndAnnotations(Map labels, Map annotations) { 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/Service.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | import java.util.List; 20 | 21 | /** 22 | * Use for discovery service implementation. 23 | * 24 | * @author wind57 25 | */ 26 | public record Service(String name, List serviceInstances) { 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/ServiceMetadata.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | import java.util.Map; 20 | 21 | /** 22 | * Holds service name, namespace, spec.type, labels and annotations. 23 | * 24 | * @author wind57 25 | * 26 | */ 27 | public record ServiceMetadata(String name, String namespace, String type, Map labels, 28 | Map annotations) { 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/discovery/ServicePortNameAndNumber.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2019-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.discovery; 18 | 19 | import jakarta.annotation.Nullable; 20 | 21 | /** 22 | * @author wind57 23 | */ 24 | public record ServicePortNameAndNumber(@Nullable Integer portNumber, @Nullable String portName) { 25 | } 26 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/leader/LeaderRecordWatcher.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2020 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.leader; 18 | 19 | /** 20 | * @author Ryan Baxter 21 | */ 22 | public interface LeaderRecordWatcher { 23 | 24 | void start(); 25 | 26 | void stop(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/leader/PodReadinessWatcher.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2020 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.leader; 18 | 19 | /** 20 | * @author Ryan Baxter 21 | */ 22 | public interface PodReadinessWatcher { 23 | 24 | void start(); 25 | 26 | void stop(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/java/org/springframework/cloud/kubernetes/commons/loadbalancer/KubernetesLoadBalancerMode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.loadbalancer; 18 | 19 | /** 20 | * Kubernetes load balancer mode enum. 21 | * 22 | * @author Piotr Minkowski 23 | */ 24 | public enum KubernetesLoadBalancerMode { 25 | 26 | /** 27 | * using pod ip and port. 28 | */ 29 | POD, 30 | /** 31 | * using kubernetes service name and port. 32 | */ 33 | SERVICE 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.commons.config.KubernetesBootstrapConfiguration 3 | 4 | # ConfigData Loaders 5 | org.springframework.boot.context.config.ConfigDataLoader=\ 6 | org.springframework.cloud.kubernetes.commons.config.KubernetesConfigDataLoader 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.commons.KubernetesCommonsAutoConfiguration 2 | org.springframework.cloud.kubernetes.commons.KubernetesCommonsSanitizeAutoConfiguration 3 | org.springframework.cloud.kubernetes.commons.config.reload.ConfigReloadAutoConfiguration 4 | org.springframework.cloud.kubernetes.commons.config.reload.ConfigReloadPropertiesAutoConfiguration 5 | org.springframework.cloud.kubernetes.commons.discovery.KubernetesDiscoveryPropertiesAutoConfiguration 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | public class App { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/test/java/org/springframework/cloud/kubernetes/commons/config/SourceDataTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.commons.config; 18 | 19 | import org.assertj.core.api.Assertions; 20 | import org.junit.jupiter.api.Test; 21 | 22 | /** 23 | * @author wind57 24 | */ 25 | class SourceDataTests { 26 | 27 | @Test 28 | void testEmpty() { 29 | Assertions.assertThat(SourceData.emptyRecord("name").sourceData()).isEmpty(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-commons/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.configserver.KubernetesConfigServerAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: kubernetesconfigserver 4 | 5 | server: 6 | port: 8888 7 | 8 | --- 9 | spring: 10 | config: 11 | activate: 12 | on-cloud-platform: kubernetes 13 | import: "optional:kubernetes:" 14 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.configserver.configurations.FirstConfig,\ 3 | org.springframework.cloud.kubernetes.configserver.configurations.SecondConfig 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configserver/src/test/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.configserver.KubernetesConfigServerAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.configuration.watcher.ConfigurationWatcherAutoConfiguration 2 | org.springframework.cloud.kubernetes.configuration.watcher.ConfigUpdateStrategyAutoConfiguration 3 | org.springframework.cloud.kubernetes.configuration.watcher.BusKafkaAutoConfiguration 4 | org.springframework.cloud.kubernetes.configuration.watcher.BusRabbitAutoConfiguration 5 | org.springframework.cloud.kubernetes.configuration.watcher.RefreshTriggerAutoConfiguration 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/resources/application-bus-amqp.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | bus: 4 | enabled: true 5 | stream: 6 | default-binder: rabbit 7 | management: 8 | health: 9 | rabbit: 10 | enabled: true 11 | 12 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/resources/application-bus-kafka.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | bus: 4 | enabled: true 5 | stream: 6 | default-binder: kafka 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-configuration-watcher/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | config: 3 | import: "kubernetes:" 4 | application: 5 | name: spring-cloud-kubernetes-configuration-watcher 6 | cloud: 7 | kubernetes: 8 | reload: 9 | enabled: true 10 | monitoring-secrets: true 11 | strategy: shutdown 12 | bus: 13 | enabled: false 14 | management: 15 | health: 16 | rabbit: 17 | enabled: false 18 | endpoint: 19 | health: 20 | probes: 21 | enabled: true 22 | server: 23 | port: 8888 24 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-controllers/spring-cloud-kubernetes-discoveryserver/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | server: 2 | port: 8761 3 | 4 | # needed to disable the publication of InstanceRegisteredEvent 5 | # which in case of discovery server would not be needed. 6 | spring: 7 | cloud: 8 | discovery: 9 | client: 10 | health-indicator: 11 | enabled: false 12 | 13 | management: 14 | endpoint: 15 | health: 16 | group: 17 | liveness: 18 | include: livenessState, kubernetes 19 | readiness: 20 | include: readinessState, kubernetes 21 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/main/java/org/springframework/cloud/kubernetes/discovery/DiscoveryServerUrlInvalidException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.discovery; 18 | 19 | /** 20 | * @author Ryan Baxter 21 | */ 22 | public class DiscoveryServerUrlInvalidException extends RuntimeException { 23 | 24 | public DiscoveryServerUrlInvalidException() { 25 | super("'spring.cloud.kubernetes.discovery.discovery-server-url' must be specified and be a valid URL."); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/main/resources/META-INF/spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "groups": [ 3 | { 4 | "name": "spring.cloud.kubernetes.discovery", 5 | "type": "org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientProperties", 6 | "sourceType": "org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientProperties" 7 | } 8 | ], 9 | "properties": [ 10 | { 11 | "name": "spring.cloud.kubernetes.discovery.discovery-server-url", 12 | "type": "java.lang.String", 13 | "sourceType": "org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientProperties" 14 | }, 15 | { 16 | "name": "spring.cloud.kubernetes.discovery.enabled", 17 | "type": "java.lang.Boolean", 18 | "sourceType": "org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientProperties", 19 | "defaultValue": true 20 | } 21 | ], 22 | "hints": [] 23 | } -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.BootstrapRegistryInitializer=\ 2 | org.springframework.cloud.kubernetes.discovery.ConfigServerBootstrapper 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientBlockingAutoConfiguration 2 | org.springframework.cloud.kubernetes.discovery.KubernetesDiscoveryClientReactiveAutoConfiguration 3 | org.springframework.cloud.kubernetes.discovery.KubernetesCatalogWatchAutoConfiguration 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/test/java/org/springframework/cloud/kubernetes/discovery/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2023 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.discovery; 18 | 19 | import org.springframework.boot.SpringBootConfiguration; 20 | import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 21 | 22 | /** 23 | * @author wind57 24 | */ 25 | @SpringBootConfiguration 26 | @EnableAutoConfiguration 27 | class App { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-discovery/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-examples/kubernetes-leader-election-example/leader-role.yml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: Role 3 | metadata: 4 | name: leader 5 | labels: 6 | app: kubernetes-leader-election-example 7 | group: org.springframework.cloud 8 | rules: 9 | - apiGroups: 10 | - "" 11 | resources: 12 | - pods 13 | verbs: 14 | - watch 15 | - get 16 | - apiGroups: 17 | - "" 18 | resources: 19 | - configmaps 20 | verbs: 21 | - watch 22 | - get 23 | - update 24 | # resourceNames: 25 | # - 26 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-examples/kubernetes-leader-election-example/leader-rolebinding.yml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | labels: 5 | app: kubernetes-leader-election-example 6 | group: org.springframework.cloud 7 | name: leader 8 | roleRef: 9 | apiGroup: "" 10 | kind: Role 11 | name: leader 12 | subjects: 13 | - kind: ServiceAccount 14 | name: default 15 | apiGroup: "" 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/main/java/org/springframework/cloud/kubernetes/examples/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.examples; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | @SpringBootApplication 23 | public class App { 24 | 25 | public static void main(String[] args) { 26 | SpringApplication.run(App.class, args); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-examples/kubernetes-leader-election-example/src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | # Role to which leader election this instance will participate 2 | spring.cloud.kubernetes.leader.role=world 3 | # Configmap to which leader election metadata will be saved 4 | spring.cloud.kubernetes.leader.config-map-name=leader 5 | logging.level.org.springframework.cloud.kubernetes.fabric8.leader=DEBUG 6 | logging.level.org.springframework.cloud.kubernetes.commons.leader=DEBUG 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-autoconfig/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.env.EnvironmentPostProcessor=\ 2 | org.springframework.cloud.kubernetes.fabric8.profile.Fabric8ProfileEnvironmentPostProcessor 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-autoconfig/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.Fabric8AutoConfiguration 2 | org.springframework.cloud.kubernetes.fabric8.Fabric8ActuatorConfiguration 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-autoconfig/src/test/java/org/springframework/cloud/kubernetes/example/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.example; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | public class App { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/main/java/org/springframework/cloud/kubernetes/fabric8/config/Fabric8ContextToSourceData.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config; 18 | 19 | import java.util.function.Function; 20 | 21 | import org.springframework.cloud.kubernetes.commons.config.SourceData; 22 | 23 | /** 24 | * A more succinct way to define a Function from Fabric8ConfigContext to SourceData. 25 | * 26 | * @author wind57 27 | */ 28 | interface Fabric8ContextToSourceData extends Function { 29 | 30 | } 31 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/main/resources/META-INF/additional-spring-configuration-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "properties": [ 3 | { 4 | "name": "spring.cloud.kubernetes.config.enabled", 5 | "type": "java.lang.Boolean", 6 | "description": "Enable the ConfigMap property source locator.", 7 | "defaultValue": true 8 | }, 9 | { 10 | "name": "spring.cloud.kubernetes.secrets.enabled", 11 | "type": "java.lang.Boolean", 12 | "description": "Enable the Secrets property source locator.", 13 | "defaultValue": true 14 | } 15 | ] 16 | } 17 | 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.fabric8.config.Fabric8BootstrapConfiguration,\ 3 | org.springframework.cloud.kubernetes.fabric8.config.Fabric8RetryBootstrapConfiguration 4 | # ConfigData Location Resolvers 5 | org.springframework.boot.context.config.ConfigDataLocationResolver=\ 6 | org.springframework.cloud.kubernetes.fabric8.config.Fabric8ConfigDataLocationResolver 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.config.reload.Fabric8ConfigReloadAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/TestApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | @SpringBootApplication 23 | public class TestApplication { 24 | 25 | public static void main(String[] args) { 26 | SpringApplication.run(TestApplication.class, args); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/core_system_properties/BootstrapCoreTestClientViaSystemPropertiesTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.core_system_properties; 18 | 19 | import org.springframework.test.context.TestPropertySource; 20 | 21 | @TestPropertySource(properties = "spring.cloud.bootstrap.eanbled=true") 22 | class BootstrapCoreTestClientViaSystemPropertiesTests extends CoreTestClientViaSystemProperties { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/core_system_properties/ConfigDataCoreTestClientViaSystemPropertiesTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.core_system_properties; 18 | 19 | import org.springframework.test.context.TestPropertySource; 20 | 21 | @TestPropertySource(properties = { "spring.config.import=kubernetes:" }) 22 | public class ConfigDataCoreTestClientViaSystemPropertiesTests extends CoreTestClientViaSystemProperties { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/example/ResponseMessage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2019 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.example; 18 | 19 | /** 20 | * @author Charles Moulliard 21 | */ 22 | record ResponseMessage(String content) { 23 | } 24 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_config_map_with_prefix/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_config_map_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_config_map_with_prefix/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_config_map_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_config_map_with_profile/properties/Blue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("blue") 22 | public class Blue { 23 | 24 | private String one; 25 | 26 | public String getOne() { 27 | return one; 28 | } 29 | 30 | public void setOne(String one) { 31 | this.one = one; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_config_map_with_profile/properties/Green.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-configmap") 22 | public class Green { 23 | 24 | private String two; 25 | 26 | public String getTwo() { 27 | return two; 28 | } 29 | 30 | public void setTwo(String two) { 31 | this.two = two; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_config_map_with_profile/properties/GreenK8s.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-configmap-k8s") 22 | public class GreenK8s { 23 | 24 | private String six; 25 | 26 | public String getSix() { 27 | return six; 28 | } 29 | 30 | public void setSix(String six) { 31 | this.six = six; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_secret_with_prefix/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_secret_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_secret_with_prefix/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_secret_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_secret_with_profile/properties/Blue.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("blue") 22 | public class Blue { 23 | 24 | private String one; 25 | 26 | public String getOne() { 27 | return one; 28 | } 29 | 30 | public void setOne(String one) { 31 | this.one = one; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_secret_with_profile/properties/Green.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-secret") 22 | public class Green { 23 | 24 | private String two; 25 | 26 | public String getTwo() { 27 | return two; 28 | } 29 | 30 | public void setTwo(String two) { 31 | this.two = two; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/labeled_secret_with_profile/properties/GreenSecretK8s.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.labeled_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("green-secret-k8s") 22 | public class GreenSecretK8s { 23 | 24 | private String six; 25 | 26 | public String getSix() { 27 | return six; 28 | } 29 | 30 | public void setSix(String six) { 31 | this.six = six; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_config_map_with_prefix/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_config_map_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_config_map_with_prefix/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_config_map_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_config_map_with_profile/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_config_map_with_profile/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_config_map_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_secret_with_prefix/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_secret_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_secret_with_prefix/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_secret_with_prefix.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_secret_with_profile/properties/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("one") 22 | public class One { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/named_secret_with_profile/properties/Two.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.named_secret_with_profile.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("two") 22 | public class Two { 23 | 24 | private String property; 25 | 26 | public String getProperty() { 27 | return property; 28 | } 29 | 30 | public void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/secrets_with_labels/One.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.secrets_with_labels; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("secret") 22 | class One { 23 | 24 | private String property; 25 | 26 | String getProperty() { 27 | return property; 28 | } 29 | 30 | void setProperty(String property) { 31 | this.property = property; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/single_source_multiple_files/properties/Name.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.single_source_multiple_files.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("cool") 22 | public class Name { 23 | 24 | private String name; 25 | 26 | public String getName() { 27 | return name; 28 | } 29 | 30 | public void setName(String name) { 31 | this.name = name; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/java/org/springframework/cloud/kubernetes/fabric8/config/single_source_multiple_files/properties/Type.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.config.single_source_multiple_files.properties; 18 | 19 | import org.springframework.boot.context.properties.ConfigurationProperties; 20 | 21 | @ConfigurationProperties("fruit") 22 | public class Type { 23 | 24 | private String type; 25 | 26 | public String getType() { 27 | return type; 28 | } 29 | 30 | public void setType(String type) { 31 | this.type = type; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.client.config.EnableRetryBootstrapConfiguration 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/adhoc.properties: -------------------------------------------------------------------------------- 1 | dummy.property.string4=a 2 | dummy.property.int4=1 3 | dummy.property.bool4=true 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/adhoc.yml: -------------------------------------------------------------------------------- 1 | dummy: 2 | property: 3 | string3: "a" 4 | int3: 1 5 | bool3: true 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application-path.yaml: -------------------------------------------------------------------------------- 1 | bean: 2 | greeting: "Hello ConfigMap, %s from path" 3 | farewell: "Bye ConfigMap, %s from path" 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application-secrets.properties: -------------------------------------------------------------------------------- 1 | spring.application.name=test-secret 2 | spring.cloud.kubernetes.reload.enabled=false 3 | logging.level.org.springframework.cloud.kubernetes.fabric8.config.Fabric8SecretsPropertySource=DEBUG 4 | spring.cloud.kubernetes.secrets.labels.foo=bar 5 | spring.cloud.kubernetes.secrets.enableApi=true 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application-with-active-profiles-name.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | config: 3 | activate: 4 | on-profile: development 5 | bean: 6 | greeting: "Hello ConfigMap Active Profile Name, %s!" 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application-with-profiles.yaml: -------------------------------------------------------------------------------- 1 | bean: 2 | greeting: "Hello ConfigMap default, %s!" 3 | farewell: "Goodbye ConfigMap default, %s!" 4 | --- 5 | spring: 6 | config: 7 | activate: 8 | on-profile: development 9 | bean: 10 | greeting: "Hello ConfigMap dev, %s!" 11 | --- 12 | spring: 13 | config: 14 | activate: 15 | on-profile: production 16 | bean: 17 | greeting: "Hello ConfigMap prod, %s!" 18 | --- 19 | spring: 20 | config: 21 | activate: 22 | on-profile: production & us-east 23 | bean: 24 | greeting: "Hello ConfigMap production and us-east, %s!" 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application-without-profiles.yaml: -------------------------------------------------------------------------------- 1 | bean: 2 | greeting: "Hello ConfigMap, %s!" 3 | farewell: "Goodbye ConfigMap, %s!" 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application.properties: -------------------------------------------------------------------------------- 1 | dummy.property.string1=a 2 | dummy.property.int1=1 3 | dummy.property.bool1=true 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/application.yaml: -------------------------------------------------------------------------------- 1 | dummy: 2 | property: 3 | string2: "a" 4 | int2: 1 5 | bool2: true 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/include-profile-specific-sources.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: include-profile-specific-sources 4 | cloud: 5 | kubernetes: 6 | config: 7 | includeProfileSpecificSources: false 8 | namespace: spring-k8s 9 | sources: 10 | - name: config-map-one 11 | includeProfileSpecificSources: true 12 | - name: config-map-two 13 | includeProfileSpecificSources: false 14 | - name: config-map-three 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/labeled-configmap-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-configmap-with-prefix 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | sources: 11 | - labels: 12 | letter: a 13 | useNameAsPrefix: false 14 | - labels: 15 | letter: b 16 | explicitPrefix: two 17 | - labels: 18 | letter: c 19 | - labels: 20 | letter: d 21 | useNameAsPrefix: true 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/labeled-configmap-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-configmap-with-profile 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - labels: 13 | color: blue 14 | explicitPrefix: blue 15 | includeProfileSpecificSources: false 16 | - labels: 17 | color: green 18 | - labels: 19 | color: red 20 | - labels: 21 | color: yellow 22 | useNameAsPrefix: true 23 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/labeled-secret-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-secret-with-prefix 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | sources: 11 | - labels: 12 | letter: a 13 | useNameAsPrefix: false 14 | - labels: 15 | letter: b 16 | explicitPrefix: two 17 | - labels: 18 | letter: c 19 | - labels: 20 | letter: d 21 | useNameAsPrefix: true 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/labeled-secret-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: labeled-secret-with-profile 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - labels: 13 | color: blue 14 | explicitPrefix: blue 15 | includeProfileSpecificSources: false 16 | - labels: 17 | color: green 18 | - labels: 19 | color: red 20 | - labels: 21 | color: yellow 22 | useNameAsPrefix: true 23 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/multiple-secrets.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: secret-example 4 | cloud: 5 | kubernetes: 6 | enabled: true 7 | reload: 8 | enabled: false 9 | monitoring-secrets: true 10 | secrets: 11 | enabled: true 12 | enable-api: true 13 | namespace: ns1 14 | sources: 15 | - name: name1 16 | labels: 17 | - env: 'env1' 18 | - version: '1.0' 19 | - name: name2 20 | namespace: ns2 21 | labels: 22 | - env: 'dev2' 23 | - version: '2.0' 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/multiplecms.yml: -------------------------------------------------------------------------------- 1 | --- 2 | spring: 3 | application: 4 | name: name-in-file 5 | cloud: 6 | kubernetes: 7 | reload: 8 | enabled: false 9 | config: 10 | name: defname 11 | namespace: defnamespace 12 | sources: 13 | - name: s1 14 | - namespace: s2 15 | - name: othername 16 | namespace: othernamespace 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/named-config-map-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-config-map-with-prefix 4 | cloud: 5 | kubernetes: 6 | config: 7 | useNameAsPrefix: true 8 | namespace: spring-k8s 9 | sources: 10 | - name: config-map-one 11 | useNameAsPrefix: false 12 | - name: config-map-two 13 | explicitPrefix: two 14 | - name: config-map-three 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/named-configmap-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-configmap-with-profile 4 | cloud: 5 | kubernetes: 6 | config: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - name: configmap-one 13 | useNameAsPrefix: false 14 | - name: configmap-two 15 | explicitPrefix: two 16 | includeProfileSpecificSources: false 17 | - name: configmap-three 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/named-secret-with-prefix.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-secret-with-prefix 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | sources: 11 | - name: secret-one 12 | useNameAsPrefix: false 13 | - name: secret-two 14 | explicitPrefix: two 15 | - name: secret-three 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/named-secret-with-profile.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: named-secret-with-profile 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | useNameAsPrefix: true 9 | namespace: spring-k8s 10 | includeProfileSpecificSources: true 11 | sources: 12 | - name: secret-one 13 | useNameAsPrefix: false 14 | - name: secret-two 15 | explicitPrefix: two 16 | includeProfileSpecificSources: false 17 | - name: secret-three 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/retryable-sources-order.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sources-order 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | fail-fast: true 8 | enabled: true 9 | enableApi: true 10 | namespace: spring-k8s 11 | sources: 12 | - name: my-secret 13 | config: 14 | fail-fast: true 15 | namespace: spring-k8s 16 | sources: 17 | - name: my-configmap 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/sanitize-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sanitize 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | sources: 9 | - name: sanitize-secret 10 | namespaces: test 11 | - name: sanitize-secret-two 12 | namespaces: test 13 | config: 14 | sources: 15 | - name: sanitize-configmap 16 | namespace: test 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/sanitize.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sanitize 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | sources: 9 | - name: sanitize-secret 10 | namespaces: test 11 | config: 12 | sources: 13 | - name: sanitize-configmap 14 | namespace: test 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/secret-with-labels-config.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: with-prefix 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enableApi: true 8 | namespace: spring-k8s 9 | sources: 10 | - name: secret-two 11 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/single-source-multiple-files.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: fruit 4 | cloud: 5 | kubernetes: 6 | config: 7 | namespace: spring-k8s 8 | sources: 9 | - name: my-configmap 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-config/src/test/resources/sources-order.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: sources-order 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enabled: true 8 | enableApi: true 9 | namespace: spring-k8s 10 | sources: 11 | - name: my-secret 12 | config: 13 | namespace: spring-k8s 14 | sources: 15 | - name: my-configmap 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-discovery/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.fabric8.discovery.KubernetesDiscoveryClientConfigClientBootstrapConfiguration 3 | org.springframework.boot.BootstrapRegistryInitializer=\ 4 | org.springframework.cloud.kubernetes.fabric8.discovery.Fabric8ConfigServerBootstrapper 5 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-discovery/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.discovery.KubernetesCatalogWatchAutoConfiguration 2 | org.springframework.cloud.kubernetes.fabric8.discovery.KubernetesDiscoveryClientAutoConfiguration 3 | org.springframework.cloud.kubernetes.fabric8.discovery.reactive.KubernetesReactiveDiscoveryClientAutoConfiguration 4 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-discovery/src/test/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.context.config.ConfigDataLocationResolver=\ 2 | org.springframework.cloud.kubernetes.DummyConfigDataLocationResolver 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-discovery/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-istio/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.fabric8.client.istio.IstioBootstrapConfiguration 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-istio/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.client.istio.IstioAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-istio/src/test/java/org/springframework/cloud/kubernetes/fabric8/client/istio/App.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.client.istio; 18 | 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | 21 | @SpringBootApplication 22 | public class App { 23 | 24 | } 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-leader/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.leader.Fabric8LeaderAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-loadbalancer/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.fabric8.loadbalancer.Fabric8LoadBalancerAutoConfiguration 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-fabric8-loadbalancer/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/README: -------------------------------------------------------------------------------- 1 | Writing a new integration test should be done with minor things in mind, so that 2 | tests are picked up by our CI/CD pipeline and work as expected. In particular when you 3 | define the plugin that builds the image (integrations tests have a docker image build), 4 | you must name the image with the same name as the module. For example: 5 | 6 | 7 | 8 | org.springframework.boot 9 | spring-boot-maven-plugin 10 | 11 | docker.io/springcloud/${project.artifactId}:${project.version} 12 | 13 | 14 | 15 | build-image 16 | package 17 | 18 | build-image-no-fork 19 | 20 | 21 | 22 | repackage 23 | package 24 | 25 | repackage 26 | 27 | 28 | 29 | 30 | 31 | Notice this line: 32 | 33 | docker.io/springcloud/${project.artifactId}:${project.version} 34 | 35 | You must follow the same convention. 36 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-catalog-watcher/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-discovery/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoint: 3 | health: 4 | show-details: always 5 | endpoints: 6 | web: 7 | exposure: 8 | include: "*" 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-discovery/src/test/resources/external-name-service.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: external-name-service 5 | spec: 6 | type: ExternalName 7 | externalName: spring.io 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-discovery/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-istio/src/main/java/org/springframework/cloud/kubernetes/fabric8/client/istio/IstioApp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2021 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.fabric8.client.istio; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | /** 23 | * @author wind57 24 | */ 25 | @SpringBootApplication 26 | class IstioApp { 27 | 28 | public static void main(String[] args) { 29 | SpringApplication.run(IstioApp.class, args); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-istio/src/main/resources/bootstrap.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | istio: 4 | client: 5 | envoyPort: 15000 6 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-istio/src/test/resources/istio-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: spring-cloud-kubernetes-fabric8-client-istio 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: spring-cloud-kubernetes-fabric8-client-istio 9 | template: 10 | metadata: 11 | labels: 12 | app: spring-cloud-kubernetes-fabric8-client-istio 13 | spec: 14 | serviceAccountName: spring-cloud-kubernetes-istio-serviceaccount 15 | containers: 16 | - name: spring-cloud-kubernetes-fabric8-client-istio 17 | image: docker.io/springcloud/spring-cloud-kubernetes-fabric8-client-istio 18 | imagePullPolicy: IfNotPresent 19 | readinessProbe: 20 | httpGet: 21 | port: 8080 22 | path: /actuator/health/readiness 23 | livenessProbe: 24 | httpGet: 25 | port: 8080 26 | path: /actuator/health/liveness 27 | ports: 28 | - containerPort: 8080 29 | env: 30 | - name: LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_CLOUD_KUBERNETES_FABRIC8_CLIENT_ISTIO 31 | value: "DEBUG" 32 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-istio/src/test/resources/istio-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-fabric8-client-istio 6 | name: spring-cloud-kubernetes-fabric8-client-istio 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: spring-cloud-kubernetes-fabric8-client-istio 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-istio/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-mount.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: poll-reload-mount 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | monitoring-config-maps: true 9 | strategy: refresh 10 | mode: polling 11 | period: 5s 12 | config: 13 | paths: 14 | - /tmp/application.properties 15 | config: 16 | import: "kubernetes:" 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-no-mount.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: poll-reload 4 | config: 5 | import: "kubernetes:" 6 | cloud: 7 | kubernetes: 8 | reload: 9 | enabled: true 10 | monitoring-config-maps: true 11 | strategy: refresh 12 | mode: polling 13 | period: 5s 14 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-one.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: event-reload 4 | cloud: 5 | kubernetes: 6 | secrets: 7 | enabled: false 8 | reload: 9 | enabled: true 10 | strategy: refresh 11 | mode: event 12 | namespaces: 13 | - right 14 | monitoring-config-maps: true 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-three.yaml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | root: DEBUG 4 | 5 | spring: 6 | application: 7 | name: event-reload 8 | cloud: 9 | kubernetes: 10 | reload: 11 | enabled: true 12 | strategy: refresh 13 | mode: event 14 | namespaces: 15 | - right 16 | monitoring-config-maps: true 17 | enable-reload-filtering: true 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: event-reload 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | strategy: refresh 9 | mode: event 10 | namespaces: 11 | - right 12 | monitoring-config-maps: true 13 | 14 | main: 15 | cloud-platform: kubernetes 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-with-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: poll-reload-mount-boostrap 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | monitoring-config-maps: true 9 | strategy: refresh 10 | mode: polling 11 | period: 5s 12 | 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/application-with-secret.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: event-reload 4 | config: 5 | import: "kubernetes:" 6 | cloud: 7 | kubernetes: 8 | reload: 9 | enabled: true 10 | monitoring-secrets: true 11 | strategy: refresh 12 | mode: event 13 | monitoring-configMaps: false 14 | config: 15 | enabled: false 16 | enable-api: false 17 | secrets: 18 | enabled: true 19 | enable-api: true 20 | 21 | # otherwise we can't refresh in the test 22 | main: 23 | cloud-platform: kubernetes 24 | 25 | 26 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/bootstrap-one.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | config: 5 | sources: 6 | - namespace: right 7 | name: right-configmap 8 | 9 | # otherwise on context refresh we lose this property 10 | # and test fails, since beans are not wired. 11 | main: 12 | cloud-platform: kubernetes 13 | 14 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/bootstrap-three.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | config: 5 | sources: 6 | - namespace: right 7 | name: right-configmap 8 | - namespace: right 9 | name: right-configmap-with-label 10 | 11 | 12 | # otherwise on context refresh we lose this property 13 | # and test fails, since beans are not wired. 14 | main: 15 | cloud-platform: kubernetes 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/bootstrap-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | secrets: 5 | enabled: false 6 | config: 7 | sources: 8 | - namespace: left 9 | name: left-configmap 10 | - namespace: right 11 | name: right-configmap 12 | 13 | # otherwise on context refresh we lose this property 14 | # and test fails, since beans are not wired. 15 | main: 16 | cloud-platform: kubernetes 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/main/resources/bootstrap-with-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | config: 5 | paths: 6 | - /tmp/application.properties 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.fabric8.client.reload.Fabric8EventReloadBase.TestConfig 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: poll-reload 5 | namespace: default 6 | data: 7 | application.properties: | 8 | from.properties.key=as-mount-initial 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/left-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: left-configmap 5 | namespace: left 6 | data: 7 | left.value: "left-initial" 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/right-configmap-with-label.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: right-configmap-with-label 5 | namespace: right 6 | labels: 7 | spring.cloud.kubernetes.config.informer.enabled: true 8 | data: 9 | right.with.label.value: "right-with-label-initial" 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/right-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: right-configmap 5 | namespace: right 6 | data: 7 | right.value: "right-initial" 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: event-reload 5 | namespace: default 6 | data: 7 | # from.secret.properties.key=secret-initial 8 | application.properties: | 9 | ZnJvbS5zZWNyZXQucHJvcGVydGllcy5rZXk9c2VjcmV0LWluaXRpYWw= 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-fabric8-client-reload/src/test/resources/manifests/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-fabric8-client-reload 6 | name: spring-cloud-kubernetes-fabric8-client-reload 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: spring-cloud-kubernetes-fabric8-client-reload 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-catalog-watcher/src/test/resources/app/watcher-ingress.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: networking.k8s.io/v1 2 | kind: Ingress 3 | metadata: 4 | name: spring-cloud-kubernetes-k8s-client-catalog-watcher 5 | namespace: default 6 | spec: 7 | rules: 8 | - http: 9 | paths: 10 | - path: / 11 | pathType: Prefix 12 | backend: 13 | service: 14 | name: spring-cloud-kubernetes-k8s-client-catalog-watcher 15 | port: 16 | number: 8080 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-catalog-watcher/src/test/resources/app/watcher-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-k8s-client-catalog-watcher 6 | name: spring-cloud-kubernetes-k8s-client-catalog-watcher 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | selector: 13 | app: spring-cloud-kubernetes-k8s-client-catalog-watcher 14 | type: ClusterIP 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-catalog-watcher/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-configuration-watcher/src/test/resources/config-watcher/spring-cloud-kubernetes-configuration-watcher-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: spring-cloud-kubernetes-configuration-watcher 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: spring-cloud-kubernetes-configuration-watcher 9 | template: 10 | metadata: 11 | labels: 12 | app: spring-cloud-kubernetes-configuration-watcher 13 | spec: 14 | serviceAccountName: spring-cloud-kubernetes-serviceaccount 15 | containers: 16 | - name: spring-cloud-kubernetes-configuration-watcher 17 | image: docker.io/springcloud/spring-cloud-kubernetes-configuration-watcher 18 | imagePullPolicy: IfNotPresent 19 | readinessProbe: 20 | httpGet: 21 | port: 8888 22 | path: /actuator/health/readiness 23 | livenessProbe: 24 | httpGet: 25 | port: 8888 26 | path: /actuator/health/liveness 27 | ports: 28 | - containerPort: 8888 29 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-configuration-watcher/src/test/resources/config-watcher/spring-cloud-kubernetes-configuration-watcher-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-configuration-watcher 6 | name: spring-cloud-kubernetes-configuration-watcher 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8888 11 | targetPort: 8888 12 | selector: 13 | app: spring-cloud-kubernetes-configuration-watcher 14 | type: ClusterIP 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-configuration-watcher/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery-server/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery-server/src/test/resources/manifests/cluster-role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | name: admin-default-k8s-client 5 | roleRef: 6 | apiGroup: rbac.authorization.k8s.io 7 | kind: ClusterRole 8 | name: cluster-admin 9 | subjects: 10 | - kind: ServiceAccount 11 | name: spring-cloud-kubernetes-serviceaccount 12 | namespace: default 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery-server/src/test/resources/manifests/discoveryserver-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-discoveryserver 6 | name: spring-cloud-kubernetes-discoveryserver 7 | spec: 8 | ports: 9 | - name: http 10 | port: 32321 11 | targetPort: 32321 12 | nodePort: 32321 13 | selector: 14 | app: spring-cloud-kubernetes-discoveryserver 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery/src/main/java/org/springframework/cloud/kubernetes/k8s/client/discovery/DiscoveryApp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2025 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.k8s.client.discovery; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | /** 23 | * @author wind57 24 | */ 25 | @SpringBootApplication 26 | class DiscoveryApp { 27 | 28 | public static void main(String[] args) { 29 | SpringApplication.run(DiscoveryApp.class, args); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | management: 2 | endpoint: 3 | health: 4 | show-details: always 5 | endpoints: 6 | web: 7 | exposure: 8 | include: "*" 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery/src/test/resources/external-name-service.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: external-name-service 5 | spec: 6 | type: ExternalName 7 | externalName: spring.io 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-discovery/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/kafka-configmap-app/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes-k8s-client-kafka-configmap-reload 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | jar 12 | 13 | kafka-configmap-app 14 | 15 | 16 | 17 | org.springframework.boot 18 | spring-boot-starter-web 19 | 20 | 21 | org.springframework.cloud 22 | spring-cloud-starter-bus-kafka 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-actuator 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/kafka-configmap-app/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: non-app 4 | cloud: 5 | bus: 6 | refresh: 7 | enabled: false 8 | enabled: true 9 | destination: app 10 | id: app 11 | stream: 12 | default-binder: kafka 13 | management: 14 | endpoint: 15 | health: 16 | probes: 17 | enabled: true 18 | server: 19 | port: 8081 20 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/kafka-configmap-test-app/src/test/resources/app/app-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: app 6 | name: app 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8081 11 | targetPort: 8081 12 | nodePort: 32321 13 | selector: 14 | app: app 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/kafka-configmap-test-app/src/test/resources/config-watcher/watcher-kus-kafka-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-configuration-watcher 6 | name: spring-cloud-kubernetes-configuration-watcher 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8888 11 | targetPort: 8888 12 | selector: 13 | app: spring-cloud-kubernetes-configuration-watcher 14 | type: ClusterIP 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/kafka-configmap-test-app/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-kafka-configmap-reload/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes-integration-tests 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | spring-cloud-kubernetes-k8s-client-kafka-configmap-reload 12 | pom 13 | 14 | 15 | kafka-configmap-app 16 | kafka-configmap-test-app 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes-integration-tests 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 11 | 4.0.0 12 | spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload 13 | pom 14 | 15 | 16 | rabbitmq-secret-app 17 | rabbitmq-secret-test-app 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-app/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | jar 12 | 13 | rabbitmq-secret-app 14 | 15 | 16 | 17 | org.springframework.boot 18 | spring-boot-starter-web 19 | 20 | 21 | org.springframework.cloud 22 | spring-cloud-starter-bus-amqp 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-actuator 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-app/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: non-app 4 | cloud: 5 | bus: 6 | refresh: 7 | enabled: false 8 | enabled: true 9 | destination: app 10 | id: app 11 | stream: 12 | default-binder: rabbit 13 | autoconfigure: 14 | exclude: org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration 15 | management: 16 | endpoint: 17 | health: 18 | probes: 19 | enabled: true 20 | server: 21 | port: 8080 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-test-app/src/test/resources/app/app-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: app-deployment 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: app 9 | template: 10 | metadata: 11 | labels: 12 | app: app 13 | spec: 14 | containers: 15 | - name: app 16 | image: docker.io/springcloud/rabbitmq-secret-app 17 | imagePullPolicy: IfNotPresent 18 | env: 19 | - name: SPRING_PROFILES_ACTIVE 20 | value: bus-amqp 21 | - name: SPRING_RABBITMQ_HOST 22 | value: rabbitmq-service 23 | readinessProbe: 24 | httpGet: 25 | port: 8080 26 | path: /actuator/health/readiness 27 | livenessProbe: 28 | httpGet: 29 | port: 8080 30 | path: /actuator/health/liveness 31 | ports: 32 | - containerPort: 8080 33 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-test-app/src/test/resources/app/app-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: app 6 | name: app 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: app 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-test-app/src/test/resources/config-watcher/watcher-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: configuration-watcher 6 | name: configuration-watcher 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8888 11 | targetPort: 8888 12 | selector: 13 | app: configuration-watcher 14 | type: ClusterIP 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-rabbitmq-secret-reload/rabbitmq-secret-test-app/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/application-mount.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: poll-reload 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | monitoring-config-maps: true 9 | strategy: shutdown 10 | mode: polling 11 | period: 5000 12 | config: 13 | paths: 14 | - /tmp/application.properties 15 | 16 | config: 17 | import: "kubernetes:" 18 | 19 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/application-three.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: event-reload 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | strategy: refresh 9 | mode: event 10 | namespaces: 11 | - right 12 | monitoring-config-maps: true 13 | enable-reload-filtering: true 14 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/application-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: event-reload 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | strategy: refresh 9 | mode: event 10 | namespaces: 11 | - right 12 | monitoring-config-maps: true 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/application-with-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: poll-reload-mount-boostrap 4 | cloud: 5 | kubernetes: 6 | reload: 7 | enabled: true 8 | strategy: refresh 9 | mode: polling 10 | period: 5000 11 | monitoring-secrets: true 12 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/application-with-secret.yaml: -------------------------------------------------------------------------------- 1 | logging: 2 | level: 3 | org: 4 | springframework: 5 | cloud: 6 | kubernetes: debug 7 | 8 | spring: 9 | application: 10 | name: event-reload 11 | config: 12 | import: "kubernetes:" 13 | cloud: 14 | kubernetes: 15 | reload: 16 | enabled: true 17 | strategy: shutdown 18 | mode: event 19 | monitoring-secrets: true 20 | monitoring-configMaps: false 21 | secrets: 22 | enabled: true 23 | enable-api: true 24 | 25 | config: 26 | enabled: false 27 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/bootstrap-three.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | config: 5 | sources: 6 | - namespace: right 7 | name: right-configmap 8 | - namespace: right 9 | name: right-configmap-with-label 10 | 11 | # otherwise on context refresh we lose this property 12 | # and test fails, since beans are not wired. 13 | main: 14 | cloud-platform: kubernetes 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/bootstrap-two.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | config: 5 | sources: 6 | - namespace: right 7 | name: right-configmap 8 | 9 | # otherwise on context refresh we lose this property 10 | # and test fails, since beans are not wired. 11 | main: 12 | cloud-platform: kubernetes 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/main/resources/bootstrap-with-bootstrap.yaml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | kubernetes: 4 | secrets: 5 | paths: 6 | # at the moment, we do not support reading properties/yaml/yml 7 | # files when mounting via 'paths' 8 | - /tmp/from.properties.secret.key 9 | enabled: true 10 | 11 | config: 12 | enabled: false 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.bootstrap.BootstrapConfiguration=\ 2 | org.springframework.cloud.kubernetes.k8s.client.reload.it.K8sClientConfigMapEventTriggeredIT.TestConfig 3 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/mount/configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: configmap-reload # different from the application name 5 | namespace: default 6 | data: 7 | application.properties: | 8 | from.properties.configmap.key=as-mount-initial 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/mount/secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: secret-reload 5 | namespace: default 6 | data: 7 | # from.properties.secret.key=initial 8 | from.properties.secret.key: aW5pdGlhbA== 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/mount/service-with-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-k8s-client-reload 6 | name: spring-cloud-kubernetes-k8s-client-reload 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: spring-cloud-kubernetes-k8s-client-reload 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/mount/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-k8s-client-reload 6 | name: spring-cloud-kubernetes-k8s-client-reload 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: spring-cloud-kubernetes-k8s-client-reload 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/right-configmap-with-label.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: right-configmap-with-label 5 | namespace: right 6 | labels: 7 | spring.cloud.kubernetes.config.informer.enabled: true 8 | data: 9 | right.with.label.value: "right-with-label-initial" 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/spring-cloud-kubernetes-k8s-client-reload/src/test/resources/right-configmap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: right-configmap 5 | namespace: right 6 | data: 7 | right.value: "right-initial" 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-integration-tests/src/main/resources/META-INF/springcloudkubernetes-version.txt: -------------------------------------------------------------------------------- 1 | @project.version@ 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/java/org/springframework/cloud/kubernetes/integration/tests/commons/Phase.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2022 the original author or authors. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * https://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | package org.springframework.cloud.kubernetes.integration.tests.commons; 18 | 19 | /** 20 | * @author wind57 21 | */ 22 | public enum Phase { 23 | 24 | /** 25 | * Apply the manifests. 26 | */ 27 | CREATE, 28 | 29 | /** 30 | * Deleted the manifests. 31 | */ 32 | DELETE 33 | 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/META-INF/services/org.junit.jupiter.api.extension.Extension: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.kubernetes.tests.commons.junit_extension.DisabledTestsCondition 2 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/busybox/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: busybox 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: busybox 9 | version: v1 10 | replicas: 2 11 | template: 12 | metadata: 13 | labels: 14 | app: busybox 15 | version: v1 16 | spec: 17 | containers: 18 | - name: busybox 19 | # image: arm64/busybox:latest 20 | image: busybox 21 | command: ["/bin/sh"] 22 | args: ["-c", "sleep 100000"] 23 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/busybox/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: busybox-service 5 | spec: 6 | selector: 7 | app: busybox 8 | type: ClusterIP 9 | ports: 10 | - name: busybox-port 11 | port: 8080 12 | targetPort: 80 13 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/cluster/cluster-role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRoleBinding 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-core-k8s-client-it 6 | name: spring-cloud-kubernetes-cluster-role-binding 7 | roleRef: 8 | kind: ClusterRole 9 | apiGroup: rbac.authorization.k8s.io 10 | name: cluster-role 11 | subjects: 12 | - kind: ServiceAccount 13 | name: spring-cloud-kubernetes-serviceaccount 14 | namespace: default 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/cluster/cluster-role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: ClusterRole 3 | metadata: 4 | name: cluster-role 5 | rules: 6 | - apiGroups: ["", "extensions", "apps", "discovery.k8s.io"] 7 | resources: ["configmaps", "pods", "services", "endpoints", "secrets", "endpointslices"] 8 | verbs: ["get", "list", "watch"] 9 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/cluster/role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-core-k8s-client-it 6 | name: spring-cloud-kubernetes-role-binding 7 | namespace: default 8 | roleRef: 9 | kind: ClusterRole 10 | apiGroup: rbac.authorization.k8s.io 11 | name: cluster-role 12 | subjects: 13 | - kind: ServiceAccount 14 | name: spring-cloud-kubernetes-serviceaccount 15 | namespace: default 16 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/cluster/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: integration-test 6 | name: spring-cloud-kubernetes-serviceaccount 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/current-images.txt: -------------------------------------------------------------------------------- 1 | busybox:1.36.1 2 | istio/istioctl:1.21.6 3 | istio/proxyv2:1.21.6 4 | istio/pilot:1.21.6 5 | confluentinc/confluent-local:7.9.0 6 | rabbitmq:3-management 7 | wiremock/wiremock:3.4.2 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/istio/istioctl-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: istio-ctl 5 | labels: 6 | app: istio-ctl 7 | spec: 8 | selector: 9 | matchLabels: 10 | app: istio-ctl 11 | template: 12 | metadata: 13 | labels: 14 | app: istio-ctl 15 | spec: 16 | containers: 17 | - name: istio-ctl 18 | image: istio/istioctl 19 | imagePullPolicy: IfNotPresent 20 | command: [ "/bin/bash" ] 21 | args: [ "-c", "trap : TERM INT; sleep infinity & wait" ] 22 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/istio/role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-core-k8s-client-it 6 | name: istio-test-rb 7 | roleRef: 8 | kind: Role 9 | apiGroup: rbac.authorization.k8s.io 10 | name: istio-test 11 | subjects: 12 | - kind: ServiceAccount 13 | name: spring-cloud-kubernetes-istio-serviceaccount 14 | namespace: istio-test 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/istio/role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: Role 3 | metadata: 4 | namespace: istio-test 5 | name: istio-test 6 | rules: 7 | - apiGroups: [ "", "extensions", "apps" ] 8 | resources: [ "configmaps", "pods", "services", "endpoints", "secrets" ] 9 | verbs: [ "get", "list", "watch" ] 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/istio/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: istio-integration-test 6 | name: spring-cloud-kubernetes-istio-serviceaccount 7 | namespace: istio-test 8 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/kafka/kafka-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: kafka 5 | labels: 6 | app: kafka 7 | component: kafka-broker 8 | spec: 9 | ports: 10 | - port: 9092 11 | name: kafka-port 12 | targetPort: 9092 13 | protocol: TCP 14 | selector: 15 | app: kafka 16 | component: kafka-broker 17 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/rabbitmq/rabbitmq-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: rabbitmq 5 | labels: 6 | app: taskqueue 7 | component: rabbitmq 8 | spec: 9 | selector: 10 | matchLabels: 11 | app: taskqueue 12 | component: rabbitmq 13 | template: 14 | metadata: 15 | labels: 16 | app: taskqueue 17 | component: rabbitmq 18 | spec: 19 | containers: 20 | - name: taskqueue 21 | image: rabbitmq 22 | imagePullPolicy: IfNotPresent 23 | 24 | 25 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/rabbitmq/rabbitmq-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | component: rabbitmq 6 | name: rabbitmq-service 7 | spec: 8 | ports: 9 | - port: 5672 10 | name: amqp 11 | targetPort: 5672 12 | - port: 15672 13 | name: http-stats 14 | targetPort: 15672 15 | selector: 16 | app: taskqueue 17 | component: rabbitmq 18 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/setup/role-binding.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: RoleBinding 3 | metadata: 4 | labels: 5 | app: spring-cloud-kubernetes-core-k8s-client-it 6 | name: spring-cloud-kubernetes-core-k8s-client-it:view 7 | roleRef: 8 | kind: Role 9 | apiGroup: rbac.authorization.k8s.io 10 | name: namespace-reader 11 | subjects: 12 | - kind: ServiceAccount 13 | name: spring-cloud-kubernetes-serviceaccount 14 | namespace: default 15 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/setup/role.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: rbac.authorization.k8s.io/v1 2 | kind: Role 3 | metadata: 4 | namespace: default 5 | name: namespace-reader 6 | rules: 7 | - apiGroups: ["", "extensions", "apps", "discovery.k8s.io"] 8 | resources: ["configmaps", "pods", "services", "endpoints", "secrets", "endpointslices"] 9 | verbs: ["get", "list", "watch"] 10 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/setup/service-account.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | labels: 5 | app: integration-test 6 | name: spring-cloud-kubernetes-serviceaccount 7 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/wiremock/wiremock-deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: service-wiremock-deployment 5 | spec: 6 | selector: 7 | matchLabels: 8 | app: service-wiremock 9 | template: 10 | metadata: 11 | labels: 12 | app: service-wiremock 13 | spec: 14 | containers: 15 | - name: service-wiremock 16 | image: wiremock/wiremock 17 | args: ["--verbose"] 18 | imagePullPolicy: IfNotPresent 19 | readinessProbe: 20 | httpGet: 21 | port: 8080 22 | path: /__admin/mappings 23 | initialDelaySeconds: 3 24 | periodSeconds: 2 25 | failureThreshold: 1 26 | livenessProbe: 27 | httpGet: 28 | port: 8080 29 | path: /__admin/mappings 30 | initialDelaySeconds: 3 31 | periodSeconds: 2 32 | failureThreshold: 1 33 | ports: 34 | - containerPort: 8080 35 | -------------------------------------------------------------------------------- /spring-cloud-kubernetes-test-support/src/main/resources/wiremock/wiremock-service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | labels: 5 | app: service-wiremock 6 | name: service-wiremock 7 | spec: 8 | ports: 9 | - name: http 10 | port: 8080 11 | targetPort: 8080 12 | nodePort: 32321 13 | selector: 14 | app: service-wiremock 15 | type: NodePort 16 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-client-all/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-client-all 13 | Spring Cloud Kubernetes :: Kubernetes Native Starter :: All 14 | 15 | 16 | 17 | 18 | org.springframework.cloud 19 | spring-cloud-kubernetes-client-config 20 | 21 | 22 | 23 | org.springframework.cloud 24 | spring-cloud-kubernetes-client-discovery 25 | 26 | 27 | 28 | org.springframework.cloud 29 | spring-cloud-kubernetes-client-loadbalancer 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-client-config/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-client-config 13 | Spring Cloud Kubernetes :: Kubernetes Native Starter :: Config 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-client-config 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-client-loadbalancer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-client-loadbalancer 13 | Spring Cloud Kubernetes :: Kubernetes Native Starter :: LoadBalancer 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-client-loadbalancer 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-client/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-client 13 | Spring Cloud Kubernetes :: Kubernetes Native Starter 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-client-discovery 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-discoveryclient/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-discoveryclient 13 | 14 | 15 | 16 | org.springframework.cloud 17 | spring-cloud-commons 18 | 19 | 20 | org.springframework.cloud 21 | spring-cloud-kubernetes-discovery 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-fabric8-all/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-fabric8-all 13 | Spring Cloud Kubernetes :: Fabric8 Starter :: All 14 | 15 | 16 | 17 | 18 | org.springframework.cloud 19 | spring-cloud-kubernetes-fabric8-config 20 | 21 | 22 | 23 | org.springframework.cloud 24 | spring-cloud-kubernetes-fabric8-discovery 25 | 26 | 27 | 28 | org.springframework.cloud 29 | spring-cloud-kubernetes-fabric8-loadbalancer 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-fabric8-config/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-fabric8-config 13 | Spring Cloud Kubernetes :: Fabric8 Starter :: Config 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-fabric8-config 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-fabric8-loadbalancer/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-fabric8-loadbalancer 13 | Spring Cloud Kubernetes :: Fabric8 Starter :: LoadBalancer 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-fabric8-loadbalancer 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /spring-cloud-starter-kubernetes-fabric8/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | spring-cloud-kubernetes 7 | org.springframework.cloud 8 | 3.3.1-SNAPSHOT 9 | 10 | 4.0.0 11 | 12 | spring-cloud-starter-kubernetes-fabric8 13 | Spring Cloud Kubernetes :: Fabric8 Starter 14 | 15 | 16 | 17 | org.springframework.cloud 18 | spring-cloud-kubernetes-fabric8-discovery 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/checkstyle/checkstyle-suppressions.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | --------------------------------------------------------------------------------