Repositories store package metadata and host package .zip files. Repositores can be local or remote, were local means backed by Skipper’s relational database and remote means a filesystem exposed over HTTP.
When registering a remote registry (for example, the experimental
one that is currently defined by default in addition to one named local`), use the following format:
spring cloud: skipper: server: packageRepositories: - name: experimental url: http://skipper-repository.cfapps.io/repository/experimental description: Experimental Skipper Repository repoOrder: 0 - name: local url: http://${spring.cloud.client.hostname}:7577 local: true description: Default local database backed repository repoOrder: 1
The repoOrder
determines which repository serves up a package if one with the same name is registered in two or more repositories.
The directory structure assumed for a remote repository is the registered url
value followed by the package name and then the zip file name (for example, skipper-repository.cfapps.io/repository/experimental/helloworld/helloworld-1.0.0.zip
for the package helloworld
with a version of 1.0.0
).
A file named index.yml
is expected to be directly under the registered url
— for example, skipper-repository.cfapps.io/repository/experimental/index.yml.
This file contains the package metadata for all the packages hosted by the repository.
It is up to you to update the index.yml
file "'by hand'" for remote repositories.
'Local' repositories are backed by Skipper’s database. In the Skipper 1.0 release, they do not expose the index.yml or the .zip files under a filesystem-like URL structure as with remote repositories. This feature will be provided in the next version. However, you can upload packages to a local repository and do not need to maintain an index file. See the “Part VIII, “Skipper Commands”” section for information on creating local repositories.
A good example that shows using a Spring Boot web application with static resources to host a Repository can be found here. This application is currently running under skipper-repository.cfapps.io/repository/experimental.