projectcontour / contour-operator

Experimental repository to explore an operator for deploying Contour
Apache License 2.0
43 stars 34 forks source link
contour operators

Deprecation Notice

This repository has been deprecated and archived as read-only. The code here is no longer maintained but is preserved for reference.

contour-operator

Contour Operator provides a method for packaging, deploying, and managing Contour. The operator extends the functionality of the Kubernetes API to create, configure, and manage instances of Contour on behalf of users. It builds upon the basic Kubernetes resource and controller concepts, but includes domain-specific knowledge to automate the entire lifecycle of Contour. Refer to the official Kubernetes documentation to learn more about the benefits of the operator pattern.

Get Started

Prerequisites

Install the Contour Operator & Contour CRDs:

$ kubectl apply -f https://raw.githubusercontent.com/projectcontour/contour-operator/main/examples/operator/operator.yaml

Verify the deployment is available:

$ kubectl get deploy -n contour-operator
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
contour-operator   1/1     1            1           1m

Install an instance of the Contour custom resource:

$ kubectl apply -f https://raw.githubusercontent.com/projectcontour/contour-operator/main/examples/contour/contour.yaml

Verify the Contour custom resource is available:

$ kubectl get contour/contour-sample
NAME             READY   REASON
contour-sample   True    ContourAvailable

Note: It may take several minutes for the Contour custom resource to become available.

Test with Ingress:

$ kubectl apply -f https://projectcontour.io/examples/kuard.yaml

Verify the example app deployment is available:

$ kubectl get deploy/kuard
NAME    READY   UP-TO-DATE   AVAILABLE   AGE
kuard   3/3     3            3           1m50s

Test the example app:

$ curl -o /dev/null -s -w "%{http_code}\n" http://local.projectcontour.io/
200

Note: A public DNS record exists for "local.projectcontour.io" which is configured to resolve to 127.0.0.1. This allows you to use a real domain name when testing in a kind cluster. If testing on a standard Kubernetes cluster, replace "local.projectcontour.io" with the hostname of kubectl get deploy/kuard.

Contributing

Thanks for taking the time to join our community and start contributing!