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¶
Start here: deploy and verify gopkg-k8s on Kubernetes from
a fresh environment.
Step-by-step guides for configuring ingress and the hostname, integrating with observability, and troubleshooting.
Technical information: configuration options, integration endpoints, and supported platforms and prerequisites.
Discussion and clarification of how gopkg.in resolves imports and how ingress reaches the service.
How this documentation is organized¶
This documentation uses the Diátaxis documentation structure.
The Tutorial takes you step-by-step through a complete deployment of
gopkg-k8s.How-to guides cover configuring the charm, monitoring it, and troubleshooting it.
Reference provides the configuration options, integration endpoints, and supported platforms.
Explanation includes topic overviews, background and context, and detailed discussion.
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!