github.com/projectcontour/contour@v1.28.2/site/content/posts/2020-12-18-contour_v1110.md (about)

     1  ---
     2  title: Announcing Contour v1.11.0
     3  excerpt: This blog post covers the new Contour Operator released in v1.11.0.
     4  author_name: Steve Sloka & Daneyon Hansen
     5  # author_avatar: /img/contributors/steve-sloka.png
     6  categories: [kubernetes]
     7  # Tag should match author to drive author pages
     8  tags: ['Steve Sloka & Daneyon Hansen']
     9  date: 2020-12-18
    10  slug: contour_v1110
    11  ---
    12  
    13  Contour continues to add new features to help you better manage ingress operations in a cluster.
    14  Our latest feature release, Contour 1.11.0, now includes support for a new operator aimed at managing the lifecycle of Contour and its corresponding Envoy instances.
    15  
    16  ## Contour Operator
    17  
    18  __FEATURE STATE:__ Contour v1.11.0 [alpha](https://projectcontour.io/resources/deprecation-policy/)
    19  
    20  [Contour Operator](https://github.com/projectcontour/contour-operator/blob/main/README.md) provides a method for packaging,
    21  deploying, and managing Contour. The operator extends the functionality of the Kubernetes API to create, configure, and
    22  manage instances of Contour on behalf of users.
    23  It builds upon the basic Kubernetes resource and controller concepts, but includes domain-specific knowledge to automate the entire lifecycle of Contour.
    24  
    25  In Kubernetes, controllers of the control-plane implement control loops that repeatedly compare the desired state of the cluster to its actual state.
    26  If the cluster's actual state doesn’t match the desired state, then the controller takes action to fix the problem.
    27  Contour Operator is a custom Kubernetes controller that uses the `Contour` custom resource (CR) to manage Contour and its dependent components, i.e. the Envoy DaemonSet.
    28  The `contours.operator.projectcontour.io` Custom Resource Definition (CRD) defines the `Contour` CR. A `Contour` is handled by the Kubernetes API just like built-in objects, including interaction via kubectl and inclusion in role-based access control (RBAC) policies.
    29  The following example runs an instance of Contour in namespace `projectcontour` with 2 Deployment replicas:
    30  ```
    31  cat <<EOF | kubectl apply -f -
    32  apiVersion: operator.projectcontour.io/v1alpha1
    33  kind: Contour
    34  metadata:
    35    name: contour-sample
    36  spec: {}
    37  EOF
    38  ```
    39  
    40  No configuration, i.e. `spec`, is provided since `projectcontour` is the default namespace and `2` is the default number
    41  of replicas for a `Contour`.
    42  The default parameters of the `Contour` can be verified in the same way as any other Kubernetes resource:
    43  ```
    44  $ kubectl get contour/contour-sample -o yaml
    45  apiVersion: operator.projectcontour.io/v1alpha1
    46  kind: Contour
    47  metadata:
    48    name: contour-sample
    49    namespace: default
    50  ...
    51  spec:
    52    namespace:
    53      name: projectcontour
    54      removeOnDeletion: false
    55    replicas: 2
    56  ...
    57  ```
    58  
    59  Contour Operator continues to monitor the `Contour` CR and provides status on whether the actual state matches the desired state. The following example indicates the `Contour` is available:
    60  ```
    61  $ kubectl get contour/contour-sample
    62  NAME             READY   REASON
    63  contour-sample   True    ContourAvailable
    64  ```
    65  
    66  The `Contour` is now ready to start serving `Ingress` and `HTTPProxy` resources.
    67  
    68  Check out the [Getting Started](https://projectcontour.io/getting-started/) guide to learn how to start managing Contour using the operator. Learn more about the planned features of Contour Operator by reviewing the GitHub [Issues](https://github.com/projectcontour/contour-operator/issues).
    69  
    70  ## XDS Resource `v2` Removed
    71  
    72  As mentioned in Contour [1.10](https://projectcontour.io/contour_v1100/#envoy-xds-v3-support) the v2 XDS resource version has been removed from Contour ahead of its removal from Envoy.
    73  Please see the [XDS Migration Guide](https://projectcontour.io/guides/xds-migration/) for upgrading your instances of Envoy/Contour.
    74  
    75  Also note that this change applies to any External Auth servers that may be integrated, they need to support XDS version `v3` with this release of Contour.
    76  
    77  ## Community Thanks!
    78  We’re immensely grateful for all the community contributions that help make Contour even better! For version 1.11, special thanks go out to the following contributors:
    79  - [@invidian](https://github.com/invidian)
    80  - [@alexbrand](https://github.com/alexbrand)
    81  - [@danehans](https://github.com/danehans)
    82  - [@shuuji3](https://github.com/shuuji3)
    83  - [@yoitsro](https://github.com/yoitsro)
    84  - [@bascht](https://github.com/bascht)
    85  - [@tsaarni](https://github.com/tsaarni)
    86  - [@georgegoh](https://github.com/georgegoh)