gopkg charm¶
gopkg-k8s is a Juju charm that
operates the gopkg.in versioned Go import service on Kubernetes.
The service ships as a rock, a container image built with Rockcraft. Juju deploys the charm, and the charm runs that image, configures the public hostname the service advertises, and connects it to ingress. Like any Juju charm, it supports repeatable deployment, configuration, integration, and lifecycle management, on Kubernetes platforms from MicroK8s for local development to Charmed Kubernetes and public-cloud Kubernetes offerings.
gopkg.in gives Go programs stable, major-version-specific import paths:
gopkg.in/yaml.v2 resolves to the newest v2 tag of the go-yaml/yaml
repository. Canonical maintains this charm to run the public gopkg.in
service. The service writes the configured hostname into its
go-import metadata, so a deployment serves imports of that hostname, not
of gopkg.in: code that already imports gopkg.in/... keeps using the
public service. Operators use their own copy to mirror gopkg.in inside a network
that cannot reach it, or to offer versioned import paths for GitHub
repositories under their own domain.
In this documentation¶
Get started |
|
Deployment |
Platforms and prerequisites | Configure ingress | Configure hostname | Set up production DNS | Charm configuration |
Operations |
Integrate with COS Lite | Upgrade | Troubleshoot deployment issues | Integration endpoints | Metrics | Logs | Alert rules |
Versioned import paths |
Why gopkg.in exists | What the service does | Fetch a module with the Go tool | How a deployment differs from gopkg.in |
Design |
How a request reaches the workload | The two hostname settings | How the charm runs the service |
Security |
Enable HTTPS | Where TLS terminates | Keep the metrics endpoint off the public hostname |
Development |
Set up a development environment | Improve the code | Improve the documentation | CI workflows | Troubleshoot |
How this documentation is organized¶
This documentation uses the Diátaxis documentation structure.
The Tutorial takes you step-by-step through a first deployment of
gopkg-k8s.How-to guides cover practical tasks for configuring, operating, and maintaining your
gopkg-k8sdeployment.Reference provides technical information to look up while you work, such as configuration options, integrations, and supported platforms.
Explanation includes background, context, and discussion of the concepts and design behind the charm.
Contribute guides developers who want to change the charm or its documentation.
Release notes hold the release history.
Contributing to this documentation¶
Documentation is an important part of this project, and it takes the same open source approach as the code. Community contributions, suggestions, and constructive feedback are welcome; see Contribute for how to get started. If a topic you need is missing, please file a bug.
Project and community¶
gopkg-k8s is a member of the Ubuntu family. It is an open source
project that warmly welcomes community projects, contributions, suggestions,
fixes, and constructive feedback.
Governance and policies¶
Get involved¶
Thinking about using gopkg-k8s for your next project? Get in touch!