https://github.com/canonical/content-cache-k8s-operator
content-cache-k8s-operator - charm repository.
https://github.com/canonical/content-cache-k8s-operator
charm platform-engineering product-content-cache squad-apac
Last synced: about 2 months ago
JSON representation
content-cache-k8s-operator - charm repository.
- Host: GitHub
- URL: https://github.com/canonical/content-cache-k8s-operator
- Owner: canonical
- License: gpl-3.0
- Created: 2022-11-22T18:55:17.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-03-06T06:29:59.000Z (3 months ago)
- Last Synced: 2026-03-06T10:49:32.719Z (3 months ago)
- Topics: charm, platform-engineering, product-content-cache, squad-apac
- Language: Python
- Homepage: https://charmhub.io/content-cache-k8s
- Size: 2.62 MB
- Stars: 1
- Watchers: 6
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
[](https://charmhub.io/content-cache-k8s)
[](https://github.com/canonical/content-cache-k8s-operator/actions/workflows/publish_charm.yaml)
[](https://github.com/canonical/content-cache-k8s-operator/actions/workflows/promote_charm.yaml)
[](https://discourse.charmhub.io)
# Content cache operator
A [Juju](https://juju.is/) [charm](https://documentation.ubuntu.com/juju/3.6/reference/charm/) deploying and managing service for caching content on Kubernetes, built on top of [Nginx](https://www.nginx.com/), 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](https://snapcraft.io/store),
the majority of Canonical's web properties including [ubuntu.com](https://ubuntu.com) and
[canonical.com](https://canonical.com), and [Ubuntu Extended Security Maintenance](https://ubuntu.com/security/esm).
This Kubernetes-based version is built using the same approach as the [machine content-cache charm](https://charmhub.io/content-cache), 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 K8s Documentation](https://charmhub.io/content-cache-k8s/docs).
## Documentation
Our documentation is stored in the `docs` directory.
It is based on the Canonical starter pack
and hosted on [Read the Docs](https://about.readthedocs.com/). In structuring,
the documentation employs the [Diátaxis](https://diataxis.fr/) approach.
You may open a pull request with your documentation changes, or you can
[file a bug](https://github.com/canonical/content-cache-k8s-operator/issues) to provide constructive feedback or suggestions.
To run the documentation locally before submitting your changes:
```bash
cd docs
make run
```
GitHub runs automatic checks on the documentation
to verify spelling, validate links and style guide compliance.
You can (and should) run the same checks locally:
```bash
make spelling
make linkcheck
make vale
make lint-md
```
## Get started
To begin, refer to the [Content Cache tutorial](https://charmhub.io/content-cache-k8s/docs/tutorial-getting-started) 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](https://charmhub.io/content-cache-k8s/actions).
## 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](https://charmhub.io/content-cache-k8s/integrations).
## Learn more
- [Read more](https://charmhub.io/content-cache-k8s/docs)
- [Developer documentation](https://nginx.org/en/docs/dev/development_guide.html)
- [Official webpage](https://www.nginx.com/)
- [Troubleshooting](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)
## 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.
* [Code of conduct](https://ubuntu.com/community/code-of-conduct)
* [Get support](https://discourse.charmhub.io/)
* [Contribute](https://github.com/canonical/content-cache-k8s-operator/blob/main/CONTRIBUTING.md)
* [Issues](https://github.com/canonical/content-cache-k8s-operator/issues)
* [Matrix](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)