Artifact Hub

Artifact Hub is a web-based application that enables finding, installing, and publishing packages and configurations for CNCF projects. For example, this could include Helm charts, Falco configurations, Open Policy Agent (OPA) policies, and OLM operators.
Discovering artifacts to use with CNCF projects can be difficult. If every CNCF project that needs to share artifacts creates its own Hub this creates a fair amount of repeat work for each project and a fractured experience for those trying to find the artifacts to consume. The Artifact Hub attempts to solve that by providing a single experience for consumers that any CNCF project can leverage.
The project, accessible at https://artifacthub.io, is currently in development in a alpha state. Support for Helm charts, Falco configurations, OPA policies and OLM operators is in development with plans to support more projects to follow. Pull requests, especially those to support other CNCF projects, are welcome.
Feel free to ask any questions on the #artifact-hub channel in the CNCF Slack. To get an invite please visit http://slack.cncf.io/.
The Artifact Hub is an open source project. Aside from contributing code and feature suggestions you can also engage via:
Process
We are in conversation with the CNCF TOC on whether it makes sense for Artifact Hub to become a sandbox project or whether a working group or similar mechanism might be better.
We're envisioning that Artifact Hub will have three main components:
- The software, consisting of frontend code using React, backend written in Go, and Postgres with a number of stored procedures
- A process by which new artifacts get added to Artifact Hub, updated, and removed. The documentation for this process is just beginning, but it needs to be publicly documented, transparent, and robust. In particular, edge cases need to be able to be reviewed by the project maintainers, with an appeal path to SIG Apps and the TOC
- Operational responsibilities. A number of organizations are likely to depend on Artifact Hub not to “break the build” and so the maintainers will need to provide a high level of uptime, with CNCF funding the hosting and related systems
Screenshots
Getting started
The easiest way to try Artifact Hub in your Kubernetes cluster is by deploying the Helm chart provided. Let's see how this can be done using Minikube locally.
Prerequisites
Before proceeding, please make sure your system meets the following requirements:
- Working Minikube environment
- Nginx Ingress controller enabled (
minikube addons enable ingress
)
- Helm installed
Installing the chart
To install the chart with the release name hub
run:
$ helm repo add artifact-hub https://artifacthub.github.io/hub
$ helm install hub artifact-hub/artifact-hub
The command deploys Artifact Hub on the Kubernetes cluster using the default configuration. The configuration section lists the parameters that can be configured during installation.
As soon as all pods are up and running, you can access the Artifact Hub by visiting the address specified in your Ingress object in your browser (http://192.168.64.18
in the case shown below).
$ kubectl get ingress
NAME HOSTS ADDRESS PORTS AGE
hub * 192.168.64.18 80 6s
When the parameter dbMigrator.loadSampleData
is set to true (default) a demo user and a couple of sample repositories are registered automatically. The credentials for the demo user are: demo@artifacthub.io
/ changeme
. You can change the password from the control panel once you log in.
Populating packages
The chart installs some cronjobs
in charge of launching periodically (every 30m) the trackers, which index packages from the registered repositories. Some sample repositories are added by default when dbMigrator.loadSampleData
is set to true. If you don't want to wait until the jobs are triggered by the cronjob, you can create some or all of them manually using the following commands:
$ kubectl create job initial-falco-tracker-job --from=cronjob/falco-tracker
$ kubectl create job initial-helm-tracker-job --from=cronjob/helm-tracker
$ kubectl create job initial-olm-tracker-job --from=cronjob/olm-tracker
Uninstalling the Chart
To uninstall the hub
deployment run:
$ helm uninstall hub
The command removes all the Kubernetes components associated with the chart and deletes the release.