Skip to content

m1kola/catalogd

 
 

Repository files navigation

catalogd

This repository is a prototype for a custom apiserver that uses a (dedicated ectd instance)[configs/etcd] to serve FBC content on cluster in a Kubernetes native way on cluster.

Enhacement

https://hackmd.io/@i2YBW1rSQ8GcKcTIHn9CCA/B1cMe1kHj

Quickstart.

$ kind create cluster
$ kubectl apply -f https://github.com/operator-framework/catalogd/config/crd/bases/
$ kubectl apply -f https://github.com/operator-framework/catalogd/config/
$ kubectl create ns test
$ kubectl apply -f config/samples/core_v1beta1_catalog.yaml

$ kubectl get catalog -n test 
NAME                   AGE
catalog-sample   98s

$ kubectl get bundlemetadata -n test 
NAME                                               AGE
3scale-community-operator.v0.7.0                   28s
3scale-community-operator.v0.8.2                   28s
3scale-community-operator.v0.9.0                   28s
falcon-operator.v0.5.1                             2s
falcon-operator.v0.5.2                             2s
falcon-operator.v0.5.3                             1s
falcon-operator.v0.5.4                             1s
falcon-operator.v0.5.5                             1s
flux.v0.13.4                                       1s
flux.v0.14.0                                       1s
flux.v0.14.1                                       1s
flux.v0.14.2                                       1s
flux.v0.15.2                                       1s
flux.v0.15.3                                       1s
.
.
.

$ kubectl get packages -n test 
NAME                                        AGE
3scale-community-operator                   77m
ack-apigatewayv2-controller                 77m
ack-applicationautoscaling-controller       77m
ack-dynamodb-controller                     77m
ack-ec2-controller                          77m
ack-ecr-controller                          77m
ack-eks-controller                          77m
ack-elasticache-controller                  77m
ack-emrcontainers-controller                77m
ack-iam-controller                          77m
ack-kms-controller                          77m
ack-lambda-controller                       77m
ack-mq-controller                           77m
ack-opensearchservice-controller            77m
.
.
.

Contributing

Thanks for your interest in contributing to catalogd!

catalogd is in the very early stages of development and a more in depth contributing guide will come in the near future.

In the mean time, it is assumed you know how to make contributions to open source projects in general and this guide will only focus on how to manually test your changes (no automated testing yet).

If you have any questions, feel free to reach out to us on the Kubernetes Slack channel #olm-dev or create an issue

Testing Local Changes

Prerequisites

Local (not on cluster)

Note: This will work only for the controller

  • Create a cluster:
kind create cluster
  • Install CRDs and run the controller locally:
kubectl apply -f config/crd/bases/ && make run

On Cluster

  • Build the images locally:
make docker-build-controller && make docker-build-server
  • Create a cluster:
kind create cluster
  • Load the images onto the cluster:
kind load docker-image quay.io/operator-framework/catalogd-controller:latest && kind load docker-image quay.io/operator-framework/catalogd-server:latest
  • Install cert-manager:
 make cert-manager
  • Install the CRDs
kubectl apply -f config/crd/bases/
  • Deploy the apiserver, etcd, and controller:
kubectl apply -f config/
  • Create the sample Catalog (this will trigger the reconciliation loop):
kubectl apply -f config/samples/core_v1beta1_catalog.yaml

About

On-cluster FBC catalog content server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 84.4%
  • Makefile 12.3%
  • Shell 3.0%
  • Dockerfile 0.3%