Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade build image #20

Merged
merged 6 commits into from
Apr 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
jobs:
lint:
runs-on: ubuntu-latest
container: quay.io/cortexproject/cortex-jsonnet-build-image:c924d52
container: quay.io/cortexproject/cortex-jsonnet-build-image:e63d87f
steps:
- uses: actions/checkout@v2
name: Checkout
Expand All @@ -23,7 +23,7 @@ jobs:
run: make lint-playbooks
build:
runs-on: ubuntu-latest
container: quay.io/cortexproject/cortex-jsonnet-build-image:c924d52
container: quay.io/cortexproject/cortex-jsonnet-build-image:e63d87f
steps:
- uses: actions/checkout@v2
name: Checkout
Expand All @@ -34,12 +34,12 @@ jobs:
run: make build-mixin
readme:
runs-on: ubuntu-latest
container: quay.io/cortexproject/cortex-jsonnet-build-image:c924d52
container: quay.io/cortexproject/cortex-jsonnet-build-image:e63d87f
steps:
- uses: actions/checkout@v2
name: Checkout
with:
fetch-depth: 0

- name: "Test readme"
run: make test-readme
run: make test-readme
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ To generate the YAMLs for deploying Cortex:

```console
$ # make sure to be outside of GOPATH or a go.mod project
$ GO111MODULE=on go install github.com/grafana/tanka/cmd/tk@v0.21.0
$ GO111MODULE=on go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.4.0
$ GO111MODULE=on go install github.com/grafana/tanka/cmd/tk@v0.24.0
$ GO111MODULE=on go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.5.1
```

1. Initialise the Tanka repo, install the Cortex and Kubernetes Jsonnet libraries.
Expand Down Expand Up @@ -68,7 +68,7 @@ To generate the Grafana dashboards and Prometheus alerts for Cortex:

```console
$ GO111MODULE=on go install github.com/monitoring-mixins/mixtool/cmd/mixtool@2ff523ea63d1cdeee2a10e01d1d48d20adcc7030
$ GO111MODULE=on go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.4.0
$ GO111MODULE=on go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@v0.5.1
$ git clone https://github.com/cortexproject/cortex-jsonnet
$ cd cortex-jsonnet
$ make build-mixin
Expand Down
28 changes: 12 additions & 16 deletions build-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,43 +1,39 @@
# Build jsonnet
FROM alpine:3.13 AS jsonnet-builder
FROM alpine:3.17 AS jsonnet-builder
RUN apk add --no-cache git make g++
RUN git clone https://github.com/google/jsonnet && \
git -C jsonnet checkout v0.15.0 && \
git -C jsonnet checkout v0.20.0 && \
make -C jsonnet 2LDFLAGS=-static && \
cp jsonnet/jsonnet /usr/bin && \
cp jsonnet/jsonnetfmt /usr/bin

# Build jb
FROM alpine:3.13 AS jb-builder
ARG JSONNET_BUNDLER_VERSION=0.4.0
ARG JSONNET_BUNDLER_CHECKSUM="433edab5554a88a0371e11e93080408b225d41c31decf321c02b50d2e44993ce /usr/bin/jb"
FROM alpine:3.17 AS jb-builder
ARG JSONNET_BUNDLER_VERSION=0.5.1
ARG JSONNET_BUNDLER_CHECKSUM="f5bccc94d28fbbe8ad1d46fd4f208619e45d368a5d7924f6335f4ecfa0605c85 /usr/bin/jb"
RUN apk add --no-cache curl
RUN curl -fSL -o "/usr/bin/jb" "https://github.com/jsonnet-bundler/jsonnet-bundler/releases/download/v${JSONNET_BUNDLER_VERSION}/jb-linux-amd64"
RUN echo "${JSONNET_BUNDLER_CHECKSUM}" | sha256sum -c || (printf "wanted: %s\n got: %s\n" "${JSONNET_BUNDLER_CHECKSUM}" "$(sha256sum /usr/bin/jb)"; exit 1)
RUN chmod +x /usr/bin/jb

# Build tanka
FROM alpine:3.13 AS tk-builder
ARG TANKA_VERSION=0.21.0
ARG TANKA_CHECKSUM="cd60a005f84fd99763f26d07d4cb626e7585a62800aae97234d8187129eed1ec /usr/bin/tk"
FROM alpine:3.17 AS tk-builder
ARG TANKA_VERSION=0.24.0
ARG TANKA_CHECKSUM="82c8c533c29eefea0af9c28f487203b19dec84ce2624702f99196e777f946ddc /usr/bin/tk"
RUN apk add --no-cache curl
RUN curl -fSL -o "/usr/bin/tk" "https://github.com/grafana/tanka/releases/download/v${TANKA_VERSION}/tk-linux-amd64"
RUN echo "${TANKA_CHECKSUM}" | sha256sum -c || (printf "wanted: %s\n got: %s\n" "${TANKA_CHECKSUM}" "$(sha256sum /usr/bin/tk)"; exit 1)
RUN chmod +x /usr/bin/tk

# Build mixtool
FROM golang:1.15-alpine AS mixtool-builder
RUN GO111MODULE=on go get github.com/monitoring-mixins/mixtool/cmd/mixtool@ae18e31161ea10545b9c1ac0d23c10122f2c12b5
FROM golang:1.20-alpine AS mixtool-builder
RUN GO111MODULE=on go install github.com/monitoring-mixins/mixtool/cmd/mixtool@ae18e31161ea10545b9c1ac0d23c10122f2c12b5

FROM alpine:3.13
RUN apk add --no-cache git make libgcc libstdc++ zip findutils sed
FROM alpine:3.17
RUN apk add --no-cache git make libgcc libstdc++ zip findutils sed yq
COPY --from=jsonnet-builder /usr/bin/jsonnetfmt /usr/bin
COPY --from=jsonnet-builder /usr/bin/jsonnet /usr/bin
COPY --from=jb-builder /usr/bin/jb /usr/bin
COPY --from=tk-builder /usr/bin/tk /usr/bin
COPY --from=mixtool-builder /go/bin/mixtool /usr/bin

# Install yq.
# TODO We can install it via apk once alpine 3.14 or above will be released. Previous versions don't package v4.
RUN wget -O /usr/bin/yq https://github.com/mikefarah/yq/releases/download/v4.9.3/yq_linux_amd64 && \
chmod +x /usr/bin/yq