├── .editorconfig ├── .github ├── actions │ └── build-images │ │ └── action.yml ├── labels-manage.yml ├── settings.xml └── workflows │ ├── build-snapshot-worker.yml │ ├── ci-pr.yml │ ├── ci.yml │ ├── issue-handler.yml │ ├── label-manage.yml │ ├── milestone-worker.yml │ ├── next-dev-version-worker.yml │ └── release-worker.yml ├── .gitignore ├── .idea ├── checkstyle-idea.xml ├── codeStyles │ └── codeStyleConfig.xml ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml └── vcs.xml ├── .mvn ├── jvm.config ├── maven.config └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── .settings.xml ├── .vscode ├── launch.json └── settings.json ├── LICENSE ├── README.adoc ├── etc ├── config │ ├── README.md │ ├── skipper-mysql.yml │ └── skipper-postgres.yml └── eclipse │ ├── eclipse-code-formatter.xml │ └── eclipse.importorder ├── local ├── README.md ├── create-container.sh └── download-app.sh ├── mvnw ├── mvnw.cmd ├── pom.xml ├── spring-cloud-skipper-autoconfigure ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── server │ │ │ └── autoconfigure │ │ │ ├── CloudFoundryPlatformAutoConfiguration.java │ │ │ ├── KubernetesPlatformAutoConfiguration.java │ │ │ ├── ProfileApplicationListener.java │ │ │ └── SkipperServerAutoConfiguration.java │ └── resources │ │ └── META-INF │ │ └── spring.factories │ └── test │ └── java │ └── org │ └── springframework │ └── cloud │ └── skipper │ └── server │ └── autoconfigure │ └── ProfileApplicationListenerTests.java ├── spring-cloud-skipper-client ├── .jdk8 ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── client │ │ ├── DefaultSkipperClient.java │ │ ├── SkipperClient.java │ │ ├── SkipperClientConfiguration.java │ │ ├── SkipperClientProperties.java │ │ ├── SkipperClientResponseErrorHandler.java │ │ ├── SkipperServerException.java │ │ └── util │ │ ├── HttpClientConfigurer.java │ │ ├── HttpUtils.java │ │ ├── PreemptiveBasicAuthHttpComponentsClientHttpRequestFactory.java │ │ ├── ProcessOutputResource.java │ │ ├── ResourceBasedAuthorizationInterceptor.java │ │ └── SecurityInfoResource.java │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── client │ │ ├── DefaultSkipperClientTests.java │ │ └── SkipperClientConfigurationTests.java │ └── resources │ └── repositories │ └── sources │ └── test │ └── ticktock │ └── ticktock-1.0.0 │ └── packages │ ├── log │ ├── package.yml │ ├── templates │ │ └── log.yml │ └── values.yml │ └── time │ ├── package.yml │ ├── templates │ └── time.yml │ └── values.yml ├── spring-cloud-skipper-dependencies └── pom.xml ├── spring-cloud-skipper-docs ├── pom.xml └── src │ └── main │ ├── asciidoc │ ├── .gitignore │ ├── Guardfile │ ├── api-guide.adoc │ ├── appendix-building.adoc │ ├── appendix-contributing.adoc │ ├── appendix.adoc │ ├── architecture.adoc │ ├── command-reference.adoc │ ├── configuration-database.adoc │ ├── getting-started.adoc │ ├── index.adoc │ ├── installation.adoc │ ├── overview.adoc │ ├── preface.adoc │ ├── security.adoc │ ├── three-hour-tour.adoc │ └── three-minute-tour.adoc │ └── javadoc │ └── spring-javadoc.css ├── spring-cloud-skipper-platform-cloudfoundry ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── deployer │ │ │ └── cloudfoundry │ │ │ ├── CloudFoundryApplicationManifestUtils.java │ │ │ ├── CloudFoundryCloudProfileProvider.java │ │ │ ├── CloudFoundryDeleteStep.java │ │ │ ├── CloudFoundryDeployAppStep.java │ │ │ ├── CloudFoundryHandleHealthCheckStep.java │ │ │ ├── CloudFoundryHealthCheckStep.java │ │ │ ├── CloudFoundryManifestApplicationDeployer.java │ │ │ ├── CloudFoundryPlatformProperties.java │ │ │ ├── CloudFoundryReleaseAnalyzer.java │ │ │ ├── CloudFoundryReleaseManager.java │ │ │ ├── CloudFoundrySimpleRedBlackUpgradeStrategy.java │ │ │ ├── CloudFoundrySkipperServerConfiguration.java │ │ │ └── PlatformCloudFoundryOperations.java │ └── resources │ │ ├── .gitkeep │ │ └── META-INF │ │ └── services │ │ └── org.springframework.cloud.skipper.server.config.CloudProfileProvider │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── deployer │ │ ├── CloudFoundryPlatformPropertiesTest.java │ │ └── cloudfoundry │ │ ├── CloudFoundryApplicationManifestUtilsTests.java │ │ └── CloudFoundryManifestApplicationDeployerTests.java │ └── resources │ └── application-platform-properties.yml ├── spring-cloud-skipper-platform-kubernetes ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── deployer │ │ │ └── kubernetes │ │ │ ├── KubernetesCloudProfileProvider.java │ │ │ └── KubernetesPlatformProperties.java │ └── resources │ │ ├── .gitkeep │ │ └── META-INF │ │ └── services │ │ └── org.springframework.cloud.skipper.server.config.CloudProfileProvider │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── deployer │ │ └── KubernetesPlatformPropertiesTest.java │ └── resources │ └── application-platform-properties.yml ├── spring-cloud-skipper-server-core ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── server │ │ │ ├── EnableSkipperServer.java │ │ │ ├── config │ │ │ ├── CloudProfileProvider.java │ │ │ ├── EnableSkipperServerConfiguration.java │ │ │ ├── LocalPlatformProperties.java │ │ │ ├── SkipperServerConfiguration.java │ │ │ ├── SkipperServerPlatformConfiguration.java │ │ │ ├── SkipperServerProperties.java │ │ │ ├── SpringDataRestConfiguration.java │ │ │ └── security │ │ │ │ └── SkipperOAuthSecurityConfiguration.java │ │ │ ├── controller │ │ │ ├── AboutController.java │ │ │ ├── PackageController.java │ │ │ ├── ReleaseController.java │ │ │ ├── RootController.java │ │ │ ├── SkipperErrorAttributes.java │ │ │ ├── VersionInfoProperties.java │ │ │ └── support │ │ │ │ ├── InfoResourceAssembler.java │ │ │ │ ├── ManifestResourceAssembler.java │ │ │ │ ├── PackageMetadataResourceAssembler.java │ │ │ │ ├── ReleaseResourceAssembler.java │ │ │ │ ├── ResourcesAssembler.java │ │ │ │ └── SimpleResourceAssembler.java │ │ │ ├── db │ │ │ └── migration │ │ │ │ ├── AbstractBaselineCallback.java │ │ │ │ ├── AbstractInitialSetupMigration.java │ │ │ │ ├── SkipperFlywayConfigurationCustomizer.java │ │ │ │ ├── SkipperFlywayMigrationStrategy.java │ │ │ │ ├── db2 │ │ │ │ ├── Db2BeforeBaseline.java │ │ │ │ ├── R__Hibernate_Sequence.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ │ ├── mariadb │ │ │ │ ├── MariadbBeforeBaseline.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ │ ├── mysql │ │ │ │ ├── MysqlBeforeBaseline.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ │ ├── oracle │ │ │ │ ├── OracleBeforeBaseline.java │ │ │ │ ├── R__Hibernate_Sequence.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ │ ├── postgresql │ │ │ │ ├── PostgresBeforeBaseline.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ │ └── sqlserver │ │ │ │ ├── MsSqlBeforeBaseline.java │ │ │ │ ├── R__Hibernate_Sequence.java │ │ │ │ └── V1__Initial_Setup.java │ │ │ ├── deployer │ │ │ ├── AppDeploymentRequestFactory.java │ │ │ ├── ApplicationManifestDifferenceFactory.java │ │ │ ├── ApplicationManifestDifferenceSummaryGenerator.java │ │ │ ├── DefaultReleaseManager.java │ │ │ ├── DefaultReleaseManagerFactory.java │ │ │ ├── ReleaseAnalysisReport.java │ │ │ ├── ReleaseAnalyzer.java │ │ │ ├── ReleaseDifferenceSummaryGenerator.java │ │ │ ├── ReleaseManager.java │ │ │ ├── ReleaseManagerFactory.java │ │ │ ├── metadata │ │ │ │ └── DeployerConfigurationMetadataResolver.java │ │ │ └── strategies │ │ │ │ ├── DefaultUpgradeStrategyFactory.java │ │ │ │ ├── DeleteStep.java │ │ │ │ ├── DeployAppStep.java │ │ │ │ ├── HandleHealthCheckStep.java │ │ │ │ ├── HealthCheckProperties.java │ │ │ │ ├── HealthCheckStep.java │ │ │ │ ├── SimpleRedBlackUpgradeStrategy.java │ │ │ │ ├── UpgradeStrategy.java │ │ │ │ └── UpgradeStrategyFactory.java │ │ │ ├── domain │ │ │ ├── AppDeployerData.java │ │ │ └── PackageSummary.java │ │ │ ├── index │ │ │ ├── PackageMetadataResourceProcessor.java │ │ │ ├── PackageSummaryResourceProcessor.java │ │ │ └── SkipperLinksResourceProcessor.java │ │ │ ├── repository │ │ │ ├── jpa │ │ │ │ ├── AppDeployerDataRepository.java │ │ │ │ ├── AppDeployerDataRepositoryCustom.java │ │ │ │ ├── AppDeployerDataRepositoryImpl.java │ │ │ │ ├── PackageMetadataRepository.java │ │ │ │ ├── PackageMetadataRepositoryCustom.java │ │ │ │ ├── PackageMetadataRepositoryImpl.java │ │ │ │ ├── ReleaseRepository.java │ │ │ │ ├── ReleaseRepositoryCustom.java │ │ │ │ ├── ReleaseRepositoryImpl.java │ │ │ │ └── RepositoryRepository.java │ │ │ └── map │ │ │ │ ├── DeployerRepository.java │ │ │ │ ├── DeployerRepositoryCustom.java │ │ │ │ └── DeployerRepositoryImpl.java │ │ │ ├── service │ │ │ ├── ActuatorService.java │ │ │ ├── DeployerInitializationService.java │ │ │ ├── PackageMetadataService.java │ │ │ ├── PackageService.java │ │ │ ├── ReleaseReportService.java │ │ │ ├── ReleaseService.java │ │ │ ├── ReleaseStateUpdateService.java │ │ │ └── RepositoryInitializationService.java │ │ │ ├── statemachine │ │ │ ├── AbstractAction.java │ │ │ ├── AbstractUpgradeStartAction.java │ │ │ ├── DeleteDeleteAction.java │ │ │ ├── ErrorAction.java │ │ │ ├── InstallInstallAction.java │ │ │ ├── ResetVariablesAction.java │ │ │ ├── RollbackStartAction.java │ │ │ ├── ScaleScaleAction.java │ │ │ ├── SkipperStateMachineService.java │ │ │ ├── StateMachineConfiguration.java │ │ │ ├── StateMachineExecutorConfiguration.java │ │ │ ├── StateMachinePersistConfiguration.java │ │ │ ├── UpgradeCancelAction.java │ │ │ ├── UpgradeCheckNewAppsGuard.java │ │ │ ├── UpgradeCheckTargetAppsAction.java │ │ │ ├── UpgradeDeleteSourceAppsAction.java │ │ │ ├── UpgradeDeployTargetAppsAction.java │ │ │ ├── UpgradeDeployTargetAppsFailedAction.java │ │ │ ├── UpgradeDeployTargetAppsSucceedAction.java │ │ │ └── UpgradeStartAction.java │ │ │ └── util │ │ │ ├── ArgumentSanitizer.java │ │ │ ├── ConfigValueUtils.java │ │ │ └── ManifestUtils.java │ └── resources │ │ ├── application-local.yml │ │ ├── application.yml │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── server │ │ └── db │ │ └── migration │ │ └── h2 │ │ └── V1__INITIAL_SETUP.sql │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── server │ │ ├── AbstractAssertReleaseDeployedTest.java │ │ ├── AbstractIntegrationTest.java │ │ ├── AbstractMockMvcTests.java │ │ ├── LogTestNameRule.java │ │ ├── TestResourceUtils.java │ │ ├── config │ │ ├── PlatformPropertiesTests.java │ │ └── SkipperServerPlatformConfigurationTests.java │ │ ├── controller │ │ ├── AbstractControllerTests.java │ │ ├── ReleaseControllerTests.java │ │ ├── RootControllerTests.java │ │ └── docs │ │ │ ├── AboutDocumentation.java │ │ │ ├── ApiDocumentation.java │ │ │ ├── BaseDocumentation.java │ │ │ ├── CancelDocumentation.java │ │ │ ├── DeleteDocumentation.java │ │ │ ├── DeployersDocumentation.java │ │ │ ├── DocumentationTests.java │ │ │ ├── HistoryDocumentation.java │ │ │ ├── InstallDocumentation.java │ │ │ ├── ListDocumentation.java │ │ │ ├── LogsDocumentation.java │ │ │ ├── ManifestDocumentation.java │ │ │ ├── PackageMetadataDocumentation.java │ │ │ ├── ReleasesDocumentation.java │ │ │ ├── RepositoriesDocumentation.java │ │ │ ├── RepositoryConfiguration.java │ │ │ ├── RepositoryDocumentationTests.java │ │ │ ├── RollbackDocumentation.java │ │ │ ├── ServerDependencies.java │ │ │ ├── StatusDocumentation.java │ │ │ ├── UpgradeDocumentation.java │ │ │ └── UploadDocumentation.java │ │ ├── deployer │ │ ├── AppDeploymentRequestFactoryTests.java │ │ ├── DifferenceTests.java │ │ └── metadata │ │ │ └── DeployerConfigurationMetadataResolverTests.java │ │ ├── repository │ │ ├── DeployerRepositoryTests.java │ │ ├── PackageMetadataCreator.java │ │ ├── PackageMetadataMvcTests.java │ │ ├── PackageMetadataRepositoryTests.java │ │ ├── ReleaseRepositoryTests.java │ │ ├── RepositoryCreator.java │ │ ├── RepositoryMvcTests.java │ │ ├── RepositoryRepositoryTests.java │ │ └── SchemaGenerationTests.java │ │ ├── service │ │ ├── ArgumentSanitizerTests.java │ │ ├── ConfigValueUtilsTests.java │ │ ├── PackageMetadataServiceTests.java │ │ ├── PackageServiceTests.java │ │ ├── ReleaseAnalyzerTests.java │ │ ├── ReleaseServiceTests.java │ │ └── RepositoryInitializationServiceTest.java │ │ ├── statemachine │ │ ├── StateMachinePersistConfigurationTests.java │ │ └── StateMachineTests.java │ │ ├── templates │ │ └── PackageTemplateTests.java │ │ └── util │ │ ├── LineUtil.java │ │ └── ManifestUtilsTest.java │ └── resources │ ├── application-platform-configuration.yml │ ├── application-platform-properties.yml │ ├── application-repo-test.yml │ ├── application.yml │ ├── index.yml │ ├── org │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── server │ │ ├── deployer │ │ ├── DifferenceTests-m1-v1.yml │ │ ├── DifferenceTests-m1-v2.yml │ │ ├── DifferenceTests-m2-v1.yml │ │ ├── DifferenceTests-m2-v2.yml │ │ ├── DifferenceTests-m3-v1.yml │ │ └── DifferenceTests-m3-v2.yml │ │ └── service │ │ ├── ArgumentSanitizerTests-configpassword.yaml │ │ ├── ArgumentSanitizerTests-configpasswordredacted.yaml │ │ ├── ArgumentSanitizerTests-nopassword.yaml │ │ ├── ArgumentSanitizerTests-password.yaml │ │ ├── ArgumentSanitizerTests-passwordredacted.yaml │ │ ├── ConfigValueUtilsTests-merged.yaml │ │ ├── buggy-6.6.6.zip │ │ ├── log-9.9.9.zip │ │ ├── mylog-9.9.9.zip │ │ └── ticktock-1.0.0 │ │ ├── package.yml │ │ ├── packages │ │ ├── log │ │ │ ├── package.yml │ │ │ └── values.yml │ │ └── time │ │ │ ├── package.yml │ │ │ └── values.yml │ │ └── values.yml │ ├── repositories │ ├── binaries │ │ └── test │ │ │ ├── helloworld-docker │ │ │ └── helloworld-docker-1.0.0.zip │ │ │ ├── index.yml │ │ │ ├── log-docker │ │ │ ├── log-docker-1.0.0.zip │ │ │ └── log-docker-2.0.0.zip │ │ │ ├── log │ │ │ ├── log-1.0.0.zip │ │ │ ├── log-1.1.0.zip │ │ │ ├── log-2.0.0.zip │ │ │ ├── logcf-1.0.0.zip │ │ │ └── logcf-1.0.1.zip │ │ │ ├── python │ │ │ ├── python-printer-1.0.0.zip │ │ │ └── python-printer-1.0.1.zip │ │ │ ├── testapp │ │ │ ├── testapp-1.0.0.zip │ │ │ ├── testapp-1.1.0.zip │ │ │ └── testapp-1.2.0.zip │ │ │ ├── ticktock │ │ │ └── ticktock-1.0.0.zip │ │ │ └── time │ │ │ └── time-2.0.0.zip │ └── sources │ │ └── test │ │ ├── helloworld │ │ └── helloworld-docker-1.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ └── template.yml │ │ │ └── values.yml │ │ ├── log │ │ ├── log-1.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log.yml │ │ │ └── values.yml │ │ ├── log-1.1.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log.yml │ │ │ └── values.yml │ │ ├── log-2.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log.yml │ │ │ └── values.yml │ │ ├── log-docker-1.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log-docker.yml │ │ │ └── values.yml │ │ ├── log-docker-2.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log-docker.yml │ │ │ └── values.yml │ │ ├── logcf-1.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── log.yml │ │ │ └── values.yml │ │ └── logcf-1.0.1 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ └── log.yml │ │ │ └── values.yml │ │ ├── python │ │ ├── python-printer-1.0.0 │ │ │ ├── hello.py │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── hello.yml │ │ │ └── values.yml │ │ └── python-printer-1.0.1 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ └── vanakkam.yml │ │ │ ├── values.yml │ │ │ ├── vanakkam.py │ │ │ └── vanakkam.py.zip │ │ ├── testapp │ │ ├── testapp-1.0.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── testapp.yml │ │ │ └── values.yml │ │ ├── testapp-1.1.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ │ └── testapp.yml │ │ │ └── values.yml │ │ └── testapp-1.2.0 │ │ │ ├── package.yml │ │ │ ├── templates │ │ │ └── testapp.yml │ │ │ └── values.yml │ │ ├── ticktock │ │ ├── ticktock-1.0.0 │ │ │ ├── package.yml │ │ │ ├── packages │ │ │ │ ├── log │ │ │ │ │ ├── package.yml │ │ │ │ │ ├── templates │ │ │ │ │ │ └── log.yml │ │ │ │ │ └── values.yml │ │ │ │ └── time │ │ │ │ │ ├── package.yml │ │ │ │ │ ├── templates │ │ │ │ │ └── time.yml │ │ │ │ │ └── values.yml │ │ │ └── values.yml │ │ └── ticktock-1.0.1 │ │ │ ├── package.yml │ │ │ ├── packages │ │ │ ├── log │ │ │ │ ├── package.yml │ │ │ │ ├── templates │ │ │ │ │ └── log.yml │ │ │ │ └── values.yml │ │ │ └── time │ │ │ │ ├── package.yml │ │ │ │ ├── templates │ │ │ │ └── time.yml │ │ │ │ └── values.yml │ │ │ └── values.yml │ │ └── time │ │ └── time-2.0.0 │ │ ├── package.yml │ │ ├── templates │ │ └── time.yml │ │ └── values.yml │ └── templates │ ├── packageUsingNestedMaps.yml │ └── values.yml ├── spring-cloud-skipper-server ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── docker │ │ └── assembly.xml │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── server │ │ │ └── app │ │ │ └── SkipperServerApplication.java │ └── resources │ │ └── .gitkeep │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── server │ │ └── local │ │ └── security │ │ └── skipperapp │ │ └── LocalTestSkipperServer.java │ └── resources │ └── org │ └── springframework │ └── cloud │ └── skipper │ └── server │ └── local │ └── security │ ├── dataflow.keystore │ ├── dataflow.truststore │ ├── oauthConfig.yml │ └── support │ └── oauth2TestServerConfig.yml ├── spring-cloud-skipper-shell-commands ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ └── shell │ │ │ ├── command │ │ │ ├── AbstractSkipperCommand.java │ │ │ ├── ConfigCommands.java │ │ │ ├── ManifestCommands.java │ │ │ ├── PackageCommands.java │ │ │ ├── PlatformCommands.java │ │ │ ├── ReleaseCommands.java │ │ │ ├── RepositoryCommands.java │ │ │ ├── package-info.java │ │ │ └── support │ │ │ │ ├── ConsoleUserInput.java │ │ │ │ ├── DeploymentStateDisplay.java │ │ │ │ ├── InitializeConnectionApplicationRunner.java │ │ │ │ ├── ShellUtils.java │ │ │ │ ├── SkipperClientUpdatedEvent.java │ │ │ │ ├── TableUtils.java │ │ │ │ ├── Target.java │ │ │ │ ├── TargetCredentials.java │ │ │ │ ├── TargetHolder.java │ │ │ │ ├── YmlUtils.java │ │ │ │ └── package-info.java │ │ │ └── config │ │ │ ├── HelpAwareShellApplicationRunner.java │ │ │ ├── ShellConfiguration.java │ │ │ ├── SkipperPromptProvider.java │ │ │ └── package-info.java │ └── resources │ │ ├── banner.txt │ │ └── usage.txt │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── shell │ │ ├── ShellApplication.java │ │ ├── ShellApplicationTests.java │ │ └── command │ │ └── support │ │ ├── ShellUtilsTests.java │ │ ├── TargetCredentialsTests.java │ │ ├── TargetTests.java │ │ └── YmlUtilsTests.java │ └── resources │ └── org │ └── springframework │ └── cloud │ └── skipper │ └── shell │ └── command │ └── support │ ├── log4j.properties │ └── log4j.yml ├── spring-cloud-skipper-shell ├── .jdk8 ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── shell │ │ └── ShellApplication.java │ └── resources │ └── application.yml ├── spring-cloud-skipper ├── .jdk8 ├── pom.xml └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── springframework │ │ │ └── cloud │ │ │ └── skipper │ │ │ ├── PackageDeleteException.java │ │ │ ├── ReleaseNotFoundException.java │ │ │ ├── ReleaseUpgradeException.java │ │ │ ├── SkipperException.java │ │ │ ├── domain │ │ │ ├── AboutResource.java │ │ │ ├── AbstractEntity.java │ │ │ ├── ActuatorPostRequest.java │ │ │ ├── AppInstanceStatusImpl.java │ │ │ ├── AppStatusMixin.java │ │ │ ├── CancelRequest.java │ │ │ ├── CancelResponse.java │ │ │ ├── CloudFoundryApplicationManifestReader.java │ │ │ ├── CloudFoundryApplicationSkipperManifest.java │ │ │ ├── CloudFoundryApplicationSpec.java │ │ │ ├── CommonProperties.java │ │ │ ├── ConfigValues.java │ │ │ ├── DeleteProperties.java │ │ │ ├── Dependency.java │ │ │ ├── Deployer.java │ │ │ ├── FileHolder.java │ │ │ ├── Info.java │ │ │ ├── InstallProperties.java │ │ │ ├── InstallRequest.java │ │ │ ├── LogInfo.java │ │ │ ├── Manifest.java │ │ │ ├── NonVersionedAbstractEntity.java │ │ │ ├── Package.java │ │ │ ├── PackageFile.java │ │ │ ├── PackageIdentifier.java │ │ │ ├── PackageMetadata.java │ │ │ ├── Platform.java │ │ │ ├── Release.java │ │ │ ├── Repository.java │ │ │ ├── RollbackRequest.java │ │ │ ├── ScaleRequest.java │ │ │ ├── SkipperManifestKind.java │ │ │ ├── SkipperManifestReader.java │ │ │ ├── SpringCloudDeployerApplicationManifest.java │ │ │ ├── SpringCloudDeployerApplicationManifestReader.java │ │ │ ├── SpringCloudDeployerApplicationSpec.java │ │ │ ├── Status.java │ │ │ ├── StatusCode.java │ │ │ ├── Template.java │ │ │ ├── UpgradeProperties.java │ │ │ ├── UpgradeRequest.java │ │ │ ├── UploadRequest.java │ │ │ ├── VersionInfo.java │ │ │ ├── deployer │ │ │ │ ├── ApplicationManifestDifference.java │ │ │ │ ├── ConfigurationMetadataPropertyEntity.java │ │ │ │ ├── ReleaseDifference.java │ │ │ │ └── package-info.java │ │ │ └── package-info.java │ │ │ ├── io │ │ │ ├── DefaultPackageReader.java │ │ │ ├── DefaultPackageWriter.java │ │ │ ├── PackageFileUtils.java │ │ │ ├── PackageReader.java │ │ │ ├── PackageWriter.java │ │ │ └── TempFileUtils.java │ │ │ └── support │ │ │ ├── DeploymentPropertiesUtils.java │ │ │ ├── DurationStyle.java │ │ │ ├── DurationUtils.java │ │ │ ├── PropertiesDiff.java │ │ │ └── yaml │ │ │ ├── DefaultYamlConverter.java │ │ │ ├── YamlBuilder.java │ │ │ ├── YamlConversionResult.java │ │ │ ├── YamlConversionStatus.java │ │ │ ├── YamlConverter.java │ │ │ ├── YamlPath.java │ │ │ └── YamlPathSegment.java │ └── resources │ │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ └── io │ │ ├── cf-template.yml │ │ └── generic-template.yml │ └── test │ ├── java │ └── org │ │ └── springframework │ │ └── cloud │ │ └── skipper │ │ ├── TestResourceUtils.java │ │ ├── domain │ │ ├── CloudFoundryApplicationManifestReaderTests.java │ │ ├── PackageMetadataTests.java │ │ └── SpringCloudDeployerApplicationManifestReaderTests.java │ │ ├── io │ │ ├── PackageReaderTests.java │ │ └── PackageWriterTests.java │ │ └── support │ │ ├── DeploymentPropertiesUtilsTests.java │ │ ├── DurationUtilsTests.java │ │ ├── PropertiesDiffTests.java │ │ └── yaml │ │ └── YamlConverterTests.java │ └── resources │ ├── org │ └── springframework │ │ └── cloud │ │ └── skipper │ │ ├── domain │ │ ├── CloudFoundryApplicationManifestReaderTests-manifest1.yml │ │ ├── CloudFoundryApplicationManifestReaderTests-manifest2.yml │ │ ├── SpringCloudDeployerApplicationManifestReaderTests-erroneous-manifest.yml │ │ └── SpringCloudDeployerApplicationManifestReaderTests-manifest.yml │ │ └── io │ │ ├── PackageWriterTests-generic-template.yml │ │ ├── PackageWriterTests-package.yml │ │ └── PackageWriterTests-values.yml │ └── repositories │ └── sources │ └── test │ └── ticktock │ └── ticktock-1.0.0 │ ├── package.yml │ ├── packages │ ├── log │ │ ├── package.yml │ │ ├── templates │ │ │ └── log.yml │ │ └── values.yml │ └── time │ │ ├── package.yml │ │ ├── templates │ │ └── time.yml │ │ └── values.yml │ └── values.yml ├── spring-cloud-starter-skipper-server └── pom.xml └── src └── scripts ├── next-minor-parent-snapshot-version ├── next-minor-snapshot-version ├── next-parent-snapshot-version └── next-snapshot-version /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*.java] 4 | indent_style = tab 5 | indent_size = 4 6 | continuation_indent_size = 8 7 | 8 | [*.groovy] 9 | indent_style = tab 10 | indent_size = 4 11 | continuation_indent_size = 8 12 | 13 | [*.xml] 14 | indent_style = tab 15 | indent_size = 4 16 | continuation_indent_size = 8 17 | 18 | [*.yml] 19 | indent_style = space 20 | indent_size = 2 21 | 22 | [*.yaml] 23 | indent_style = space 24 | indent_size = 2 25 | 26 | [*.sh] 27 | indent_style = space 28 | indent_size = 4 -------------------------------------------------------------------------------- /.github/actions/build-images/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Build And Publish Images' 2 | description: 'Builds and publishes images with pack' 3 | inputs: 4 | version: 5 | description: 'dataflow version' 6 | required: true 7 | dockerhub-username: 8 | description: 'dockerhub username' 9 | required: true 10 | dockerhub-password: 11 | description: 'dockerhub password' 12 | required: true 13 | runs: 14 | using: "composite" 15 | steps: 16 | - name: Install pack 17 | uses: jvalkeal/build-zoo-handler@v0.0.4 18 | with: 19 | pack-version: 0.24.1 20 | - name: Build Images 21 | env: 22 | TAG: ${{ inputs.version }} 23 | shell: bash 24 | run: | 25 | for v in 8 11 17 26 | do 27 | pack build \ 28 | --path spring-cloud-skipper-server/target/spring-cloud-skipper-server-$TAG.jar \ 29 | --builder gcr.io/paketo-buildpacks/builder:base \ 30 | --env BP_JVM_VERSION=$v springcloud/spring-cloud-skipper-server:$TAG-jdk$v 31 | done 32 | 33 | # docker hub login 34 | - uses: docker/login-action@v1 35 | with: 36 | username: ${{ inputs.dockerhub-username }} 37 | password: ${{ inputs.dockerhub-password }} 38 | 39 | # push images 40 | - name: Push images 41 | env: 42 | TAG: ${{ inputs.version }} 43 | shell: bash 44 | run: | 45 | docker tag springcloud/spring-cloud-skipper-server:$TAG-jdk11 springcloud/spring-cloud-skipper-server:$TAG 46 | for v in 8 11 17 47 | do 48 | docker push springcloud/spring-cloud-skipper-server:$TAG-jdk$v 49 | done 50 | docker push springcloud/spring-cloud-skipper-server:$TAG 51 | -------------------------------------------------------------------------------- /.github/workflows/ci-pr.yml: -------------------------------------------------------------------------------- 1 | name: CI PRs 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | build: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/checkout@v2 11 | # cache maven repo 12 | - uses: actions/cache@v2 13 | with: 14 | path: ~/.m2/repository 15 | key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} 16 | restore-keys: | 17 | ${{ runner.os }}-m2- 18 | # jdk8 19 | - uses: actions/setup-java@v1 20 | with: 21 | java-version: 1.8 22 | # maven version 23 | - uses: jvalkeal/setup-maven@v1 24 | with: 25 | maven-version: 3.6.2 26 | # build 27 | - name: Build 28 | env: 29 | VERBOSE: ${{ github.debug && 'true' || '' }} 30 | run: | 31 | MVN_OPT= 32 | if [ "$VERBOSE" = "true" ]; then 33 | MVN_OPT="-X" 34 | fi 35 | set +e 36 | mvn $MVN_OPT -U -B -s .github/settings.xml dependency:resolve 37 | set -e 38 | mvn $MVN_OPT -B -s .github/settings.xml clean package 39 | # clean m2 cache 40 | - name: Clean cache 41 | run: | 42 | find ~/.m2/repository -type d -name '*SNAPSHOT' | xargs rm -fr 43 | -------------------------------------------------------------------------------- /.github/workflows/label-manage.yml: -------------------------------------------------------------------------------- 1 | name: Labels Manage 2 | 3 | on: 4 | push: 5 | branches: 6 | - 'main' 7 | paths: 8 | - '.github/labels-manage.yml' 9 | - '.github/workflows/label-manage.yml' 10 | workflow_dispatch: 11 | 12 | jobs: 13 | labeler: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Mangle Labels 18 | uses: crazy-max/ghaction-github-labeler@v3 19 | with: 20 | github-token: ${{ secrets.GITHUB_TOKEN }} 21 | yaml-file: .github/labels-manage.yml 22 | dry-run: false 23 | skip-delete: true 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .#* 3 | *# 4 | *.sw* 5 | _site/ 6 | .factorypath 7 | .gradletasknamecache 8 | .DS_Store 9 | .checkstyle 10 | /application.yml 11 | /application.properties 12 | asciidoctor.css 13 | atlassian-ide-plugin.xml 14 | bin/ 15 | build/ 16 | dump.rdb 17 | out 18 | spring-shell.log 19 | spring-cloud-skipper-shell.log 20 | target/ 21 | test-output 22 | file:/ 23 | .sts4-cache 24 | .attach* 25 | .gradle 26 | .jfrog/ 27 | 28 | # Eclipse artifacts, including WTP generated manifests 29 | .classpath 30 | .project 31 | .settings/ 32 | .springBeans 33 | spring-*/src/main/java/META-INF/MANIFEST.MF 34 | 35 | # IDEA artifacts and output dirs 36 | *.iml 37 | *.ipr 38 | *.iws 39 | .idea/* 40 | rebel.xml 41 | !/.idea/codeStyles/codeStyleConfig.xml 42 | !/.idea/inspectionProfiles/profiles_settings.xml 43 | !/.idea/checkstyle-idea.xml 44 | !/.idea/misc.xml 45 | !/.idea/vcs.xml 46 | 47 | # Visual Studio Code 48 | .vscode/* 49 | !.vscode/settings.json 50 | !.vscode/tasks.json 51 | !.vscode/launch.json 52 | !.vscode/extensions.json 53 | 54 | # Log files from testing 55 | *.log 56 | 57 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.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-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "java.configuration.maven.userSettings": ".settings.xml" 3 | } -------------------------------------------------------------------------------- /README.adoc: -------------------------------------------------------------------------------- 1 | = :no_entry: Spring Cloud Dataflow has moved to a monorepo. 2 | 3 | == This repo is archived and now exists as the https://github.com/spring-cloud/spring-cloud-dataflow/tree/main/spring-cloud-skipper[spring-cloud-skipper] module(s) in the Dataflow monorepo. 4 | 5 | === Please file any issues/PRs in the https://github.com/spring-cloud/spring-cloud-dataflow[Dataflow] repo. 6 | -------------------------------------------------------------------------------- /etc/config/README.md: -------------------------------------------------------------------------------- 1 | This folder contains additional spring config files to ease development and testing. 2 | -------------------------------------------------------------------------------- /etc/config/skipper-mysql.yml: -------------------------------------------------------------------------------- 1 | # $ docker run --name test-mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=spring -e MYSQL_USER=spring -e MYSQL_PASSWORD=spring -e MYSQL_DATABASE=dataflow mysql:5.6 2 | # $ docker run --name test-mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=spring -e MYSQL_USER=spring -e MYSQL_PASSWORD=spring -e MYSQL_DATABASE=dataflow mysql:5.7 3 | # $ docker stop test-mysql 4 | # $ docker rm test-mysql 5 | # $ docker exec -it test-mysql mysql -h127.0.0.1 -P3306 -uspring -pspring dataflow 6 | spring: 7 | datasource: 8 | url: jdbc:mariadb://localhost:3306/dataflow 9 | username: spring 10 | password: spring 11 | driverClassName: org.mariadb.jdbc.Driver 12 | -------------------------------------------------------------------------------- /etc/config/skipper-postgres.yml: -------------------------------------------------------------------------------- 1 | # $ docker run --name test-postgres -d -p 5432:5432 -e POSTGRES_PASSWORD=spring -e POSTGRES_USER=spring -e POSTGRES_DB=dataflow postgres:10 2 | # $ docker stop test-postgres 3 | # $ docker rm test-postgres 4 | # $ docker exec -it test-postgres psql -U spring -d dataflow 5 | spring: 6 | datasource: 7 | url: jdbc:postgresql://localhost:5432/dataflow 8 | username: spring 9 | password: spring 10 | driverClassName: org.postgresql.Driver 11 | -------------------------------------------------------------------------------- /etc/eclipse/eclipse.importorder: -------------------------------------------------------------------------------- 1 | #Organize Import Order 2 | #Wed Apr 26 12:53:22 EDT 2017 3 | 4=\# 4 | 3=org.springframework 5 | 2= 6 | 1=javax 7 | 0=java 8 | -------------------------------------------------------------------------------- /local/README.md: -------------------------------------------------------------------------------- 1 | # Local Development Support 2 | 3 | These scripts are useful when you want to build the container on a different architecture and publish to a private repo. 4 | 5 | ## `download-app.sh` 6 | Downloads all applications needed by `create-containers.sh` from Maven repository. 7 | 8 | *If the timestamp of snapshots matches the download will be skipped.* 9 | 10 | Usage: `download-app.sh [version]` 11 | * `version` is the skipper version like `2.8.6` or default is `2.9.0-SNAPSHOT` 12 | 13 | ## `create-container.sh` 14 | Creates all containers and pushes to local docker registry. 15 | 16 | This script requires [jib-cli](https://github.com/GoogleContainerTools/jib/tree/master/jib-cli) 17 | 18 | Usage: `create-containers.sh [version] [jre-version]` 19 | * `version` is the skipper version like `2.8.6` or default is `2.9.0-SNAPSHOT` 20 | * `jre-version` should be one of 11, 17 21 | -------------------------------------------------------------------------------- /local/create-container.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | SCDIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")") 3 | SCDIR=$(realpath $SCDIR) 4 | ROOT_DIR=$(realpath $SCDIR/..) 5 | # set to specific version 6 | if [ "$1" != "" ]; then 7 | TAG=$1 8 | else 9 | TAG=2.9.0-SNAPSHOT 10 | fi 11 | if [ "$2" != "" ]; then 12 | v=$2 13 | else 14 | v=11 15 | fi 16 | PROCESSOR=$(uname -p) 17 | if [ "$ARCH" == "" ]; then 18 | case $PROCESSOR in 19 | "x86_64") 20 | ARCH=amd64 21 | ;; 22 | *) 23 | if [[ "$PROCESSOR" == *"arm"* ]]; then 24 | ARCH=arm64v8 25 | fi 26 | ;; 27 | esac 28 | fi 29 | IMAGE="$ARCH/eclipse-temurin:$v-jdk-jammy" 30 | 31 | CRED= 32 | if [ "$DOCKER_USERNAME" != "" ]; then 33 | CRED="--from-username=$DOCKER_USERNAME --from-password=$DOCKER_PASSWORD" 34 | fi 35 | jib jar --from=$IMAGE $CRED \ 36 | --target=docker://springcloud/spring-cloud-skipper-server:$TAG \ 37 | $ROOT_DIR/spring-cloud-skipper-server/target/spring-cloud-skipper-server-$TAG.jar 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-autoconfigure/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-autoconfigure/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-autoconfigure/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 2 | org.springframework.cloud.skipper.server.autoconfigure.SkipperServerAutoConfiguration,\ 3 | org.springframework.cloud.skipper.server.autoconfigure.CloudFoundryPlatformAutoConfiguration,\ 4 | org.springframework.cloud.skipper.server.autoconfigure.KubernetesPlatformAutoConfiguration 5 | 6 | org.springframework.context.ApplicationContextInitializer=\ 7 | org.springframework.cloud.dataflow.common.flyway.FlywayVendorReplacingApplicationContextInitializer 8 | 9 | org.springframework.context.ApplicationListener=\ 10 | org.springframework.cloud.skipper.server.autoconfigure.ProfileApplicationListener 11 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-client/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-client/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-skipper-client 5 | jar 6 | Spring Cloud Skipper :: Client 7 | 8 | 9 | org.springframework.cloud 10 | spring-cloud-skipper-parent 11 | 2.9.4-SNAPSHOT 12 | 13 | 14 | 15 | 16 | org.apache.httpcomponents 17 | httpclient 18 | 19 | 20 | org.springframework.cloud 21 | spring-cloud-skipper 22 | 23 | 24 | org.springframework.boot 25 | spring-boot-configuration-processor 26 | true 27 | 28 | 29 | org.assertj 30 | assertj-core 31 | test 32 | 33 | 34 | org.springframework.boot 35 | spring-boot-starter-test 36 | test 37 | 38 | 39 | com.jayway.jsonpath 40 | json-path 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/main/java/org/springframework/cloud/skipper/client/SkipperServerException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2013-2015 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.skipper.client; 18 | 19 | /** 20 | * A Java exception thrown when the server returns unexpected data. 21 | * 22 | * @author Gary Russell 23 | */ 24 | @SuppressWarnings("serial") 25 | public class SkipperServerException extends RuntimeException { 26 | 27 | public SkipperServerException(String message) { 28 | super(message); 29 | } 30 | 31 | public SkipperServerException(String message, Exception e) { 32 | super(message, e); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | deployment: 4 | name: log 5 | count: {{deployment.count}} 6 | applicationProperties: 7 | {{#deployment.applicationProperties.entrySet}} 8 | {{key}}: {{value}} 9 | {{/deployment.applicationProperties.entrySet}} 10 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit:{{appVersion}} 11 | deploymentProperties: 12 | {{#deployment.deploymentProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/deployment.deploymentProperties.entrySet}} 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE 5 | deployment: 6 | count: 1 7 | applicationProperties: 8 | log.level: DEBUG 9 | deploymentProperties: 10 | memory: 1024m 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/templates/time.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | deployment: 4 | name: time 5 | count: {{deployment.count}} 6 | applicationProperties: 7 | {{#deployment.applicationProperties.entrySet}} 8 | {{key}}: {{value}} 9 | {{/deployment.applicationProperties.entrySet}} 10 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit:{{appVersion}} 11 | deploymentProperties: 12 | {{#deployment.deploymentProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/deployment.deploymentProperties.entrySet}} 15 | -------------------------------------------------------------------------------- /spring-cloud-skipper-client/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE # 5 | deployment: 6 | count: 1 7 | applicationProperties: 8 | log.level: DEBUG 9 | deploymentProperties: 10 | memory: 1024m 11 | 12 | 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper-docs/src/main/asciidoc/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.css 3 | -------------------------------------------------------------------------------- /spring-cloud-skipper-docs/src/main/asciidoc/Guardfile: -------------------------------------------------------------------------------- 1 | require 'asciidoctor' 2 | require 'erb' 3 | 4 | guard 'shell' do 5 | watch(/.*\.adoc$/) {|m| 6 | Asciidoctor.render_file('index.adoc', \ 7 | :in_place => true, \ 8 | :safe => Asciidoctor::SafeMode::UNSAFE, \ 9 | :attributes=> { \ 10 | 'source-highlighter' => 'prettify', \ 11 | 'icons' => 'font', \ 12 | 'linkcss'=> 'true', \ 13 | 'copycss' => 'true', \ 14 | 'doctype' => 'book'}) 15 | } 16 | end 17 | 18 | guard 'livereload' do 19 | watch(%r{^.+\.(css|js|html)$}) 20 | end 21 | -------------------------------------------------------------------------------- /spring-cloud-skipper-docs/src/main/asciidoc/appendix.adoc: -------------------------------------------------------------------------------- 1 | [[appendix]] 2 | = Appendices 3 | 4 | [partintro] 5 | -- 6 | Having trouble with Spring Cloud Skipper, We'd like to help! 7 | 8 | * Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions 9 | tagged with https://stackoverflow.com/tags/spring-cloud-skipper[`spring-cloud-skipper`]. 10 | * Report bugs with Spring Cloud Skipper at https://github.com/spring-cloud/spring-cloud-skipper/issues. 11 | -- 12 | 13 | include::appendix-building.adoc[] 14 | include::appendix-contributing.adoc[] 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper-docs/src/main/asciidoc/architecture.adoc: -------------------------------------------------------------------------------- 1 | [[architecture]] 2 | = Architecture 3 | 4 | Skipper uses a basic client-server architecture. 5 | The server exposes a REST API that is used by the interactive shell. 6 | You can browse the API using familiar HTTP client tools. 7 | The server persists Package Metadata and Release state in a relational database. 8 | 9 | Platforms are defined by using the following property prefix: `spring.cloud.skipper.server.platform`. 10 | For each of the supported platforms (`cloudfoundry`, 'kubernetes`' and local), you can define multiple accounts. 11 | Each account maps onto an instance of a Spring Cloud Deployer implementation that is responsible for deploying the applications. 12 | The <> shows more details, but it is important to note that the Skipper server is not tied to a deploying to a single platform. 13 | Wherever Skipper is running, it can be configured to deploy to any platform. 14 | For example, if Skipper is deployed on Cloud Foundry, you can still register accounts for Kubernetes and deploy apps to Kubernetes from Cloud Foundry. 15 | 16 | The release workflow is currently a hard-coded workflow managed by the 17 | https://projects.spring.io/spring-statemachine/[Spring Cloud State Machine] project. 18 | The state of the State Machine is persisted in a relational database. 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-docs/src/main/asciidoc/preface.adoc: -------------------------------------------------------------------------------- 1 | [[preface]] 2 | = Preface 3 | 4 | [[skipper-documentation-about]] 5 | == About the Documentation 6 | Copies of this document may be made for your own use and for 7 | distribution to others, provided that you do not charge any fee for such copies and 8 | further provided that each copy contains this Copyright Notice, whether distributed in print or electronically. 9 | 10 | [[skipper-documentation-getting-help]] 11 | == Getting Help 12 | If you are having trouble with Spring Cloud Skipper, we would like to help! 13 | 14 | * Ask a question. We monitor https://stackoverflow.com[stackoverflow.com] for questions tagged with https://stackoverflow.com/tags/spring-cloud-skipper[`spring-cloud-skipper`]. 15 | * Report bugs with Spring Cloud Skipper at https://github.com/spring-cloud/spring-cloud-skipper/issues. 16 | 17 | NOTE: All of Spring Cloud Skipper is open source, including the documentation! If you find problems 18 | with the docs or if you want to improve them, please {github-code}[get involved]. 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-platform-cloudfoundry/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-skipper-platform-cloudfoundry 5 | jar 6 | Spring Cloud Skipper :: CloudFoundry Platform 7 | 8 | 9 | spring-cloud-skipper-parent 10 | org.springframework.cloud 11 | 2.9.4-SNAPSHOT 12 | 13 | 14 | 15 | 16 | org.springframework.cloud 17 | spring-cloud-skipper-server-core 18 | 19 | 20 | org.springframework.cloud 21 | spring-cloud-deployer-cloudfoundry 22 | 23 | 24 | org.springframework.boot 25 | spring-boot-configuration-processor 26 | true 27 | 28 | 29 | org.springframework.boot 30 | spring-boot-starter-test 31 | test 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/src/main/java/org/springframework/cloud/skipper/deployer/cloudfoundry/CloudFoundryCloudProfileProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.deployer.cloudfoundry; 17 | 18 | import org.springframework.cloud.skipper.server.config.CloudProfileProvider; 19 | import org.springframework.core.env.Environment; 20 | 21 | /** 22 | * @author Mark Pollack 23 | */ 24 | public class CloudFoundryCloudProfileProvider implements CloudProfileProvider { 25 | 26 | public static final String PROFILE = "cloud"; 27 | 28 | @Override 29 | public boolean isCloudPlatform(Environment environment) { 30 | return environment.containsProperty("VCAP_APPLICATION") || environment.containsProperty("VCAP_SERVICES"); 31 | } 32 | 33 | @Override 34 | public String getCloudProfile() { 35 | return PROFILE; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-platform-cloudfoundry/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/src/main/resources/META-INF/services/org.springframework.cloud.skipper.server.config.CloudProfileProvider: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.skipper.deployer.cloudfoundry.CloudFoundryCloudProfileProvider -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-cloudfoundry/src/test/resources/application-platform-properties.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | packageRepositories: 6 | - 7 | name: test 8 | url: "classpath:" 9 | platform: 10 | cloudfoundry: 11 | accounts: 12 | dev: 13 | connection: 14 | url: https://api.run.pivotal.io 15 | org: myOrg 16 | space: mySpace 17 | domain: cfapps.io 18 | username: skipper@example.com 19 | password: drowssap 20 | clientId: id1 21 | clientSecret: secret1 22 | skipSslValidation: false 23 | deployment: 24 | memory: 512m 25 | disk: 2048m 26 | instances: 4 27 | services: rabbit,mysql 28 | appNamePrefix: dev1 29 | qa: 30 | connection: 31 | url: https://api.run.pivotal.io 32 | org: myOrgQA 33 | space: mySpaceQA 34 | domain: cfapps.io 35 | username: skipper@example.com 36 | password: drowssap 37 | clientId: id2 38 | clientSecret: secret2 39 | skipSslValidation: true 40 | deployment: 41 | memory: 756m 42 | disk: 724m 43 | instances: 2 44 | services: rabbitQA,mysqlQA 45 | appNamePrefix: qa1 46 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-platform-kubernetes/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/src/main/java/org/springframework/cloud/skipper/deployer/kubernetes/KubernetesCloudProfileProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.deployer.kubernetes; 17 | 18 | import org.springframework.cloud.skipper.server.config.CloudProfileProvider; 19 | import org.springframework.core.env.Environment; 20 | 21 | /** 22 | * @author Mark Pollack 23 | */ 24 | public class KubernetesCloudProfileProvider implements CloudProfileProvider { 25 | 26 | public final static String PROFILE = "kubernetes"; 27 | 28 | @Override 29 | public boolean isCloudPlatform(Environment environment) { 30 | return environment.containsProperty("kubernetes_service_host"); 31 | } 32 | 33 | @Override 34 | public String getCloudProfile() { 35 | return PROFILE; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/src/main/java/org/springframework/cloud/skipper/deployer/kubernetes/KubernetesPlatformProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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.skipper.deployer.kubernetes; 18 | 19 | import java.util.LinkedHashMap; 20 | import java.util.Map; 21 | 22 | import org.springframework.boot.context.properties.ConfigurationProperties; 23 | import org.springframework.cloud.deployer.spi.kubernetes.KubernetesDeployerProperties; 24 | 25 | /** 26 | * @author Ilayaperumal Gopinathan 27 | */ 28 | @ConfigurationProperties("spring.cloud.skipper.server.platform.kubernetes") 29 | public class KubernetesPlatformProperties { 30 | 31 | private Map accounts = new LinkedHashMap<>(); 32 | 33 | public Map getAccounts() { 34 | return accounts; 35 | } 36 | 37 | public void setAccounts(Map accounts) { 38 | this.accounts = accounts; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-platform-kubernetes/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/src/main/resources/META-INF/services/org.springframework.cloud.skipper.server.config.CloudProfileProvider: -------------------------------------------------------------------------------- 1 | org.springframework.cloud.skipper.deployer.kubernetes.KubernetesCloudProfileProvider -------------------------------------------------------------------------------- /spring-cloud-skipper-platform-kubernetes/src/test/resources/application-platform-properties.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | packageRepositories: 6 | - 7 | name: test 8 | url: "classpath:" 9 | platform: 10 | kubernetes: 11 | accounts: 12 | dev: 13 | fabric8: 14 | masterUrl: https://192.168.0.1:8443 15 | namespace: dev1 16 | imagePullPolicy: Always 17 | entryPointStyle: exec 18 | limits: 19 | cpu: 4 20 | qa: 21 | fabric8: 22 | masterUrl: https://192.168.0.2:8443 23 | namespace: qaNamespace 24 | imagePullPolicy: IfNotPresent 25 | entryPointStyle: boot 26 | limits: 27 | memory: 1024m 28 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/EnableSkipperServer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server; 17 | 18 | import java.lang.annotation.Documented; 19 | import java.lang.annotation.ElementType; 20 | import java.lang.annotation.Inherited; 21 | import java.lang.annotation.Retention; 22 | import java.lang.annotation.RetentionPolicy; 23 | import java.lang.annotation.Target; 24 | 25 | import org.springframework.cloud.skipper.server.config.EnableSkipperServerConfiguration; 26 | import org.springframework.context.annotation.Import; 27 | 28 | /** 29 | * Activates a Spring Cloud Skipper Server features. 30 | * 31 | * @author Janne Valkealahti 32 | * 33 | */ 34 | @Target({ ElementType.TYPE }) 35 | @Retention(RetentionPolicy.RUNTIME) 36 | @Documented 37 | @Inherited 38 | @Import(EnableSkipperServerConfiguration.class) 39 | public @interface EnableSkipperServer { 40 | } 41 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/config/CloudProfileProvider.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.server.config; 17 | 18 | import org.springframework.core.env.Environment; 19 | 20 | /** 21 | * @author Mark Pollack 22 | */ 23 | public interface CloudProfileProvider { 24 | 25 | /** 26 | * Identifies if the application is running on a cloud platform 27 | * 28 | * @param environment the environment to base the decision upon. 29 | * @return {@code true} is running on a cloud platform, {@code false} otherwise. 30 | */ 31 | boolean isCloudPlatform(Environment environment); 32 | 33 | /** 34 | * Get the profile name to add to the spring environment 35 | * @return profile name for the cloud 36 | */ 37 | String getCloudProfile(); 38 | } 39 | 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/config/EnableSkipperServerConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.config; 17 | 18 | import org.springframework.cloud.skipper.server.EnableSkipperServer; 19 | import org.springframework.context.annotation.Bean; 20 | import org.springframework.context.annotation.Configuration; 21 | 22 | /** 23 | * Configuration for {@link EnableSkipperServer} which adds a marker bean which 24 | * auto-config classes can use to conditionally check if auto configuration should be 25 | * activated. 26 | * 27 | * @author Janne Valkealahti 28 | */ 29 | @Configuration 30 | public class EnableSkipperServerConfiguration { 31 | 32 | @Bean 33 | public Marker enableSkipperServerMarker() { 34 | return new Marker(); 35 | } 36 | 37 | public class Marker { 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/config/LocalPlatformProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.config; 17 | 18 | import java.util.LinkedHashMap; 19 | import java.util.Map; 20 | 21 | import org.springframework.boot.context.properties.ConfigurationProperties; 22 | import org.springframework.cloud.deployer.spi.local.LocalDeployerProperties; 23 | 24 | /** 25 | * @author Mark Pollack 26 | */ 27 | @ConfigurationProperties("spring.cloud.skipper.server.platform.local") 28 | public class LocalPlatformProperties { 29 | 30 | private Map accounts = new LinkedHashMap<>(); 31 | 32 | public LocalPlatformProperties() { 33 | } 34 | 35 | public Map getAccounts() { 36 | return accounts; 37 | } 38 | 39 | public void setAccounts(Map accounts) { 40 | this.accounts = accounts; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/config/SpringDataRestConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.config; 17 | 18 | import org.springframework.context.annotation.Bean; 19 | import org.springframework.context.annotation.Configuration; 20 | import org.springframework.data.rest.core.mapping.RepositoryDetectionStrategy; 21 | import org.springframework.data.rest.webmvc.config.RepositoryRestConfigurer; 22 | 23 | /** 24 | * @author Mark Pollack 25 | * @author Janne Valkealahti 26 | */ 27 | @Configuration 28 | public class SpringDataRestConfiguration { 29 | 30 | @Bean 31 | public RepositoryRestConfigurer skipperRepositoryRestConfigurer() { 32 | return RepositoryRestConfigurer.withConfig(c -> { 33 | c.setRepositoryDetectionStrategy(RepositoryDetectionStrategy.RepositoryDetectionStrategies.ANNOTATED); 34 | }); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/controller/RootController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.controller; 17 | 18 | import org.springframework.stereotype.Controller; 19 | import org.springframework.web.bind.annotation.RequestMapping; 20 | import org.springframework.web.servlet.view.RedirectView; 21 | 22 | /** 23 | * Main UI root controller. For now it's only task is to redirect the root URL to the Rest 24 | * API endpoint {@code /api } 25 | * 26 | * @author Gunnar Hillert 27 | */ 28 | @Controller 29 | public class RootController { 30 | 31 | /** 32 | * Handles the root URL of Skipper. Redirects users to the REST API entry point at 33 | * {@code /api }. 34 | * 35 | * @return RedirectView to api 36 | */ 37 | @RequestMapping("/") 38 | public RedirectView index() { 39 | return new RedirectView("/api"); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/controller/support/InfoResourceAssembler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.support; 17 | 18 | import org.springframework.cloud.skipper.domain.Info; 19 | import org.springframework.cloud.skipper.server.controller.ReleaseController; 20 | import org.springframework.hateoas.EntityModel; 21 | 22 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; 23 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; 24 | 25 | /** 26 | * @author Mark Pollack 27 | */ 28 | public class InfoResourceAssembler extends SimpleResourceAssembler { 29 | 30 | @Override 31 | protected void addLinks(EntityModel resource) { 32 | super.addLinks(resource); 33 | resource.add(linkTo(methodOn(ReleaseController.class).manifest(null)).withRel("manifest")); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/controller/support/ManifestResourceAssembler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.support; 17 | 18 | import org.springframework.cloud.skipper.domain.Manifest; 19 | import org.springframework.cloud.skipper.server.controller.ReleaseController; 20 | import org.springframework.hateoas.EntityModel; 21 | 22 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; 23 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; 24 | 25 | /** 26 | * @author Mark Pollack 27 | */ 28 | public class ManifestResourceAssembler extends SimpleResourceAssembler { 29 | 30 | @Override 31 | protected void addLinks(EntityModel resource) { 32 | super.addLinks(resource); 33 | resource.add(linkTo(methodOn(ReleaseController.class).status(null)).withRel("status")); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/controller/support/PackageMetadataResourceAssembler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.support; 17 | 18 | import org.springframework.cloud.skipper.domain.PackageMetadata; 19 | import org.springframework.cloud.skipper.server.controller.PackageController; 20 | import org.springframework.hateoas.EntityModel; 21 | 22 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; 23 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; 24 | 25 | /** 26 | * @author Mark Pollack 27 | */ 28 | public class PackageMetadataResourceAssembler extends SimpleResourceAssembler { 29 | 30 | @Override 31 | protected void addLinks(EntityModel resource) { 32 | super.addLinks(resource); 33 | 34 | resource.add(linkTo(methodOn(PackageController.class).install(null)).withRel("install")); 35 | 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/controller/support/ReleaseResourceAssembler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.support; 17 | 18 | import org.springframework.cloud.skipper.domain.Release; 19 | import org.springframework.cloud.skipper.server.controller.ReleaseController; 20 | import org.springframework.hateoas.EntityModel; 21 | 22 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; 23 | import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; 24 | 25 | /** 26 | * @author Mark Pollack 27 | */ 28 | public class ReleaseResourceAssembler extends SimpleResourceAssembler { 29 | 30 | @Override 31 | protected void addLinks(EntityModel resource) { 32 | super.addLinks(resource); 33 | resource.add(linkTo(methodOn(ReleaseController.class).status(null)).withRel("status")); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/db/migration/db2/Db2BeforeBaseline.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.server.db.migration.db2; 17 | 18 | import org.springframework.cloud.skipper.server.db.migration.AbstractBaselineCallback; 19 | 20 | /** 21 | * Baselining schema setup for {@code db2}. 22 | * 23 | * @author Janne Valkealahti 24 | * 25 | */ 26 | public class Db2BeforeBaseline extends AbstractBaselineCallback { 27 | 28 | /** 29 | * Instantiates a new db2 before baseline. 30 | */ 31 | public Db2BeforeBaseline() { 32 | super(new V1__Initial_Setup()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/db/migration/mariadb/MariadbBeforeBaseline.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2021-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 | package org.springframework.cloud.skipper.server.db.migration.mariadb; 17 | 18 | import org.springframework.cloud.skipper.server.db.migration.AbstractBaselineCallback; 19 | 20 | /** 21 | * Baselining schema setup for {@code mysql}. 22 | * 23 | * @author Janne Valkealahti 24 | * 25 | */ 26 | public class MariadbBeforeBaseline extends AbstractBaselineCallback { 27 | 28 | /** 29 | * Instantiates a new mysql before baseline. 30 | */ 31 | public MariadbBeforeBaseline() { 32 | super(new V1__Initial_Setup()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/db/migration/mysql/MysqlBeforeBaseline.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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.skipper.server.db.migration.mysql; 18 | 19 | import org.springframework.cloud.skipper.server.db.migration.AbstractBaselineCallback; 20 | 21 | /** 22 | * Baselining schema setup for {@code mysql}. 23 | * 24 | * @author Chris Bono 25 | */ 26 | public class MysqlBeforeBaseline extends AbstractBaselineCallback { 27 | 28 | /** 29 | * Instantiates a new mysql before baseline. 30 | */ 31 | public MysqlBeforeBaseline() { 32 | super(new V1__Initial_Setup()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/db/migration/oracle/OracleBeforeBaseline.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.server.db.migration.oracle; 17 | 18 | import org.springframework.cloud.skipper.server.db.migration.AbstractBaselineCallback; 19 | 20 | /** 21 | * Baselining schema setup for {@code oracle}. 22 | * 23 | * @author Janne Valkealahti 24 | * 25 | */ 26 | public class OracleBeforeBaseline extends AbstractBaselineCallback { 27 | 28 | /** 29 | * Instantiates a new oracle before baseline. 30 | */ 31 | public OracleBeforeBaseline() { 32 | super(new V1__Initial_Setup()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/db/migration/sqlserver/MsSqlBeforeBaseline.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.server.db.migration.sqlserver; 17 | 18 | import org.springframework.cloud.skipper.server.db.migration.AbstractBaselineCallback; 19 | 20 | /** 21 | * Baselining schema setup for {@code mssql}. 22 | * 23 | * @author Janne Valkealahti 24 | * 25 | */ 26 | public class MsSqlBeforeBaseline extends AbstractBaselineCallback { 27 | 28 | /** 29 | * Instantiates a new mssql before baseline. 30 | */ 31 | public MsSqlBeforeBaseline() { 32 | super(new V1__Initial_Setup()); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/deployer/ReleaseManagerFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.deployer; 17 | 18 | /** 19 | * Interface resolving {@link ReleaseManager} for an {@code application kind}. 20 | * 21 | * @author Janne Valkealahti 22 | * 23 | */ 24 | public interface ReleaseManagerFactory { 25 | 26 | /** 27 | * Resolve {@link ReleaseManager} for an {@code application kind}. 28 | * 29 | * @param kind the application kind 30 | * @return the resolved released manager 31 | */ 32 | ReleaseManager getReleaseManager(String kind); 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/deployer/strategies/HealthCheckProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.deployer.strategies; 17 | 18 | import org.springframework.boot.context.properties.ConfigurationProperties; 19 | 20 | /** 21 | * @author Mark Pollack 22 | */ 23 | @ConfigurationProperties("spring.cloud.skipper.server.strategies.healthcheck") 24 | public class HealthCheckProperties { 25 | 26 | private long timeoutInMillis = 300000; // 5 minutes 27 | 28 | private long sleepInMillis = 5000; // 5 seconds 29 | 30 | public long getTimeoutInMillis() { 31 | return timeoutInMillis; 32 | } 33 | 34 | public void setTimeoutInMillis(long timeoutInMillis) { 35 | this.timeoutInMillis = timeoutInMillis; 36 | } 37 | 38 | public long getSleepInMillis() { 39 | return sleepInMillis; 40 | } 41 | 42 | public void setSleepInMillis(long sleepInMillis) { 43 | this.sleepInMillis = sleepInMillis; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/deployer/strategies/UpgradeStrategyFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.deployer.strategies; 17 | 18 | /** 19 | * Interface resolving {@link UpgradeStrategy} for an {@code application kind}. 20 | * 21 | * @author Janne Valkealahti 22 | * 23 | */ 24 | public interface UpgradeStrategyFactory { 25 | 26 | /** 27 | * Resolve {@link UpgradeStrategy} for an {@code application kind}. 28 | * 29 | * @param kind the application kind 30 | * @return the resolved upgrade strategy 31 | */ 32 | UpgradeStrategy getUpgradeStrategy(String kind); 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/domain/PackageSummary.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.domain; 17 | 18 | import org.springframework.cloud.skipper.domain.PackageMetadata; 19 | import org.springframework.data.rest.core.config.Projection; 20 | 21 | /** 22 | * Defines summary information of a package, only the id, name, version and icon URL. 23 | * 24 | * Interface that adds the Spring Data REST Projection annotation to avoid adding a Spring 25 | * Data REST dependency to the core skipper domain class. 26 | * 27 | * NOTE: Projection interfaces need to be in the same Java package as the core domain 28 | * model entity. 29 | * @author Mark Pollack 30 | */ 31 | @Projection(name = "summary", types = { PackageMetadata.class }) 32 | public interface PackageSummary { 33 | 34 | String getId(); 35 | 36 | String getName(); 37 | 38 | String getVersion(); 39 | 40 | String getIconUrl(); 41 | 42 | String getDescription(); 43 | 44 | String getRepositoryName(); 45 | } 46 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/repository/jpa/AppDeployerDataRepository.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 | package org.springframework.cloud.skipper.server.repository.jpa; 17 | 18 | import org.springframework.cloud.skipper.server.domain.AppDeployerData; 19 | import org.springframework.data.keyvalue.repository.KeyValueRepository; 20 | import org.springframework.data.rest.core.annotation.RepositoryRestResource; 21 | import org.springframework.transaction.annotation.Transactional; 22 | 23 | /** 24 | * Stores data related to the app deployment. 25 | * @author Mark Pollack 26 | */ 27 | @RepositoryRestResource(exported = false) 28 | @Transactional 29 | public interface AppDeployerDataRepository 30 | extends KeyValueRepository, AppDeployerDataRepositoryCustom { 31 | 32 | @Transactional(readOnly = true) 33 | AppDeployerData findByReleaseNameAndReleaseVersion(String releaseName, Integer releaseVersion); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/repository/jpa/AppDeployerDataRepositoryCustom.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.repository.jpa; 17 | 18 | import org.springframework.cloud.skipper.server.domain.AppDeployerData; 19 | 20 | /** 21 | * @author Mark Pollack 22 | */ 23 | public interface AppDeployerDataRepositoryCustom { 24 | 25 | AppDeployerData findByReleaseNameAndReleaseVersionRequired(String releaseName, Integer releaseVersion); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/repository/map/DeployerRepositoryCustom.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.repository.map; 17 | 18 | import org.springframework.cloud.skipper.SkipperException; 19 | import org.springframework.cloud.skipper.domain.Deployer; 20 | 21 | /** 22 | * @author Mark Pollack 23 | */ 24 | public interface DeployerRepositoryCustom { 25 | 26 | /** 27 | * Performs a findByName query and throws an exception if the name is not found. 28 | * @param name the name of the deployer 29 | * @return The deployer instance or {@link SkipperException} if not found. 30 | */ 31 | Deployer findByNameRequired(String name); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/repository/map/DeployerRepositoryImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.repository.map; 17 | 18 | import org.springframework.beans.factory.ObjectProvider; 19 | import org.springframework.beans.factory.annotation.Autowired; 20 | import org.springframework.cloud.skipper.SkipperException; 21 | import org.springframework.cloud.skipper.domain.Deployer; 22 | 23 | /** 24 | * @author Mark Pollack 25 | */ 26 | public class DeployerRepositoryImpl implements DeployerRepositoryCustom { 27 | 28 | @Autowired 29 | private ObjectProvider deployerRepository; 30 | 31 | @Override 32 | public Deployer findByNameRequired(String name) { 33 | Deployer deployer = deployerRepository.getIfAvailable().findByName(name); 34 | if (deployer == null) { 35 | throw new SkipperException(String.format("No deployer named '%s'", name)); 36 | } 37 | return deployer; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/statemachine/StateMachineExecutorConfiguration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.statemachine; 17 | 18 | import org.springframework.context.annotation.Bean; 19 | import org.springframework.context.annotation.Configuration; 20 | import org.springframework.core.task.TaskExecutor; 21 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; 22 | 23 | /** 24 | * Executor configuration for statemachine. Keeping all these separate from main machine 25 | * config allows to run tests tests in isolation without adding persistence layer. 26 | * 27 | * @author Janne Valkealahti 28 | * 29 | */ 30 | @Configuration 31 | public class StateMachineExecutorConfiguration { 32 | 33 | @Bean 34 | public TaskExecutor skipperStateMachineTaskExecutor() { 35 | ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); 36 | executor.setCorePoolSize(4); 37 | return executor; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/java/org/springframework/cloud/skipper/server/statemachine/UpgradeDeployTargetAppsFailedAction.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.statemachine; 17 | 18 | import org.springframework.cloud.skipper.server.statemachine.SkipperStateMachineService.SkipperEvents; 19 | import org.springframework.cloud.skipper.server.statemachine.SkipperStateMachineService.SkipperStates; 20 | import org.springframework.statemachine.StateContext; 21 | import org.springframework.statemachine.action.Action; 22 | 23 | /** 24 | * StateMachine {@link Action} which simple sends an event to machine to cancel an upgrade. 25 | * 26 | * @author Janne Valkealahti 27 | * 28 | */ 29 | public class UpgradeDeployTargetAppsFailedAction extends AbstractAction { 30 | 31 | @Override 32 | protected void executeInternal(StateContext context) { 33 | // doesn't currently do anything 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/main/resources/application-local.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | platform: 6 | local: 7 | accounts: 8 | default: 9 | shutdownTimeout: 60 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/LogTestNameRule.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server; 17 | 18 | import org.junit.rules.TestWatcher; 19 | import org.junit.runner.Description; 20 | import org.slf4j.Logger; 21 | import org.slf4j.LoggerFactory; 22 | 23 | /** 24 | * @author Mark Pollack 25 | */ 26 | public class LogTestNameRule extends TestWatcher { 27 | 28 | private final static Logger log = LoggerFactory.getLogger("junit.logTestName"); 29 | 30 | @Override 31 | protected void starting(Description description) { 32 | log.info("Starting Test {}", description.getMethodName()); 33 | } 34 | 35 | @Override 36 | protected void finished(Description description) { 37 | log.info("Finished Test {}", description.getMethodName()); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/controller/RootControllerTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.controller; 17 | 18 | import org.junit.Test; 19 | 20 | import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; 21 | import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; 22 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrl; 23 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 24 | 25 | /** 26 | * @author Gunnar Hillert 27 | */ 28 | public class RootControllerTests extends AbstractControllerTests { 29 | 30 | @Test 31 | public void indexUrlShouldRedirect() throws Exception { 32 | mockMvc.perform(get("/")).andDo(print()) 33 | .andExpect(status().is3xxRedirection()) 34 | .andExpect(redirectedUrl("/api")); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/controller/docs/DocumentationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.docs; 17 | 18 | import org.junit.runner.RunWith; 19 | import org.junit.runners.Suite; 20 | 21 | /** 22 | * Documentation tests suite. 23 | * 24 | * @author Ilayaperumal Gopinathan 25 | */ 26 | @RunWith(Suite.class) 27 | @Suite.SuiteClasses({ AboutDocumentation.class, InstallDocumentation.class, ListDocumentation.class, 28 | CancelDocumentation.class, DeleteDocumentation.class, HistoryDocumentation.class, ManifestDocumentation.class, 29 | RollbackDocumentation.class, StatusDocumentation.class, UpgradeDocumentation.class, UploadDocumentation.class }) 30 | public class DocumentationTests { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/controller/docs/RepositoryDocumentationTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.server.controller.docs; 17 | 18 | import org.junit.runner.RunWith; 19 | import org.junit.runners.Suite; 20 | 21 | /** 22 | * Repository based documentation tests suite. 23 | * 24 | * @author Ilayaperumal Gopinathan 25 | */ 26 | 27 | @RunWith(Suite.class) 28 | @Suite.SuiteClasses({ ApiDocumentation.class, DeployersDocumentation.class, 29 | PackageMetadataDocumentation.class, RepositoriesDocumentation.class, ReleasesDocumentation.class }) 30 | public class RepositoryDocumentationTests { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/repository/RepositoryMvcTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.server.repository; 17 | 18 | import org.junit.Test; 19 | 20 | import org.springframework.cloud.skipper.server.AbstractMockMvcTests; 21 | 22 | import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; 23 | import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; 24 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; 25 | import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; 26 | 27 | /** 28 | * @author Mark Pollack 29 | */ 30 | public class RepositoryMvcTests extends AbstractMockMvcTests { 31 | 32 | @Test 33 | public void shouldReturnRepositoryIndex() throws Exception { 34 | mockMvc.perform(get("/api")).andDo(print()).andExpect(status().isOk()).andExpect( 35 | jsonPath("$._links.repositories").exists()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/java/org/springframework/cloud/skipper/server/util/LineUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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.skipper.server.util; 18 | 19 | import static org.assertj.core.api.Assertions.assertThat; 20 | 21 | /** 22 | * This utility remove the CR (\r) from linefeed on Windows when comparing content that comes from a file. 23 | * 24 | * @author Corneil du Plessis 25 | */ 26 | public class LineUtil { 27 | /** 28 | * Compares 2 strings while replacing CRLR with LF. 29 | * 30 | * @param value Value to compare 31 | * @param expected Expected value 32 | */ 33 | public static void assertEqualRemoveCr(final String value, final String expected) { 34 | assertThat(removeCr(value)).isEqualTo(removeCr(expected)); 35 | } 36 | 37 | /** 38 | * Replace CRLF with LR. 39 | * @param input a string that requires modification 40 | * @return modified string 41 | */ 42 | public static String removeCr(final String input) { 43 | return input != null ? input.replace("\r\n", "\n") : null; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/application-platform-configuration.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | platform: 6 | cloudfoundry: 7 | accounts: 8 | dev: 9 | connection: 10 | space: mySpace 11 | kubernetes: 12 | accounts: 13 | dev: 14 | namespace: devNamespace 15 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/application-platform-properties.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | packageRepositories: 6 | - 7 | name: test 8 | url: "classpath:" 9 | platform: 10 | local: 11 | accounts: 12 | localDev: 13 | shutdownTimeout: 60 14 | javaOpts: "-Dtest=foo" 15 | localDevDebug: 16 | javaOpts: "-Xdebug" 17 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/application-repo-test.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | cloud: 3 | skipper: 4 | server: 5 | package-repositories: 6 | test: 7 | url: "classpath:/repositories/binaries/test" 8 | description: test repository with a few packages 9 | local: 10 | url: "http://localhost:7577" 11 | local: true 12 | description: Default local database backed repository 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/index.yml: -------------------------------------------------------------------------------- 1 | 2 | --- 3 | apiVersion: skipper.spring.io/v1 4 | kind: SkipperPackageMetadata 5 | origin: org.springframework.cloud.skipper.testing 6 | name: scdf 7 | version: 1.2.3 8 | 9 | --- 10 | apiVersion: skipper.spring.io/v1 11 | kind: SkipperPackageMetadata 12 | origin: org.springframework.cloud.skipper.testing 13 | name: zipkin 14 | version: 1.28.1 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m1-v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.1.0.RELEASE 10 | applicationProperties: 11 | log.level: INFO 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 1024 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: DEBUG 27 | deploymentProperties: 28 | memory: 2048 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m1-v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.2.0.RELEASE 10 | applicationProperties: 11 | log.level: INFO 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 1024 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: DEBUG 27 | deploymentProperties: 28 | memory: 2048 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m2-v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.1.0.RELEASE 10 | applicationProperties: 11 | log.level: INFO 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 1024 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: DEBUG 27 | deploymentProperties: 28 | memory: 2048 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m2-v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.1.0.RELEASE 10 | applicationProperties: 11 | log.level: DEBUG 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 1024 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: INFO 27 | deploymentProperties: 28 | memory: 2048 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m3-v1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.1.0.RELEASE 10 | applicationProperties: 11 | log.level: INFO 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 1024 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: DEBUG 27 | deploymentProperties: 28 | memory: 2048 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/deployer/DifferenceTests-m3-v2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringCloudDeployerApplication 4 | metadata: 5 | name: log-sink 6 | type: sink 7 | spec: 8 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 9 | version: 1.1.0.RELEASE 10 | applicationProperties: 11 | log.level: INFO 12 | log.expression: hellobaby 13 | deploymentProperties: 14 | memory: 2048 15 | disk: 2 16 | --- 17 | apiVersion: skipper.spring.io/v1 18 | kind: SpringCloudDeployerApplication 19 | metadata: 20 | name: time-source 21 | type: source 22 | spec: 23 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 24 | version: 1.1.0.RELEASE 25 | applicationProperties: 26 | log.level: DEBUG 27 | deploymentProperties: 28 | memory: 1024 29 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ArgumentSanitizerTests-nopassword.yaml: -------------------------------------------------------------------------------- 1 | hello: universe 2 | log: 3 | appVersion: 1.2.1.RELEASE 4 | deployment: 5 | count: 2 6 | applicationProperties: 7 | log.level: WARN 8 | log.expresssion: payload.subobject 9 | log.name: skipperlogger 10 | deploymentProperties: 11 | memory: 1024m 12 | time: 13 | appVersion: 1.3.0.M1 14 | deployment: 15 | count: 1 16 | applicationProperties: 17 | log.level: WARN 18 | trigger.fixed-delay: 1 19 | trigger.max-messages: 2 20 | deploymentProperties: 21 | memory: 1024m 22 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ArgumentSanitizerTests-password.yaml: -------------------------------------------------------------------------------- 1 | hello: universe 2 | log: 3 | appVersion: 1.2.1.RELEASE 4 | deployment: 5 | count: 2 6 | applicationProperties: 7 | log.level: WARN 8 | log.expresssion: payload.subobject 9 | log.name: skipperlogger 10 | log.password: mypass 11 | deploymentProperties: 12 | memory: 1024m 13 | password: mypass 14 | time: 15 | appVersion: 1.3.0.M1 16 | deployment: 17 | count: 1 18 | password: mypass 19 | applicationProperties: 20 | log.level: WARN 21 | trigger.fixed-delay: 1 22 | trigger.max-messages: 2 23 | deploymentProperties: 24 | memory: 1024m -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ArgumentSanitizerTests-passwordredacted.yaml: -------------------------------------------------------------------------------- 1 | hello: universe 2 | log: 3 | appVersion: 1.2.1.RELEASE 4 | deployment: 5 | count: 2 6 | applicationProperties: 7 | log.level: WARN 8 | log.expresssion: payload.subobject 9 | log.name: skipperlogger 10 | log.password: '******' 11 | deploymentProperties: 12 | memory: 1024m 13 | password: '******' 14 | time: 15 | appVersion: 1.3.0.M1 16 | deployment: 17 | count: 1 18 | password: '******' 19 | applicationProperties: 20 | log.level: WARN 21 | trigger.fixed-delay: 1 22 | trigger.max-messages: 2 23 | deploymentProperties: 24 | memory: 1024m 25 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ConfigValueUtilsTests-merged.yaml: -------------------------------------------------------------------------------- 1 | hello: universe 2 | log: 3 | appVersion: 1.2.1.RELEASE 4 | deployment: 5 | count: 2 6 | applicationProperties: 7 | log.level: WARN 8 | log.expresssion: payload.subobject 9 | log.name: skipperlogger 10 | deploymentProperties: 11 | memory: 1024m 12 | time: 13 | appVersion: 1.3.0.M1 14 | deployment: 15 | count: 1 16 | applicationProperties: 17 | log.level: WARN 18 | trigger.fixed-delay: 1 19 | trigger.max-messages: 2 20 | deploymentProperties: 21 | memory: 1024m 22 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/buggy-6.6.6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/buggy-6.6.6.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/log-9.9.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/log-9.9.9.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/mylog-9.9.9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/mylog-9.9.9.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: ticktock 4 | version: 1.0.0 5 | packageSourceUrl: https://example.com/dataflow/ticktock 6 | packageHomeUrl: https://example.com/dataflow/ticktock 7 | tags: stream, time, log 8 | maintainer: https://github.com/markpollack 9 | description: The ticktock stream sends a time stamp and logs the value. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/packages/log/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/packages/log/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE # will be overridden using top level ConfigValues 5 | deployment: 6 | count: 1 # will be overridden 7 | applicationProperties: 8 | log.level: DEBUG # will be overridden 9 | log.expresssion: payload.subobject # will not be overridden 10 | deploymentProperties: 11 | memory: 1024m # will not be overridden 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/packages/time/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/packages/time/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE # will be overridden via root package values.yml 5 | deployment: 6 | count: 1 # will not be overridden 7 | applicationProperties: 8 | log.level: DEBUG # will be overridden via root package values.yml 9 | trigger.fixed-delay: 5 # will be overridden via root package values.yml 10 | trigger.max-messages: 2 # will not be overridden 11 | deploymentProperties: 12 | memory: 1024m # will not be overridden 13 | 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/org/springframework/cloud/skipper/server/service/ticktock-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | 5 | hello: world 6 | 7 | time: 8 | appVersion: 1.3.0.M1 9 | deployment: 10 | applicationProperties: 11 | log.level: WARN 12 | trigger.fixed-delay: 1 13 | log: 14 | deployment: 15 | count: 2 16 | applicationProperties: 17 | log.level: WARN 18 | log.name: skipperlogger 19 | 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/helloworld-docker/helloworld-docker-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/helloworld-docker/helloworld-docker-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log-docker/log-docker-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log-docker/log-docker-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log-docker/log-docker-2.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log-docker/log-docker-2.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-1.1.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-1.1.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-2.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/log-2.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/logcf-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/logcf-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/logcf-1.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/log/logcf-1.0.1.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/python/python-printer-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/python/python-printer-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/python/python-printer-1.0.1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/python/python-printer-1.0.1.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.1.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.1.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.2.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/testapp/testapp-1.2.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/ticktock/ticktock-1.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/ticktock/ticktock-1.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/time/time-2.0.0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/binaries/test/time/time-2.0.0.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/helloworld/helloworld-docker-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: helloworld-docker 4 | version: 1.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.1.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: helloworld 8 | maintainer: https://github.com/markpollack 9 | description: The hello world app says hello. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/helloworld/helloworld-docker-1.0.0/templates/template.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: helloworld-docker 5 | spec: 6 | resource: docker:springcloud/spring-cloud-skipper-samples-helloworld 7 | version: {{version}} 8 | applicationProperties: 9 | {{#spec.applicationProperties.entrySet}} 10 | {{key}}: {{value}} 11 | {{/spec.applicationProperties.entrySet}} 12 | deploymentProperties: 13 | {{#spec.deploymentProperties.entrySet}} 14 | {{key}}: {{value}} 15 | {{/spec.deploymentProperties.entrySet}} 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/helloworld/helloworld-docker-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.0.0.BUILD-SNAPSHOT 5 | 6 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 1.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.0.0/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RC1 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.1.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 1.1.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.3.0.M1 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.1.0/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-1.1.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.3.0.M1 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-2.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-2.0.0/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-2.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log-docker 4 | version: 1.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.1.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-1.0.0/templates/log-docker.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log-docker 5 | type: sink 6 | spec: 7 | resource: docker:springcloudstream/log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | {{#spec.applicationProperties.entrySet}} 12 | {{key}}: {{value}} 13 | {{/spec.applicationProperties.entrySet}} 14 | deploymentProperties: 15 | {{#spec.deploymentProperties.entrySet}} 16 | {{key}}: {{value}} 17 | {{/spec.deploymentProperties.entrySet}} 18 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.1.0.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-2.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log-docker 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-2.0.0/templates/log-docker.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log-docker 5 | type: sink 6 | spec: 7 | resource: docker:springcloudstream/log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | {{#spec.applicationProperties.entrySet}} 12 | {{key}}: {{value}} 13 | {{/spec.applicationProperties.entrySet}} 14 | deploymentProperties: 15 | {{#spec.deploymentProperties.entrySet}} 16 | {{key}}: {{value}} 17 | {{/spec.deploymentProperties.entrySet}} 18 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/log-docker-2.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: logcf 4 | version: 1.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.0/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: CloudFoundryApplication 3 | spec: 4 | resource: "{{{spec.resource}}}" 5 | version: "{{{spec.version}}}" 6 | manifest: 7 | {{#spec.manifest.entrySet}} 8 | {{key}}: {{value}} 9 | {{/spec.manifest.entrySet}} 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | spec: 5 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 6 | version: 1.3.0.RELEASE 7 | manifest: 8 | memory: 1024 9 | disk-quota: 2048 10 | timeout: 180 11 | instances: 1 12 | services: 13 | - rabbit 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.1/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: logcf 4 | version: 1.0.1 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RC1 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.1/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: CloudFoundryApplication 3 | spec: 4 | resource: "{{{spec.resource}}}" 5 | version: "{{{spec.version}}}" 6 | manifest: 7 | {{#spec.manifest.entrySet}} 8 | {{key}}: {{value}} 9 | {{/spec.manifest.entrySet}} 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/log/logcf-1.0.1/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | spec: 5 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 6 | version: 1.3.1.RELEASE 7 | manifest: 8 | memory: 1024 9 | disk-quota: 2048 10 | timeout: 180 11 | instances: 1 12 | services: 13 | - rabbit 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.0/hello.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import time 4 | 5 | # some python code that I want 6 | # to keep on running 7 | 8 | 9 | # Is this the right way to run the python program forever? 10 | # And do I even need this time.sleep call? 11 | while True: 12 | time.sleep(5) 13 | print "Hello!" 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: python-printer 4 | version: 1.0.0 5 | packageSourceUrl: https://testing 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, printer 8 | maintainer: https://github.com/ilayaperumalg 9 | description: The python printer app that says hello. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.0/templates/hello.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: CloudFoundryApplication 3 | spec: 4 | resource: https://github.com/ilayaperumalg/sandbox/raw/master/python/1.0.0/hello.py-{{spec.version}}.zip 5 | version: "{{{spec.version}}}" 6 | manifest: 7 | {{#spec.manifest.entrySet}} 8 | {{key}}: {{value}} 9 | {{/spec.manifest.entrySet}} 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | spec: 5 | manifest: 6 | memory: 1024 7 | disk-quota: 1024 8 | timeout: 180 9 | instances: 1 10 | buildpack: python_buildpack 11 | command: python hello.py 12 | health-check-type: process 13 | version: 1.0.0 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: python-printer 4 | version: 1.0.1 5 | packageSourceUrl: https://testing 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, printer 8 | maintainer: https://github.com/ilayaperumalg 9 | description: The python printer app that greets in tamil. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/templates/vanakkam.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: CloudFoundryApplication 3 | spec: 4 | resource: https://github.com/ilayaperumalg/sandbox/raw/master/python/1.0.1/hello.py-{{spec.version}}.zip 5 | version: "{{{spec.version}}}" 6 | manifest: 7 | {{#spec.manifest.entrySet}} 8 | {{key}}: {{value}} 9 | {{/spec.manifest.entrySet}} 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | spec: 5 | version: 1.0.1 6 | manifest: 7 | memory: 1024 8 | disk-quota: 1024 9 | timeout: 180 10 | instances: 1 11 | buildpack: python_buildpack 12 | command: python vanakkam.py 13 | health-check-type: process 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/vanakkam.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import time 4 | 5 | # some python code that I want 6 | # to keep on running 7 | 8 | 9 | # Is this the right way to run the python program forever? 10 | # And do I even need this time.sleep call? 11 | while True: 12 | time.sleep(5) 13 | print "Vanakkam!" 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/vanakkam.py.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/python/python-printer-1.0.1/vanakkam.py.zip -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: testapp 4 | version: 1.0.0 5 | packageSourceUrl: https://github.com/spring-cloud/spring-cloud-deployer 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-dataflow/ 7 | tags: logging, sink 8 | maintainer: https://github.com/jvalkeal 9 | description: The testapp up starts successfully. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.0.0/templates/testapp.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: testapp 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud:spring-cloud-deployer-spi-test-app:jar:exec:{{version}} 8 | version: {{version}} 9 | applicationProperties: 10 | server.port: 0 11 | {{#spec.applicationProperties.entrySet}} 12 | {{key}}: {{value}} 13 | {{/spec.applicationProperties.entrySet}} 14 | deploymentProperties: 15 | {{#spec.deploymentProperties.entrySet}} 16 | {{key}}: {{value}} 17 | {{/spec.deploymentProperties.entrySet}} 18 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.3.1.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.1.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: testapp 4 | version: 1.1.0 5 | packageSourceUrl: https://github.com/spring-cloud/spring-cloud-deployer 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-dataflow/ 7 | tags: logging, sink 8 | maintainer: https://github.com/jvalkeal 9 | description: The testapp up starts and conditionally fails. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.1.0/templates/testapp.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: testapp 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud:spring-cloud-deployer-spi-test-app:jar:exec:{{version}} 8 | version: {{version}} 9 | applicationProperties: 10 | server.port: 0 11 | kill-delay: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.1.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.3.1.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.2.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: testapp 4 | version: 1.2.0 5 | packageSourceUrl: https://github.com/spring-cloud/spring-cloud-deployer 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-dataflow/ 7 | tags: logging, sink 8 | maintainer: https://github.com/jvalkeal 9 | description: The testapp up starts and conditionally fails. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.2.0/templates/testapp.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: testapp 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud:spring-cloud-deployer-spi-test-app:jar:exec:{{version}} 8 | version: {{version}} 9 | applicationProperties: 10 | server.port: 0 11 | kill-delay: 30000 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/testapp/testapp-1.2.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.3.1.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: ticktock 4 | version: 1.0.0 5 | packageSourceUrl: https://example.com/dataflow/ticktock 6 | packageHomeUrl: https://example.com/dataflow/ticktock 7 | tags: stream, time, log 8 | maintainer: https://github.com/markpollack 9 | description: The ticktock stream sends a time stamp and logs the value. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.1.0.RELEASE 5 | spec: 6 | applicationProperties: 7 | log.level: DEBUG 8 | deploymentProperties: 9 | memory: 1024m 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/templates/time.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: time 5 | type: source 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RELEASE 5 | spec: 6 | applicationProperties: 7 | log.level: DEBUG 8 | deploymentProperties: 9 | memory: 1024m 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | 5 | 6 | # No values to override 7 | 8 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: ticktock 4 | version: 1.0.1 5 | packageSourceUrl: https://example.com/dataflow/ticktock 6 | packageHomeUrl: https://example.com/dataflow/ticktock 7 | tags: stream, time, log 8 | maintainer: https://github.com/markpollack 9 | description: The ticktock stream sends a time stamp and logs the value. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/log/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/log/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: log 5 | type: sink 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | bool: {{bool}} 11 | adate: {{adate}} 12 | array: {{array}} 13 | applicationProperties: 14 | server.port: 0 15 | {{#spec.applicationProperties.entrySet}} 16 | {{key}}: {{value}} 17 | {{/spec.applicationProperties.entrySet}} 18 | deploymentProperties: 19 | {{#spec.deploymentProperties.entrySet}} 20 | {{key}}: {{value}} 21 | {{/spec.deploymentProperties.entrySet}} 22 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/log/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.1.0.RELEASE 5 | spec: 6 | applicationProperties: 7 | log.level: DEBUG 8 | deploymentProperties: 9 | memory: 1024m 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/time/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/time/templates/time.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: time 5 | type: source 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}} 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/packages/time/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RELEASE 5 | spec: 6 | applicationProperties: 7 | log.level: DEBUG 8 | deploymentProperties: 9 | memory: 1024m 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.1/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | 5 | 6 | # No values to override 7 | 8 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/time/time-2.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/time/time-2.0.0/templates/time.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | name: time 5 | type: source 6 | spec: 7 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 8 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:{{version}} 9 | version: {{version}} 10 | applicationProperties: 11 | server.port: 0 12 | {{#spec.applicationProperties.entrySet}} 13 | {{key}}: {{value}} 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | {{key}}: {{value}}` 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/repositories/sources/test/time/time-2.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | version: 1.2.0.RELEASE 5 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/templates/packageUsingNestedMaps.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | deployment: 4 | name: time 5 | count: {{deployment.count}} 6 | applicationProperties: 7 | {{#deployment.applicationProperties.entrySet}} 8 | {{key}}: {{value}} 9 | {{/deployment.applicationProperties.entrySet}} 10 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit 11 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:{{appVersion}} 12 | version: {{appVersion}} 13 | deploymentProperties: 14 | {{#deployment.deploymentProperties.entrySet}} 15 | {{key}}: {{value}} 16 | {{/deployment.deploymentProperties.entrySet}} 17 | 18 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server-core/src/test/resources/templates/values.yml: -------------------------------------------------------------------------------- 1 | appVersion: 1.2.0.RELEASE 2 | deployment: 3 | count: 10 4 | applicationProperties: 5 | log.level: DEBUG 6 | server.port: 8089 7 | deploymentProperties: 8 | app.time.producer.partitionKeyExpression: payload 9 | app.log.spring.cloud.stream.bindings.input.consumer.maxAttempts: 5 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-server/src/main/docker/assembly.xml: -------------------------------------------------------------------------------- 1 | 5 | spring-cloud-skipper-server 6 | 7 | 8 | 9 | org.springframework.cloud:spring-cloud-skipper-server 10 | 11 | maven 12 | spring-cloud-skipper-server.jar 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper-server/src/main/resources/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server/src/main/resources/.gitkeep -------------------------------------------------------------------------------- /spring-cloud-skipper-server/src/test/resources/org/springframework/cloud/skipper/server/local/security/dataflow.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server/src/test/resources/org/springframework/cloud/skipper/server/local/security/dataflow.keystore -------------------------------------------------------------------------------- /spring-cloud-skipper-server/src/test/resources/org/springframework/cloud/skipper/server/local/security/dataflow.truststore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-server/src/test/resources/org/springframework/cloud/skipper/server/local/security/dataflow.truststore -------------------------------------------------------------------------------- /spring-cloud-skipper-server/src/test/resources/org/springframework/cloud/skipper/server/local/security/support/oauth2TestServerConfig.yml: -------------------------------------------------------------------------------- 1 | server: 2 | port: ${oauth2.port} 3 | security: 4 | oauth2: 5 | client: 6 | id: local 7 | client-id: myclient 8 | client-secret: "{noop}mysecret" 9 | scope: dataflow.view,dataflow.manage,dataflow.create 10 | registered-redirect-uri: 11 | - http://localhost:9393/login 12 | auto-approve-scopes: '.*' 13 | authorized-grant-types: 14 | - authorization_code 15 | - client_credentials 16 | - password 17 | authentication: 18 | file: 19 | enabled: true 20 | users: 21 | user: "{noop}secret10, ROLE_DATAFLOW.VIEW, ROLE_DATAFLOW.MANAGE, ROLE_DATAFLOW.CREATE" 22 | bob: "{noop}bobspassword, ROLE_DATAFLOW.VIEW" 23 | alice: "{noop}alicepwd, ROLE_DATAFLOW.MANAGE" 24 | cartman: "{noop}cartmanpwd, ROLE_DATAFLOW.CREATE" 25 | logging: 26 | level: 27 | org.springframework.security: DEBUG 28 | org.springframework.web: INFO -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-shell-commands/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/java/org/springframework/cloud/skipper/shell/command/AbstractSkipperCommand.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.shell.command; 17 | 18 | import org.springframework.cloud.skipper.client.SkipperClient; 19 | import org.springframework.cloud.skipper.shell.command.support.SkipperClientUpdatedEvent; 20 | import org.springframework.context.event.EventListener; 21 | 22 | /** 23 | * Contains a common reference for {@link SkipperClient} and an {@link EventListener} to 24 | * get updates made through the 'skipper config' command. 25 | * 26 | * @author Mark Pollack 27 | */ 28 | public abstract class AbstractSkipperCommand { 29 | 30 | // Updated via event publication 31 | protected SkipperClient skipperClient; 32 | 33 | @EventListener 34 | void handle(SkipperClientUpdatedEvent event) { 35 | this.skipperClient = event.getSkipperClient(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/java/org/springframework/cloud/skipper/shell/command/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | * Command classes for the Spring Cloud Skipper Shell. 18 | */ 19 | package org.springframework.cloud.skipper.shell.command; 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/java/org/springframework/cloud/skipper/shell/command/support/SkipperClientUpdatedEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.shell.command.support; 17 | 18 | import org.springframework.cloud.skipper.client.SkipperClient; 19 | 20 | /** 21 | * @author Mark Pollack 22 | */ 23 | public class SkipperClientUpdatedEvent { 24 | 25 | private final SkipperClient skipperClient; 26 | 27 | public SkipperClientUpdatedEvent(SkipperClient skipperClient) { 28 | this.skipperClient = skipperClient; 29 | } 30 | 31 | public SkipperClient getSkipperClient() { 32 | return skipperClient; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/java/org/springframework/cloud/skipper/shell/command/support/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | * Supporting command classes for the Spring Cloud Skipper Shell. 18 | */ 19 | package org.springframework.cloud.skipper.shell.command.support; 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/java/org/springframework/cloud/skipper/shell/config/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | * Configuration classes for the Spring Cloud Skipper Shell. 18 | */ 19 | package org.springframework.cloud.skipper.shell.config; 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ____ _ ____ _ _ 2 | / ___| _ __ _ __(_)_ __ __ _ / ___| | ___ _ _ __| | 3 | \___ \| '_ \| '__| | '_ \ / _` | | | | |/ _ \| | | |/ _` | 4 | ___) | |_) | | | | | | | (_| | | |___| | (_) | |_| | (_| | 5 | |____/| .__/|_| |_|_| |_|\__, | \____|_|\___/ \__,_|\__,_| 6 | ____ |_| _ |___/ 7 | / ___|| | _(_)_ __ _ __ ___ _ __ 8 | \___ \| |/ / | '_ \| '_ \ / _ \ '__| 9 | ___) | <| | |_) | |_) | __/ | 10 | |____/|_|\_\_| .__/| .__/ \___|_| 11 | |_| |_| 12 | ${application.formatted-version} 13 | 14 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/main/resources/usage.txt: -------------------------------------------------------------------------------- 1 | Skipper Options: 2 | 3 | --spring.cloud.skipper.client.serverUri= Address of the Skipper Server [default: http://localhost:7577]. 4 | --spring.cloud.skipper.client.username= Username of the Skipper Server [no default]. 5 | --spring.cloud.skipper.client.password= Password of the Skipper Server [no default]. 6 | --spring.cloud.skipper.client.credentials-provider-command= Executes an external command which must return an OAuth Access Token [no default]. 7 | --spring.cloud.skipper.client.skip-ssl-validation= Accept any SSL certificate (even self-signed) [default: no]. 8 | 9 | --spring.shell.historySize= Default size of the shell log file [default: 3000]. 10 | --spring.shell.commandFile= Skipper Shell executes commands read from the file(s) and then exits. 11 | 12 | --help This message. 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/test/java/org/springframework/cloud/skipper/shell/ShellApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.shell; 17 | 18 | import org.springframework.boot.Banner; 19 | import org.springframework.boot.autoconfigure.SpringBootApplication; 20 | import org.springframework.boot.builder.SpringApplicationBuilder; 21 | import org.springframework.cloud.skipper.shell.config.ShellConfiguration; 22 | import org.springframework.context.annotation.Import; 23 | 24 | /** 25 | * @author Mark Pollack 26 | */ 27 | @SpringBootApplication 28 | @Import(ShellConfiguration.class) 29 | public class ShellApplication { 30 | 31 | public static void main(String[] args) throws Exception { 32 | new SpringApplicationBuilder().sources(ShellApplication.class).bannerMode(Banner.Mode.OFF).run(args); 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/test/java/org/springframework/cloud/skipper/shell/command/support/TargetCredentialsTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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.skipper.shell.command.support; 18 | 19 | import org.junit.Test; 20 | 21 | import static org.assertj.core.api.Assertions.assertThat; 22 | 23 | /** 24 | * @author Mark Pollack 25 | */ 26 | public class TargetCredentialsTests { 27 | 28 | @Test 29 | public void testToString() throws Exception { 30 | TargetCredentials targetCredentials = new TargetCredentials(true); 31 | assertThat(targetCredentials.toString()).isEqualTo("[Uses OAuth2 Access Token]"); 32 | targetCredentials = new TargetCredentials("username", "password"); 33 | assertThat(targetCredentials.toString()).isEqualTo("Credentials [username='username', password='********']"); 34 | 35 | assertThat(targetCredentials).isEqualTo(new TargetCredentials("username", "password")); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/test/resources/org/springframework/cloud/skipper/shell/command/support/log4j.properties: -------------------------------------------------------------------------------- 1 | log4j.appender.stdout=org.apache.log4j.ConsoleAppender 2 | log4j.appender.stdout.Target:System.out 3 | log4j.appender.stdout.layout:org.apache.log4j.PatternLayout 4 | log4j.appender.stdout.layout.ConversionPattern:%d{ABSOLUTE} %5p %c{1}:%L - %m%n 5 | 6 | log4j.rootLogger:INFO, stdout 7 | 8 | log4j.logger.org.hibernate:DEBUG 9 | 10 | log4j.logger.org.hibernate.type:ALL 11 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell-commands/src/test/resources/org/springframework/cloud/skipper/shell/command/support/log4j.yml: -------------------------------------------------------------------------------- 1 | log4j: 2 | appender: 3 | stdout: org.apache.log4j.ConsoleAppender 4 | stdout.Target: System.out 5 | stdout.layout: org.apache.log4j.PatternLayout 6 | stdout.layout.ConversionPattern: '%d{ABSOLUTE} %5p %c{1}:%L - %m%n' 7 | logger: 8 | org: 9 | hibernate: DEBUG 10 | hibernate.type: ALL 11 | rootLogger: INFO, stdout 12 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper-shell/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper-shell/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-skipper-shell 5 | Spring Cloud Skipper :: Shell 6 | jar 7 | 8 | 9 | org.springframework.cloud 10 | spring-cloud-skipper-parent 11 | 2.9.4-SNAPSHOT 12 | 13 | 14 | 15 | 16 | org.springframework.boot 17 | spring-boot-starter 18 | 19 | 20 | org.springframework.boot 21 | spring-boot-starter-logging 22 | 23 | 24 | org.springframework.boot 25 | spring-boot-starter-test 26 | test 27 | 28 | 29 | org.springframework.cloud 30 | spring-cloud-skipper-shell-commands 31 | 32 | 33 | 34 | 35 | 36 | 37 | org.springframework.boot 38 | spring-boot-maven-plugin 39 | 40 | 41 | 42 | repackage 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell/src/main/java/org/springframework/cloud/skipper/shell/ShellApplication.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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.skipper.shell; 18 | 19 | import org.springframework.boot.SpringApplication; 20 | import org.springframework.boot.autoconfigure.SpringBootApplication; 21 | 22 | /** 23 | * Bootstrap class for spring shell. 24 | * 25 | * @author Ilayaperumal Gopinathan 26 | * @author Josh Long 27 | */ 28 | @SpringBootApplication 29 | public class ShellApplication { 30 | 31 | public static void main(String[] args) throws Exception { 32 | SpringApplication.run(ShellApplication.class, args); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper-shell/src/main/resources/application.yml: -------------------------------------------------------------------------------- 1 | spring: 2 | application: 3 | name: spring-cloud-skipper-shell 4 | main: 5 | banner-mode: 'off' 6 | logging: 7 | pattern: 8 | console: 9 | -------------------------------------------------------------------------------- /spring-cloud-skipper/.jdk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/spring-attic/spring-cloud-skipper/9626726d66eb2265e282a33c6209088c0b536909/spring-cloud-skipper/.jdk8 -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/PackageDeleteException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper; 17 | 18 | /** 19 | * Thrown if an attempt to alter a package still used by a deployed releases. 20 | * 21 | * @author Christian Tzolov 22 | */ 23 | public class PackageDeleteException extends SkipperException { 24 | 25 | public PackageDeleteException(String message) { 26 | super(message); 27 | } 28 | 29 | public PackageDeleteException(String message, Throwable cause) { 30 | super(message, cause); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/ReleaseUpgradeException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper; 17 | 18 | /** 19 | * Thrown if an attempt to upgrade a release encounters an issue. 20 | * 21 | * @author Ilayaperumal Gopinathan 22 | */ 23 | public class ReleaseUpgradeException extends SkipperException { 24 | 25 | public ReleaseUpgradeException(String message) { 26 | super(message); 27 | } 28 | 29 | public ReleaseUpgradeException(String message, Throwable cause) { 30 | super(message, cause); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/SkipperException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper; 17 | 18 | /** 19 | * Generic exception indicating a problem in components interacting with 20 | * {@code Skipper}. 21 | * 22 | * @author Mark Pollack 23 | * @author Janne Valkealahti 24 | */ 25 | @SuppressWarnings("serial") 26 | public class SkipperException extends RuntimeException { 27 | 28 | /** 29 | * Instantiates a new {@code SkipperException}. 30 | * 31 | * @param message the message 32 | */ 33 | public SkipperException(String message) { 34 | super(message); 35 | } 36 | 37 | /** 38 | * Instantiates a new {@code SkipperException}. 39 | * 40 | * @param message the message 41 | * @param cause the cause 42 | */ 43 | public SkipperException(String message, Throwable cause) { 44 | super(message, cause); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/AboutResource.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import org.springframework.hateoas.RepresentationModel; 19 | 20 | /** 21 | * Provides meta-information about the Spring Cloud Skipper server. 22 | * 23 | * @author Janne Valkealahti 24 | * 25 | */ 26 | public class AboutResource extends RepresentationModel { 27 | 28 | private VersionInfo versionInfo = new VersionInfo(); 29 | 30 | /** 31 | * Default constructor for serialization frameworks. 32 | */ 33 | public AboutResource() { 34 | } 35 | 36 | public VersionInfo getVersionInfo() { 37 | return versionInfo; 38 | } 39 | 40 | public void setVersionInfo(VersionInfo versionInfo) { 41 | this.versionInfo = versionInfo; 42 | } 43 | 44 | @Override 45 | public String toString() { 46 | return getVersionInfo().getServer().getName() + " v" + getVersionInfo().getServer().getVersion(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/AppInstanceStatusImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import java.util.Map; 19 | 20 | import org.springframework.cloud.deployer.spi.app.AppInstanceStatus; 21 | import org.springframework.cloud.deployer.spi.app.DeploymentState; 22 | 23 | /** 24 | * Implementation for {@link AppInstanceStatus} that has deployment state and attributes. 25 | * 26 | * @author Mark Pollack 27 | */ 28 | public class AppInstanceStatusImpl implements AppInstanceStatus { 29 | 30 | private String id; 31 | 32 | private DeploymentState state; 33 | 34 | private Map attributes; 35 | 36 | public AppInstanceStatusImpl() { 37 | } 38 | 39 | @Override 40 | public String getId() { 41 | return id; 42 | } 43 | 44 | @Override 45 | public DeploymentState getState() { 46 | return state; 47 | } 48 | 49 | @Override 50 | public Map getAttributes() { 51 | return attributes; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/AppStatusMixin.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import com.fasterxml.jackson.annotation.JsonCreator; 19 | import com.fasterxml.jackson.annotation.JsonProperty; 20 | 21 | import org.springframework.cloud.deployer.spi.app.AppStatus; 22 | import org.springframework.cloud.deployer.spi.app.DeploymentState; 23 | 24 | /** 25 | * A Jackson mixin that will call the constructor that takes the {@literal deploymentId} 26 | * and {@literal state} properties. 27 | * @author Mark Pollack 28 | */ 29 | public abstract class AppStatusMixin extends AppStatus { 30 | 31 | @JsonCreator 32 | AppStatusMixin(@JsonProperty("deploymentId") String deploymentId, 33 | @JsonProperty("state") DeploymentState deploymentState) { 34 | super(deploymentId, deploymentState); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/CancelRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * This contains all the request attributes for cancel operation. 20 | * 21 | * @author Janne Valkealahti 22 | * 23 | */ 24 | public class CancelRequest { 25 | 26 | private String releaseName; 27 | 28 | public CancelRequest() { 29 | } 30 | 31 | public CancelRequest(String releaseName) { 32 | this.releaseName = releaseName; 33 | } 34 | 35 | public String getReleaseName() { 36 | return releaseName; 37 | } 38 | 39 | public void setReleaseName(String releaseName) { 40 | this.releaseName = releaseName; 41 | } 42 | 43 | @Override 44 | public String toString() { 45 | return "CancelRequest [releaseName=" + releaseName + "]"; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/CancelResponse.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * This contains all the response attributes for cancel operation. 20 | * 21 | * @author Janne Valkealahti 22 | * 23 | */ 24 | public class CancelResponse { 25 | 26 | private Boolean accepted; 27 | 28 | public CancelResponse() { 29 | } 30 | 31 | public CancelResponse(Boolean accepted) { 32 | this.accepted = accepted; 33 | } 34 | 35 | public Boolean getAccepted() { 36 | return accepted; 37 | } 38 | 39 | public void setAccepted(Boolean accepted) { 40 | this.accepted = accepted; 41 | } 42 | 43 | @Override 44 | public String toString() { 45 | return "CancelResponse [accepted=" + accepted + "]"; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/CommonProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Common property values shared between initial install and update requests. 20 | * 21 | * @author Ilayaperumal Gopinathan 22 | * @author Mark Pollack 23 | */ 24 | public class CommonProperties { 25 | 26 | private String releaseName; 27 | 28 | private ConfigValues configValues; 29 | 30 | public String getReleaseName() { 31 | return releaseName; 32 | } 33 | 34 | public void setReleaseName(String releaseName) { 35 | this.releaseName = releaseName; 36 | } 37 | 38 | public ConfigValues getConfigValues() { 39 | return configValues; 40 | } 41 | 42 | public void setConfigValues(ConfigValues configValues) { 43 | this.configValues = configValues; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/FileHolder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Holder object that contains file name and its content as byte[]. 20 | * 21 | * @author Mark Pollack 22 | */ 23 | public class FileHolder { 24 | 25 | private byte[] bytes; 26 | 27 | private String name; 28 | 29 | public FileHolder() { 30 | } 31 | 32 | public FileHolder(String name, byte[] bytes) { 33 | this.bytes = bytes; 34 | this.name = name; 35 | } 36 | 37 | public byte[] getBytes() { 38 | return bytes; 39 | } 40 | 41 | public String getName() { 42 | return name; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/InstallProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Properties for the package installation. 20 | * 21 | * @author Mark Pollack 22 | */ 23 | public class InstallProperties extends CommonProperties { 24 | 25 | private String platformName; 26 | 27 | public String getPlatformName() { 28 | return platformName; 29 | } 30 | 31 | public void setPlatformName(String platformName) { 32 | this.platformName = platformName; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/InstallRequest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * InstallRequest contains request attributes for the package install operation. 20 | * 21 | * @author Mark Pollack 22 | */ 23 | public class InstallRequest { 24 | 25 | private PackageIdentifier packageIdentifier; 26 | 27 | private InstallProperties installProperties; 28 | 29 | public PackageIdentifier getPackageIdentifier() { 30 | return packageIdentifier; 31 | } 32 | 33 | public void setPackageIdentifier(PackageIdentifier packageIdentifier) { 34 | this.packageIdentifier = packageIdentifier; 35 | } 36 | 37 | public InstallProperties getInstallProperties() { 38 | return installProperties; 39 | } 40 | 41 | public void setInstallProperties(InstallProperties installProperties) { 42 | this.installProperties = installProperties; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/LogInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import java.util.Map; 19 | 20 | import com.fasterxml.jackson.annotation.JsonProperty; 21 | 22 | /** 23 | * Provides information about logs of a specific {@link Release}. 24 | * 25 | * @author Ilayaperumal Gopinathan 26 | * 27 | */ 28 | public class LogInfo { 29 | 30 | private Map logs; 31 | 32 | public LogInfo() { 33 | } 34 | 35 | public LogInfo(Map logs) { 36 | this.logs = logs; 37 | } 38 | 39 | @JsonProperty("logs") 40 | public Map getLogs() { 41 | return logs; 42 | } 43 | 44 | public void setLogs(Map logs) { 45 | this.logs = logs; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/NonVersionedAbstractEntity.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import javax.persistence.GeneratedValue; 19 | import javax.persistence.GenerationType; 20 | import javax.persistence.Id; 21 | import javax.persistence.MappedSuperclass; 22 | 23 | import com.fasterxml.jackson.annotation.JsonIgnore; 24 | 25 | /** 26 | * Base class for entity implementations that don't need optimistic locking. 27 | * Uses a {@link Long} id. 28 | * 29 | * @author Glenn Renfro 30 | */ 31 | @MappedSuperclass 32 | public class NonVersionedAbstractEntity { 33 | 34 | @Id 35 | @GeneratedValue(strategy = GenerationType.AUTO) 36 | @JsonIgnore 37 | private final Long id; 38 | 39 | protected NonVersionedAbstractEntity() { 40 | this.id = null; 41 | } 42 | 43 | public Long getId() { 44 | return this.id; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/PackageFile.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import javax.persistence.Entity; 19 | import javax.persistence.Lob; 20 | import javax.persistence.Table; 21 | 22 | /** 23 | * Package zip file 24 | * @author Mark Pollack 25 | */ 26 | @Entity 27 | @Table(name = "SkipperPackageFile") 28 | public class PackageFile extends NonVersionedAbstractEntity { 29 | 30 | /** 31 | * Package file. 32 | */ 33 | @Lob 34 | private byte[] packageBytes; 35 | 36 | public PackageFile() { 37 | } 38 | 39 | public PackageFile(byte[] packageBytes) { 40 | this.packageBytes = packageBytes; 41 | } 42 | 43 | public byte[] getPackageBytes() { 44 | return packageBytes; 45 | } 46 | 47 | public void setPackageBytes(byte[] packageBytes) { 48 | this.packageBytes = packageBytes; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/Platform.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import java.util.List; 19 | 20 | /** 21 | * @author Donovan Muller 22 | */ 23 | public class Platform { 24 | 25 | private String name; 26 | 27 | private List deployers; 28 | 29 | public Platform(String name, List deployers) { 30 | this.name = name; 31 | this.deployers = deployers; 32 | } 33 | 34 | public String getName() { 35 | return name; 36 | } 37 | 38 | public void setName(String name) { 39 | this.name = name; 40 | } 41 | 42 | public List getDeployers() { 43 | return deployers; 44 | } 45 | 46 | public void setDeployers(List deployers) { 47 | this.deployers = deployers; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/SkipperManifestKind.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | public enum SkipperManifestKind { 19 | SpringCloudDeployerApplication, 20 | SpringBootApp, 21 | CloudFoundryApplication 22 | } 23 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/SkipperManifestReader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | public interface SkipperManifestReader { 19 | 20 | Object read(String manifest); 21 | 22 | String[] getSupportedKinds(); 23 | } 24 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/StatusCode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Release's status code definition 20 | * 21 | * @author Mark Pollack 22 | */ 23 | 24 | public enum StatusCode { 25 | 26 | // Status_UNKNOWN indicates that a release is in an uncertain state. 27 | UNKNOWN, 28 | 29 | // Status_DEPLOYED indicates that the release has been pushed to the platform. 30 | DEPLOYED, 31 | 32 | // Status_DELETED indicates that a release has been deleted from the platform. 33 | DELETED, 34 | 35 | // Status_FAILED indicates that the release was not successfully deployed. 36 | FAILED 37 | 38 | } 39 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/Template.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Template represents a template file as a name/value pair. By convention, name is a 20 | * relative path within the scope of the chart's base directory. 21 | * 22 | * @author Mark Pollack 23 | */ 24 | public class Template { 25 | 26 | // Name is the path-like name of the template. 27 | private String name; 28 | 29 | // Data is the template as string data. 30 | private String data; 31 | 32 | public Template() { 33 | } 34 | 35 | public String getName() { 36 | return name; 37 | } 38 | 39 | public void setName(String name) { 40 | this.name = name; 41 | } 42 | 43 | public String getData() { 44 | return data; 45 | } 46 | 47 | public void setData(String data) { 48 | this.data = data; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/UpgradeProperties.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | /** 19 | * Properties for upgrade operation. 20 | * 21 | * @author Ilayaperumal Gopinathan 22 | */ 23 | public class UpgradeProperties extends CommonProperties { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/deployer/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | * Core domain classes for packages and manifests that related to the kind SpringCloudDeployerApplication. 18 | */ 19 | package org.springframework.cloud.skipper.domain.deployer; 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/domain/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | * Core domain classes for Skipper covering Packages, Releases, and Install/Upgrade Requests. 18 | */ 19 | package org.springframework.cloud.skipper.domain; 20 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/io/PackageFileUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.io; 17 | 18 | import java.io.File; 19 | 20 | import org.springframework.cloud.skipper.domain.PackageMetadata; 21 | 22 | /** 23 | * Package File methods used by Skipper. 24 | * 25 | * @author Ilayaperumal Gopinathan 26 | */ 27 | public class PackageFileUtils { 28 | 29 | public static File calculatePackageZipFile(PackageMetadata packageMetadata, File targetPath) { 30 | return new File(targetPath, packageMetadata.getName() + "-" + packageMetadata.getVersion() + ".zip"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/io/PackageReader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.io; 17 | 18 | import java.io.File; 19 | 20 | import org.springframework.cloud.skipper.domain.Package; 21 | 22 | /** 23 | * @author Mark Pollack 24 | */ 25 | public interface PackageReader { 26 | 27 | /** 28 | * Reads the Package from the specified file 29 | * @param directory the directory containing the unzipped file 30 | * @return the corresponding Package 31 | */ 32 | Package read(File directory); 33 | } 34 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/java/org/springframework/cloud/skipper/io/PackageWriter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper.io; 17 | 18 | import java.io.File; 19 | 20 | import org.springframework.cloud.skipper.domain.Package; 21 | 22 | /** 23 | * @author Mark Pollack 24 | */ 25 | public interface PackageWriter { 26 | 27 | /** 28 | * Writes the package to the specified directory. File name is determined from package 29 | * metadata. 30 | * @param pkg the package to write 31 | * @param directory the directory where to create the zip file of the package. 32 | * @return the zip file in the specified directory. 33 | */ 34 | File write(Package pkg, File directory); 35 | } 36 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/resources/org/springframework/cloud/skipper/io/cf-template.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: CloudFoundryApplication 3 | spec: 4 | resource: "{{{spec.resource}}}" 5 | version: "{{{spec.version}}}" 6 | manifest: 7 | {{#spec.manifest.entrySet}} 8 | "{{{key}}}": "{{{value}}}" 9 | {{/spec.manifest.entrySet}} 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/main/resources/org/springframework/cloud/skipper/io/generic-template.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | {{#metadata.entrySet}} 5 | "{{{key}}}": "{{{value}}}" 6 | {{/metadata.entrySet}} 7 | spec: 8 | resource: "{{{spec.resource}}}" 9 | resourceMetadata: "{{{spec.resource}}}:jar:metadata:{{{spec.version}}}" 10 | version: "{{{spec.version}}}" 11 | applicationProperties: 12 | {{#spec.applicationProperties.entrySet}} 13 | "{{{key}}}": "{{{value}}}" 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | "{{{key}}}": "{{{value}}}" 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/java/org/springframework/cloud/skipper/TestResourceUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2017 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 | package org.springframework.cloud.skipper; 17 | 18 | import org.springframework.core.io.ClassPathResource; 19 | 20 | /** 21 | * Convenience utilities for common operations with test resources. 22 | * 23 | * @author Chris Beams 24 | */ 25 | public abstract class TestResourceUtils { 26 | 27 | /** 28 | * Load a {@link ClassPathResource} qualified by the simple name of clazz, and relative to 29 | * the package for clazz. 30 | *

31 | * Example: given a clazz 'com.foo.BarTests' and a resourceSuffix of 'context.xml', this 32 | * method will return a ClassPathResource representing com/foo/BarTests-context.xml 33 | *

34 | * Intended for use loading context configuration XML files within JUnit tests. 35 | */ 36 | public static ClassPathResource qualifiedResource(Class clazz, String resourceSuffix) { 37 | return new ClassPathResource(String.format("%s-%s", clazz.getSimpleName(), resourceSuffix), clazz); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/java/org/springframework/cloud/skipper/domain/PackageMetadataTests.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2018 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 | package org.springframework.cloud.skipper.domain; 17 | 18 | import nl.jqno.equalsverifier.EqualsVerifier; 19 | import org.junit.Test; 20 | 21 | /** 22 | * @author Mark Pollack 23 | */ 24 | public class PackageMetadataTests { 25 | 26 | @Test 27 | public void equalsContract() { 28 | EqualsVerifier.forClass(PackageMetadata.class) 29 | .withOnlyTheseFields("repositoryId", "name", "version") 30 | .verify(); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/domain/CloudFoundryApplicationManifestReaderTests-manifest1.yml: -------------------------------------------------------------------------------- 1 | kind: CloudFoundryApplication 2 | spec: 3 | resource: https://github.com/my/entry 4 | version: 1.0.0 5 | manifest: 6 | buildpack: buildpack 7 | command: my command 8 | disk-quota: '2048' 9 | domains: 10 | - domain1 11 | - domain2 12 | env: 13 | key1: value1 14 | key2: value2 15 | health-check-http-endpoint: endpoint 16 | health-check-type: process 17 | hosts: 18 | - host1 19 | - host2 20 | instances: '1' 21 | memory: '1024' 22 | timeout: '180' 23 | no-hostname: false 24 | no-route: false 25 | random-route: true 26 | stack: stack 27 | services: 28 | - rabbit 29 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/domain/CloudFoundryApplicationManifestReaderTests-manifest2.yml: -------------------------------------------------------------------------------- 1 | kind: CloudFoundryApplication 2 | spec: 3 | resource: https://github.com/my/entry 4 | version: 1.0.0 5 | manifest: 6 | services: [rabbit] 7 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/domain/SpringCloudDeployerApplicationManifestReaderTests-erroneous-manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringBootApp1 4 | metadata: 5 | name: log-sink 6 | count: 2 7 | type: sink 8 | spec: 9 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit:1.2.0.RELEASE 10 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RELEASE 11 | applicationProperties: 12 | log.level: INFO 13 | log.expression: hellobaby 14 | deploymentProperties: 15 | memory: 1024 16 | disk: 2 17 | --- 18 | apiVersion: skipper.spring.io/v1 19 | kind: SpringCloudDeployerApplication 20 | metadata: 21 | name: time-source 22 | count: 5 23 | type: source 24 | spec: 25 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit:1.2.0.RELEASE 26 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:1.2.0.RELEASE 27 | applicationProperties: 28 | log.level: DEBUG 29 | deploymentProperties: 30 | memory: 2048 31 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/domain/SpringCloudDeployerApplicationManifestReaderTests-manifest.yml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: skipper.spring.io/v1 3 | kind: SpringBootApp 4 | metadata: 5 | name: log-sink 6 | count: 2 7 | type: sink 8 | spec: 9 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit:1.2.0.RELEASE 10 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:1.2.0.RELEASE 11 | applicationProperties: 12 | log.level: INFO 13 | log.expression: "hello baby" 14 | deploymentProperties: 15 | memory: 1024 16 | disk: 2 17 | --- 18 | apiVersion: skipper.spring.io/v1 19 | kind: SpringCloudDeployerApplication 20 | metadata: 21 | name: time-source 22 | count: 5 23 | type: source 24 | spec: 25 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit:1.2.0.RELEASE 26 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:1.2.0.RELEASE 27 | applicationProperties: 28 | log.level: DEBUG 29 | deploymentProperties: 30 | memory: 2048 31 | disk: 4 -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/io/PackageWriterTests-generic-template.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | metadata: 4 | {{#metadata.entrySet}} 5 | "{{{key}}}": "{{{value}}}" 6 | {{/metadata.entrySet}} 7 | spec: 8 | resource: "{{{spec.resource}}}" 9 | resourceMetadata: "{{{spec.resource}}}:jar:metadata:{{{spec.version}}}" 10 | version: "{{{spec.version}}}" 11 | applicationProperties: 12 | {{#spec.applicationProperties.entrySet}} 13 | "{{{key}}}": "{{{value}}}" 14 | {{/spec.applicationProperties.entrySet}} 15 | deploymentProperties: 16 | {{#spec.deploymentProperties.entrySet}} 17 | "{{{key}}}": "{{{value}}}" 18 | {{/spec.deploymentProperties.entrySet}} 19 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/io/PackageWriterTests-package.yml: -------------------------------------------------------------------------------- 1 | !!org.springframework.cloud.skipper.domain.PackageMetadata 2 | apiVersion: null 3 | description: null 4 | displayName: null 5 | iconUrl: null 6 | kind: null 7 | maintainer: bob 8 | name: myapp 9 | origin: null 10 | packageFile: null 11 | packageHomeUrl: null 12 | packageSourceUrl: null 13 | repositoryId: null 14 | repositoryName: null 15 | sha256: null 16 | tags: null 17 | version: 1.0.0 18 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/org/springframework/cloud/skipper/io/PackageWriterTests-values.yml: -------------------------------------------------------------------------------- 1 | fiz: faz 2 | foo: bar 3 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: ticktock 4 | version: 1.0.0 5 | packageSourceUrl: https://example.com/dataflow/ticktock 6 | packageHomeUrl: https://example.com/dataflow/ticktock 7 | tags: stream, time, log 8 | maintainer: https://github.com/markpollack 9 | description: The ticktock stream sends a time stamp and logs the value. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: log 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/log/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: logging, sink 8 | maintainer: https://github.com/sobychacko 9 | description: The log sink uses the application logger to output the data for inspection. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/templates/log.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | deployment: 4 | name: log 5 | count: {{deployment.count}} 6 | applicationProperties: 7 | {{#deployment.applicationProperties.entrySet}} 8 | {{key}}: {{value}} 9 | {{/deployment.applicationProperties.entrySet}} 10 | resource: maven://org.springframework.cloud.stream.app:log-sink-rabbit:{{appVersion}} 11 | resourceMetadata: maven://org.springframework.cloud.stream.app:log-sink-rabbit:jar:metadata:{{appVersion}} 12 | deploymentProperties: 13 | {{#deployment.deploymentProperties.entrySet}} 14 | {{key}}: {{value}} 15 | {{/deployment.deploymentProperties.entrySet}} 16 | 17 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/log/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE 5 | deployment: 6 | count: 1 7 | applicationProperties: 8 | log.level: DEBUG 9 | deploymentProperties: 10 | memory: 1024m 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/package.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SkipperPackageMetadata 3 | name: time 4 | version: 2.0.0 5 | packageSourceUrl: https://github.com/spring-cloud-stream-app-starters/time/tree/v1.2.0.RELEASE 6 | packageHomeUrl: https://cloud.spring.io/spring-cloud-stream-app-starters/ 7 | tags: time, source 8 | maintainer: https://github.com/sobychacko 9 | description: The time source periodically emits a timestamp string. 10 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/templates/time.yml: -------------------------------------------------------------------------------- 1 | apiVersion: skipper.spring.io/v1 2 | kind: SpringCloudDeployerApplication 3 | deployment: 4 | name: time 5 | count: {{deployment.count}} 6 | applicationProperties: 7 | {{#deployment.applicationProperties.entrySet}} 8 | {{key}}: {{value}} 9 | {{/deployment.applicationProperties.entrySet}} 10 | resource: maven://org.springframework.cloud.stream.app:time-source-rabbit:{{appVersion}} 11 | resourceMetadata: maven://org.springframework.cloud.stream.app:time-source-rabbit:jar:metadata:{{appVersion}} 12 | deploymentProperties: 13 | {{#deployment.deploymentProperties.entrySet}} 14 | {{key}}: {{value}} 15 | {{/deployment.deploymentProperties.entrySet}} 16 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/packages/time/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | appVersion: 1.2.0.RELEASE # 5 | deployment: 6 | count: 1 7 | applicationProperties: 8 | log.level: DEBUG 9 | deploymentProperties: 10 | memory: 1024m 11 | 12 | 13 | -------------------------------------------------------------------------------- /spring-cloud-skipper/src/test/resources/repositories/sources/test/ticktock/ticktock-1.0.0/values.yml: -------------------------------------------------------------------------------- 1 | # Default values for {{name}} 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates 4 | 5 | foo: bar 6 | biz: baz 7 | 8 | # No values to override 9 | 10 | -------------------------------------------------------------------------------- /spring-cloud-starter-skipper-server/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | spring-cloud-starter-skipper-server 5 | jar 6 | Spring Cloud Starter :: Skipper Server 7 | 8 | 9 | org.springframework.cloud 10 | spring-cloud-skipper-parent 11 | 2.9.4-SNAPSHOT 12 | 13 | 14 | 15 | 16 | org.springframework.cloud 17 | spring-cloud-skipper-server-core 18 | 19 | 20 | org.springframework.cloud 21 | spring-cloud-skipper-platform-kubernetes 22 | 23 | 24 | org.springframework.cloud 25 | spring-cloud-skipper-platform-cloudfoundry 26 | 27 | 28 | org.springframework.cloud 29 | spring-cloud-skipper-autoconfigure 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /src/scripts/next-minor-snapshot-version: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # ---------------------------------------------------------------------------- 4 | # Script maintaining versions 5 | # 6 | # Bump up next minor development version. 7 | # ---------------------------------------------------------------------------- 8 | 9 | find_basedir() { 10 | local basedir=$(cd -P -- "$(dirname -- "$0")" && cd .. && cd .. && pwd -P) 11 | echo "${basedir}" 12 | } 13 | 14 | export PROJECTBASEDIR=$(find_basedir) 15 | 16 | (cd $PROJECTBASEDIR && ./mvnw build-helper:parse-version versions:set -DprocessAllModules=false -DgenerateBackupPoms=false -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}.0-SNAPSHOT' && ./mvnw -pl spring-cloud-skipper-dependencies build-helper:parse-version versions:set -DprocessAllModules=false -DgenerateBackupPoms=false -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}.0-SNAPSHOT') 17 | 18 | -------------------------------------------------------------------------------- /src/scripts/next-snapshot-version: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # ---------------------------------------------------------------------------- 4 | # Script maintaining versions 5 | # 6 | # Bump up next build development version. 7 | # ---------------------------------------------------------------------------- 8 | 9 | find_basedir() { 10 | local basedir=$(cd -P -- "$(dirname -- "$0")" && cd .. && cd .. && pwd -P) 11 | echo "${basedir}" 12 | } 13 | 14 | export PROJECTBASEDIR=$(find_basedir) 15 | 16 | (cd $PROJECTBASEDIR && ./mvnw build-helper:parse-version versions:set -DprocessAllModules=false -DgenerateBackupPoms=false -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT' && ./mvnw -pl spring-cloud-skipper-dependencies build-helper:parse-version versions:set -DprocessAllModules=false -DgenerateBackupPoms=false -DnewVersion='${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT') 17 | 18 | --------------------------------------------------------------------------------