Skip to content
No description, website, or topics provided.
Shell Dockerfile Go
Branch: master
Clone or download
openshift-merge-robot Merge pull request #88 from sohankunkerkar/alm-examples
Adding alm-examples for passing the CI test
Latest commit 85a6ebe May 21, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
olm-testing fixed sed command in Dockerfile.upstream file May 7, 2019
scripts Remove dangling reference to 0.0.8 May 7, 2019
upstream-manifests Adding alm-examples for passing the CI test May 21, 2019
vendor Revendor federation @ 0.0.10 May 7, 2019
Dockerfile Bump version on disk to 0.0.10 May 7, 2019
Gopkg.lock
Gopkg.toml Bump version on disk to 0.0.10 May 7, 2019
LICENSE
Makefile.ci
OWNERS Add OWNERS file Dec 5, 2018
README.md
stub.go Prepare for 0.0.8 dep ensure Apr 12, 2019
stub_test.go Add missing dependencies to build e2e Jan 22, 2019

README.md

federation-v2-operator

This repository contains source code and resource manifests to build Federation-v2 images using ci-operator as part of the OpenShift build process.

This repository also contains exploratory work to deploy Federation-v2 as an operator using OLM.

Relationship between this repository and OperatorHub

This repository is the canonical store for manifests that appear on operatorhub.io and the in-cluster OperatorHub in OpenShift 4. In turn, the different OperatorHub locations are all populated from the community-operators repository. Here's an example of how a change makes its way into this repository and then into OperatorHub:

  1. Changes are made via a pull request to this repository and merged
  2. Someone uses the scripts/populate-community-operators.sh script to update their local fork of the community-operators repo with the latest manifests in the community-operators and upstream-community-operators directories
  3. The same person makes a pull request to the community-operators repository with the latest version of the manifests
  4. Once the pull request to community-operators is merged:
    1. The OperatorHub team manually updates operatorhub.io
    2. OpenShift 4.x clusters pick up the change automatically within 1 hour

Layout of this repository

  • The stub.go and stub_test.go files are intentionally-non-compileable stub files that contain imports to drive dep to put the right things into the vendor directory
  • The vendor/ directory holds a pinned version of federation-v2 and its dependencies
  • The Dockerfile in the root directory is used to build enterprise images and performs binary builds only
  • The upstream-manifests/ directory contains manifests to configure OLM to deploy federation-v2 _using the upstream images; this is the directory that populates manifests in OperatorHub
  • The olm-testing/ directory contains a Dockerfile for building an operator registry that hosts the OLM manifests
  • The scripts/ directory holds scripts to populate manifests and upstream-manifests, the community-operators repo, push operator registries, etc.

Continuous Integration

Developing

This project has tooling allowing you to develop against your own image repositories in quay.io without having to make local changes. Quick development guide follows.

Prerequisites

You must have:

  • An OpenShift 4.0 cluster and cluster-admin rights for that cluster
    • The federation-test namespace must exist in your cluster
  • Your own quay.io account and the following image repositories under that account:
    • origin-federation-controller
    • federation-operator-registry
  • The kubectl binary in your PATH

Create an operator registry

Use the scripts/push-operator-registry.sh script to push an image containing an operator registry. This script takes your quay.io account name as an argument:

$ ./scripts/push-operator-registry.sh pmorie
Building operator registry with tag quay.io/pmorie/federation-operator-registry
Sending build context to Docker daemon  53.34MB
Step 1/4 : FROM quay.io/openshift/origin-operator-registry:latest
...

Note, this script accepts a parameter for the name of the repository to push to; use this to inject your quay account name.

Install federation using OLM

Run the scripts/install-using-catalog-source.sh script to install federation into the federation-test namespace using OLM. This script takes your quay account name as an argument, and optionally the type of deployment to subscribe to:

$ scripts/install-using-catalog-source.sh pmorie <namespaced|cluster-scoped>
catalogsource.operators.coreos.com/federation created
operatorgroup.operators.coreos.com/namespaced-federation created
subscription.operators.coreos.com/namespaced-federation-sub created

This script:

  • Configures a CatalogSource for OLM that references the operator registry you built
  • Creates an OperatorGroup
  • Creates a Subscription to the operator that drives OLM to install it in your namespace

Note, if you run this script without an argument, you will get federation deployed in a namespaced scope. To deploy the cluster-scoped version, you should run:

$ ./scripts/install-using-catalog-source.sh pmorie cluster-scoped
catalogsource.operators.coreos.com/federation created
operatorgroup.operators.coreos.com/cluster-scoped-federation created
subscription.operators.coreos.com/cluster-scoped-federation-sub created
You can’t perform that action at this time.