Find, install and publish Cloud Native packages
Go to file
Cynthia S. Garcia 795bc2d35d
Improve subscription icon loading spinner (#368)
Signed-off-by: Cintia Sanchez Garcia <cynthiasg@icloud.com>
2020-05-08 10:50:38 +02:00
.github/workflows Trigger CI workflow on pull request (#272) 2020-04-07 11:33:20 +02:00
chart Prepare backend to support notifications (#365) 2020-05-07 20:53:37 +02:00
cmd Prepare backend to support notifications (#365) 2020-05-07 20:53:37 +02:00
configs Add grafana dashboard configuration (#321) 2020-04-17 17:58:28 +02:00
database Fix issue in register_package sql function (#367) 2020-05-08 00:49:44 +02:00
docs Some minor tweaks to UI (#265) 2020-04-03 20:20:51 +02:00
internal Add notifications support to UI (#366) 2020-05-07 21:27:32 +02:00
scripts
web Improve subscription icon loading spinner (#368) 2020-05-08 10:50:38 +02:00
.dockerignore
.gitattributes Fix loading appearance in control-panel (#327) 2020-04-22 17:10:11 +02:00
.gitignore Add some tests for UI navigation components (#324) 2020-04-21 13:43:02 +02:00
.golangci.yml Prepare backend to support notifications (#365) 2020-05-07 20:53:37 +02:00
.ignore
CONTRIBUTING.md Adding contributing guide (#270) 2020-04-10 11:24:09 -04:00
LICENSE
README.md Adding community/meeting details (#249) 2020-04-10 11:21:05 -04:00
code-of-conduct.md
go.mod Chart tracker now supports logos in data urls (#355) 2020-04-30 20:34:34 +02:00
go.sum Chart tracker now supports logos in data urls (#355) 2020-04-30 20:34:34 +02:00

README.md

Artifact Hub

CI

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, and Open Policy Agent (OPA) policies.

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 pre-alpha state. Support for Helm charts, Falco configurations and OPA policies 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/.

Community

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:

  1. The software, consisting of frontend code using React, backend written in Go, and Postgres with a number of stored procedures
  2. 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
  3. 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 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

Build docker images

At the moment, the Artifact Hub Docker images haven't been published yet to any Docker registry, so you need to build them locally to make them available to your local cluster.

$ git clone https://github.com/artifacthub/hub && cd hub
$ eval $(minikube docker-env)
$ scripts/docker-build.sh

This may take a few minutes.

Install chart

Once all images have been built, you can proceed with the chart installation.

$ helm dep update chart
$ helm install hub chart

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

Populating packages

The chart installs a cronjob in charge of launching periodically (every 30m) a process called chart-tracker which indexes charts. If you don't want to wait until it's triggered by the cronjob, you can create a job manually using the following command:

$ kubectl create job initial-chart-tracker-job --from=cronjob/chart-tracker

Uninstall

Once you are done, you can clean up all Kubernetes resources created by uninstalling the chart:

$ helm uninstall hub