Skip to content
Snippets Groups Projects
Earthfile 5.85 KiB
Newer Older
VERSION 0.7

kubectl:
    # kubectl CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=kubernetes/kubernetes
    ENV KUBECTL_VERSION=${KUBECTL_VERSION}

    RUN curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl" \
        && curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl-convert" \
        && curl -LO "https://dl.k8s.io/${KUBECTL_VERSION}/bin/linux/amd64/kubectl.sha256" \
        && curl -LO "https://dl.k8s.io/${KUBECTL_VERSION}/bin/linux/amd64/kubectl-convert.sha256" \
        && echo "$(<kubectl.sha256) kubectl" | sha256sum --check \
        && echo "$(<kubectl-convert.sha256) kubectl-convert" | sha256sum --check \
        && install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl \
        && install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
    SAVE ARTIFACT /usr/local/bin/kubectl ./kubectl
    SAVE ARTIFACT /usr/local/bin/kubectl-convert ./kubectl-convert

release-cli:
    FROM registry.gitlab.com/gitlab-org/release-cli:latest@sha256:5a71acbadc47c1971100f5246b09f88ba09e84ebe7769e425475dce85245a2bf
    SAVE ARTIFACT /usr/local/bin/release-cli ./release-cli

svu:
    # Semantic Version Util - svu - https://github.com/caarlos0/svu
    FROM ghcr.io/caarlos0/svu:v1.12.0
    SAVE ARTIFACT /usr/bin/svu ./svu

git-chglog:
    # git-chglog cache
    FROM quay.io/git-chglog/git-chglog:0.15.4
    SAVE ARTIFACT /usr/local/bin/git-chglog ./git-chglog

helm:
    # Helm CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=helm/helm
    ARG HELM_VERSION=v3.14.2
    ENV HELM_VERSION=${HELM_VERSION}

    RUN curl -L "https://get.helm.sh/helm-${HELM_VERSION}-linux-amd64.tar.gz" | tar xvzf - linux-amd64/helm --strip-components=1 \
        && install -o root -g root -m 0755 helm /usr/local/bin/helm
    SAVE ARTIFACT /usr/local/bin/helm ./helm

flux:
    # Flux CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=fluxcd/flux2
    ENV FLUX_VERSION=${FLUX_VERSION}

    RUN curl -L https://github.com/fluxcd/flux2/releases/download/${FLUX_VERSION}/flux_$(sed 's/^v//g' <<<${FLUX_VERSION})_linux_amd64.tar.gz | tar xvzf - flux \
        && install -o root -g root -m 0755 flux /usr/local/bin/flux
    SAVE ARTIFACT /usr/local/bin/flux ./flux

kustomize:
    # kustomize CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=kubernetes-sigs/kustomize
    ARG KUSTOMIZE_VERSION=4.1.3
    ENV KUSTOMIZE_VERSION=${KUSTOMIZE_VERSION}

    RUN curl -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_amd64.tar.gz | tar xvzf - kustomize \
        && install -o root -g root -m 0755 kustomize /usr/local/bin/kustomize
    SAVE ARTIFACT /usr/local/bin/kustomize ./kustomize

kubeval:
    # kubeval CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=instrumenta/kubeval
    ARG KUBEVAL_VERSION=v0.16.1
    ENV KUBEVAL_VERSION=${KUBEVAL_VERSION}

    RUN curl -L https://github.com/instrumenta/kubeval/releases/download/${KUBEVAL_VERSION}/kubeval-linux-amd64.tar.gz | tar xvzf - kubeval \
        && install -o root -g root -m 0755 kubeval /usr/local/bin/kubeval
    SAVE ARTIFACT /usr/local/bin/kubeval ./kubeval

sops:
    # SOPS CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=mozilla/sops
    ARG SOPS_VERSION=v3.8.1
    ENV SOPS_VERSION=${SOPS_VERSION}

    RUN curl -L https://github.com/getsops/sops/releases/download/${SOPS_VERSION}/sops-${SOPS_VERSION}.linux > ./sops \
        && install -o root -g root -m 0755 sops /usr/local/bin/sops
    SAVE ARTIFACT /usr/local/bin/sops ./sops

yq:
    # yq CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=mikefarah/yq
    ENV YQ_VERSION=${YQ_VERSION}

    RUN curl -L https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_amd64 > ./yq \
        && install -o root -g root -m 0755 yq /usr/local/bin/yq
    SAVE ARTIFACT /usr/local/bin/yq ./yq

helm-docs:
    # helm CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=norwoodj/helm-docs
    ENV HELM_DOCS_VERSION=${HELM_DOCS_VERSION}

    RUN curl -L https://github.com/norwoodj/helm-docs/releases/download/${HELM_DOCS_VERSION}/helm-docs_$(sed 's/^v//g' <<<${HELM_DOCS_VERSION})_Linux_x86_64.tar.gz | tar xvzf - helm-docs \
        && install -o root -g root -m 0755 helm-docs /usr/local/bin/helm-docs
    SAVE ARTIFACT /usr/local/bin/helm-docs ./helm-docs

kubectl-krew:
    # kubectl-krew CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=kubernetes-sigs/krew
    ARG KREW_VERSION=v0.4.4
    ENV KREW_VERSION=${KREW_VERSION}

    RUN set -x; mkdir -p /opt/krew; cd "/opt/krew" && \
    OS="$(uname | tr '[:upper:]' '[:lower:]')" && \
    ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" && \
    KREW="krew-${OS}_${ARCH}" && \
    curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/download/${KREW_VERSION}/${KREW}.tar.gz" && \
    tar zxvf "${KREW}.tar.gz" && \
    mv "${KREW}" /opt/krew/krew
    SAVE ARTIFACT /opt/krew/krew ./krew

mdbook:
    # mdbook CLI cache
    FROM ../mirror+fedora

    # renovate: datasource=github-releases depName=rust-lang/mdBook
    ENV MDBOOK_VERSION=${MDBOOK_VERSION}

    RUN curl -L "https://github.com/rust-lang/mdBook/releases/download/${MDBOOK_VERSION}/mdbook-${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz" | tar xvzf - mdbook \
        && install -o root -g root -m 0755 mdbook /usr/local/bin/mdbook
    SAVE ARTIFACT /usr/local/bin/mdbook ./mdbook

vale:
    FROM docker.io/jdkato/vale:v3.0.5