chore(k3s): sync
k3s-images.json(#80)this runs the
just sync-k3s-imagestask against the latest main.this should address changes we’ve seen in github actions that have caused issues in ci.
Signed-off-by: katelyn martin git@katelyn.world
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802032778号
linkerd-dev
This repository contains utilities for managing the Linkerd development environment, especially a devcontainer. It also provides a foundation of reusable tools for CI (in GitHub Actions).
This repository is NOT intended to be used typical Linkerd development. This repository includes submodules only for the purpose of validating and automating dev tooling changes.
Devcontainer
The devcontainer image provides all of the tools needed for interactive development. Images are tagged as
ghcr.io/linkerd/dev:vNNand is expected to be set in a.devcontainer.jsonfile. For example:Several containers and setup actions are provided to configure GitHub Actions workflows.
Tools
This repository also includes additional tools in [bin/]. These scripts capture some common build and testing tasks. Most of these scripts are implemented with
just. Just is a tool for writing build and test ‘recipes’. These recipes may be invoked in the course of development or fromjust-k3dWhen using
just-k3dto create k3d clusters, theK3S_CHANNELenvironment variable controls the version of Kubernetes used in k3d. This value must correspond to a channel in./k3s-images.json, which is stored statically in the tools and devcontainer images. This prevents the k3s version from varying dynamically without updating the dev image.This file is generated by running
just sync-k3s-imagesin this repo.linkerd/dev/ctions/setup-tools
The
linkerd/dev/actions/setup-toolsaction unpacks thetoolscontainer so that its binaries and configuration is available to subsequent steps in the job.Go
The
gocontainer provides a Go toolchain (linters and other Go tooling are included with the Tools image). The container can be used as a base image when building via docker.Go in GitHub Actions
linkerd/dev/actions/setup-go
The
linkerd/dev/actions/setup-goaction configures the job to use the default go version.Linting and testing tooling must be setup via
linkerd/dev/actions/setup-tools.Rust
The
rustcontainer provides a Rust toolchain and associated utilities needed to build and test Rust code. Therust-muslcontainer provides the same toolchain, but with themusltarget installed with cross-compilation support for arm64.Rust in GitHub Actions
These containers can be used in a workflow like so:
Or, to build a static binary:
Build failures are automatically reported as annotations in the GitHub UI.
linkerd/dev/actions/setup-rust
The above example is fine when we’re just building software, but when we want to start networked services in Docker (namely, k3d clusters), the containerized approach no longer works.
Building
Build a single target (e.g. while editing the Dockerfile):
Update k3s images for all channels:
Push all images: