Skip to content

canonical/content-cache-k8s-operator

Repository files navigation

CharmHub Badge Publish to edge Promote charm Discourse Status

Content Cache Operator

A Juju charm deploying and managing service for caching content on Kubernetes, built on top of Nginx, configurable to cache any http or https web site and useful for building Content Delivery Networks (CDN).

Like any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For Charmed Content Cache, this includes:

  • scaling the number of cache instances
  • cache configuration changes
  • deployment on many different Kubernetes platforms, from MicroK8s to Charmed Kubernetes and public cloud Kubernetes offerings

This service was developed to provide front-end caching for web sites run by Canonical's IS (Infrastructure Services) team, and to reduce the need for third-party CDNs by providing high-bandwidth access to web sites via this caching front-end. Currently used for a number of services including the Snap Store, the majority of Canonical's web properties including ubuntu.com and canonical.com, and Ubuntu Extended Security Maintenance.

This Kubernetes-based version is built using the same approach as the machine content-cache charm, and can be used as a front-end caching service in a situation where your Kubernetes cluster and its ingress controllers have a fast connection to the Internet.

For information about how to deploy, integrate, and manage this charm, see the Official Content Cache Documentation.

Get started

To begin, refer to the Content Cache tutorial for step-by-step instructions.

Basic operations

The following actions are available for the charm:

  • report-visits-by-ip

Tuning options include:

  • cache storage size
  • maximum request size to cache
  • cache validity duration

You can find more information about supported actions in the Charmhub documentation.

Integrations

Content-cache is meant to serve as cache for another charm. You can use Wordpress as an example:

juju deploy content-cache-k8s
juju deploy wordpress-k8s
juju deploy mysql-k8s --trust

juju integrate wordpress-k8s mysql-k8s:database
juju integrate content-cache-k8s:nginx-proxy wordpress-k8s

Apart from this integration, the charm can be integrated with other Juju charms and services as well. You can find the full list of integrations in the Charmhub documentation.

Learn more

Project and community

The Content-cache-k8s Operator is a member of the Ubuntu family. It is an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.