diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 075d150bb6..84540a0392 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ on: - "!deploy/iso/**" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -67,7 +67,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7e7e3b8667..0399df7fe4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -6,7 +6,7 @@ on: - master env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -29,7 +29,7 @@ jobs: echo "::set-output name=changes::$c" - name: Create PR if: ${{ steps.gendocs.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: Update auto-generated docs and translations diff --git a/.github/workflows/functional_verified.yml b/.github/workflows/functional_verified.yml index 09c113d415..d76d4af8ee 100644 --- a/.github/workflows/functional_verified.yml +++ b/.github/workflows/functional_verified.yml @@ -8,6 +8,7 @@ on: - "**.yml" - "**.yaml" - "Makefile" + - "**Dockerfile**" - "!deploy/kicbase/**" - "!deploy/iso/**" types: @@ -21,7 +22,7 @@ on: - deleted env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -34,7 +35,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -114,8 +115,7 @@ jobs: echo "--------------------------" hostname || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/leaderboard.yml b/.github/workflows/leaderboard.yml index 7ef9427dd6..42d1c7eb70 100644 --- a/.github/workflows/leaderboard.yml +++ b/.github/workflows/leaderboard.yml @@ -7,7 +7,7 @@ on: release: types: [published] env: - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -32,7 +32,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }} - name: Create PR if: ${{ steps.leaderboard.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: Update leaderboard diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 0ca6af5c87..4759b99dfb 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -14,7 +14,7 @@ on: - "!deploy/iso/**" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -52,7 +52,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -71,7 +71,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -119,8 +119,7 @@ jobs: echo "--------------------------" docker ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -220,8 +219,7 @@ jobs: echo "--------------------------" docker ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -325,8 +323,7 @@ jobs: echo "--------------------------" podman ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -412,8 +409,7 @@ jobs: curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/darwin/amd64/kubectl sudo install kubectl /usr/local/bin/kubectl kubectl version --client=true - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -523,8 +519,7 @@ jobs: VERSION="v1.17.0" curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-${VERSION}-linux-amd64.tar.gz --output crictl-${VERSION}-linux-amd64.tar.gz sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 023cacce10..b921617704 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -12,7 +12,7 @@ on: - "!deploy/iso/**" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -69,7 +69,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -117,8 +117,7 @@ jobs: echo "--------------------------" docker ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -218,8 +217,7 @@ jobs: echo "--------------------------" docker ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -324,8 +322,7 @@ jobs: echo "--------------------------" podman ps || true echo "--------------------------" - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -412,8 +409,7 @@ jobs: curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/darwin/amd64/kubectl sudo install kubectl /usr/local/bin/kubectl kubectl version --client=true - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -524,8 +520,7 @@ jobs: VERSION="v1.17.0" curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-${VERSION}-linux-amd64.tar.gz --output crictl-${VERSION}-linux-amd64.tar.gz sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin - # go 1.14.6+ is needed because of this bug https://github.com/golang/go/issues/39308 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/sync-minikube.yml b/.github/workflows/sync-minikube.yml index 3c7bb46649..79acd2022f 100644 --- a/.github/workflows/sync-minikube.yml +++ b/.github/workflows/sync-minikube.yml @@ -22,7 +22,7 @@ jobs: path: ./image-syncer - name: Set up Go - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: 1.17 diff --git a/.github/workflows/time-to-k8s-public-chart.yml b/.github/workflows/time-to-k8s-public-chart.yml index 7cb7762df4..18b765daf2 100644 --- a/.github/workflows/time-to-k8s-public-chart.yml +++ b/.github/workflows/time-to-k8s-public-chart.yml @@ -6,7 +6,7 @@ on: - cron: "0 2,14 * * *" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -20,7 +20,7 @@ jobs: AWS_DEFAULT_REGION: 'us-west-1' steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -45,7 +45,7 @@ jobs: curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/darwin/amd64/kubectl sudo install kubectl /usr/local/bin/kubectl kubectl version --client=true - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/time-to-k8s.yml b/.github/workflows/time-to-k8s.yml index b98d0ce9c6..41d4c6e37e 100644 --- a/.github/workflows/time-to-k8s.yml +++ b/.github/workflows/time-to-k8s.yml @@ -5,7 +5,7 @@ on: types: [released] env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - name: Checkout submodules run: git submodule update --init - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -26,7 +26,7 @@ jobs: ./hack/benchmark/time-to-k8s/time-to-k8s.sh echo "::set-output name=version::$(minikube version --short)" - name: Create PR - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: add time-to-k8s benchmark for ${{ steps.timeToK8sBenchmark.outputs.version }} diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml index 1681e0f6e8..674cacd1cb 100644 --- a/.github/workflows/translations.yml +++ b/.github/workflows/translations.yml @@ -6,7 +6,7 @@ on: - "translations/**" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true diff --git a/.github/workflows/twitter-bot.yml b/.github/workflows/twitter-bot.yml index 8bad19d64f..10ad3f1a60 100644 --- a/.github/workflows/twitter-bot.yml +++ b/.github/workflows/twitter-bot.yml @@ -12,7 +12,7 @@ jobs: steps: - uses: ethomson/send-tweet-action@288f9339e0412e3038dce350e0da5ecdf12133a6 with: - status: "minikube ${GITHUB_REF_NAME} was just released! Check it out: https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md" + status: "minikube ${{github.ref_name}} was just released! Check it out: https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md" consumer-key: ${{ secrets.TWITTER_API_KEY }} consumer-secret: ${{ secrets.TWITTER_API_SECRET }} access-token: ${{ secrets.TWITTER_ACCESS_TOKEN }} diff --git a/.github/workflows/update-golang-version.yml b/.github/workflows/update-golang-version.yml index 0e78ef9ad7..33223e0a41 100644 --- a/.github/workflows/update-golang-version.yml +++ b/.github/workflows/update-golang-version.yml @@ -6,7 +6,7 @@ on: - cron: "0 9 * * 1" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -26,7 +26,7 @@ jobs: echo "::set-output name=changes::$(git status --porcelain)" - name: Create PR if: ${{ steps.bumpGolang.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: bump golang versions diff --git a/.github/workflows/update-golint-version.yml b/.github/workflows/update-golint-version.yml index f47f757760..35a5a24871 100644 --- a/.github/workflows/update-golint-version.yml +++ b/.github/workflows/update-golint-version.yml @@ -6,7 +6,7 @@ on: - cron: "0 10 * * 1" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -26,7 +26,7 @@ jobs: echo "::set-output name=changes::$(git status --porcelain)" - name: Create PR if: ${{ steps.bumpGolint.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: bump golint versions diff --git a/.github/workflows/update-k8s-versions.yml b/.github/workflows/update-k8s-versions.yml index 66642a1f71..15c954a8f6 100644 --- a/.github/workflows/update-k8s-versions.yml +++ b/.github/workflows/update-k8s-versions.yml @@ -6,7 +6,7 @@ on: - cron: "0 8 * * 1" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,11 +15,10 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} - stable: true - - name: Bump Kuberenetes Versions + - name: Bump Kubernetes Versions id: bumpk8s run: | t=$(make update-kubernetes-version) @@ -31,7 +30,7 @@ jobs: echo "::set-output name=changes::$c" - name: Create PR if: ${{ steps.bumpk8s.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: bump default/newest kubernetes versions diff --git a/.github/workflows/update-kubadm-constants.yml b/.github/workflows/update-kubadm-constants.yml index c37e06824c..877ed83b28 100644 --- a/.github/workflows/update-kubadm-constants.yml +++ b/.github/workflows/update-kubadm-constants.yml @@ -6,7 +6,7 @@ on: - cron: "0 6 * * 1" env: GOPROXY: https://proxy.golang.org - GO_VERSION: '1.18.1' + GO_VERSION: '1.18.2' permissions: contents: read @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@629c2de402a417ea7690ca6ce3f33229e27606a5 - - uses: actions/setup-go@f6164bd8c8acb4a71fb2791a8b6c4024ff038dab + - uses: actions/setup-go@fcdc43634adb5f7ae75a9d7a9b9361790f7293e2 with: go-version: ${{env.GO_VERSION}} stable: true @@ -29,7 +29,7 @@ jobs: echo "::set-output name=changes::$c" - name: Create PR if: ${{ steps.bumpKubAdmConsts.outputs.changes != '' }} - uses: peter-evans/create-pull-request@bd72e1b7922d417764d27d30768117ad7da78a0e + uses: peter-evans/create-pull-request@f094b77505fb89581e68a1163fbd2fffece39da1 with: token: ${{ secrets.MINIKUBE_BOT_PAT }} commit-message: update image constants for kubeadm images diff --git a/.gitignore b/.gitignore index 5513f5ca37..0f52bc60f7 100644 --- a/.gitignore +++ b/.gitignore @@ -26,14 +26,19 @@ _testmain.go *.test *.prof -/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/bin/auto-pause +/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/usr/bin/auto-pause +/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/usr/bin/auto-pause +/deploy/iso/minikube-iso/Config.in /deploy/kicbase/auto-pause /deploy/addons/auto-pause/auto-pause-hook /out /_gopath #iso version file -deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/VERSION +deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/VERSION +deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/VERSION +deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/CHANGELOG +deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/CHANGELOG /minikube diff --git a/CHANGELOG.md b/CHANGELOG.md index 5da3c19ab1..a400053194 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,136 @@ # Release Notes +## Version 1.26.0-beta.1 - 2022-05-17 + +QEMU driver enhancements: +* fix qemu firmware path locations [#14182](https://github.com/kubernetes/minikube/pull/14182) +* re-establish apiserver tunnel on restart [#14183](https://github.com/kubernetes/minikube/pull/14183) + +Features: +* Add configure option to registry-aliases addon [#13912](https://github.com/kubernetes/minikube/pull/13912) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Jack Zhang +- Pablo Caderno +- Sharif Elgamal +- Steven Powell +- Yuki Okushi +- loftkun + +Thank you to our PR reviewers for this release! + +- spowelljr (20 comments) +- afbjorklund (1 comments) +- sharifelgamal (1 comments) + +Thank you to our triage members for this release! + +- afbjorklund (4 comments) +- spowelljr (4 comments) +- Al4DIN (1 comments) +- Gimb0 (1 comments) +- Neandril (1 comments) + +## Version 1.26.0-beta.0 - 2022-05-13 + +Featues: +* Add support for the QEMU driver [#13639](https://github.com/kubernetes/minikube/pull/13639) +* Add support for building aarch64 ISO [#13762](https://github.com/kubernetes/minikube/pull/13762) +* Support rootless Podman driver (Usage: `minikube config set rootless true`) [#13829](https://github.com/kubernetes/minikube/pull/13829) + +Minor Improvements: +* Add JSON output to `minikube delete` [#13979](https://github.com/kubernetes/minikube/pull/13979) +* Add `--audit` flag to `minikube logs` command [#13991](https://github.com/kubernetes/minikube/pull/13991) +* Add `--disable-metrics` flag [#13802](https://github.com/kubernetes/minikube/pull/13802) +* Get latest valid tag for each image during caching [#14006](https://github.com/kubernetes/minikube/pull/14006) +* Remove docker requirement for none driver [#13885](https://github.com/kubernetes/minikube/pull/13885) +* Add 'subnet' flag for docker/podman driver [#13730](https://github.com/kubernetes/minikube/pull/13730) +* Don't write logs that contain environment variables [#13877](https://github.com/kubernetes/minikube/pull/13877) +* Implemented minimum and recommended Docker versions [#13842](https://github.com/kubernetes/minikube/pull/13842) + +Bug Fixes: +* Fix "Your cgroup does not allow setting memory" [#14115](https://github.com/kubernetes/minikube/pull/14115) +* Fix nvidia-gpu with kvm-driver [#13972](https://github.com/kubernetes/minikube/pull/13972) +* Fix `minikube delete` for Podman v4 [#13881](https://github.com/kubernetes/minikube/pull/13881) +* Fix pre command flags [#13995](https://github.com/kubernetes/minikube/pull/13995) +* Fix logging when JSON output selected [#13955](https://github.com/kubernetes/minikube/pull/13955) +* Fix port validation error on specifying tcp/udp or range of ports. [#13812](https://github.com/kubernetes/minikube/pull/13812) +* Fix not downloading kic for offline mode [#13910](https://github.com/kubernetes/minikube/pull/13910) +* Fix trying to pause multiple containers with runc [#13783](https://github.com/kubernetes/minikube/pull/13783) +* Fix `minikube servce` docker/port-forward issues [#13756](https://github.com/kubernetes/minikube/pull/13756) + +Version Upgrades: +* Upgrade Kubernetes default: v1.23.6 and latest: v1.23.6 [#14144](https://github.com/kubernetes/minikube/pull/14144) +* ISO/KIC: Upgrade buildkit from 0.9.0 to 0.10.3 [#13791](https://github.com/kubernetes/minikube/pull/13791) +* ISO: Upgrade Docker from 20.10.12 to 20.10.14 [#13860](https://github.com/kubernetes/minikube/pull/13860) +* ISO: Upgrade crio from 1.22.1 to 1.22.3 [#13800](https://github.com/kubernetes/minikube/pull/13800) +* ISO: Upgrade buildroot from 2021.02.4 to 2021.02.12 [#13814](https://github.com/kubernetes/minikube/pull/13814) +* Upgrade nginx image from 1.1.1 to 1.2.0 [#14028](https://github.com/kubernetes/minikube/pull/14028) +* ISO: Upgrade falco-module from 0.24.0 to 0.31.1 [#13659](https://github.com/kubernetes/minikube/pull/13659) +* Upgrade kubernetes dashboard from 2.3.1 to 2.5.1 [#13741](https://github.com/kubernetes/minikube/pull/13741) +* KIC: Upgrade kicbase base image from 20210401 to 20220316 [#13815](https://github.com/kubernetes/minikube/pull/13815) +* ISO: Upgrade Podman from 2.2.1 to 3.4.2 [#13126](https://github.com/kubernetes/minikube/pull/13126) +* ISO: Add packaging for crun [#11679](https://github.com/kubernetes/minikube/pull/11679) + +For a more detailed changelog, including changes occuring in pre-release versions, see [CHANGELOG.md](https://github.com/kubernetes/minikube/blob/master/CHANGELOG.md). + +Thank you to our contributors for this release! + +- Akihiro Suda +- Akira Yoshiyama +- Anders F Björklund +- Ashwin Somasundara +- Carlos Eduardo Arango Gutierrez +- Daniel Petri +- F1ko +- Filip Nikolic +- Ileriayo Adebiyi +- Jeff MAURY +- Jin Zhang +- Medya Ghazizadeh +- Nikhil2001 +- Pablo Caderno +- Piotr Resztak +- Predrag Rogic +- Sean Wei +- Sharif Elgamal +- Steven Powell +- Tomohito YABU +- Toshiaki Inukai +- betaboon +- ckannon +- edwinwalela +- klaases +- naveensrinivasan +- staticdev +- ziyi-xie + +Thank you to our PR reviewers for this release! + +- spowelljr (55 comments) +- medyagh (39 comments) +- afbjorklund (14 comments) +- klaases (14 comments) +- jesperpedersen (9 comments) +- sharifelgamal (6 comments) +- atoato88 (3 comments) +- jepio (3 comments) +- mprimeaux (2 comments) +- shu-mutou (2 comments) +- t-inu (2 comments) +- AkihiroSuda (1 comments) + +Thank you to our triage members for this release! + +- afbjorklund (52 comments) +- klaases (39 comments) +- RA489 (28 comments) +- spowelljr (24 comments) +- zhan9san (24 comments) + ## Version 1.25.2 - 2022-02-23 Features: @@ -81,7 +212,7 @@ Thank you to our triage members for this release! - klaases (13 comments) - sharifelgamal (12 comments) -Check out our [contributions leaderboard](https://minikube.sigs.k8s.io/docs/contrib/leaderboard/v1.25.1/) for this release! +Check out our [contributions leaderboard](https://minikube.sigs.k8s.io/docs/contrib/leaderboard/v1.25.2/) for this release! ## Version 1.25.1 - 2022-01-20 diff --git a/Makefile b/Makefile index 098a916bc0..257b3e9288 100644 --- a/Makefile +++ b/Makefile @@ -14,8 +14,8 @@ # Bump these on release - and please check ISO_VERSION for correctness. VERSION_MAJOR ?= 1 -VERSION_MINOR ?= 25 -VERSION_BUILD ?= 2 +VERSION_MINOR ?= 26 +VERSION_BUILD ?= 0-beta.1 RAW_VERSION=$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_BUILD) VERSION ?= v$(RAW_VERSION) @@ -23,7 +23,7 @@ KUBERNETES_VERSION ?= $(shell egrep "DefaultKubernetesVersion =" pkg/minikube/co KIC_VERSION ?= $(shell egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) # Default to .0 for higher cache hit rates, as build increments typically don't require new ISO versions -ISO_VERSION ?= v1.25.2-1650391217-13814 +ISO_VERSION ?= v1.26.0-beta.1 # Dashes are valid in semver, but not Linux packaging. Use ~ to delimit alpha/beta DEB_VERSION ?= $(subst -,~,$(RAW_VERSION)) DEB_REVISION ?= 0 @@ -33,9 +33,9 @@ RPM_REVISION ?= 0 # used by hack/jenkins/release_build_and_upload.sh and KVM_BUILD_IMAGE, see also BUILD_IMAGE below # update this only by running `make update-golang-version` -GO_VERSION ?= 1.18.1 +GO_VERSION ?= 1.18.2 # update this only by running `make update-golang-version` -GO_K8S_VERSION_PREFIX ?= v1.24.0 +GO_K8S_VERSION_PREFIX ?= v1.25.0 # replace "x.y.0" => "x.y". kube-cross and golang.org/dl use different formats for x.y.0 go versions KVM_GO_VERSION ?= $(GO_VERSION:.0=) @@ -76,7 +76,7 @@ MINIKUBE_RELEASES_URL=https://github.com/kubernetes/minikube/releases/download KERNEL_VERSION ?= 4.19.235 # latest from https://github.com/golangci/golangci-lint/releases # update this only by running `make update-golint-version` -GOLINT_VERSION ?= v1.45.2 +GOLINT_VERSION ?= v1.46.1 # Limit number of default jobs, to avoid the CI builds running out of memory GOLINT_JOBS ?= 4 # see https://github.com/golangci/golangci-lint#memory-usage-of-golangci-lint @@ -93,7 +93,7 @@ GOOS ?= $(shell go env GOOS) GOARCH ?= $(shell go env GOARCH) GOARM ?= 7 # the default is 5 GOPATH ?= $(shell go env GOPATH) -BUILD_DIR ?= ./out +BUILD_DIR ?= $(PWD)/out $(shell mkdir -p $(BUILD_DIR)) CURRENT_GIT_BRANCH ?= $(shell git branch | grep \* | cut -d ' ' -f2) @@ -282,17 +282,27 @@ out/e2e-%: out/minikube-% out/e2e-windows-amd64.exe: out/e2e-windows-amd64 cp $< $@ -minikube_iso: deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/bin/auto-pause # build minikube iso - echo $(ISO_VERSION) > deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/VERSION +minikube-iso-amd64: minikube-iso-x86_64 +minikube-iso-arm64: minikube-iso-aarch64 + +minikube-iso-%: deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/auto-pause # build minikube iso + echo $(ISO_VERSION) > deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/VERSION + cp deploy/iso/minikube-iso/CHANGELOG deploy/iso/minikube-iso/board/minikube/$*/rootfs-overlay/etc/CHANGELOG + cp deploy/iso/minikube-iso/arch/$*/Config.in.tmpl deploy/iso/minikube-iso/Config.in if [ ! -d $(BUILD_DIR)/buildroot ]; then \ mkdir -p $(BUILD_DIR); \ git clone --depth=1 --branch=$(BUILDROOT_BRANCH) https://github.com/buildroot/buildroot $(BUILD_DIR)/buildroot; \ cp deploy/iso/minikube-iso/go.hash $(BUILD_DIR)/buildroot/package/go/go.hash; \ fi; - $(MAKE) BR2_EXTERNAL=../../deploy/iso/minikube-iso minikube_defconfig -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) - $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) host-python - $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) - mv $(BUILD_DIR)/buildroot/output/images/rootfs.iso9660 $(BUILD_DIR)/minikube.iso + $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) O=$(BUILD_DIR)/buildroot/output-$* minikube_$*_defconfig + $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) O=$(BUILD_DIR)/buildroot/output-$* host-python + $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) O=$(BUILD_DIR)/buildroot/output-$* + # x86_64 ISO is still BIOS rather than EFI because of AppArmor issues for KVM, and Gen 2 issues for Hyper-V + if [ "$*" = "aarch64" ]; then \ + mv $(BUILD_DIR)/buildroot/output-aarch64/images/boot.iso $(BUILD_DIR)/minikube-arm64.iso; \ + else \ + mv $(BUILD_DIR)/buildroot/output-x86_64/images/rootfs.iso9660 $(BUILD_DIR)/minikube-amd64.iso; \ + fi; # Change buildroot configuration for the minikube ISO .PHONY: iso-menuconfig @@ -301,15 +311,14 @@ iso-menuconfig: ## Configure buildroot configuration $(MAKE) -C $(BUILD_DIR)/buildroot $(BUILDROOT_OPTIONS) savedefconfig # Change the kernel configuration for the minikube ISO -.PHONY: linux-menuconfig -linux-menuconfig: ## Configure Linux kernel configuration +linux-menuconfig-%: ## Configure Linux kernel configuration $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ menuconfig $(MAKE) -C $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/ savedefconfig - cp $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig + cp $(BUILD_DIR)/buildroot/output/build/linux-$(KERNEL_VERSION)/defconfig deploy/iso/minikube-iso/board/minikube/$*/linux_$*_defconfig -out/minikube.iso: $(shell find "deploy/iso/minikube-iso" -type f) +out/minikube-%.iso: $(shell find "deploy/iso/minikube-iso" -type f) ifeq ($(IN_DOCKER),1) - $(MAKE) minikube_iso + $(MAKE) minikube-iso-$* else docker run --rm --workdir /mnt --volume $(CURDIR):/mnt $(ISO_DOCKER_EXTRA_ARGS) \ --user $(shell id -u):$(shell id -g) --env HOME=/tmp --env IN_DOCKER=1 \ @@ -321,9 +330,6 @@ iso_in_docker: --user $(shell id -u):$(shell id -g) --env HOME=/tmp --env IN_DOCKER=1 \ $(ISO_BUILD_IMAGE) /bin/bash -test-iso: - go test -v $(INTEGRATION_TESTS_TO_RUN) --tags=iso --minikube-start-args="--iso-url=file://$(shell pwd)/out/buildroot/output/images/rootfs.iso9660" - .PHONY: test-pkg test-pkg/%: ## Trigger packaging test go test -v -test.timeout=60m ./$* --tags="$(MINIKUBE_BUILD_TAGS)" @@ -436,7 +442,7 @@ e2e-cross: e2e-linux-amd64 e2e-linux-arm64 e2e-darwin-amd64 e2e-windows-amd64.ex .PHONY: checksum checksum: ## Generate checksums - for f in out/minikube.iso out/minikube-linux-amd64 out/minikube-linux-arm \ + for f in out/minikube-amd64.iso out/minikube-arm64.iso out/minikube-linux-amd64 out/minikube-linux-arm \ out/minikube-linux-arm64 out/minikube-linux-ppc64le out/minikube-linux-s390x \ out/minikube-darwin-amd64 out/minikube-darwin-arm64 out/minikube-windows-amd64.exe \ out/docker-machine-driver-kvm2 out/docker-machine-driver-kvm2-amd64 out/docker-machine-driver-kvm2-arm64 \ @@ -521,7 +527,8 @@ mdlint: .PHONY: verify-iso verify-iso: # Make sure the current ISO exists in the expected bucket - gsutil stat gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION).iso + gsutil stat gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-amd64.iso + gsutil stat gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-arm64.iso out/docs/minikube.md: $(shell find "cmd") $(shell find "pkg/minikube/constants") go run -ldflags="$(MINIKUBE_LDFLAGS)" -tags gendocs hack/help_text/gen_help_text.go @@ -776,9 +783,11 @@ push-gvisor-addon-image: gvisor-addon-image $(MAKE) push-docker IMAGE=$(REGISTRY)/gvisor-addon:$(GVISOR_TAG) .PHONY: release-iso -release-iso: minikube_iso checksum ## Build and release .iso file - gsutil cp out/minikube.iso gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION).iso - gsutil cp out/minikube.iso.sha256 gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION).iso.sha256 +release-iso: minikube-iso-aarch64 minikube-iso-x86_64 checksum ## Build and release .iso files + gsutil cp out/minikube-amd64.iso gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-amd64.iso + gsutil cp out/minikube-amd64.iso.sha256 gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-amd64.iso.sha256 + gsutil cp out/minikube-arm64.iso gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-arm64.iso + gsutil cp out/minikube-arm64.iso.sha256 gs://$(ISO_BUCKET)/minikube-$(ISO_VERSION)-arm64.iso.sha256 .PHONY: release-minikube release-minikube: out/minikube checksum ## Minikube release @@ -918,8 +927,9 @@ out/mkcmp: # auto pause binary to be used for ISO -deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/bin/auto-pause: $(SOURCE_FILES) $(ASSET_FILES) - GOOS=linux GOARCH=$(GOARCH) go build -o $@ cmd/auto-pause/auto-pause.go +deploy/iso/minikube-iso/board/minikube/%/rootfs-overlay/usr/bin/auto-pause: $(SOURCE_FILES) $(ASSET_FILES) + @if [ "$*" != "x86_64" ] && [ "$*" != "aarch64" ]; then echo "Please enter a valid architecture. Choices are x86_64 and aarch64."; exit 1; fi + GOOS=linux GOARCH=$(subst x86_64,amd64,$(subst aarch64,arm64,$*)) go build -o $@ cmd/auto-pause/auto-pause.go .PHONY: deploy/addons/auto-pause/auto-pause-hook diff --git a/cmd/minikube/cmd/config/configure.go b/cmd/minikube/cmd/config/configure.go index baa1237dfc..c0d77e9cf7 100644 --- a/cmd/minikube/cmd/config/configure.go +++ b/cmd/minikube/cmd/config/configure.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" "k8s.io/minikube/pkg/addons" + "k8s.io/minikube/pkg/minikube/assets" "k8s.io/minikube/pkg/minikube/config" "k8s.io/minikube/pkg/minikube/exit" "k8s.io/minikube/pkg/minikube/mustload" @@ -234,6 +235,26 @@ var addonsConfigureCmd = &cobra.Command{ if err := config.SaveProfile(profile, cfg); err != nil { out.ErrT(style.Fatal, "Failed to save config {{.profile}}", out.V{"profile": profile}) } + case "registry-aliases": + profile := ClusterFlagValue() + _, cfg := mustload.Partial(profile) + validator := func(s string) bool { + format := regexp.MustCompile(`^([a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+)+(\ [a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+)*$`) + return format.MatchString(s) + } + registryAliases := AskForStaticValidatedValue("-- Enter registry aliases separated by space: ", validator) + cfg.KubernetesConfig.RegistryAliases = registryAliases + + if err := config.SaveProfile(profile, cfg); err != nil { + out.ErrT(style.Fatal, "Failed to save config {{.profile}}", out.V{"profile": profile}) + } + addon := assets.Addons["registry-aliases"] + if addon.IsEnabled(cfg) { + // Re-enable registry-aliases addon in order to generate template manifest files with custom hosts + if err := addons.EnableOrDisableAddon(cfg, "registry-aliases", "true"); err != nil { + out.ErrT(style.Fatal, "Failed to configure registry-aliases {{.profile}}", out.V{"profile": profile}) + } + } default: out.FailureT("{{.name}} has no available configuration options", out.V{"name": addon}) diff --git a/cmd/minikube/cmd/dashboard.go b/cmd/minikube/cmd/dashboard.go index a6e861c57d..455d3cc67b 100644 --- a/cmd/minikube/cmd/dashboard.go +++ b/cmd/minikube/cmd/dashboard.go @@ -47,9 +47,9 @@ import ( var ( dashboardURLMode bool dashboardExposedPort int - // Matches: 127.0.0.1:8001 + // Matches: "127.0.0.1:8001" or "127.0.0.1 40012" etc. // TODO(tstromberg): Get kubectl to implement a stable supported output format. - hostPortRe = regexp.MustCompile(`127.0.0.1:\d{4,}`) + hostPortRe = regexp.MustCompile(`127.0.0.1(:| )\d{4,}`) ) // dashboardCmd represents the dashboard command diff --git a/cmd/minikube/cmd/docker-env.go b/cmd/minikube/cmd/docker-env.go index 2a4efb31c0..9f41275188 100644 --- a/cmd/minikube/cmd/docker-env.go +++ b/cmd/minikube/cmd/docker-env.go @@ -38,6 +38,7 @@ import ( "k8s.io/klog/v2" "k8s.io/minikube/pkg/drivers/kic/oci" + "k8s.io/minikube/pkg/drivers/qemu" "k8s.io/minikube/pkg/minikube/bootstrapper/bsutil/kverify" "k8s.io/minikube/pkg/minikube/command" "k8s.io/minikube/pkg/minikube/constants" @@ -290,11 +291,13 @@ var dockerEnvCmd = &cobra.Command{ d := co.CP.Host.Driver port := constants.DockerDaemonPort - if driver.NeedsPortForward(driverName) { + if driver.NeedsPortForward(driverName) && driver.IsKIC(driverName) { port, err = oci.ForwardedPort(driverName, cname, port) if err != nil { exit.Message(reason.DrvPortForward, "Error getting port binding for '{{.driver_name}} driver: {{.error}}", out.V{"driver_name": driverName, "error": err}) } + } else if driver.NeedsPortForward(driverName) && driverName == driver.QEMU2 { + port = d.(*qemu.Driver).EnginePort } hostname, err := d.GetSSHHostname() diff --git a/cmd/minikube/cmd/service.go b/cmd/minikube/cmd/service.go index 2f15ca38ad..bc1b7198ae 100644 --- a/cmd/minikube/cmd/service.go +++ b/cmd/minikube/cmd/service.go @@ -85,6 +85,12 @@ var serviceCmd = &cobra.Command{ cname := ClusterFlagValue() co := mustload.Healthy(cname) + + // Bail cleanly for qemu2 until implemented + if driver.IsQEMU(co.Config.Driver) { + exit.Message(reason.Unimplemented, "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.") + } + var services service.URLs services, err := service.GetServiceURLs(co.API, co.Config.Name, namespace, serviceURLTemplate) if err != nil { @@ -103,7 +109,7 @@ var serviceCmd = &cobra.Command{ services = newServices } - if services == nil || len(services) == 0 { + if len(services) == 0 { exit.Message(reason.SvcNotFound, `Service '{{.service}}' was not found in '{{.namespace}}' namespace. You may select another namespace by using 'minikube service {{.service}} -n '. Or list out all the services using 'minikube service list'`, out.V{"service": args[0], "namespace": namespace}) } @@ -140,8 +146,10 @@ You may select another namespace by using 'minikube service {{.service}} -n - + {{- if .RegistryAliases}} + {{ .RegistryAliases}} + {{- else}} example.org example.com test.com test.org + {{- end}} registry.minikube # default registry address in minikube when enabled via minikube addons enable registry - registrySvc: registry.kube-system.svc.cluster.local - + registrySvc: registry.kube-system.svc.cluster.local \ No newline at end of file diff --git a/deploy/iso/minikube-iso/Config.in b/deploy/iso/minikube-iso/Config.in deleted file mode 100644 index 0f5c2d952e..0000000000 --- a/deploy/iso/minikube-iso/Config.in +++ /dev/null @@ -1 +0,0 @@ -source "$BR2_EXTERNAL_MINIKUBE_PATH/package/Config.in" diff --git a/deploy/iso/minikube-iso/arch/aarch64/Config.in.tmpl b/deploy/iso/minikube-iso/arch/aarch64/Config.in.tmpl new file mode 100644 index 0000000000..628de1654d --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/Config.in.tmpl @@ -0,0 +1,2 @@ +source "$BR2_EXTERNAL_MINIKUBE_PATH/package/Config.in" +source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/Config.in" diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/Config.in new file mode 100644 index 0000000000..784bb1155c --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/Config.in @@ -0,0 +1,12 @@ +menu "System tools aarch64" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/buildkit-bin-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/runc-master-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/crio-bin-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/crictl-bin-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/docker-bin-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cri-dockerd-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cni-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/cni-plugins-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/containerd-bin-aarch64/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/aarch64/package/podman-aarch64/Config.in" +endmenu diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/51-buildkit.preset b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/51-buildkit.preset similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/51-buildkit.preset rename to deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/51-buildkit.preset diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/Config.in new file mode 100644 index 0000000000..eabff319b0 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_BUILDKIT_BIN_AARCH64 + bool "buildkit-bin" + default y + depends on BR2_aarch64 diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.hash new file mode 100644 index 0000000000..c06d562a2f --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.hash @@ -0,0 +1,2 @@ +sha256 0a834a749e86525e0eb16e7e80ce726e7c6a8e8d26fc5cc36c712305024da4e7 buildkit-v0.9.0.linux-arm64.tar.gz +sha256 27e974e2b07e087f66f0c9c2b43b6f3df6f7e1746a6252580f164427337d668c buildkit-v0.10.3.linux-arm64.tar.gz diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.mk new file mode 100644 index 0000000000..73c7be657f --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit-bin.mk @@ -0,0 +1,52 @@ +################################################################################ +# +# buildkit-bin +# +################################################################################ + +BUILDKIT_BIN_AARCH64_VERSION = v0.10.3 +BUILDKIT_BIN_AARCH64_COMMIT = c8d25d9a103b70dc300a4fd55e7e576472284e31 +BUILDKIT_BIN_AARCH64_SITE = https://github.com/moby/buildkit/releases/download/$(BUILDKIT_BIN_AARCH64_VERSION) +BUILDKIT_BIN_AARCH64_SOURCE = buildkit-$(BUILDKIT_BIN_AARCH64_VERSION).linux-arm64.tar.gz + +# https://github.com/opencontainers/runc.git +BUILDKIT_RUNC_VERSION = 12644e614e25b05da6fd08a38ffa0cfe1903fdec + +define BUILDKIT_BIN_AARCH64_USERS + - -1 buildkit -1 - - - - - +endef + +define BUILDKIT_BIN_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 \ + $(@D)/buildctl \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -D -m 0755 \ + $(@D)/buildkit-runc \ + $(TARGET_DIR)/usr/sbin + $(INSTALL) -D -m 0755 \ + $(@D)/buildkit-qemu-* \ + $(TARGET_DIR)/usr/sbin + $(INSTALL) -D -m 0755 \ + $(@D)/buildkitd \ + $(TARGET_DIR)/usr/sbin + $(INSTALL) -D -m 644 \ + $(BUILDKIT_BIN_AARCH64_PKGDIR)/buildkit.conf \ + $(TARGET_DIR)/usr/lib/tmpfiles.d/buildkit.conf + $(INSTALL) -D -m 644 \ + $(BUILDKIT_BIN_AARCH64_PKGDIR)/buildkitd.toml \ + $(TARGET_DIR)/etc/buildkit/buildkitd.toml +endef + +define BUILDKIT_BIN_AARCH64_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 \ + $(BUILDKIT_BIN_AARCH64_PKGDIR)/buildkit.service \ + $(TARGET_DIR)/usr/lib/systemd/system/buildkit.service + $(INSTALL) -D -m 644 \ + $(BUILDKIT_BIN_AARCH64_PKGDIR)/buildkit.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/buildkit.socket + $(INSTALL) -D -m 644 \ + $(BUILDKIT_BIN_AARCH64_PKGDIR)/51-buildkit.preset \ + $(TARGET_DIR)/usr/lib/systemd/system-preset/51-buildkit.preset +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit.conf b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.conf similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkit.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.conf diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit.service b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.service similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkit.service rename to deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.service diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit.socket b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.socket similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkit.socket rename to deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkit.socket diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkitd.toml b/deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkitd.toml similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkitd.toml rename to deploy/iso/minikube-iso/arch/aarch64/package/buildkit-bin-aarch64/buildkitd.toml diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/Config.in new file mode 100644 index 0000000000..17fdabc16b --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/Config.in @@ -0,0 +1,5 @@ +config BR2_PACKAGE_CNI_AARCH64 + bool "cni" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS diff --git a/deploy/iso/minikube-iso/package/cni/cni.hash b/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/cni.hash similarity index 100% rename from deploy/iso/minikube-iso/package/cni/cni.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/cni.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/cni.mk b/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/cni.mk new file mode 100644 index 0000000000..5842a2f849 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cni-aarch64/cni.mk @@ -0,0 +1,45 @@ +################################################################################ +# +# cni +# +################################################################################ + +CNI_AARCH64_VERSION = v0.7.1 +CNI_AARCH64_SITE = https://github.com/containernetworking/cni/archive +CNI_AARCH64_SOURCE = $(CNI_AARCH64_VERSION).tar.gz +CNI_AARCH64_LICENSE = Apache-2.0 +CNI_AARCH64_LICENSE_FILES = LICENSE + +CNI_AARCH64_DEPENDENCIES = host-go + +CNI_AARCH64_GOPATH = $(@D)/_output +CNI_AARCH64_MAKE_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=0 \ + GO111MODULE=off \ + GOPATH="$(CNI_AARCH64_GOPATH)" \ + PATH=$(CNI_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + +CNI_AARCH64_BUILDFLAGS = -a --ldflags '-extldflags \"-static\"' + +define CNI_AARCH64_CONFIGURE_CMDS + mkdir -p $(CNI_AARCH64_GOPATH)/src/github.com/containernetworking + ln -sf $(@D) $(CNI_AARCH64_GOPATH)/src/github.com/containernetworking/cni +endef + +define CNI_AARCH64_BUILD_CMDS + (cd $(@D); $(CNI_AARCH64_MAKE_ENV) go build -o bin/cnitool $(CNI_AARCH64_BUILDFLAGS) ./cnitool) +endef + +define CNI_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 \ + $(@D)/bin/cnitool \ + $(TARGET_DIR)/opt/cni/bin/cnitool + + ln -sf \ + ../../opt/cni/bin/cnitool \ + $(TARGET_DIR)/usr/bin/cnitool +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/Config.in new file mode 100644 index 0000000000..ed5eb4ce59 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/Config.in @@ -0,0 +1,5 @@ +config BR2_PACKAGE_CNI_PLUGINS_AARCH64 + bool "cni-plugins" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.hash b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.hash new file mode 100644 index 0000000000..100f2479bd --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.hash @@ -0,0 +1 @@ +sha256 a7881ec37e592c897bdfd2a225b4ed74caa981e3c4cdcf8f45574f8d2f111bce cni-plugins-linux-arm64-v0.8.5.tgz diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.mk b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.mk new file mode 100644 index 0000000000..80cf9f02f0 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cni-plugins-aarch64/cni-plugins.mk @@ -0,0 +1,120 @@ +################################################################################ +# +# cni-plugins +# +################################################################################ + +CNI_PLUGINS_AARCH64_VERSION = v0.8.5 +CNI_PLUGINS_AARCH64_SITE = https://github.com/containernetworking/plugins/releases/download/$(CNI_PLUGINS_AARCH64_VERSION) +CNI_PLUGINS_AARCH64_SOURCE = cni-plugins-linux-arm64-$(CNI_PLUGINS_AARCH64_VERSION).tgz +CNI_PLUGINS_AARCH64_LICENSE = Apache-2.0 +CNI_PLUGINS_AARCH64_LICENSE_FILES = LICENSE + +define CNI_PLUGINS_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 \ + $(@D)/bandwidth \ + $(TARGET_DIR)/opt/cni/bin/bandwidth + + ln -sf \ + ../../opt/cni/bin/bandwidth \ + $(TARGET_DIR)/usr/bin/bandwidth + + $(INSTALL) -D -m 0755 \ + $(@D)/bridge \ + $(TARGET_DIR)/opt/cni/bin/bridge + + ln -sf \ + ../../opt/cni/bin/bridge \ + $(TARGET_DIR)/usr/bin/bridge + + $(INSTALL) -D -m 0755 \ + $(@D)/vlan \ + $(TARGET_DIR)/opt/cni/bin/vlan + + ln -sf \ + ../../opt/cni/bin/vlan \ + $(TARGET_DIR)/usr/bin/vlan + + $(INSTALL) -D -m 0755 \ + $(@D)/tuning \ + $(TARGET_DIR)/opt/cni/bin/tuning + + ln -sf \ + ../../opt/cni/bin/tuning \ + $(TARGET_DIR)/usr/bin/tuning + + $(INSTALL) -D -m 0755 \ + $(@D)/ptp \ + $(TARGET_DIR)/opt/cni/bin/ptp + + ln -sf \ + ../../opt/cni/bin/ptp \ + $(TARGET_DIR)/usr/bin/ptp + + $(INSTALL) -D -m 0755 \ + $(@D)/portmap \ + $(TARGET_DIR)/opt/cni/bin/portmap + + ln -sf \ + ../../opt/cni/bin/portmap \ + $(TARGET_DIR)/usr/bin/portmap + + $(INSTALL) -D -m 0755 \ + $(@D)/macvlan \ + $(TARGET_DIR)/opt/cni/bin/macvlan + + ln -sf \ + ../../opt/cni/bin/macvlan \ + $(TARGET_DIR)/usr/bin/macvlan + + $(INSTALL) -D -m 0755 \ + $(@D)/loopback \ + $(TARGET_DIR)/opt/cni/bin/loopback + + ln -sf \ + ../../opt/cni/bin/loopback \ + $(TARGET_DIR)/usr/bin/loopback + + $(INSTALL) -D -m 0755 \ + $(@D)/ipvlan \ + $(TARGET_DIR)/opt/cni/bin/ipvlan + + ln -sf \ + ../../opt/cni/bin/ipvlan \ + $(TARGET_DIR)/usr/bin/ipvlan + + $(INSTALL) -D -m 0755 \ + $(@D)/host-local \ + $(TARGET_DIR)/opt/cni/bin/host-local + + ln -sf \ + ../../opt/cni/bin/host-local \ + $(TARGET_DIR)/usr/bin/host-local + + $(INSTALL) -D -m 0755 \ + $(@D)/flannel \ + $(TARGET_DIR)/opt/cni/bin/flannel + + ln -sf \ + ../../opt/cni/bin/flannel \ + $(TARGET_DIR)/usr/bin/flannel + + + $(INSTALL) -D -m 0755 \ + $(@D)/dhcp \ + $(TARGET_DIR)/opt/cni/bin/dhcp + + ln -sf \ + ../../opt/cni/bin/dhcp \ + $(TARGET_DIR)/usr/bin/dhcp + + $(INSTALL) -D -m 0755 \ + $(@D)/firewall \ + $(TARGET_DIR)/opt/cni/bin/firewall + + ln -sf \ + ../../opt/cni/bin/firewall \ + $(TARGET_DIR)/usr/bin/firewall +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/containerd-bin/50-minikube.preset b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/50-minikube.preset similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/50-minikube.preset rename to deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/50-minikube.preset diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/Config.in new file mode 100644 index 0000000000..4b6bff5075 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_CONTAINERD_BIN_AARCH64 + bool "containerd-bin" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # lvm2 + depends on !BR2_STATIC_LIBS # lvm2 + depends on !BR2_TOOLCHAIN_USES_MUSL # lvm2 + select BR2_PACKAGE_RUNC_MASTER + select BR2_PACKAGE_BTRFS_PROGS + select BR2_PACKAGE_LIBSECCOMP + select BR2_PACKAGE_LIBGPGME + select BR2_PACKAGE_LVM2 + select BR2_PACKAGE_LVM2_APP_LIBRARY + select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT + select BR2_PACKAGE_LIBGLIB2 diff --git a/deploy/iso/minikube-iso/package/containerd-bin/config.toml b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/config.toml similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/config.toml rename to deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/config.toml diff --git a/deploy/iso/minikube-iso/package/containerd-bin/config.toml.default b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/config.toml.default similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/config.toml.default rename to deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/config.toml.default diff --git a/deploy/iso/minikube-iso/package/containerd-bin/containerd-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/containerd-bin.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk new file mode 100644 index 0000000000..d019e82c66 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd-bin.mk @@ -0,0 +1,66 @@ +################################################################################ +# +# containerd +# +################################################################################ +CONTAINERD_BIN_AARCH64_VERSION = v1.5.11 +CONTAINERD_BIN_AARCH64_COMMIT = 3df54a852345ae127d1fa3092b95168e4a88e2f8 +CONTAINERD_BIN_AARCH64_SITE = https://github.com/containerd/containerd/archive +CONTAINERD_BIN_AARCH64_SOURCE = $(CONTAINERD_BIN_AARCH64_VERSION).tar.gz +CONTAINERD_BIN_AARCH64_DEPENDENCIES = host-go libgpgme +CONTAINERD_BIN_AARCH64_GOPATH = $(@D)/_output +CONTAINERD_BIN_AARCH64_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GO111MODULE=off \ + GOPATH="$(CONTAINERD_BIN_AARCH64_GOPATH)" \ + PATH=$(CONTAINERD_BIN_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + +CONTAINERD_BIN_AARCH64_COMPILE_SRC = $(CONTAINERD_BIN_AARCH64_GOPATH)/src/github.com/containerd/containerd + +define CONTAINERD_BIN_AARCH64_USERS + - -1 containerd-admin -1 - - - - - + - -1 containerd -1 - - - - - +endef + +define CONTAINERD_BIN_AARCH64_CONFIGURE_CMDS + mkdir -p $(CONTAINERD_BIN_AARCH64_GOPATH)/src/github.com/containerd + ln -sf $(@D) $(CONTAINERD_BIN_AARCH64_COMPILE_SRC) +endef + +define CONTAINERD_BIN_AARCH64_BUILD_CMDS + PWD=$(CONTAINERD_BIN_AARCH64_COMPILE_SRC) $(CONTAINERD_BIN_AARCH64_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) VERSION=$(CONTAINERD_BIN_AARCH64_VERSION) REVISION=$(CONTAINERD_BIN_AARCH64_COMMIT) -C $(@D) binaries +endef + +define CONTAINERD_BIN_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -Dm755 \ + $(@D)/bin/containerd \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -Dm755 \ + $(@D)/bin/containerd-shim \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -Dm755 \ + $(@D)/bin/containerd-shim-runc-v1 \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -Dm755 \ + $(@D)/bin/containerd-shim-runc-v2 \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -Dm755 \ + $(@D)/bin/ctr \ + $(TARGET_DIR)/usr/bin + $(INSTALL) -Dm644 \ + $(CONTAINERD_BIN_AARCH64_PKGDIR)/config.toml \ + $(TARGET_DIR)/etc/containerd/config.toml +endef + +define CONTAINERD_BIN_AARCH64_INSTALL_INIT_SYSTEMD + $(INSTALL) -Dm644 \ + $(CONTAINERD_BIN_AARCH64_PKGDIR)/containerd.service \ + $(TARGET_DIR)/usr/lib/systemd/system/containerd.service + $(INSTALL) -Dm644 \ + $(CONTAINERD_BIN_AARCH64_PKGDIR)/50-minikube.preset \ + $(TARGET_DIR)/usr/lib/systemd/system-preset/50-minikube.preset +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/containerd-bin/containerd.service b/deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd.service similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/containerd.service rename to deploy/iso/minikube-iso/arch/aarch64/package/containerd-bin-aarch64/containerd.service diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/Config.in new file mode 100644 index 0000000000..ee257ae4f7 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_CRI_DOCKERD_AARCH64 + bool "cri-dockerd" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_DOCKER_BIN diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.hash b/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/cri-dockerd.hash similarity index 100% rename from deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/cri-dockerd.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/cri-dockerd.mk b/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/cri-dockerd.mk new file mode 100644 index 0000000000..0ab94ba0e8 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/cri-dockerd-aarch64/cri-dockerd.mk @@ -0,0 +1,49 @@ +################################################################################ +# +# cri-dockerd +# +################################################################################ + +# As of 2022-02-03 +CRI_DOCKERD_AARCH64_VER = 0.2.0 +CRI_DOCKERD_AARCH64_REV = a4d1895 +CRI_DOCKERD_AARCH64_VERSION = a4d1895a2659ea9974bd7528a706592ab8b74181 +CRI_DOCKERD_AARCH64_SITE = https://github.com/Mirantis/cri-dockerd/archive +CRI_DOCKERD_AARCH64_SOURCE = $(CRI_DOCKERD_AARCH64_VERSION).tar.gz + +CRI_DOCKERD_AARCH64_DEPENDENCIES = host-go + +CRI_DOCKERD_AARCH64_GOPATH = $(@D)/_output +CRI_DOCKERD_AARCH64_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=0 \ + GO111MODULE=on \ + GOPATH="$(CRI_DOCKERD_AARCH64_GOPATH)" \ + PATH=$(CRI_DOCKERD_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + +CRI_DOCKERD_AARCH64_COMPILE_SRC = $(CRI_DOCKERD_AARCH64_GOPATH)/src/github.com/Mirantis/cri-dockerd +CRI_DOCKERD_AARCH64_BUILDFLAGS = "-ldflags '-X github.com/Mirantis/cri-dockerd/version.Version=$(CRI_DOCKERD_AARCH64_VER) -X github.com/Mirantis/cri-dockerd/version.GitCommit=$(CRI_DOCKERD_AARCH64_REV)'" + +# If https://github.com/Mirantis/cri-dockerd/blob/master/packaging/Makefile changes, then this will almost certainly need to change +# This uses the static make target at the top level Makefile, since that builds everything, then picks out the arm64 binary +define CRI_DOCKERD_AARCH64_BUILD_CMDS + $(CRI_DOCKERD_AARCH64_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) LDFLAGS=$(CRI_DOCKERD_AARCH64_BUILDFLAGS) GO_VERSION=$(GO_VERSION) -C $(@D) VERSION=$(CRI_DOCKERD_AARCH64_VER) REVISION=$(CRI_DOCKERD_AARCH64_REV) static +endef + +define CRI_DOCKERD_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -Dm755 \ + $(@D)/packaging/static/build/arm/cri-dockerd/cri-dockerd \ + $(TARGET_DIR)/usr/bin/cri-dockerd +endef + +define CRI_DOCKERD_AARCH64_INSTALL_INIT_SYSTEMD + $(INSTALL) -Dm644 \ + $(@D)/packaging/systemd/cri-docker.service \ + $(TARGET_DIR)/usr/lib/systemd/system/cri-docker.service + $(INSTALL) -Dm644 \ + $(@D)/packaging/systemd/cri-docker.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/cri-docker.socket +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/Config.in new file mode 100644 index 0000000000..26baaf3d93 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_CRICTL_BIN_AARCH64 + bool "crictl-bin" + default y + depends on BR2_aarch64 diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.hash new file mode 100644 index 0000000000..e66af8bf7a --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.hash @@ -0,0 +1 @@ +sha256 454eecd29fe636282339af5b73c60234a7d10e4b11b9e18937e33056763d72cf crictl-v1.21.0-linux-arm64.tar.gz diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.mk new file mode 100644 index 0000000000..1f190f6246 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/crictl-bin-aarch64/crictl-bin.mk @@ -0,0 +1,18 @@ +################################################################################ +# +# crictl-bin +# +################################################################################ + +CRICTL_BIN_AARCH64_VERSION = v1.21.0 +CRICTL_BIN_AARCH64_SITE = https://github.com/kubernetes-sigs/cri-tools/releases/download/$(CRICTL_BIN_AARCH64_VERSION) +CRICTL_BIN_AARCH64_SOURCE = crictl-$(CRICTL_BIN_AARCH64_VERSION)-linux-arm64.tar.gz +CRICTL_BIN_AARCH64_STRIP_COMPONENTS = 0 + +define CRICTL_BIN_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 \ + $(@D)/crictl \ + $(TARGET_DIR)/usr/bin/crictl +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/crio-bin/02-crio.conf b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/02-crio.conf similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/02-crio.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/02-crio.conf diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/Config.in new file mode 100644 index 0000000000..604df2cb40 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/Config.in @@ -0,0 +1,20 @@ +config BR2_PACKAGE_CRIO_BIN_AARCH64 + bool "crio-bin" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_USE_MMU # lvm2 + depends on !BR2_STATIC_LIBS # lvm2 + depends on !BR2_TOOLCHAIN_USES_MUSL # lvm2 + select BR2_PACKAGE_RUNC_MASTER + select BR2_PACKAGE_CRUN + select BR2_PACKAGE_CONMON + select BR2_PACKAGE_BTRFS_PROGS + select BR2_PACKAGE_LIBSECCOMP + select BR2_PACKAGE_LIBGPGME + select BR2_PACKAGE_LVM2 + select BR2_PACKAGE_LVM2_APP_LIBRARY + select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT + select BR2_PACKAGE_LIBGLIB2 diff --git a/deploy/iso/minikube-iso/package/crio-bin/conmon-config.h b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/conmon-config.h similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/conmon-config.h rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/conmon-config.h diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-bin.hash similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio-bin.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-bin.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-bin.mk new file mode 100644 index 0000000000..7348fbab4a --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-bin.mk @@ -0,0 +1,79 @@ +################################################################################ +# +# cri-o +# +################################################################################ + +CRIO_BIN_AARCH64_VERSION = v1.22.3 +CRIO_BIN_AARCH64_COMMIT = d93b2dfb8d0f2ad0f8b9061d941e3b216baa5814 +CRIO_BIN_AARCH64_SITE = https://github.com/cri-o/cri-o/archive +CRIO_BIN_AARCH64_SOURCE = $(CRIO_BIN_AARCH64_VERSION).tar.gz +CRIO_BIN_AARCH64_DEPENDENCIES = host-go libgpgme +CRIO_BIN_AARCH64_GOPATH = $(@D)/_output +CRIO_BIN_AARCH64_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GO111MODULE=off \ + GOPATH="$(CRIO_BIN_AARCH64_GOPATH)" \ + PATH=$(CRIO_BIN_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + + +define CRIO_BIN_AARCH64_USERS + - -1 crio-admin -1 - - - - - + - -1 crio -1 - - - - - +endef + +define CRIO_BIN_AARCH64_CONFIGURE_CMDS + mkdir -p $(CRIO_BIN_AARCH64_GOPATH)/src/github.com/cri-o + ln -sf $(@D) $(CRIO_BIN_AARCH64_GOPATH)/src/github.com/cri-o/cri-o + # disable the "automatic" go module detection + sed -e 's/go help mod/false/' -i $(@D)/Makefile +endef + +define CRIO_BIN_AARCH64_BUILD_CMDS + mkdir -p $(@D)/bin + $(CRIO_BIN_AARCH64_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) COMMIT_NO=$(CRIO_BIN_AARCH64_COMMIT) PREFIX=/usr binaries +endef + +define CRIO_BIN_AARCH64_INSTALL_TARGET_CMDS + mkdir -p $(TARGET_DIR)/usr/share/containers/oci/hooks.d + mkdir -p $(TARGET_DIR)/etc/containers/oci/hooks.d + mkdir -p $(TARGET_DIR)/etc/crio/crio.conf.d + + $(INSTALL) -Dm755 \ + $(@D)/bin/crio \ + $(TARGET_DIR)/usr/bin/crio + $(INSTALL) -Dm755 \ + $(@D)/bin/pinns \ + $(TARGET_DIR)/usr/bin/pinns + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/crio.conf \ + $(TARGET_DIR)/etc/crio/crio.conf + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/policy.json \ + $(TARGET_DIR)/etc/containers/policy.json + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/registries.conf \ + $(TARGET_DIR)/etc/containers/registries.conf + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/02-crio.conf \ + $(TARGET_DIR)/etc/crio/crio.conf.d/02-crio.conf + + mkdir -p $(TARGET_DIR)/etc/sysconfig + echo 'CRIO_OPTIONS="--log-level=debug"' > $(TARGET_DIR)/etc/sysconfig/crio +endef + +define CRIO_BIN_AARCH64_INSTALL_INIT_SYSTEMD + $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) install.systemd DESTDIR=$(TARGET_DIR) PREFIX=$(TARGET_DIR)/usr + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/crio.service \ + $(TARGET_DIR)/usr/lib/systemd/system/crio.service + $(INSTALL) -Dm644 \ + $(CRIO_BIN_AARCH64_PKGDIR)/crio-wipe.service \ + $(TARGET_DIR)/usr/lib/systemd/system/crio-wipe.service + $(call link-service,crio.service) + $(call link-service,crio-shutdown.service) +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-wipe.service b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-wipe.service similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio-wipe.service rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio-wipe.service diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio.conf b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.conf similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.conf diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio.conf.default b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.conf.default similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio.conf.default rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.conf.default diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio.service b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.service similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio.service rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/crio.service diff --git a/deploy/iso/minikube-iso/package/crio-bin/policy.json b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/policy.json similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/policy.json rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/policy.json diff --git a/deploy/iso/minikube-iso/package/crio-bin/registries.conf b/deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/registries.conf similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/registries.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/crio-bin-aarch64/registries.conf diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/Config.in new file mode 100644 index 0000000000..312c5f148a --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_DOCKER_BIN_AARCH64 + bool "docker-bin" + default y + depends on BR2_aarch64 diff --git a/deploy/iso/minikube-iso/package/docker-bin/daemon.json b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/daemon.json similarity index 100% rename from deploy/iso/minikube-iso/package/docker-bin/daemon.json rename to deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/daemon.json diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash new file mode 100644 index 0000000000..84b6060930 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.hash @@ -0,0 +1 @@ +sha256 ea971edc1179088bfd25edd04a0c12848143d15cb8202ebb93a6a08973464fd0 docker-20.10.14.tgz diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk new file mode 100644 index 0000000000..ab53ee5055 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker-bin.mk @@ -0,0 +1,55 @@ +################################################################################ +# +# docker-bin +# +################################################################################ + +DOCKER_BIN_AARCH64_VERSION = 20.10.14 +DOCKER_BIN_AARCH64_SITE = https://download.docker.com/linux/static/stable/aarch64 +DOCKER_BIN_AARCH64_SOURCE = docker-$(DOCKER_BIN_AARCH64_VERSION).tgz + +define DOCKER_BIN_AARCH64_USERS + - -1 docker -1 - - - - - +endef + +define DOCKER_BIN_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 \ + $(@D)/docker \ + $(TARGET_DIR)/bin/docker + + # As of 2019-05, we use upstream containerd so that we may update it independently of docker. + + # As of 2019-01, we use upstream runc so that we may update it independently of docker. + + # As of 2019-05, we use upstream ctr so that we may update it independently of docker. + + $(INSTALL) -D -m 0755 \ + $(@D)/dockerd \ + $(TARGET_DIR)/bin/dockerd + + $(INSTALL) -D -m 0755 \ + $(@D)/docker-init \ + $(TARGET_DIR)/bin/docker-init + + $(INSTALL) -D -m 0755 \ + $(@D)/docker-proxy \ + $(TARGET_DIR)/bin/docker-proxy + + # https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker + + $(INSTALL) -Dm644 \ + $(DOCKER_BIN_AARCH64_PKGDIR)/daemon.json \ + $(TARGET_DIR)/etc/docker/daemon.json +endef + +define DOCKER_BIN_AARCH64_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 \ + $(DOCKER_BIN_AARCH64_PKGDIR)/docker.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/docker.socket + + $(INSTALL) -D -m 644 \ + $(DOCKER_BIN_AARCH64_PKGDIR)/forward.conf \ + $(TARGET_DIR)/etc/sysctl.d/forward.conf +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/docker-bin/docker.socket b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker.socket similarity index 100% rename from deploy/iso/minikube-iso/package/docker-bin/docker.socket rename to deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/docker.socket diff --git a/deploy/iso/minikube-iso/package/docker-bin/forward.conf b/deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/forward.conf similarity index 100% rename from deploy/iso/minikube-iso/package/docker-bin/forward.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/docker-bin-aarch64/forward.conf diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/Config.in new file mode 100644 index 0000000000..8358742471 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/Config.in @@ -0,0 +1,12 @@ +config BR2_PACKAGE_PODMAN_AARCH64 + bool "podman" + default y + depends on BR2_aarch64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + select BR2_PACKAGE_RUNC_MASTER + select BR2_PACKAGE_CRUN + select BR2_PACKAGE_CONMON + select BR2_PACKAGE_LIBSECCOMP + select BR2_PACKAGE_LIBGPGME diff --git a/deploy/iso/minikube-iso/package/podman/override.conf b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/override.conf similarity index 100% rename from deploy/iso/minikube-iso/package/podman/override.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/override.conf diff --git a/deploy/iso/minikube-iso/package/podman/podman.conf b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.conf similarity index 100% rename from deploy/iso/minikube-iso/package/podman/podman.conf rename to deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.conf diff --git a/deploy/iso/minikube-iso/package/podman/podman.hash b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.hash similarity index 100% rename from deploy/iso/minikube-iso/package/podman/podman.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.mk b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.mk new file mode 100644 index 0000000000..e708873dac --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/podman-aarch64/podman.mk @@ -0,0 +1,71 @@ +PODMAN_AARCH64_VERSION = v3.4.2 +PODMAN_AARCH64_COMMIT = 2ad1fd3555de12de34e20898cc2ef901f08fe5ed +PODMAN_AARCH64_SITE = https://github.com/containers/podman/archive +PODMAN_AARCH64_SOURCE = $(PODMAN_AARCH64_VERSION).tar.gz +PODMAN_AARCH64_LICENSE = Apache-2.0 +PODMAN_AARCH64_LICENSE_FILES = LICENSE + +PODMAN_AARCH64_DEPENDENCIES = host-go +ifeq ($(BR2_INIT_SYSTEMD),y) +# need libsystemd for journal +PODMAN_AARCH64_DEPENDENCIES += systemd +endif + +PODMAN_AARCH64_GOPATH = $(@D)/_output +PODMAN_AARCH64_BIN_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GOPATH="$(PODMAN_AARCH64_GOPATH)" \ + PATH=$(PODMAN_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + + +define PODMAN_AARCH64_USERS + - -1 podman -1 - - - - - +endef + +define PODMAN_AARCH64_MOD_VENDOR_MAKEFILE + # "build flag -mod=vendor only valid when using modules" + sed -e 's|-mod=vendor ||' -i $(@D)/Makefile +endef + +PODMAN_AARCH64_POST_EXTRACT_HOOKS += PODMAN_AARCH64_MOD_VENDOR_MAKEFILE + +define PODMAN_AARCH64_CONFIGURE_CMDS + mkdir -p $(PODMAN_AARCH64_GOPATH) && mv $(@D)/vendor $(PODMAN_AARCH64_GOPATH)/src + + mkdir -p $(PODMAN_AARCH64_GOPATH)/src/github.com/containers + ln -sf $(@D) $(PODMAN_AARCH64_GOPATH)/src/github.com/containers/podman + + ln -sf $(@D) $(PODMAN_AARCH64_GOPATH)/src/github.com/containers/podman/v2 +endef + +define PODMAN_AARCH64_BUILD_CMDS + mkdir -p $(@D)/bin + $(PODMAN_AARCH64_BIN_ENV) CIRRUS_TAG=$(PODMAN_AARCH64_VERSION) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) GIT_COMMIT=$(PODMAN_AARCH64_COMMIT) PREFIX=/usr podman +endef + +define PODMAN_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -Dm755 $(@D)/bin/podman $(TARGET_DIR)/usr/bin/podman + $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/cni/net.d/ + $(INSTALL) -m 644 $(@D)/cni/87-podman-bridge.conflist $(TARGET_DIR)/etc/cni/net.d/87-podman-bridge.conflist +endef + +define PODMAN_AARCH64_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 \ + $(@D)/contrib/systemd/system/podman.service \ + $(TARGET_DIR)/usr/lib/systemd/system/podman.service + $(INSTALL) -D -m 644 \ + $(@D)/contrib/systemd/system/podman.socket \ + $(TARGET_DIR)/usr/lib/systemd/system/podman.socket + + # Allow running podman-remote as a user in the group "podman" + $(INSTALL) -D -m 644 \ + $(PODMAN_AARCH64_PKGDIR)/override.conf \ + $(TARGET_DIR)/usr/lib/systemd/system/podman.socket.d/override.conf + $(INSTALL) -D -m 644 \ + $(PODMAN_AARCH64_PKGDIR)/podman.conf \ + $(TARGET_DIR)/usr/lib/tmpfiles.d/podman.conf +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/runc-master/Config.in b/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/Config.in similarity index 92% rename from deploy/iso/minikube-iso/package/runc-master/Config.in rename to deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/Config.in index e3e4a58454..8c1bf95cb0 100644 --- a/deploy/iso/minikube-iso/package/runc-master/Config.in +++ b/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/Config.in @@ -1,5 +1,6 @@ -config BR2_PACKAGE_RUNC_MASTER +config BR2_PACKAGE_RUNC_MASTER_AARCH64 bool "runc-master" + default y depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS diff --git a/deploy/iso/minikube-iso/package/runc-master/runc-master.hash b/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/runc-master.hash similarity index 100% rename from deploy/iso/minikube-iso/package/runc-master/runc-master.hash rename to deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/runc-master.hash diff --git a/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/runc-master.mk b/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/runc-master.mk new file mode 100644 index 0000000000..3d1f6edc4f --- /dev/null +++ b/deploy/iso/minikube-iso/arch/aarch64/package/runc-master-aarch64/runc-master.mk @@ -0,0 +1,45 @@ +################################################################################ +# +# runc +# +################################################################################ + +# As of 2021-12-03, v1.0.3 +RUNC_MASTER_AARCH64_VERSION = f46b6ba2c9314cfc8caae24a32ec5fe9ef1059fe +RUNC_MASTER_AARCH64_SITE = https://github.com/opencontainers/runc/archive +RUNC_MASTER_AARCH64_SOURCE = $(RUNC_MASTER_AARCH64_VERSION).tar.gz +RUNC_MASTER_AARCH64_LICENSE = Apache-2.0 +RUNC_MASTER_AARCH64_LICENSE_FILES = LICENSE + +RUNC_MASTER_AARCH64_DEPENDENCIES = host-go + +RUNC_MASTER_AARCH64_GOPATH = $(@D)/_output +RUNC_MASTER_AARCH64_MAKE_ENV = \ + $(GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GO111MODULE=off \ + GOPATH="$(RUNC_MASTER_AARCH64_GOPATH)" \ + PATH=$(RUNC_MASTER_AARCH64_GOPATH)/bin:$(BR_PATH) \ + GOARCH=arm64 + +RUNC_MASTER_AARCH64_COMPILE_SRC = $(RUNC_MASTER_AARCH64_GOPATH)/src/github.com/opencontainers/runc + +ifeq ($(BR2_PACKAGE_LIBSECCOMP),y) +RUNC_MASTER_AARCH64_GOTAGS += seccomp +RUNC_MASTER_AARCH64_DEPENDENCIES += libseccomp host-pkgconf +endif + +define RUNC_MASTER_AARCH64_CONFIGURE_CMDS + mkdir -p $(RUNC_MASTER_AARCH64_GOPATH)/src/github.com/opencontainers + ln -s $(@D) $(RUNC_MASTER_AARCH64_GOPATH)/src/github.com/opencontainers/runc +endef + +define RUNC_MASTER_AARCH64_BUILD_CMDS + PWD=$(RUNC_MASTER_AARCH64_COMPILE_SRC) $(RUNC_MASTER_AARCH64_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) BUILDTAGS="$(RUNC_MASTER_AARCH64_GOTAGS)" COMMIT_NO=$(RUNC_MASTER_AARCH64_VERSION) COMMIT=$(RUNC_MASTER_AARCH64_VERSION) PREFIX=/usr +endef + +define RUNC_MASTER_AARCH64_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/runc $(TARGET_DIR)/usr/bin/runc +endef + +$(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/arch/x86_64/Config.in.tmpl b/deploy/iso/minikube-iso/arch/x86_64/Config.in.tmpl new file mode 100644 index 0000000000..ff29c1b53e --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/Config.in.tmpl @@ -0,0 +1,2 @@ +source "$BR2_EXTERNAL_MINIKUBE_PATH/package/Config.in" +source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/Config.in" diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in new file mode 100644 index 0000000000..1766727bf7 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/Config.in @@ -0,0 +1,15 @@ +menu "System tools x86_64" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/conmon/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/buildkit-bin/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/runc-master/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/crio-bin/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/crictl-bin/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/docker-bin/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cri-dockerd/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/cni-plugins/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/containerd-bin/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/podman/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/vbox-guest/Config.in" + source "$BR2_EXTERNAL_MINIKUBE_PATH/arch/x86_64/package/hyperv-daemons/Config.in" +endmenu diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/51-buildkit.preset b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/51-buildkit.preset new file mode 100644 index 0000000000..37de892c71 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/51-buildkit.preset @@ -0,0 +1 @@ +disable buildkit.service diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/buildkit-bin/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/Config.in diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.hash similarity index 83% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.hash index 75c50b02ab..cffe3c71ca 100644 --- a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.hash +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.hash @@ -3,3 +3,4 @@ sha256 28005748fae926edf8c93b7cb1df53ec49df65dec67105b94e7fb9c513fa78a4 buildki sha256 e0438a701d4192f80b2211b0a333984ee4f097c547904e40fc941daad57fe153 buildkit-v0.8.1.linux-amd64.tar.gz sha256 d6d1ebc68806e626f31dd4ea17a406a93dcff14763971cd91b28cbaf3bfffcd4 buildkit-v0.8.2.linux-amd64.tar.gz sha256 1b307268735c8f8e68b55781a6f4c03af38acc1bc29ba39ebaec6d422bccfb25 buildkit-v0.9.0.linux-amd64.tar.gz +sha256 fbc9c433cf77c5c00db6f797155edc60b44463524ae59a4961699dca15bcee00 buildkit-v0.10.3.linux-amd64.tar.gz diff --git a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.mk similarity index 88% rename from deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.mk index 6c54c2451f..43037b35a8 100644 --- a/deploy/iso/minikube-iso/package/buildkit-bin/buildkit-bin.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit-bin.mk @@ -4,13 +4,14 @@ # ################################################################################ -BUILDKIT_BIN_VERSION = v0.9.0 -BUILDKIT_BIN_COMMIT = c8bb937807d405d92be91f06ce2629e6202ac7a9 +BUILDKIT_BIN_VERSION = v0.10.3 +BUILDKIT_BIN_COMMIT = c8d25d9a103b70dc300a4fd55e7e576472284e31 BUILDKIT_BIN_SITE = https://github.com/moby/buildkit/releases/download/$(BUILDKIT_BIN_VERSION) BUILDKIT_BIN_SOURCE = buildkit-$(BUILDKIT_BIN_VERSION).linux-amd64.tar.gz # https://github.com/opencontainers/runc.git -BUILDKIT_RUNC_VERSION = 12644e614e25b05da6fd08a38ffa0cfe1903fdec +BUILDKIT_RUNC_VERSION = v1.0.2 +BUILDKIT_RUNC_COMMIT = 52b36a2dd837e8462de8e01458bf02cf9eea47dd define BUILDKIT_BIN_USERS - -1 buildkit -1 - - - - - diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.conf b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.conf new file mode 100644 index 0000000000..006273ce91 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.conf @@ -0,0 +1 @@ +d /run/buildkit 0770 root buildkit diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.service b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.service new file mode 100644 index 0000000000..c1dad527ec --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.service @@ -0,0 +1,11 @@ +[Unit] +Description=BuildKit +Requires=buildkit.socket +After=buildkit.socket +Documentation=https://github.com/moby/buildkit + +[Service] +ExecStart=/usr/sbin/buildkitd --addr fd:// + +[Install] +WantedBy=multi-user.target diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.socket b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.socket new file mode 100644 index 0000000000..776b237627 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkit.socket @@ -0,0 +1,12 @@ +[Unit] +Description=BuildKit +Documentation=https://github.com/moby/buildkit + +[Socket] +ListenStream=%t/buildkit/buildkitd.sock +SocketMode=0660 +SocketUser=root +SocketGroup=buildkit + +[Install] +WantedBy=sockets.target diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkitd.toml b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkitd.toml new file mode 100644 index 0000000000..62158d44d7 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/buildkit-bin/buildkitd.toml @@ -0,0 +1,5 @@ +[worker.oci] + enabled = false +[worker.containerd] + enabled = true + namespace = "k8s.io" diff --git a/deploy/iso/minikube-iso/package/cni-plugins/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/cni-plugins/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/Config.in diff --git a/deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.hash b/deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.hash similarity index 77% rename from deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.hash index 01819019cb..108864f539 100644 --- a/deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.hash +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.hash @@ -2,3 +2,4 @@ sha256 f04339a21b8edf76d415e7f17b620e63b8f37a76b2f706671587ab6464411f2d cni-plu sha256 8589670f7f9b211a351dfcd211d4fe0b961d77283a7415443dc188f3dbf05668 v0.6.0.tar.gz sha256 92c7599918be0a720ac020f137cdeac746dfa03da6b26e08a37132c5728c091f v0.7.5.tar.gz sha256 9d1526ed965ac6562fd95a931ab2346b3c5efd58c2f569038ba3c530f7e66472 v0.8.5.tar.gz +sha256 bd682ffcf701e8f83283cdff7281aad0c83b02a56084d6e601216210732833f9 cni-plugins-linux-amd64-v0.8.5.tgz diff --git a/deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.mk b/deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.mk similarity index 74% rename from deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.mk index 659e186e87..f90be859b6 100644 --- a/deploy/iso/minikube-iso/package/cni-plugins/cni-plugins.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cni-plugins/cni-plugins.mk @@ -5,28 +5,14 @@ ################################################################################ CNI_PLUGINS_VERSION = v0.8.5 -CNI_PLUGINS_SITE = https://github.com/containernetworking/plugins/archive -CNI_PLUGINS_SOURCE = $(CNI_PLUGINS_VERSION).tar.gz +CNI_PLUGINS_SITE = https://github.com/containernetworking/plugins/releases/download/$(CNI_PLUGINS_VERSION) +CNI_PLUGINS_SOURCE = cni-plugins-linux-amd64-$(CNI_PLUGINS_VERSION).tgz CNI_PLUGINS_LICENSE = Apache-2.0 CNI_PLUGINS_LICENSE_FILES = LICENSE -CNI_PLUGINS_DEPENDENCIES = host-go - -CNI_PLUGINS_MAKE_ENV = \ - $(GO_TARGET_ENV) \ - CGO_ENABLED=0 \ - GO111MODULE=off - -CNI_PLUGINS_BUILDFLAGS = -a -ldflags '-extldflags -static -X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=$(CNI_PLUGINS_VERSION)' - - -define CNI_PLUGINS_BUILD_CMDS - (cd $(@D); $(CNI_PLUGINS_MAKE_ENV) ./build_linux.sh $(CNI_PLUGINS_BUILDFLAGS)) -endef - define CNI_PLUGINS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 \ - $(@D)/bin/bandwidth \ + $(@D)/bandwidth \ $(TARGET_DIR)/opt/cni/bin/bandwidth ln -sf \ @@ -34,7 +20,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/bandwidth $(INSTALL) -D -m 0755 \ - $(@D)/bin/bridge \ + $(@D)/bridge \ $(TARGET_DIR)/opt/cni/bin/bridge ln -sf \ @@ -42,7 +28,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/bridge $(INSTALL) -D -m 0755 \ - $(@D)/bin/vlan \ + $(@D)/vlan \ $(TARGET_DIR)/opt/cni/bin/vlan ln -sf \ @@ -50,7 +36,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/vlan $(INSTALL) -D -m 0755 \ - $(@D)/bin/tuning \ + $(@D)/tuning \ $(TARGET_DIR)/opt/cni/bin/tuning ln -sf \ @@ -58,7 +44,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/tuning $(INSTALL) -D -m 0755 \ - $(@D)/bin/ptp \ + $(@D)/ptp \ $(TARGET_DIR)/opt/cni/bin/ptp ln -sf \ @@ -66,7 +52,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/ptp $(INSTALL) -D -m 0755 \ - $(@D)/bin/portmap \ + $(@D)/portmap \ $(TARGET_DIR)/opt/cni/bin/portmap ln -sf \ @@ -74,7 +60,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/portmap $(INSTALL) -D -m 0755 \ - $(@D)/bin/macvlan \ + $(@D)/macvlan \ $(TARGET_DIR)/opt/cni/bin/macvlan ln -sf \ @@ -82,7 +68,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/macvlan $(INSTALL) -D -m 0755 \ - $(@D)/bin/loopback \ + $(@D)/loopback \ $(TARGET_DIR)/opt/cni/bin/loopback ln -sf \ @@ -90,7 +76,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/loopback $(INSTALL) -D -m 0755 \ - $(@D)/bin/ipvlan \ + $(@D)/ipvlan \ $(TARGET_DIR)/opt/cni/bin/ipvlan ln -sf \ @@ -98,7 +84,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/ipvlan $(INSTALL) -D -m 0755 \ - $(@D)/bin/host-local \ + $(@D)/host-local \ $(TARGET_DIR)/opt/cni/bin/host-local ln -sf \ @@ -106,7 +92,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/host-local $(INSTALL) -D -m 0755 \ - $(@D)/bin/flannel \ + $(@D)/flannel \ $(TARGET_DIR)/opt/cni/bin/flannel ln -sf \ @@ -115,7 +101,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(INSTALL) -D -m 0755 \ - $(@D)/bin/dhcp \ + $(@D)/dhcp \ $(TARGET_DIR)/opt/cni/bin/dhcp ln -sf \ @@ -123,7 +109,7 @@ define CNI_PLUGINS_INSTALL_TARGET_CMDS $(TARGET_DIR)/usr/bin/dhcp $(INSTALL) -D -m 0755 \ - $(@D)/bin/firewall \ + $(@D)/firewall \ $(TARGET_DIR)/opt/cni/bin/firewall ln -sf \ diff --git a/deploy/iso/minikube-iso/package/cni/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/cni/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/cni/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/cni/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.hash b/deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.hash new file mode 100644 index 0000000000..f8b1c8278f --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.hash @@ -0,0 +1,6 @@ +sha256 b1ae09833a238c51161918a8849031efdb46cf0068ea5b752e362d9836e2af7d cni-v0.3.0.tgz +sha256 84c9a0a41b59211d560bef14bf3f53bb370156f9ac7762270b3848fed96e1be8 cni-v0.4.0.tgz +sha256 a7f84a742c8f3a95843b3cc636444742554a4853835649ec371a07c841daebab cni-amd64-v0.6.0.tgz +sha256 802f4a002b4eb774624a9dc1c859d3c9926eb2d862e66a673fc99cfc8bcd7494 v0.6.0.tar.gz +sha256 78d57477d6b0ab9dc4d75ce9f275302d2f379206b5326503e57d9c08b76484c1 v0.7.0.tar.gz +sha256 4517eabfd65aea2012dc48d057bf889a0a41ed9837387d95cd1e36c0dbddcfd4 v0.7.1.tar.gz diff --git a/deploy/iso/minikube-iso/package/cni/cni.mk b/deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.mk similarity index 95% rename from deploy/iso/minikube-iso/package/cni/cni.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.mk index 396e966ed0..6e9aacd275 100644 --- a/deploy/iso/minikube-iso/package/cni/cni.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cni/cni.mk @@ -19,7 +19,8 @@ CNI_MAKE_ENV = \ GO111MODULE=off \ GOPATH="$(CNI_GOPATH)" \ GOBIN="$(CNI_GOPATH)/bin" \ - PATH=$(CNI_GOPATH)/bin:$(BR_PATH) + PATH=$(CNI_GOPATH)/bin:$(BR_PATH) \ + GOARCH=amd64 CNI_BUILDFLAGS = -a --ldflags '-extldflags \"-static\"' diff --git a/deploy/iso/minikube-iso/package/conmon/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/conmon/Config.in similarity index 91% rename from deploy/iso/minikube-iso/package/conmon/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/conmon/Config.in index 6d4df09cf9..0022e24900 100644 --- a/deploy/iso/minikube-iso/package/conmon/Config.in +++ b/deploy/iso/minikube-iso/arch/x86_64/package/conmon/Config.in @@ -1,5 +1,6 @@ config BR2_PACKAGE_CONMON bool "conmon" + depends on BR2_x86_64 depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS depends on BR2_TOOLCHAIN_HAS_THREADS diff --git a/deploy/iso/minikube-iso/package/conmon/conmon.hash b/deploy/iso/minikube-iso/arch/x86_64/package/conmon/conmon.hash similarity index 100% rename from deploy/iso/minikube-iso/package/conmon/conmon.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/conmon/conmon.hash diff --git a/deploy/iso/minikube-iso/package/conmon/conmon.mk b/deploy/iso/minikube-iso/arch/x86_64/package/conmon/conmon.mk similarity index 100% rename from deploy/iso/minikube-iso/package/conmon/conmon.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/conmon/conmon.mk diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/50-minikube.preset b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/50-minikube.preset new file mode 100644 index 0000000000..1f46632a80 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/50-minikube.preset @@ -0,0 +1 @@ +disable containerd.service diff --git a/deploy/iso/minikube-iso/package/containerd-bin/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/containerd-bin/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml new file mode 100644 index 0000000000..f588941a5e --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml @@ -0,0 +1,133 @@ +version = 2 +root = "/var/lib/containerd" +state = "/run/containerd" +plugin_dir = "" +disabled_plugins = [] +required_plugins = [] +oom_score = 0 + +[grpc] + address = "/run/containerd/containerd.sock" + tcp_address = "" + tcp_tls_cert = "" + tcp_tls_key = "" + uid = 0 + gid = 0 + max_recv_message_size = 16777216 + max_send_message_size = 16777216 + +[ttrpc] + address = "" + uid = 0 + gid = 0 + +[debug] + address = "" + uid = 0 + gid = 0 + level = "" + +[metrics] + address = "" + grpc_histogram = false + +[cgroup] + path = "" + +[timeouts] + "io.containerd.timeout.shim.cleanup" = "5s" + "io.containerd.timeout.shim.load" = "5s" + "io.containerd.timeout.shim.shutdown" = "3s" + "io.containerd.timeout.task.state" = "2s" + +[plugins] + [plugins."io.containerd.gc.v1.scheduler"] + pause_threshold = 0.02 + deletion_threshold = 0 + mutation_threshold = 100 + schedule_delay = "0s" + startup_delay = "100ms" + [plugins."io.containerd.grpc.v1.cri"] + disable_tcp_service = true + stream_server_address = "" + stream_server_port = "10010" + stream_idle_timeout = "4h0m0s" + enable_selinux = false + selinux_category_range = 1024 + sandbox_image = "k8s.gcr.io/pause:3.2" + stats_collect_period = 10 + systemd_cgroup = true + enable_tls_streaming = false + max_container_log_line_size = 16384 + disable_cgroup = false + disable_apparmor = false + restrict_oom_score_adj = false + max_concurrent_downloads = 3 + disable_proc_mount = false + unset_seccomp_profile = "" + tolerate_missing_hugetlb_controller = true + disable_hugetlb_controller = true + ignore_image_defined_volumes = false + [plugins."io.containerd.grpc.v1.cri".containerd] + snapshotter = "overlayfs" + default_runtime_name = "runc" + no_pivot = false + disable_snapshot_annotations = true + discard_unpacked_layers = false + [plugins."io.containerd.grpc.v1.cri".containerd.default_runtime] + runtime_type = "" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime] + runtime_type = "" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + [plugins."io.containerd.grpc.v1.cri".cni] + bin_dir = "/opt/cni/bin" + conf_dir = "/etc/cni/net.d" + max_conf_num = 1 + conf_template = "" + [plugins."io.containerd.grpc.v1.cri".registry] + [plugins."io.containerd.grpc.v1.cri".registry.mirrors] + [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] + endpoint = ["https://registry-1.docker.io"] + [plugins."io.containerd.grpc.v1.cri".image_decryption] + key_model = "" + [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming] + tls_cert_file = "" + tls_key_file = "" + [plugins."io.containerd.internal.v1.opt"] + path = "/opt/containerd" + [plugins."io.containerd.internal.v1.restart"] + interval = "10s" + [plugins."io.containerd.metadata.v1.bolt"] + content_sharing_policy = "shared" + [plugins."io.containerd.monitor.v1.cgroups"] + no_prometheus = false + [plugins."io.containerd.runtime.v1.linux"] + shim = "containerd-shim" + runtime = "runc" + runtime_root = "" + no_shim = false + shim_debug = false + [plugins."io.containerd.runtime.v2.task"] + platforms = ["linux/amd64"] + [plugins."io.containerd.service.v1.diff-service"] + default = ["walking"] + [plugins."io.containerd.snapshotter.v1.devmapper"] + root_path = "" + pool_name = "" + base_image_size = "" + async_remove = false diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml.default b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml.default new file mode 100644 index 0000000000..c54c96c320 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/config.toml.default @@ -0,0 +1,133 @@ +version = 2 +root = "/var/lib/containerd" +state = "/run/containerd" +plugin_dir = "" +disabled_plugins = [] +required_plugins = [] +oom_score = 0 + +[grpc] + address = "/run/containerd/containerd.sock" + tcp_address = "" + tcp_tls_cert = "" + tcp_tls_key = "" + uid = 0 + gid = 0 + max_recv_message_size = 16777216 + max_send_message_size = 16777216 + +[ttrpc] + address = "" + uid = 0 + gid = 0 + +[debug] + address = "" + uid = 0 + gid = 0 + level = "" + +[metrics] + address = "" + grpc_histogram = false + +[cgroup] + path = "" + +[timeouts] + "io.containerd.timeout.shim.cleanup" = "5s" + "io.containerd.timeout.shim.load" = "5s" + "io.containerd.timeout.shim.shutdown" = "3s" + "io.containerd.timeout.task.state" = "2s" + +[plugins] + [plugins."io.containerd.gc.v1.scheduler"] + pause_threshold = 0.02 + deletion_threshold = 0 + mutation_threshold = 100 + schedule_delay = "0s" + startup_delay = "100ms" + [plugins."io.containerd.grpc.v1.cri"] + disable_tcp_service = true + stream_server_address = "127.0.0.1" + stream_server_port = "0" + stream_idle_timeout = "4h0m0s" + enable_selinux = false + selinux_category_range = 1024 + sandbox_image = "k8s.gcr.io/pause:3.2" + stats_collect_period = 10 + systemd_cgroup = false + enable_tls_streaming = false + max_container_log_line_size = 16384 + disable_cgroup = false + disable_apparmor = false + restrict_oom_score_adj = false + max_concurrent_downloads = 3 + disable_proc_mount = false + unset_seccomp_profile = "" + tolerate_missing_hugetlb_controller = true + disable_hugetlb_controller = true + ignore_image_defined_volumes = false + [plugins."io.containerd.grpc.v1.cri".containerd] + snapshotter = "overlayfs" + default_runtime_name = "runc" + no_pivot = false + disable_snapshot_annotations = true + discard_unpacked_layers = false + [plugins."io.containerd.grpc.v1.cri".containerd.default_runtime] + runtime_type = "" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.untrusted_workload_runtime] + runtime_type = "" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] + runtime_type = "io.containerd.runc.v2" + runtime_engine = "" + runtime_root = "" + privileged_without_host_devices = false + base_runtime_spec = "" + [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] + [plugins."io.containerd.grpc.v1.cri".cni] + bin_dir = "/opt/cni/bin" + conf_dir = "/etc/cni/net.d" + max_conf_num = 1 + conf_template = "" + [plugins."io.containerd.grpc.v1.cri".registry] + [plugins."io.containerd.grpc.v1.cri".registry.mirrors] + [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"] + endpoint = ["https://registry-1.docker.io"] + [plugins."io.containerd.grpc.v1.cri".image_decryption] + key_model = "" + [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming] + tls_cert_file = "" + tls_key_file = "" + [plugins."io.containerd.internal.v1.opt"] + path = "/opt/containerd" + [plugins."io.containerd.internal.v1.restart"] + interval = "10s" + [plugins."io.containerd.metadata.v1.bolt"] + content_sharing_policy = "shared" + [plugins."io.containerd.monitor.v1.cgroups"] + no_prometheus = false + [plugins."io.containerd.runtime.v1.linux"] + shim = "containerd-shim" + runtime = "runc" + runtime_root = "" + no_shim = false + shim_debug = false + [plugins."io.containerd.runtime.v2.task"] + platforms = ["linux/amd64"] + [plugins."io.containerd.service.v1.diff-service"] + default = ["walking"] + [plugins."io.containerd.snapshotter.v1.devmapper"] + root_path = "" + pool_name = "" + base_image_size = "" + async_remove = false diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash new file mode 100644 index 0000000000..50fff143ab --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.hash @@ -0,0 +1,16 @@ +sha256 8565a655345f3db2f7b78b77a2cd3103895229aa44cd0e4c710ba3559e344b5a v1.2.0.tar.gz +sha256 b92819bde71de947329814a3c649b8adb106cc03be16aae217b94297f4b843a1 v1.2.5.tar.gz +sha256 f2d578b743fb9faa5b3477b7cf4b33d00501087043a53b27754f14bbe741f891 v1.2.6.tar.gz +sha256 6165ae2ad669d9ec6d317492d30a1511365bd31ad29efae757f19c1828bf75b3 v1.2.8.tar.gz +sha256 a0965e1492fca558629826f1aa89a9675de3d451cec67540400b30c0bf6ac387 v1.2.10.tar.gz +sha256 318886ea1efdec36f088fd6a0a0fe2b2f0ebdfd0066bdb4bd284bad12abc0a41 v1.2.12.tar.gz +sha256 0811057ab67b78ce911416e793edaeb14b3f1e105d67b8e67b6302e0eab572e4 v1.2.13.tar.gz +sha256 d30d59e143697aa4f0960205b3f5ac59c573b332f20507740ef2dc0fb5ae8ded v1.3.7.tar.gz +sha256 9244212589c84b12262769dca6fb985c0c680cb5259c8904b29c511d81fd62d0 v1.3.9.tar.gz +sha256 bc6d9452c700af0ebc09c0da8ddba55be4c03ac8928e72ca92d98905800c8018 v1.4.3.tar.gz +sha256 ac62c64664bf62fd44df0891c896eecdb6d93def3438271d7892dca75bc069d1 v1.4.4.tar.gz +sha256 285a3f4c00a87538bd7d0a82a0a8a758458c02b925349f44f3189f480c326038 v1.4.6.tar.gz +sha256 3bb9f54be022067847f5930d21ebbfe4e7a67f589d78930aa0ac713492c28bcc v1.4.9.tar.gz +sha256 85a531725f15e2d136131119d42af4507a5389e0947015152075c4c93816fb5c v1.4.12.tar.gz +sha256 7507913ba169c103ab67bc51bec31cd977d4348d7bc842da32b7eab5f930a14b v1.5.10.tar.gz +sha256 02b79d5e2b07b5e64cd28f1fe84395ee11eef95fc49fd923a9ab93022b148be6 v1.5.11.tar.gz diff --git a/deploy/iso/minikube-iso/package/containerd-bin/containerd-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk similarity index 97% rename from deploy/iso/minikube-iso/package/containerd-bin/containerd-bin.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk index 54c6a2fd0e..509a9ad761 100644 --- a/deploy/iso/minikube-iso/package/containerd-bin/containerd-bin.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd-bin.mk @@ -15,7 +15,8 @@ CONTAINERD_BIN_ENV = \ GO111MODULE=off \ GOPATH="$(CONTAINERD_BIN_GOPATH)" \ GOBIN="$(CONTAINERD_BIN_GOPATH)/bin" \ - PATH=$(CONTAINERD_BIN_GOPATH)/bin:$(BR_PATH) + PATH=$(CONTAINERD_BIN_GOPATH)/bin:$(BR_PATH) \ + GOARCH=amd64 CONTAINERD_BIN_COMPILE_SRC = $(CONTAINERD_BIN_GOPATH)/src/github.com/containerd/containerd diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd.service b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd.service new file mode 100644 index 0000000000..2d3d1e5ec9 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/containerd-bin/containerd.service @@ -0,0 +1,29 @@ +[Unit] +Description=containerd container runtime +Documentation=https://containerd.io +After=network-online.target minikube-automount.service +Requires=minikube-automount.service + +[Service] +EnvironmentFile=-/etc/sysconfig/containerd +EnvironmentFile=-/etc/sysconfig/containerd.minikube +EnvironmentFile=/var/run/minikube/env +Environment=GOTRACEBACK=crash +ExecStartPre=/sbin/modprobe overlay +ExecStart=/usr/bin/containerd \ + $CONTAINERD_OPTIONS \ + $CONTAINERD_MINIKUBE_OPTIONS \ + --root ${PERSISTENT_DIR}/var/lib/containerd +TasksMax=8192 +Delegate=yes +KillMode=mixed +LimitNOFILE=1048576 +# Having non-zero Limit*s causes performance problems due to accounting overhead +# in the kernel. We recommend using cgroups to do container-local accounting. +LimitNPROC=infinity +LimitCORE=infinity +TimeoutStartSec=0 +Restart=on-abnormal + +[Install] +WantedBy=multi-user.target diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/cri-dockerd/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.hash b/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.hash new file mode 100644 index 0000000000..1693e1b9d4 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.hash @@ -0,0 +1,3 @@ +sha256 4acd7605a0cb95a6ad50314d1f2497b92ee0f07382062d0c18a5434c1a3b9513 542e27dee12db61d6e96d2a83a20359474a5efa2.tar.gz +sha256 b2a082a8846ac74b8482ee6353d480cea0dec017bbec2b59b16e3f91efa2f5ca eb0c48ef49856f7d098ec005ddebcae197e08e49.tar.gz +sha256 ceb99430633f75f354c0e9fea1f3cf0e5138ac5ee3c2691a1a70811fd2feeeef a4d1895a2659ea9974bd7528a706592ab8b74181.tar.gz diff --git a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk b/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.mk similarity index 96% rename from deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.mk index cd961b6e25..f7a57a24b0 100644 --- a/deploy/iso/minikube-iso/package/cri-dockerd/cri-dockerd.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/cri-dockerd/cri-dockerd.mk @@ -20,7 +20,8 @@ CRI_DOCKERD_ENV = \ GO111MODULE=on \ GOPATH="$(CRI_DOCKERD_GOPATH)" \ GOBIN="$(CRI_DOCKERD_GOPATH)/bin" \ - PATH=$(CRI_DOCKERD_GOPATH)/bin:$(BR_PATH) + PATH=$(CRI_DOCKERD_GOPATH)/bin:$(BR_PATH) \ + GOARCH=amd64 CRI_DOCKERD_COMPILE_SRC = $(CRI_DOCKERD_GOPATH)/src/github.com/Mirantis/cri-dockerd CRI_DOCKERD_BUILDFLAGS = "-ldflags '-X github.com/Mirantis/cri-dockerd/version.Version=$(CRI_DOCKERD_VER) -X github.com/Mirantis/cri-dockerd/version.GitCommit=$(CRI_DOCKERD_REV)'" diff --git a/deploy/iso/minikube-iso/package/crictl-bin/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/crictl-bin/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/Config.in diff --git a/deploy/iso/minikube-iso/package/crictl-bin/crictl-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/crictl-bin.hash similarity index 100% rename from deploy/iso/minikube-iso/package/crictl-bin/crictl-bin.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/crictl-bin.hash diff --git a/deploy/iso/minikube-iso/package/crictl-bin/crictl-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/crictl-bin.mk similarity index 100% rename from deploy/iso/minikube-iso/package/crictl-bin/crictl-bin.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/crictl-bin/crictl-bin.mk diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/02-crio.conf b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/02-crio.conf new file mode 100644 index 0000000000..cfeb6ed70b --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/02-crio.conf @@ -0,0 +1,8 @@ +[crio.image] +# pause_image = "" + +[crio.network] +# cni_default_network = "" + +[crio.runtime] +# cgroup_manager = "" diff --git a/deploy/iso/minikube-iso/package/crio-bin/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/conmon-config.h b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/conmon-config.h new file mode 100755 index 0000000000..1783492d0d --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/conmon-config.h @@ -0,0 +1,9 @@ + +#if !defined(CONFIG_H) +#define CONFIG_H + +#define BUF_SIZE 8192 +#define STDIO_BUF_SIZE 8192 +#define DEFAULT_SOCKET_PATH "/var/run/crio" + +#endif // CONFIG_H diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-bin.hash new file mode 100644 index 0000000000..82c62806a8 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-bin.hash @@ -0,0 +1,28 @@ +sha256 d310d52706262009af886dbd3e8dcd09a339cdc3b57dc22a9121e6d6a87d2921 v1.8.4.tar.gz +sha256 9f79cee99e272c9cfc561ae31235d84d4da59fd5c8b3d3ab6623bf9a92d90c5a v1.10.0.tar.gz +sha256 09e53fd550f4f10108879131ee6b8ef1c367ce71a73dcf6350c4cc898751d8c1 v1.11.8.tar.gz +sha256 92588998dbb79002c38f65f84602b5659f0d0ef1cd36b1a568a2e40269b66816 v1.13.0.tar.gz +sha256 48e7cf64a757d62a3edf214e1b93b74d99f090ca924f956ede2494a260eab2db v1.13.1.tar.gz +sha256 7435c4745017f06c260973b049440d924efe65b0df008d14175dfb8f5e23b599 v1.14.0.tar.gz +sha256 1f6f72b1f89d4286b2d5b54a48f4d5ed4c0c01065d484635dcb343a706feb743 v1.14.1.tar.gz +sha256 f7041a92e2d3a4c341be8df58f1076ba57ecb5daa02b6c65e652530c5f242739 v1.15.0.tar.gz +sha256 6218a99877da9b9895e0088944731f5384803c15628d4b3c6b40ba1ddd39e052 v1.15.1.tar.gz +sha256 70d4c746fe207422c78420dc4239768f485eea639a38c993c02872ec6305dd1d v1.15.2.tar.gz +sha256 05f9614c4d5970b4662499b84c270b0ab953596ee863dcd09c9dc7a2d2f09789 v1.16.0.tar.gz +sha256 57e1ee990ef2d5af8b32c33a21b4998682608e3556dcf1d3349666f55e7d95b9 v1.16.1.tar.gz +sha256 23a797762e4544ee7c171ef138cfc1141a3f0acc2838d9965c2a58e53b16c3ae v1.17.0.tar.gz +sha256 7967e9218fdfb59d6005a9e19c1668469bc5566c2a35927cffe7de8656bb22c7 v1.17.1.tar.gz +sha256 336f5c275e260eaae8187e7250fb960441e8dc90615729354d3c04e699870982 v1.17.3.tar.gz +sha256 865ded95aceb3a33a391b252522682de6b37b39498704c490b3a321dbefaafcb v1.18.0.tar.gz +sha256 794ddc36c2a20fde91fc6cc2c6f02ebdaea85c69b51b67f3994090dbbdbc2a50 v1.18.1.tar.gz +sha256 25dc558fbabc987bd58c7eab5230121b258a7b0eb34a49dc6595f1c6f3969116 v1.18.2.tar.gz +sha256 d5c6442e3990938badc966cdd1eb9ebe2fc11345452c233aa0d87ca38fbeed81 v1.18.3.tar.gz +sha256 74a4e916acddc6cf47ab5752bdebb6732ce2c028505ef57b7edc21d2da9039b6 v1.18.4.tar.gz +sha256 fc8a8e61375e3ce30563eeb0fd6534c4f48fc20300a72e6ff51cc99cb2703516 v1.19.0.tar.gz +sha256 6165c5b8212ea03be2a465403177318bfe25a54c3e8d66d720344643913a0223 v1.19.1.tar.gz +sha256 76fd7543bc92d4364a11060f43a5131893a76c6e6e9d6de3a6bb6292c110b631 v1.20.0.tar.gz +sha256 36d9f4cf4966342e2d4099e44d8156c55c6a10745c67ce4f856aa9f6dcc2d9ba v1.20.2.tar.gz +sha256 bc53ea8977e252bd9812974c33ff654ee22076598e901464468c5c105a5ef773 v1.22.0.tar.gz +sha256 6e1c0e393cd16af907fabb24e4cc068e27c606c5f1071060d46efdcd29cb5c0d v1.22.1.tar.gz +sha256 34097a0f535aa79cf990aaee5d3ff6226663587b188cbee11089f120e7f869e4 v1.22.2.tar.gz +sha256 52836549cfa27a688659576be9266f4837357a6fa162b1d0a05fa8da62c724b3 v1.22.3.tar.gz diff --git a/deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-bin.mk similarity index 100% rename from deploy/iso/minikube-iso/package/crio-bin/crio-bin.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-bin.mk diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-wipe.service b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-wipe.service new file mode 100644 index 0000000000..1389fa9e29 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio-wipe.service @@ -0,0 +1,20 @@ +[Unit] +Description=CRI-O Auto Update Script +Before=crio.service +After=minikube-automount.service +Requires=minikube-automount.service +RequiresMountsFor=/var/lib/containers + +[Service] +EnvironmentFile=-/etc/sysconfig/crio +EnvironmentFile=-/etc/sysconfig/crio.minikube +EnvironmentFile=/var/run/minikube/env +ExecStart=/usr/bin/crio \ + $CRIO_OPTIONS \ + $CRIO_MINIKUBE_OPTIONS \ + wipe + +Type=oneshot + +[Install] +WantedBy=multi-user.target diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf new file mode 100644 index 0000000000..fafaed67bc --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf @@ -0,0 +1,409 @@ +# The CRI-O configuration file specifies all of the available configuration +# options and command-line flags for the crio(8) OCI Kubernetes Container Runtime +# daemon, but in a TOML format that can be more easily modified and versioned. +# +# Please refer to crio.conf(5) for details of all configuration options. + +# CRI-O supports partial configuration reload during runtime, which can be +# done by sending SIGHUP to the running process. Currently supported options +# are explicitly mentioned with: 'This option supports live configuration +# reload'. + +# CRI-O reads its storage defaults from the containers-storage.conf(5) file +# located at /etc/containers/storage.conf. Modify this storage configuration if +# you want to change the system's defaults. If you want to modify storage just +# for CRI-O, you can change the storage configuration options here. +[crio] + +# Path to the "root directory". CRI-O stores all of its data, including +# containers images, in this directory. +root = "/var/lib/containers/storage" + +# Path to the "run directory". CRI-O stores all of its state in this directory. +runroot = "/var/run/containers/storage" + +# Storage driver used to manage the storage of images and containers. Please +# refer to containers-storage.conf(5) to see all available storage drivers. +storage_driver = "overlay" + +# List to pass options to the storage driver. Please refer to +# containers-storage.conf(5) to see all available storage options. +#storage_option = [ +# "overlay.mountopt=nodev,metacopy=on", +#] + +# The default log directory where all logs will go unless directly specified by +# the kubelet. The log directory specified must be an absolute directory. +log_dir = "/var/log/crio/pods" + +# Location for CRI-O to lay down the temporary version file. +# It is used to check if crio wipe should wipe containers, which should +# always happen on a node reboot +version_file = "/var/run/crio/version" + +# Location for CRI-O to lay down the persistent version file. +# It is used to check if crio wipe should wipe images, which should +# only happen when CRI-O has been upgraded +version_file_persist = "/var/lib/crio/version" + +# The crio.api table contains settings for the kubelet/gRPC interface. +[crio.api] + +# Path to AF_LOCAL socket on which CRI-O will listen. +listen = "/var/run/crio/crio.sock" + +# IP address on which the stream server will listen. +stream_address = "127.0.0.1" + +# The port on which the stream server will listen. If the port is set to "0", then +# CRI-O will allocate a random free port number. +stream_port = "0" + +# Enable encrypted TLS transport of the stream server. +stream_enable_tls = false + +# Path to the x509 certificate file used to serve the encrypted stream. This +# file can change, and CRI-O will automatically pick up the changes within 5 +# minutes. +stream_tls_cert = "" + +# Path to the key file used to serve the encrypted stream. This file can +# change and CRI-O will automatically pick up the changes within 5 minutes. +stream_tls_key = "" + +# Path to the x509 CA(s) file used to verify and authenticate client +# communication with the encrypted stream. This file can change and CRI-O will +# automatically pick up the changes within 5 minutes. +stream_tls_ca = "" + +# Maximum grpc send message size in bytes. If not set or <=0, then CRI-O will default to 16 * 1024 * 1024. +grpc_max_send_msg_size = 16777216 + +# Maximum grpc receive message size. If not set or <= 0, then CRI-O will default to 16 * 1024 * 1024. +grpc_max_recv_msg_size = 16777216 + +# The crio.runtime table contains settings pertaining to the OCI runtime used +# and options for how to set up and manage the OCI runtime. +[crio.runtime] + +# A list of ulimits to be set in containers by default, specified as +# "=:", for example: +# "nofile=1024:2048" +# If nothing is set here, settings will be inherited from the CRI-O daemon +#default_ulimits = [ +#] + +# If true, the runtime will not use pivot_root, but instead use MS_MOVE. +no_pivot = false + +# decryption_keys_path is the path where the keys required for +# image decryption are stored. This option supports live configuration reload. +decryption_keys_path = "/etc/crio/keys/" + +# Path to the conmon binary, used for monitoring the OCI runtime. +# Will be searched for using $PATH if empty. +conmon = "/usr/libexec/crio/conmon" + +# Cgroup setting for conmon +conmon_cgroup = "system.slice" + +# Environment variable list for the conmon process, used for passing necessary +# environment variables to conmon or the runtime. +conmon_env = [ + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", +] + +# Additional environment variables to set for all the +# containers. These are overridden if set in the +# container image spec or in the container runtime configuration. +default_env = [ +] + +# If true, SELinux will be used for pod separation on the host. +selinux = false + +# Path to the seccomp.json profile which is used as the default seccomp profile +# for the runtime. If not specified, then the internal default seccomp profile +# will be used. This option supports live configuration reload. +seccomp_profile = "" + +# Changes the meaning of an empty seccomp profile. By default +# (and according to CRI spec), an empty profile means unconfined. +# This option tells CRI-O to treat an empty profile as the default profile, +# which might increase security. +seccomp_use_default_when_empty = false + +# Used to change the name of the default AppArmor profile of CRI-O. The default +# profile name is "crio-default". This profile only takes effect if the user +# does not specify a profile via the Kubernetes Pod's metadata annotation. If +# the profile is set to "unconfined", then this equals to disabling AppArmor. +# This option supports live configuration reload. +apparmor_profile = "crio-default" + +# Cgroup management implementation used for the runtime. +cgroup_manager = "systemd" + +# Specify whether the image pull must be performed in a separate cgroup. +separate_pull_cgroup = "" + +# List of default capabilities for containers. If it is empty or commented out, +# only the capabilities defined in the containers json file by the user/kube +# will be added. +default_capabilities = [ + "CHOWN", + "DAC_OVERRIDE", + "FSETID", + "FOWNER", + "SETGID", + "SETUID", + "SETPCAP", + "NET_BIND_SERVICE", + "KILL", +] + +# List of default sysctls. If it is empty or commented out, only the sysctls +# defined in the container json file by the user/kube will be added. +default_sysctls = [ +] + +# List of additional devices. specified as +# "::", for example: "--device=/dev/sdc:/dev/xvdc:rwm". +#If it is empty or commented out, only the devices +# defined in the container json file by the user/kube will be added. +additional_devices = [ +] + +# Path to OCI hooks directories for automatically executed hooks. If one of the +# directories does not exist, then CRI-O will automatically skip them. +hooks_dir = [ + "/usr/share/containers/oci/hooks.d", +] + +# Path to the file specifying the defaults mounts for each container. The +# format of the config is /SRC:/DST, one mount per line. Notice that CRI-O reads +# its default mounts from the following two files: +# +# 1) /etc/containers/mounts.conf (i.e., default_mounts_file): This is the +# override file, where users can either add in their own default mounts, or +# override the default mounts shipped with the package. +# +# 2) /usr/share/containers/mounts.conf: This is the default file read for +# mounts. If you want CRI-O to read from a different, specific mounts file, +# you can change the default_mounts_file. Note, if this is done, CRI-O will +# only add mounts it finds in this file. +# +#default_mounts_file = "" + +# Maximum number of processes allowed in a container. +pids_limit = 1024 + +# Maximum sized allowed for the container log file. Negative numbers indicate +# that no size limit is imposed. If it is positive, it must be >= 8192 to +# match/exceed conmon's read buffer. The file is truncated and re-opened so the +# limit is never exceeded. +log_size_max = -1 + +# Whether container output should be logged to journald in addition to the kuberentes log file +log_to_journald = false + +# Path to directory in which container exit files are written to by conmon. +container_exits_dir = "/var/run/crio/exits" + +# Path to directory for container attach sockets. +container_attach_socket_dir = "/var/run/crio" + +# The prefix to use for the source of the bind mounts. +bind_mount_prefix = "" + +# If set to true, all containers will run in read-only mode. +read_only = false + +# Changes the verbosity of the logs based on the level it is set to. Options +# are fatal, panic, error, warn, info, debug and trace. This option supports +# live configuration reload. +log_level = "info" + +# Filter the log messages by the provided regular expression. +# This option supports live configuration reload. +log_filter = "" + +# The UID mappings for the user namespace of each container. A range is +# specified in the form containerUID:HostUID:Size. Multiple ranges must be +# separated by comma. +uid_mappings = "" + +# The GID mappings for the user namespace of each container. A range is +# specified in the form containerGID:HostGID:Size. Multiple ranges must be +# separated by comma. +gid_mappings = "" + +# The minimal amount of time in seconds to wait before issuing a timeout +# regarding the proper termination of the container. The lowest possible +# value is 30s, whereas lower values are not considered by CRI-O. +ctr_stop_timeout = 30 + +# manage_ns_lifecycle determines whether we pin and remove namespaces +# and manage their lifecycle. +# This option is being deprecated, and will be unconditionally true in the future. +manage_ns_lifecycle = true + +# drop_infra_ctr determines whether CRI-O drops the infra container +# when a pod does not have a private PID namespace, and does not use +# a kernel separating runtime (like kata). +# It requires manage_ns_lifecycle to be true. +drop_infra_ctr = false + +# The directory where the state of the managed namespaces gets tracked. +# Only used when manage_ns_lifecycle is true. +namespaces_dir = "/var/run" + +# pinns_path is the path to find the pinns binary, which is needed to manage namespace lifecycle +pinns_path = "/usr/bin/pinns" + +# default_runtime is the _name_ of the OCI runtime to be used as the default. +# The name is matched against the runtimes map below. If this value is changed, +# the corresponding existing entry from the runtimes map below will be ignored. +default_runtime = "runc" + +# The "crio.runtime.runtimes" table defines a list of OCI compatible runtimes. +# The runtime to use is picked based on the runtime_handler provided by the CRI. +# If no runtime_handler is provided, the runtime will be picked based on the level +# of trust of the workload. Each entry in the table should follow the format: +# +#[crio.runtime.runtimes.runtime-handler] +# runtime_path = "/path/to/the/executable" +# runtime_type = "oci" +# runtime_root = "/path/to/the/root" +# privileged_without_host_devices = false +# allowed_annotations = [] +# Where: +# - runtime-handler: name used to identify the runtime +# - runtime_path (optional, string): absolute path to the runtime executable in +# the host filesystem. If omitted, the runtime-handler identifier should match +# the runtime executable name, and the runtime executable should be placed +# in $PATH. +# - runtime_type (optional, string): type of runtime, one of: "oci", "vm". If +# omitted, an "oci" runtime is assumed. +# - runtime_root (optional, string): root directory for storage of containers +# state. +# - privileged_without_host_devices (optional, bool): an option for restricting +# host devices from being passed to privileged containers. +# - allowed_annotations (optional, array of strings): an option for specifying +# a list of experimental annotations that this runtime handler is allowed to process. +# The currently recognized values are: +# "io.kubernetes.cri-o.userns-mode" for configuring a user namespace for the pod. +# "io.kubernetes.cri-o.Devices" for configuring devices for the pod. +# "io.kubernetes.cri-o.ShmSize" for configuring the size of /dev/shm. + + +[crio.runtime.runtimes.runc] +runtime_path = "/usr/bin/runc" +runtime_type = "oci" +runtime_root = "/run/runc" + + + + +# crun is a fast and lightweight fully featured OCI runtime and C library for +# running containers +#[crio.runtime.runtimes.crun] + +# Kata Containers is an OCI runtime, where containers are run inside lightweight +# VMs. Kata provides additional isolation towards the host, minimizing the host attack +# surface and mitigating the consequences of containers breakout. + +# Kata Containers with the default configured VMM +#[crio.runtime.runtimes.kata-runtime] + +# Kata Containers with the QEMU VMM +#[crio.runtime.runtimes.kata-qemu] + +# Kata Containers with the Firecracker VMM +#[crio.runtime.runtimes.kata-fc] + +# The crio.image table contains settings pertaining to the management of OCI images. +# +# CRI-O reads its configured registries defaults from the system wide +# containers-registries.conf(5) located in /etc/containers/registries.conf. If +# you want to modify just CRI-O, you can change the registries configuration in +# this file. Otherwise, leave insecure_registries and registries commented out to +# use the system's defaults from /etc/containers/registries.conf. +[crio.image] + +# Default transport for pulling images from a remote container storage. +default_transport = "docker://" + +# The path to a file containing credentials necessary for pulling images from +# secure registries. The file is similar to that of /var/lib/kubelet/config.json +global_auth_file = "" + +# The image used to instantiate infra containers. +# This option supports live configuration reload. +pause_image = "k8s.gcr.io/pause:3.2" + +# The path to a file containing credentials specific for pulling the pause_image from +# above. The file is similar to that of /var/lib/kubelet/config.json +# This option supports live configuration reload. +pause_image_auth_file = "" + +# The command to run to have a container stay in the paused state. +# When explicitly set to "", it will fallback to the entrypoint and command +# specified in the pause image. When commented out, it will fallback to the +# default: "/pause". This option supports live configuration reload. +pause_command = "/pause" + +# Path to the file which decides what sort of policy we use when deciding +# whether or not to trust an image that we've pulled. It is not recommended that +# this option be used, as the default behavior of using the system-wide default +# policy (i.e., /etc/containers/policy.json) is most often preferred. Please +# refer to containers-policy.json(5) for more details. +signature_policy = "" + +# List of registries to skip TLS verification for pulling images. Please +# consider configuring the registries via /etc/containers/registries.conf before +# changing them here. +#insecure_registries = "[]" + +# Controls how image volumes are handled. The valid values are mkdir, bind and +# ignore; the latter will ignore volumes entirely. +image_volumes = "mkdir" + +# List of registries to be used when pulling an unqualified image (e.g., +# "alpine:latest"). By default, registries is set to "docker.io" for +# compatibility reasons. Depending on your workload and usecase you may add more +# registries (e.g., "quay.io", "registry.fedoraproject.org", +# "registry.opensuse.org", etc.). +registries = [ + "docker.io" +] + +# Temporary directory to use for storing big files +big_files_temporary_dir = "" + +# The crio.network table containers settings pertaining to the management of +# CNI plugins. +[crio.network] + +# The default CNI network name to be selected. If not set or "", then +# CRI-O will pick-up the first one found in network_dir. +# cni_default_network = "" + +# Path to the directory where CNI configuration files are located. +network_dir = "/etc/cni/net.d/" + +# Paths to directories where CNI plugin binaries are located. +plugin_dirs = [ + "/opt/cni/bin/", +] + +# A necessary configuration for Prometheus based metrics retrieval +[crio.metrics] + +# Globally enable or disable metrics support. +enable_metrics = true + +# The port on which the metrics server will listen. +metrics_port = 9090 + +# Local socket path to bind the metrics server to +metrics_socket = "" diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf.default b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf.default new file mode 100644 index 0000000000..25debfab9f --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.conf.default @@ -0,0 +1,408 @@ +# The CRI-O configuration file specifies all of the available configuration +# options and command-line flags for the crio(8) OCI Kubernetes Container Runtime +# daemon, but in a TOML format that can be more easily modified and versioned. +# +# Please refer to crio.conf(5) for details of all configuration options. + +# CRI-O supports partial configuration reload during runtime, which can be +# done by sending SIGHUP to the running process. Currently supported options +# are explicitly mentioned with: 'This option supports live configuration +# reload'. + +# CRI-O reads its storage defaults from the containers-storage.conf(5) file +# located at /etc/containers/storage.conf. Modify this storage configuration if +# you want to change the system's defaults. If you want to modify storage just +# for CRI-O, you can change the storage configuration options here. +[crio] + +# Path to the "root directory". CRI-O stores all of its data, including +# containers images, in this directory. +#root = "/var/lib/containers/storage" + +# Path to the "run directory". CRI-O stores all of its state in this directory. +#runroot = "/var/run/containers/storage" + +# Storage driver used to manage the storage of images and containers. Please +# refer to containers-storage.conf(5) to see all available storage drivers. +#storage_driver = "" + +# List to pass options to the storage driver. Please refer to +# containers-storage.conf(5) to see all available storage options. +#storage_option = [ +# "overlay.mountopt=nodev,metacopy=on", +#] + +# The default log directory where all logs will go unless directly specified by +# the kubelet. The log directory specified must be an absolute directory. +log_dir = "/var/log/crio/pods" + +# Location for CRI-O to lay down the temporary version file. +# It is used to check if crio wipe should wipe containers, which should +# always happen on a node reboot +version_file = "/var/run/crio/version" + +# Location for CRI-O to lay down the persistent version file. +# It is used to check if crio wipe should wipe images, which should +# only happen when CRI-O has been upgraded +version_file_persist = "/var/lib/crio/version" + +# The crio.api table contains settings for the kubelet/gRPC interface. +[crio.api] + +# Path to AF_LOCAL socket on which CRI-O will listen. +listen = "/var/run/crio/crio.sock" + +# IP address on which the stream server will listen. +stream_address = "127.0.0.1" + +# The port on which the stream server will listen. If the port is set to "0", then +# CRI-O will allocate a random free port number. +stream_port = "0" + +# Enable encrypted TLS transport of the stream server. +stream_enable_tls = false + +# Path to the x509 certificate file used to serve the encrypted stream. This +# file can change, and CRI-O will automatically pick up the changes within 5 +# minutes. +stream_tls_cert = "" + +# Path to the key file used to serve the encrypted stream. This file can +# change and CRI-O will automatically pick up the changes within 5 minutes. +stream_tls_key = "" + +# Path to the x509 CA(s) file used to verify and authenticate client +# communication with the encrypted stream. This file can change and CRI-O will +# automatically pick up the changes within 5 minutes. +stream_tls_ca = "" + +# Maximum grpc send message size in bytes. If not set or <=0, then CRI-O will default to 16 * 1024 * 1024. +grpc_max_send_msg_size = 16777216 + +# Maximum grpc receive message size. If not set or <= 0, then CRI-O will default to 16 * 1024 * 1024. +grpc_max_recv_msg_size = 16777216 + +# The crio.runtime table contains settings pertaining to the OCI runtime used +# and options for how to set up and manage the OCI runtime. +[crio.runtime] + +# A list of ulimits to be set in containers by default, specified as +# "=:", for example: +# "nofile=1024:2048" +# If nothing is set here, settings will be inherited from the CRI-O daemon +#default_ulimits = [ +#] + +# If true, the runtime will not use pivot_root, but instead use MS_MOVE. +no_pivot = false + +# decryption_keys_path is the path where the keys required for +# image decryption are stored. This option supports live configuration reload. +decryption_keys_path = "/etc/crio/keys/" + +# Path to the conmon binary, used for monitoring the OCI runtime. +# Will be searched for using $PATH if empty. +conmon = "" + +# Cgroup setting for conmon +conmon_cgroup = "system.slice" + +# Environment variable list for the conmon process, used for passing necessary +# environment variables to conmon or the runtime. +conmon_env = [ + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", +] + +# Additional environment variables to set for all the +# containers. These are overridden if set in the +# container image spec or in the container runtime configuration. +default_env = [ +] + +# If true, SELinux will be used for pod separation on the host. +selinux = false + +# Path to the seccomp.json profile which is used as the default seccomp profile +# for the runtime. If not specified, then the internal default seccomp profile +# will be used. This option supports live configuration reload. +seccomp_profile = "" + +# Changes the meaning of an empty seccomp profile. By default +# (and according to CRI spec), an empty profile means unconfined. +# This option tells CRI-O to treat an empty profile as the default profile, +# which might increase security. +seccomp_use_default_when_empty = false + +# Used to change the name of the default AppArmor profile of CRI-O. The default +# profile name is "crio-default". This profile only takes effect if the user +# does not specify a profile via the Kubernetes Pod's metadata annotation. If +# the profile is set to "unconfined", then this equals to disabling AppArmor. +# This option supports live configuration reload. +apparmor_profile = "crio-default" + +# Cgroup management implementation used for the runtime. +cgroup_manager = "systemd" + +# Specify whether the image pull must be performed in a separate cgroup. +separate_pull_cgroup = "" + +# List of default capabilities for containers. If it is empty or commented out, +# only the capabilities defined in the containers json file by the user/kube +# will be added. +default_capabilities = [ + "CHOWN", + "DAC_OVERRIDE", + "FSETID", + "FOWNER", + "SETGID", + "SETUID", + "SETPCAP", + "NET_BIND_SERVICE", + "KILL", +] + +# List of default sysctls. If it is empty or commented out, only the sysctls +# defined in the container json file by the user/kube will be added. +default_sysctls = [ +] + +# List of additional devices. specified as +# "::", for example: "--device=/dev/sdc:/dev/xvdc:rwm". +#If it is empty or commented out, only the devices +# defined in the container json file by the user/kube will be added. +additional_devices = [ +] + +# Path to OCI hooks directories for automatically executed hooks. If one of the +# directories does not exist, then CRI-O will automatically skip them. +hooks_dir = [ + "/usr/share/containers/oci/hooks.d", +] + +# Path to the file specifying the defaults mounts for each container. The +# format of the config is /SRC:/DST, one mount per line. Notice that CRI-O reads +# its default mounts from the following two files: +# +# 1) /etc/containers/mounts.conf (i.e., default_mounts_file): This is the +# override file, where users can either add in their own default mounts, or +# override the default mounts shipped with the package. +# +# 2) /usr/share/containers/mounts.conf: This is the default file read for +# mounts. If you want CRI-O to read from a different, specific mounts file, +# you can change the default_mounts_file. Note, if this is done, CRI-O will +# only add mounts it finds in this file. +# +#default_mounts_file = "" + +# Maximum number of processes allowed in a container. +pids_limit = 1024 + +# Maximum sized allowed for the container log file. Negative numbers indicate +# that no size limit is imposed. If it is positive, it must be >= 8192 to +# match/exceed conmon's read buffer. The file is truncated and re-opened so the +# limit is never exceeded. +log_size_max = -1 + +# Whether container output should be logged to journald in addition to the kuberentes log file +log_to_journald = false + +# Path to directory in which container exit files are written to by conmon. +container_exits_dir = "/var/run/crio/exits" + +# Path to directory for container attach sockets. +container_attach_socket_dir = "/var/run/crio" + +# The prefix to use for the source of the bind mounts. +bind_mount_prefix = "" + +# If set to true, all containers will run in read-only mode. +read_only = false + +# Changes the verbosity of the logs based on the level it is set to. Options +# are fatal, panic, error, warn, info, debug and trace. This option supports +# live configuration reload. +log_level = "info" + +# Filter the log messages by the provided regular expression. +# This option supports live configuration reload. +log_filter = "" + +# The UID mappings for the user namespace of each container. A range is +# specified in the form containerUID:HostUID:Size. Multiple ranges must be +# separated by comma. +uid_mappings = "" + +# The GID mappings for the user namespace of each container. A range is +# specified in the form containerGID:HostGID:Size. Multiple ranges must be +# separated by comma. +gid_mappings = "" + +# The minimal amount of time in seconds to wait before issuing a timeout +# regarding the proper termination of the container. The lowest possible +# value is 30s, whereas lower values are not considered by CRI-O. +ctr_stop_timeout = 30 + +# manage_ns_lifecycle determines whether we pin and remove namespaces +# and manage their lifecycle. +# This option is being deprecated, and will be unconditionally true in the future. +manage_ns_lifecycle = true + +# drop_infra_ctr determines whether CRI-O drops the infra container +# when a pod does not have a private PID namespace, and does not use +# a kernel separating runtime (like kata). +# It requires manage_ns_lifecycle to be true. +drop_infra_ctr = false + +# The directory where the state of the managed namespaces gets tracked. +# Only used when manage_ns_lifecycle is true. +namespaces_dir = "/var/run" + +# pinns_path is the path to find the pinns binary, which is needed to manage namespace lifecycle +pinns_path = "" + +# default_runtime is the _name_ of the OCI runtime to be used as the default. +# The name is matched against the runtimes map below. If this value is changed, +# the corresponding existing entry from the runtimes map below will be ignored. +default_runtime = "runc" + +# The "crio.runtime.runtimes" table defines a list of OCI compatible runtimes. +# The runtime to use is picked based on the runtime_handler provided by the CRI. +# If no runtime_handler is provided, the runtime will be picked based on the level +# of trust of the workload. Each entry in the table should follow the format: +# +#[crio.runtime.runtimes.runtime-handler] +# runtime_path = "/path/to/the/executable" +# runtime_type = "oci" +# runtime_root = "/path/to/the/root" +# privileged_without_host_devices = false +# allowed_annotations = [] +# Where: +# - runtime-handler: name used to identify the runtime +# - runtime_path (optional, string): absolute path to the runtime executable in +# the host filesystem. If omitted, the runtime-handler identifier should match +# the runtime executable name, and the runtime executable should be placed +# in $PATH. +# - runtime_type (optional, string): type of runtime, one of: "oci", "vm". If +# omitted, an "oci" runtime is assumed. +# - runtime_root (optional, string): root directory for storage of containers +# state. +# - privileged_without_host_devices (optional, bool): an option for restricting +# host devices from being passed to privileged containers. +# - allowed_annotations (optional, array of strings): an option for specifying +# a list of experimental annotations that this runtime handler is allowed to process. +# The currently recognized values are: +# "io.kubernetes.cri-o.userns-mode" for configuring a user namespace for the pod. +# "io.kubernetes.cri-o.Devices" for configuring devices for the pod. +# "io.kubernetes.cri-o.ShmSize" for configuring the size of /dev/shm. + + +[crio.runtime.runtimes.runc] +runtime_path = "" +runtime_type = "oci" +runtime_root = "/run/runc" + + + + +# crun is a fast and lightweight fully featured OCI runtime and C library for +# running containers +#[crio.runtime.runtimes.crun] + +# Kata Containers is an OCI runtime, where containers are run inside lightweight +# VMs. Kata provides additional isolation towards the host, minimizing the host attack +# surface and mitigating the consequences of containers breakout. + +# Kata Containers with the default configured VMM +#[crio.runtime.runtimes.kata-runtime] + +# Kata Containers with the QEMU VMM +#[crio.runtime.runtimes.kata-qemu] + +# Kata Containers with the Firecracker VMM +#[crio.runtime.runtimes.kata-fc] + +# The crio.image table contains settings pertaining to the management of OCI images. +# +# CRI-O reads its configured registries defaults from the system wide +# containers-registries.conf(5) located in /etc/containers/registries.conf. If +# you want to modify just CRI-O, you can change the registries configuration in +# this file. Otherwise, leave insecure_registries and registries commented out to +# use the system's defaults from /etc/containers/registries.conf. +[crio.image] + +# Default transport for pulling images from a remote container storage. +default_transport = "docker://" + +# The path to a file containing credentials necessary for pulling images from +# secure registries. The file is similar to that of /var/lib/kubelet/config.json +global_auth_file = "" + +# The image used to instantiate infra containers. +# This option supports live configuration reload. +pause_image = "k8s.gcr.io/pause:3.2" + +# The path to a file containing credentials specific for pulling the pause_image from +# above. The file is similar to that of /var/lib/kubelet/config.json +# This option supports live configuration reload. +pause_image_auth_file = "" + +# The command to run to have a container stay in the paused state. +# When explicitly set to "", it will fallback to the entrypoint and command +# specified in the pause image. When commented out, it will fallback to the +# default: "/pause". This option supports live configuration reload. +pause_command = "/pause" + +# Path to the file which decides what sort of policy we use when deciding +# whether or not to trust an image that we've pulled. It is not recommended that +# this option be used, as the default behavior of using the system-wide default +# policy (i.e., /etc/containers/policy.json) is most often preferred. Please +# refer to containers-policy.json(5) for more details. +signature_policy = "" + +# List of registries to skip TLS verification for pulling images. Please +# consider configuring the registries via /etc/containers/registries.conf before +# changing them here. +#insecure_registries = "[]" + +# Controls how image volumes are handled. The valid values are mkdir, bind and +# ignore; the latter will ignore volumes entirely. +image_volumes = "mkdir" + +# List of registries to be used when pulling an unqualified image (e.g., +# "alpine:latest"). By default, registries is set to "docker.io" for +# compatibility reasons. Depending on your workload and usecase you may add more +# registries (e.g., "quay.io", "registry.fedoraproject.org", +# "registry.opensuse.org", etc.). +#registries = [ +# ] + +# Temporary directory to use for storing big files +big_files_temporary_dir = "" + +# The crio.network table containers settings pertaining to the management of +# CNI plugins. +[crio.network] + +# The default CNI network name to be selected. If not set or "", then +# CRI-O will pick-up the first one found in network_dir. +# cni_default_network = "" + +# Path to the directory where CNI configuration files are located. +network_dir = "/etc/cni/net.d/" + +# Paths to directories where CNI plugin binaries are located. +plugin_dirs = [ + "/opt/cni/bin/", +] + +# A necessary configuration for Prometheus based metrics retrieval +[crio.metrics] + +# Globally enable or disable metrics support. +enable_metrics = false + +# The port on which the metrics server will listen. +metrics_port = 9090 + +# Local socket path to bind the metrics server to +metrics_socket = "" diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.service b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.service new file mode 100644 index 0000000000..30a794e597 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/crio.service @@ -0,0 +1,29 @@ +[Unit] +Description=Container Runtime Interface for OCI (CRI-O) +Documentation=https://github.com/cri-o/cri-o +Wants=network-online.target +After=network-online.target minikube-automount.service +Requires=minikube-automount.service +After=crio-wipe.service +Requires=crio-wipe.service + +[Service] +Type=notify +EnvironmentFile=-/etc/sysconfig/crio +EnvironmentFile=-/etc/sysconfig/crio.minikube +EnvironmentFile=/var/run/minikube/env +Environment=GOTRACEBACK=crash +ExecStart=/usr/bin/crio \ + $CRIO_OPTIONS \ + $CRIO_MINIKUBE_OPTIONS +ExecReload=/bin/kill -s HUP $MAINPID +TasksMax=8192 +LimitNOFILE=1048576 +LimitNPROC=1048576 +LimitCORE=infinity +OOMScoreAdjust=-999 +TimeoutStartSec=0 +Restart=on-abnormal + +[Install] +WantedBy=multi-user.target diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/policy.json b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/policy.json new file mode 100644 index 0000000000..9333053f93 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/policy.json @@ -0,0 +1,7 @@ +{ + "default": [ + { + "type": "insecureAcceptAnything" + } + ] +} diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/registries.conf b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/registries.conf new file mode 100644 index 0000000000..409f31d896 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/crio-bin/registries.conf @@ -0,0 +1,5 @@ +[registries.search] +registries = ['docker.io'] + +[registries.insecure] +registries = [] diff --git a/deploy/iso/minikube-iso/package/docker-bin/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/docker-bin/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/daemon.json b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/daemon.json new file mode 100644 index 0000000000..46c2107f11 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/daemon.json @@ -0,0 +1,10 @@ +{ + "exec-opts": [ + "native.cgroupdriver=systemd" + ], + "log-driver": "json-file", + "log-opts": { + "max-size": "100m" + }, + "storage-driver": "overlay2" +} diff --git a/deploy/iso/minikube-iso/package/docker-bin/docker-bin.hash b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.hash similarity index 100% rename from deploy/iso/minikube-iso/package/docker-bin/docker-bin.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.hash diff --git a/deploy/iso/minikube-iso/package/docker-bin/docker-bin.mk b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk similarity index 96% rename from deploy/iso/minikube-iso/package/docker-bin/docker-bin.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk index ae2cb45a6b..f683d631d0 100644 --- a/deploy/iso/minikube-iso/package/docker-bin/docker-bin.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker-bin.mk @@ -44,7 +44,7 @@ endef define DOCKER_BIN_INSTALL_INIT_SYSTEMD $(INSTALL) -D -m 644 \ - $(BR2_EXTERNAL)/package/docker-bin/docker.socket \ + $(DOCKER_BIN_PKGDIR)/docker.socket \ $(TARGET_DIR)/usr/lib/systemd/system/docker.socket $(INSTALL) -D -m 644 \ diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker.socket b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker.socket new file mode 100644 index 0000000000..7dd95098e4 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/docker.socket @@ -0,0 +1,12 @@ +[Unit] +Description=Docker Socket for the API +PartOf=docker.service + +[Socket] +ListenStream=/var/run/docker.sock +SocketMode=0660 +SocketUser=root +SocketGroup=docker + +[Install] +WantedBy=sockets.target diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/forward.conf b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/forward.conf new file mode 100644 index 0000000000..250ee89118 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/docker-bin/forward.conf @@ -0,0 +1,2 @@ +net.ipv4.ip_forward=1 + diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_fcopy.rules b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_fcopy.rules similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_fcopy.rules rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_fcopy.rules diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_kvp.rules b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_kvp.rules similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_kvp.rules rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_kvp.rules diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_vss.rules b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_vss.rules similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/70-hv_vss.rules rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/70-hv_vss.rules diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/Config.in index 834b31bdcb..fc31001b01 100644 --- a/deploy/iso/minikube-iso/package/hyperv-daemons/Config.in +++ b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/Config.in @@ -1,4 +1,4 @@ config BR2_PACKAGE_HYPERV_DAEMONS bool "hyperv-daemons" - default y depends on BR2_x86_64 + default y diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/hv_fcopy_daemon.service b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_fcopy_daemon.service similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/hv_fcopy_daemon.service rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_fcopy_daemon.service diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/hv_kvp_daemon.service b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_kvp_daemon.service similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/hv_kvp_daemon.service rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_kvp_daemon.service diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/hv_vss_daemon.service b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_vss_daemon.service similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/hv_vss_daemon.service rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hv_vss_daemon.service diff --git a/deploy/iso/minikube-iso/package/hyperv-daemons/hyperv-daemons.mk b/deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk similarity index 100% rename from deploy/iso/minikube-iso/package/hyperv-daemons/hyperv-daemons.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/hyperv-daemons/hyperv-daemons.mk diff --git a/deploy/iso/minikube-iso/package/podman/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/podman/Config.in similarity index 100% rename from deploy/iso/minikube-iso/package/podman/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/podman/Config.in diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/podman/override.conf b/deploy/iso/minikube-iso/arch/x86_64/package/podman/override.conf new file mode 100644 index 0000000000..b762370a4a --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/podman/override.conf @@ -0,0 +1,4 @@ +[Socket] +SocketMode=0660 +SocketUser=root +SocketGroup=podman diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.conf b/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.conf new file mode 100644 index 0000000000..8e31190ab8 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.conf @@ -0,0 +1 @@ +d /run/podman 0770 root podman diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.hash b/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.hash new file mode 100644 index 0000000000..27cdae3dfc --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.hash @@ -0,0 +1,6 @@ +sha256 a16846fe076aaf2c9ea2e854c3baba9fb838d916be7fb4b5be332e6c92d907d4 v1.9.3.tar.gz +sha256 5ebaa6e0dbd7fd1863f70d2bc71dc8a94e195c3339c17e3cac4560c9ec5747f8 v2.1.1.tar.gz +sha256 ec5473e51fa28f29af323473fc484f742dc7df23d06d8ba9f217f13382893a71 v2.2.0.tar.gz +sha256 3212bad60d945c1169b27da03959f36d92d1d8964645c701a5a82a89118e96d1 v2.2.1.tar.gz +sha256 5a0d42e03d15e32c5c54a147da5ef1b8928ec00982ac9e3f1edc82c5e614b6d2 v3.1.2.tar.gz +sha256 b0c4f9a11eb500b1d440d5e51a6c0c632aa4ac458e2dc0362f50f999eb7fbf31 v3.4.2.tar.gz diff --git a/deploy/iso/minikube-iso/package/podman/podman.mk b/deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.mk similarity index 100% rename from deploy/iso/minikube-iso/package/podman/podman.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/podman/podman.mk diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/Config.in new file mode 100644 index 0000000000..7f085bc807 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/Config.in @@ -0,0 +1,18 @@ +config BR2_PACKAGE_RUNC_MASTER + bool "runc-master" + depends on BR2_x86_64 + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS + depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on BR2_TOOLCHAIN_HAS_THREADS + help + runC is a CLI tool for spawning and running containers + according to the OCP specification. + + This is just a newer build of runc than the buildroot version. + + https://github.com/opencontainers/runc + +comment "runc needs a toolchain w/ threads" + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS && \ + BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS + depends on !BR2_TOOLCHAIN_HAS_THREADS diff --git a/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.hash b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.hash new file mode 100644 index 0000000000..4d904c3782 --- /dev/null +++ b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.hash @@ -0,0 +1,15 @@ +# Locally computed +sha256 fc780966c4d70c275a87930e93cda4210e63a490eabfb0fa5f2fe70be6dcdc58 0fdc908bf1ee7b7da85f9e5adbd1e256060f2486.tar.gz +sha256 9318fa9de6e3b2c89760f08d73bf718c97c93d683611716e024d2f3283c96d90 c1e454b2a1bfb0f0ebd9e621a1433f98f9a8d4b0.tar.gz +sha256 a960decadf6bd5d3cee1ca7b94455d37cc921c964061428bd9f3dd17a13c8bb3 6635b4f0c6af3810594d2770f662f34ddc15b40d.tar.gz +sha256 ad41ae930059fef18de1926cd78e00474c89290248fecdcc0e431c8aefee1deb 0a012df867a2d525f62a146d8ebdf2e6ab8a5ad5.tar.gz +sha256 e52c5d7365b2b9048f977bac8f06bf626dccb4d816d0947ec8523f543272f4ff 2b18fe1d885ee5083ef9f0838fee39b62d653e30.tar.gz +sha256 257ac2c2bbc9770998f31b73f587718848ebb09465ce2cd20fbac198ebd5726e 425e105d5a03fabd737a126ad93d62a9eeede87f.tar.gz +sha256 4ffe8323397d85dda7d5875fa6bdaf3f8c93592c1947dfa24a034719dc6f728e d736ef14f0288d6993a1845745d6756cfc9ddd5a.tar.gz +sha256 defe87a5f15edc54288d3261f5be28219b9b9d904d98c6020eb2e45400a04fb2 dc9208a3303feef5b3839f4323d9beb36df0a9dd.tar.gz +sha256 bfcbbcb12664d5f8c1b794f37a457a8db53291c82be5a3157d8efb91aab193bf ff819c7e9184c13b7c2607fe6c30ae19403a7aff.tar.gz +sha256 144973344b73627b5f69aa88b9e6655d692447ec317a0d5fa9777496a8ac186e 12644e614e25b05da6fd08a38ffa0cfe1903fdec.tar.gz +sha256 821ff8629329b4b7e4ccf24b5bf369c9739887736be30ba06a0d8053eb0e0b23 b9ee9c6314599f1b4a7f497e1f1f856fe433d3b7.tar.gz +sha256 50cc479cabf6e7edb9070a7c28b3460b0acc2a01650fc5934f5037cb96b9e2cf 4144b63817ebcc5b358fc2c8ef95f7cddd709aa7.tar.gz +sha256 1f47e3ff66cdcca1f890b15e74e884c4ff81d16d1044cc9900a1eb10cfb3d8e7 52b36a2dd837e8462de8e01458bf02cf9eea47dd.tar.gz +sha256 91525356b71fbf8e05deddc955d3f40e0d4aedcb15d26bdd2850a9986852ae5b f46b6ba2c9314cfc8caae24a32ec5fe9ef1059fe.tar.gz diff --git a/deploy/iso/minikube-iso/package/runc-master/runc-master.mk b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.mk similarity index 58% rename from deploy/iso/minikube-iso/package/runc-master/runc-master.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.mk index 9f52e8c8e9..8729a23eae 100644 --- a/deploy/iso/minikube-iso/package/runc-master/runc-master.mk +++ b/deploy/iso/minikube-iso/arch/x86_64/package/runc-master/runc-master.mk @@ -15,12 +15,12 @@ RUNC_MASTER_DEPENDENCIES = host-go RUNC_MASTER_GOPATH = $(@D)/_output RUNC_MASTER_MAKE_ENV = \ - $(GO_TARGET_ENV) \ - CGO_ENABLED=1 \ - GO111MODULE=off \ - GOPATH="$(RUNC_MASTER_GOPATH)" \ - GOBIN="$(RUNC_MASTER_GOPATH)/bin" \ - PATH=$(RUNC_MASTER_GOPATH)/bin:$(BR_PATH) + $(GO_TARGET_ENV) \ + CGO_ENABLED=1 \ + GO111MODULE=off \ + GOPATH="$(RUNC_MASTER_GOPATH)" \ + GOBIN="$(RUNC_MASTER_GOPATH)/bin" \ + PATH=$(RUNC_MASTER_GOPATH)/bin:$(BR_PATH) RUNC_MASTER_COMPILE_SRC = $(RUNC_MASTER_GOPATH)/src/github.com/opencontainers/runc @@ -30,16 +30,16 @@ RUNC_MASTER_DEPENDENCIES += libseccomp host-pkgconf endif define RUNC_MASTER_CONFIGURE_CMDS - mkdir -p $(RUNC_MASTER_GOPATH)/src/github.com/opencontainers - ln -s $(@D) $(RUNC_MASTER_GOPATH)/src/github.com/opencontainers/runc + mkdir -p $(RUNC_MASTER_GOPATH)/src/github.com/opencontainers + ln -s $(@D) $(RUNC_MASTER_GOPATH)/src/github.com/opencontainers/runc endef define RUNC_MASTER_BUILD_CMDS - PWD=$(RUNC_MASTER_COMPILE_SRC) $(RUNC_MASTER_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) BUILDTAGS="$(RUNC_MASTER_GOTAGS)" COMMIT_NO=$(RUNC_MASTER_VERSION) COMMIT=$(RUNC_MASTER_VERSION) PREFIX=/usr + PWD=$(RUNC_MASTER_COMPILE_SRC) $(RUNC_MASTER_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) BUILDTAGS="$(RUNC_MASTER_GOTAGS)" COMMIT_NO=$(RUNC_MASTER_VERSION) COMMIT=$(RUNC_MASTER_VERSION) PREFIX=/usr endef define RUNC_MASTER_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 0755 $(@D)/runc $(TARGET_DIR)/usr/bin/runc + $(INSTALL) -D -m 0755 $(@D)/runc $(TARGET_DIR)/usr/bin/runc endef $(eval $(generic-package)) diff --git a/deploy/iso/minikube-iso/package/vbox-guest/Config.in b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in similarity index 77% rename from deploy/iso/minikube-iso/package/vbox-guest/Config.in rename to deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in index 9b0a6ca2a7..2147deb04a 100644 --- a/deploy/iso/minikube-iso/package/vbox-guest/Config.in +++ b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/Config.in @@ -1,5 +1,5 @@ config BR2_PACKAGE_VBOX_GUEST bool "vbox-guest" - default y + depends on BR2_x86_64 depends on BR2_LINUX_KERNEL diff --git a/deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.hash b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash similarity index 100% rename from deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.hash rename to deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.hash diff --git a/deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.mk b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk similarity index 100% rename from deploy/iso/minikube-iso/package/vbox-guest/vbox-guest.mk rename to deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vbox-guest.mk diff --git a/deploy/iso/minikube-iso/package/vbox-guest/vboxservice.service b/deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service similarity index 100% rename from deploy/iso/minikube-iso/package/vbox-guest/vboxservice.service rename to deploy/iso/minikube-iso/arch/x86_64/package/vbox-guest/vboxservice.service diff --git a/deploy/iso/minikube-iso/board/iso/x86_64/grub.cfg b/deploy/iso/minikube-iso/board/iso/x86_64/grub.cfg deleted file mode 100644 index ba43e7ca23..0000000000 --- a/deploy/iso/minikube-iso/board/iso/x86_64/grub.cfg +++ /dev/null @@ -1,7 +0,0 @@ -set default="0" -set timeout="5" - -menuentry "Buildroot" { - linux /boot/vmlinuz console=tty0 rw - initrd /boot/initrd.img -} diff --git a/deploy/iso/minikube-iso/board/iso/x86_64/genimage.cfg b/deploy/iso/minikube-iso/board/minikube/aarch64/genimage.cfg similarity index 100% rename from deploy/iso/minikube-iso/board/iso/x86_64/genimage.cfg rename to deploy/iso/minikube-iso/board/minikube/aarch64/genimage.cfg diff --git a/deploy/iso/minikube-iso/board/iso/x86_64/grub-stub.cfg b/deploy/iso/minikube-iso/board/minikube/aarch64/grub-stub.cfg similarity index 76% rename from deploy/iso/minikube-iso/board/iso/x86_64/grub-stub.cfg rename to deploy/iso/minikube-iso/board/minikube/aarch64/grub-stub.cfg index 92730a9730..e0b01cf7f5 100644 --- a/deploy/iso/minikube-iso/board/iso/x86_64/grub-stub.cfg +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/grub-stub.cfg @@ -2,3 +2,5 @@ insmod iso9660 insmod udf search --no-floppy --label EFIBOOTISO --set root + +# used to find the cd diff --git a/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg b/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg new file mode 100644 index 0000000000..e06366b9ab --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/grub.cfg @@ -0,0 +1,7 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /boot/bzimage console=ttyAMA0 # kernel + initrd /boot/initrd # rootfs +} diff --git a/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig new file mode 100644 index 0000000000..2d0a352999 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/linux_aarch64_defconfig @@ -0,0 +1,1217 @@ +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +CONFIG_AUDIT=y +CONFIG_NO_HZ_IDLE=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_IRQ_TIME_ACCOUNTING=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_NUMA_BALANCING=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_PIDS=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_USER_NS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_COMPAT_BRK is not set +CONFIG_PROFILING=y +CONFIG_ARCH_ACTIONS=y +CONFIG_ARCH_AGILEX=y +CONFIG_ARCH_SUNXI=y +CONFIG_ARCH_ALPINE=y +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BERLIN=y +CONFIG_ARCH_BRCMSTB=y +CONFIG_ARCH_EXYNOS=y +CONFIG_ARCH_K3=y +CONFIG_ARCH_LAYERSCAPE=y +CONFIG_ARCH_LG1K=y +CONFIG_ARCH_HISI=y +CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MESON=y +CONFIG_ARCH_MVEBU=y +CONFIG_ARCH_MXC=y +CONFIG_ARCH_QCOM=y +CONFIG_ARCH_RENESAS=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARCH_S32=y +CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_STRATIX10=y +CONFIG_ARCH_SYNQUACER=y +CONFIG_ARCH_TEGRA=y +CONFIG_ARCH_SPRD=y +CONFIG_ARCH_THUNDER=y +CONFIG_ARCH_THUNDER2=y +CONFIG_ARCH_UNIPHIER=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VISCONTI=y +CONFIG_ARCH_XGENE=y +CONFIG_ARCH_ZX=y +CONFIG_ARCH_ZYNQMP=y +CONFIG_ARM64_VA_BITS_48=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_NUMA=y +CONFIG_SECCOMP=y +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +CONFIG_CRASH_DUMP=y +CONFIG_XEN=y +CONFIG_COMPAT=y +CONFIG_RANDOMIZE_BASE=y +CONFIG_HIBERNATION=y +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_ENERGY_MODEL=y +CONFIG_ARM_CPUIDLE=y +CONFIG_ARM_PSCI_CPUIDLE=y +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y +CONFIG_CPUFREQ_DT=y +CONFIG_ACPI_CPPC_CPUFREQ=m +CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM=m +CONFIG_ARM_ARMADA_37XX_CPUFREQ=y +CONFIG_ARM_SCPI_CPUFREQ=y +CONFIG_ARM_IMX_CPUFREQ_DT=m +CONFIG_ARM_QCOM_CPUFREQ_NVMEM=y +CONFIG_ARM_QCOM_CPUFREQ_HW=y +CONFIG_ARM_RASPBERRYPI_CPUFREQ=m +CONFIG_ARM_TEGRA186_CPUFREQ=y +CONFIG_QORIQ_CPUFREQ=y +CONFIG_ARM_SCPI_PROTOCOL=y +CONFIG_RASPBERRYPI_FIRMWARE=y +CONFIG_INTEL_STRATIX10_SERVICE=y +CONFIG_INTEL_STRATIX10_RSU=m +CONFIG_EFI_CAPSULE_LOADER=y +CONFIG_IMX_SCU=y +CONFIG_IMX_SCU_PD=y +CONFIG_ACPI=y +CONFIG_ACPI_APEI=y +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_EINJ=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA512_ARM64_CE=m +CONFIG_CRYPTO_SHA3_ARM64=m +CONFIG_CRYPTO_SM3_ARM64_CE=m +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_CHACHA20_NEON=m +CONFIG_CRYPTO_AES_ARM64_BS=m +CONFIG_JUMP_LABEL=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_KSM=y +CONFIG_MEMORY_FAILURE=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_NET=y +CONFIG_PACKET=y +CONFIG_UNIX=y +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IPV6=m +CONFIG_IP_SET=y +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPMARK=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_IPMAC=m +CONFIG_IP_SET_HASH_MAC=m +CONFIG_IP_SET_HASH_NETPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETNET=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_VS=m +CONFIG_IP_VS_IPV6=y +CONFIG_IP_VS_DEBUG=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_SCTP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_WRR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_FO=m +CONFIG_IP_VS_OVF=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_NFCT=y +CONFIG_NF_LOG_ARP=m +CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_RPFILTER=y +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_MANGLE=y +CONFIG_IP_NF_RAW=m +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_MATCH_IPV6HEADER=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_NETLINK_ACCT=y +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XT_SET=m +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_HL=m +CONFIG_NETFILTER_XT_TARGET_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CGROUP=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_CPU=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_HL=m +CONFIG_NETFILTER_XT_MATCH_IPCOMP=m +CONFIG_NETFILTER_XT_MATCH_IPRANGE=m +CONFIG_NETFILTER_XT_MATCH_IPVS=m +CONFIG_NETFILTER_XT_MATCH_L2TP=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_NFACCT=m +CONFIG_NETFILTER_XT_MATCH_OSF=m +CONFIG_NETFILTER_XT_MATCH_OWNER=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_RATEEST=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_RECENT=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_SOCKET=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_TIME=m +CONFIG_NETFILTER_XT_MATCH_U32=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_MANGLE=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_NET_DSA=m +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBS=m +CONFIG_NET_SCH_ETF=m +CONFIG_NET_SCH_TAPRIO=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FLOWER=m +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_GATE=m +CONFIG_QRTR=m +CONFIG_QRTR_SMD=m +CONFIG_QRTR_TUN=m +CONFIG_BPF_JIT=y +CONFIG_CAN=m +CONFIG_CAN_RCAR=m +CONFIG_CAN_RCAR_CANFD=m +CONFIG_CAN_FLEXCAN=m +CONFIG_BT=m +CONFIG_BT_HIDP=m +# CONFIG_BT_HS is not set +# CONFIG_BT_LE is not set +CONFIG_BT_LEDS=y +# CONFIG_BT_DEBUGFS is not set +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_LL=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HCIUART_QCA=y +CONFIG_CFG80211=m +CONFIG_MAC80211=m +CONFIG_MAC80211_LEDS=y +CONFIG_RFKILL=m +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +CONFIG_NFC=m +CONFIG_NFC_NCI=m +CONFIG_NFC_S3FWRN5_I2C=m +CONFIG_PCI=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCI_IOV=y +CONFIG_PCI_PASID=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_PCI_AARDVARK=y +CONFIG_PCI_TEGRA=y +CONFIG_PCIE_RCAR_HOST=y +CONFIG_PCIE_RCAR_EP=y +CONFIG_PCI_HOST_GENERIC=y +CONFIG_PCI_XGENE=y +CONFIG_PCIE_ALTERA=y +CONFIG_PCIE_ALTERA_MSI=y +CONFIG_PCI_HOST_THUNDER_PEM=y +CONFIG_PCI_HOST_THUNDER_ECAM=y +CONFIG_PCIE_ROCKCHIP_HOST=m +CONFIG_PCIE_BRCMSTB=m +CONFIG_PCI_LAYERSCAPE=y +CONFIG_PCIE_LAYERSCAPE_GEN4=y +CONFIG_PCI_HISI=y +CONFIG_PCIE_QCOM=y +CONFIG_PCIE_ARMADA_8K=y +CONFIG_PCIE_KIRIN=y +CONFIG_PCIE_HISI_STB=y +CONFIG_PCIE_TEGRA194_HOST=m +CONFIG_PCI_ENDPOINT=y +CONFIG_PCI_ENDPOINT_CONFIGFS=y +CONFIG_PCI_EPF_TEST=m +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_HISILICON_LPC=y +CONFIG_SIMPLE_PM_BUS=y +CONFIG_FSL_MC_BUS=y +CONFIG_TEGRA_ACONNECT=m +CONFIG_MTD=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CFI=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_OF=y +CONFIG_MTD_DATAFLASH=y +CONFIG_MTD_SST25L=y +CONFIG_MTD_RAW_NAND=y +CONFIG_MTD_NAND_DENALI_DT=y +CONFIG_MTD_NAND_MARVELL=y +CONFIG_MTD_NAND_FSL_IFC=y +CONFIG_MTD_NAND_QCOM=y +CONFIG_MTD_SPI_NOR=y +CONFIG_SPI_CADENCE_QUADSPI=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_NBD=m +CONFIG_VIRTIO_BLK=y +CONFIG_BLK_DEV_NVME=m +CONFIG_SRAM=y +CONFIG_PCI_ENDPOINT_TEST=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_UACCE=m +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_HISI_SAS=y +CONFIG_SCSI_HISI_SAS_PCI=y +CONFIG_MEGARAID_SAS=y +CONFIG_SCSI_MPT3SAS=m +CONFIG_SCSI_UFSHCD=y +CONFIG_SCSI_UFSHCD_PLATFORM=y +CONFIG_SCSI_UFS_QCOM=m +CONFIG_SCSI_UFS_HISI=y +CONFIG_ATA=y +CONFIG_SATA_AHCI=y +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_CEVA=y +CONFIG_AHCI_MVEBU=y +CONFIG_AHCI_XGENE=y +CONFIG_AHCI_QORIQ=y +CONFIG_SATA_SIL24=y +CONFIG_SATA_RCAR=y +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_DM=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_NETDEVICES=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_TUN=y +CONFIG_VETH=m +CONFIG_VIRTIO_NET=y +CONFIG_NET_DSA_MSCC_FELIX=m +CONFIG_AMD_XGBE=y +CONFIG_NET_XGENE=y +CONFIG_ATL1C=m +CONFIG_BCMGENET=m +CONFIG_BNX2X=m +CONFIG_MACB=y +CONFIG_THUNDER_NIC_PF=y +CONFIG_FEC=y +CONFIG_FSL_FMAN=y +CONFIG_FSL_DPAA_ETH=y +CONFIG_FSL_DPAA2_ETH=y +CONFIG_FSL_ENETC=y +CONFIG_FSL_ENETC_VF=y +CONFIG_FSL_ENETC_QOS=y +CONFIG_HIX5HD2_GMAC=y +CONFIG_HNS_DSAF=y +CONFIG_HNS_ENET=y +CONFIG_HNS3=y +CONFIG_HNS3_HCLGE=y +CONFIG_HNS3_ENET=y +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_IGB=y +CONFIG_IGBVF=y +CONFIG_MVNETA=y +CONFIG_MVPP2=y +CONFIG_SKY2=y +CONFIG_MLX4_EN=m +CONFIG_MLX5_CORE=m +CONFIG_MLX5_CORE_EN=y +CONFIG_QCOM_EMAC=m +CONFIG_RMNET=m +CONFIG_SH_ETH=y +CONFIG_RAVB=y +CONFIG_SMC91X=y +CONFIG_SMSC911X=y +CONFIG_SNI_AVE=y +CONFIG_SNI_NETSEC=y +CONFIG_STMMAC_ETH=m +CONFIG_TI_K3_AM65_CPSW_NUSS=y +CONFIG_QCOM_IPA=m +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_MDIO_BUS_MUX_MULTIPLEXER=y +CONFIG_AQUANTIA_PHY=y +CONFIG_MARVELL_PHY=m +CONFIG_MARVELL_10G_PHY=m +CONFIG_MESON_GXL_PHY=m +CONFIG_MICREL_PHY=y +CONFIG_MICROSEMI_PHY=y +CONFIG_AT803X_PHY=y +CONFIG_REALTEK_PHY=m +CONFIG_ROCKCHIP_PHY=y +CONFIG_VITESSE_PHY=y +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_LAN78XX=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_DM9601=m +CONFIG_USB_NET_SR9800=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_MCS7830=m +CONFIG_ATH10K=m +CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_SNOC=m +CONFIG_BRCMFMAC=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_WL18XX=m +CONFIG_WLCORE_SDIO=m +CONFIG_INPUT_EVDEV=y +CONFIG_KEYBOARD_ADC=m +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_SNVS_PWRKEY=m +CONFIG_KEYBOARD_IMX_SC_KEY=m +CONFIG_KEYBOARD_CROS_EC=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_ATMEL_MXT=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_PM8941_PWRKEY=y +CONFIG_INPUT_PM8XXX_VIBRATOR=m +CONFIG_INPUT_HISI_POWERKEY=y +# CONFIG_SERIO_SERPORT is not set +CONFIG_SERIO_AMBAKMI=y +CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_8250_BCM2835AUX=y +CONFIG_SERIAL_8250_DW=y +CONFIG_SERIAL_8250_OMAP=y +CONFIG_SERIAL_8250_MT6577=y +CONFIG_SERIAL_8250_UNIPHIER=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_MESON=y +CONFIG_SERIAL_MESON_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +CONFIG_SERIAL_TEGRA_TCU=y +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y +CONFIG_SERIAL_QCOM_GENI=y +CONFIG_SERIAL_QCOM_GENI_CONSOLE=y +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +CONFIG_SERIAL_FSL_LINFLEXUART=y +CONFIG_SERIAL_FSL_LINFLEXUART_CONSOLE=y +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_SERIAL_OWL=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_VIRTIO_CONSOLE=y +CONFIG_IPMI_HANDLER=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_SI=m +CONFIG_TCG_TPM=y +CONFIG_TCG_TIS_I2C_INFINEON=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_BCM2835=m +CONFIG_I2C_DESIGNWARE_PLATFORM=y +CONFIG_I2C_GPIO=m +CONFIG_I2C_IMX=y +CONFIG_I2C_IMX_LPI2C=y +CONFIG_I2C_MESON=y +CONFIG_I2C_MV64XXX=y +CONFIG_I2C_OWL=y +CONFIG_I2C_PXA=y +CONFIG_I2C_QCOM_CCI=m +CONFIG_I2C_QCOM_GENI=m +CONFIG_I2C_QUP=y +CONFIG_I2C_RK3X=y +CONFIG_I2C_SH_MOBILE=y +CONFIG_I2C_TEGRA=y +CONFIG_I2C_UNIPHIER_F=y +CONFIG_I2C_RCAR=y +CONFIG_I2C_CROS_EC_TUNNEL=y +CONFIG_SPI=y +CONFIG_SPI_ARMADA_3700=y +CONFIG_SPI_BCM2835=m +CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_FSL_LPSPI=y +CONFIG_SPI_FSL_QUADSPI=y +CONFIG_SPI_NXP_FLEXSPI=y +CONFIG_SPI_IMX=m +CONFIG_SPI_FSL_DSPI=y +CONFIG_SPI_MESON_SPICC=m +CONFIG_SPI_MESON_SPIFC=m +CONFIG_SPI_ORION=y +CONFIG_SPI_PL022=y +CONFIG_SPI_ROCKCHIP=y +CONFIG_SPI_RPCIF=m +CONFIG_SPI_QCOM_QSPI=m +CONFIG_SPI_QUP=y +CONFIG_SPI_QCOM_GENI=m +CONFIG_SPI_S3C64XX=y +CONFIG_SPI_SH_MSIOF=m +CONFIG_SPI_SUN6I=y +CONFIG_SPI_SPIDEV=m +CONFIG_SPMI=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_MAX77620=y +CONFIG_PINCTRL_OWL=y +CONFIG_PINCTRL_S700=y +CONFIG_PINCTRL_S900=y +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +CONFIG_PINCTRL_IMX8MP=y +CONFIG_PINCTRL_IMX8MQ=y +CONFIG_PINCTRL_IMX8QXP=y +CONFIG_PINCTRL_IMX8DXL=y +CONFIG_PINCTRL_IPQ8074=y +CONFIG_PINCTRL_IPQ6018=y +CONFIG_PINCTRL_MSM8916=y +CONFIG_PINCTRL_MSM8994=y +CONFIG_PINCTRL_MSM8996=y +CONFIG_PINCTRL_MSM8998=y +CONFIG_PINCTRL_QCS404=y +CONFIG_PINCTRL_QDF2XXX=y +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +CONFIG_PINCTRL_SC7180=y +CONFIG_PINCTRL_SDM845=y +CONFIG_PINCTRL_SM8150=y +CONFIG_PINCTRL_SM8250=y +CONFIG_GPIO_ALTERA=m +CONFIG_GPIO_DWAPB=y +CONFIG_GPIO_MB86S7X=y +CONFIG_GPIO_MPC8XXX=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RCAR=y +CONFIG_GPIO_UNIPHIER=y +CONFIG_GPIO_WCD934X=m +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_XGENE_SB=y +CONFIG_GPIO_MAX732X=y +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +CONFIG_GPIO_BD9571MWV=m +CONFIG_GPIO_MAX77620=y +CONFIG_GPIO_SL28CPLD=m +CONFIG_POWER_AVS=y +CONFIG_QCOM_CPR=y +CONFIG_ROCKCHIP_IODOMAIN=y +CONFIG_POWER_RESET_MSM=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +CONFIG_SYSCON_REBOOT_MODE=y +CONFIG_BATTERY_SBS=m +CONFIG_BATTERY_BQ27XXX=y +CONFIG_SENSORS_ARM_SCPI=y +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_PWM_FAN=m +CONFIG_SENSORS_RASPBERRYPI_HWMON=m +CONFIG_SENSORS_SL28CPLD=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA3221=m +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y +CONFIG_CPU_THERMAL=y +CONFIG_THERMAL_EMULATION=y +CONFIG_QORIQ_THERMAL=m +CONFIG_SUN8I_THERMAL=y +CONFIG_IMX_SC_THERMAL=m +CONFIG_IMX8MM_THERMAL=m +CONFIG_ROCKCHIP_THERMAL=m +CONFIG_RCAR_THERMAL=y +CONFIG_RCAR_GEN3_THERMAL=y +CONFIG_ARMADA_THERMAL=y +CONFIG_BCM2711_THERMAL=m +CONFIG_BCM2835_THERMAL=m +CONFIG_BRCMSTB_THERMAL=m +CONFIG_EXYNOS_THERMAL=y +CONFIG_TEGRA_BPMP_THERMAL=m +CONFIG_QCOM_TSENS=y +CONFIG_QCOM_SPMI_TEMP_ALARM=m +CONFIG_UNIPHIER_THERMAL=y +CONFIG_WATCHDOG=y +CONFIG_SL28CPLD_WATCHDOG=m +CONFIG_ARM_SP805_WATCHDOG=y +CONFIG_ARM_SBSA_WATCHDOG=y +CONFIG_ARM_SMC_WATCHDOG=y +CONFIG_S3C2410_WATCHDOG=y +CONFIG_DW_WATCHDOG=y +CONFIG_SUNXI_WATCHDOG=m +CONFIG_IMX2_WDT=y +CONFIG_IMX_SC_WDT=m +CONFIG_QCOM_WDT=m +CONFIG_MESON_GXBB_WATCHDOG=m +CONFIG_MESON_WATCHDOG=m +CONFIG_RENESAS_WDT=y +CONFIG_UNIPHIER_WATCHDOG=y +CONFIG_BCM2835_WDT=y +CONFIG_MFD_ALTERA_SYSMGR=y +CONFIG_MFD_BD9571MWV=y +CONFIG_MFD_AXP20X_I2C=y +CONFIG_MFD_AXP20X_RSB=y +CONFIG_MFD_EXYNOS_LPASS=m +CONFIG_MFD_HI6421_PMIC=y +CONFIG_MFD_HI655X_PMIC=y +CONFIG_MFD_MAX77620=y +CONFIG_MFD_SPMI_PMIC=y +CONFIG_MFD_RK808=y +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_SL28CPLD=y +CONFIG_MFD_ROHM_BD718XX=y +CONFIG_MFD_WCD934X=m +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_AXP20X=y +CONFIG_REGULATOR_BD718XX=y +CONFIG_REGULATOR_BD9571MWV=y +CONFIG_REGULATOR_FAN53555=y +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_HI6421V530=y +CONFIG_REGULATOR_HI655X=y +CONFIG_REGULATOR_MAX77620=y +CONFIG_REGULATOR_MAX8973=y +CONFIG_REGULATOR_PCA9450=y +CONFIG_REGULATOR_PFUZE100=y +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_QCOM_RPMH=y +CONFIG_REGULATOR_QCOM_SMD_RPM=y +CONFIG_REGULATOR_QCOM_SPMI=y +CONFIG_REGULATOR_RK808=y +CONFIG_REGULATOR_S2MPS11=y +CONFIG_REGULATOR_VCTRL=m +CONFIG_RC_CORE=m +CONFIG_RC_DECODERS=y +CONFIG_RC_DEVICES=y +CONFIG_IR_MESON=m +CONFIG_IR_SUNXI=m +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +# CONFIG_DVB_NET is not set +CONFIG_MEDIA_USB_SUPPORT=y +CONFIG_USB_VIDEO_CLASS=m +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_VIDEO_RCAR_CSI2=m +CONFIG_VIDEO_RCAR_VIN=m +CONFIG_VIDEO_SUN6I_CSI=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m +CONFIG_VIDEO_SAMSUNG_S5P_MFC=m +CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m +CONFIG_VIDEO_RENESAS_FDP1=m +CONFIG_VIDEO_RENESAS_FCP=m +CONFIG_VIDEO_RENESAS_VSP1=m +CONFIG_SDR_PLATFORM_DRIVERS=y +CONFIG_VIDEO_RCAR_DRIF=m +CONFIG_VIDEO_IMX219=m +CONFIG_VIDEO_OV5645=m +CONFIG_VIDEO_QCOM_CAMSS=m +CONFIG_DRM=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_MALI_DISPLAY=m +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_EXYNOS=m +CONFIG_DRM_EXYNOS5433_DECON=y +CONFIG_DRM_EXYNOS7_DECON=y +CONFIG_DRM_EXYNOS_DSI=y +# CONFIG_DRM_EXYNOS_DP is not set +CONFIG_DRM_EXYNOS_HDMI=y +CONFIG_DRM_EXYNOS_MIC=y +CONFIG_DRM_ROCKCHIP=m +CONFIG_ROCKCHIP_ANALOGIX_DP=y +CONFIG_ROCKCHIP_CDN_DP=y +CONFIG_ROCKCHIP_DW_HDMI=y +CONFIG_ROCKCHIP_DW_MIPI_DSI=y +CONFIG_ROCKCHIP_INNO_HDMI=y +CONFIG_DRM_RCAR_DU=m +CONFIG_DRM_RCAR_DW_HDMI=m +CONFIG_DRM_SUN4I=m +CONFIG_DRM_SUN6I_DSI=m +CONFIG_DRM_SUN8I_DW_HDMI=m +CONFIG_DRM_SUN8I_MIXER=m +CONFIG_DRM_MSM=m +CONFIG_DRM_TEGRA=m +CONFIG_DRM_PANEL_LVDS=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_RAYDIUM_RM67191=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m +CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_NWL_MIPI_DSI=m +CONFIG_DRM_LONTIUM_LT9611=m +CONFIG_DRM_SII902X=m +CONFIG_DRM_SIMPLE_BRIDGE=m +CONFIG_DRM_THINE_THC63LVD1024=m +CONFIG_DRM_TI_SN65DSI86=m +CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_I2C_ADV7511_AUDIO=y +CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m +CONFIG_DRM_VC4=m +CONFIG_DRM_ETNAVIV=m +CONFIG_DRM_HISI_HIBMC=m +CONFIG_DRM_HISI_KIRIN=m +CONFIG_DRM_MXSFB=m +CONFIG_DRM_MESON=m +CONFIG_DRM_PL111=m +CONFIG_DRM_LIMA=m +CONFIG_DRM_PANFROST=m +CONFIG_FB=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_EFI=y +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_LP855X=m +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_HDA_TEGRA=m +CONFIG_SND_HDA_CODEC_HDMI=m +CONFIG_SND_SOC=y +CONFIG_SND_BCM2835_SOC_I2S=m +CONFIG_SND_SOC_FSL_SAI=m +CONFIG_SND_MESON_AXG_SOUND_CARD=m +CONFIG_SND_MESON_GX_SOUND_CARD=m +CONFIG_SND_SOC_QCOM=m +CONFIG_SND_SOC_APQ8016_SBC=m +CONFIG_SND_SOC_MSM8996=m +CONFIG_SND_SOC_SDM845=m +CONFIG_SND_SOC_ROCKCHIP=m +CONFIG_SND_SOC_ROCKCHIP_SPDIF=m +CONFIG_SND_SOC_ROCKCHIP_RT5645=m +CONFIG_SND_SOC_RK3399_GRU_SOUND=m +CONFIG_SND_SOC_SAMSUNG=y +CONFIG_SND_SOC_RCAR=m +CONFIG_SND_SUN4I_SPDIF=m +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA210_AHUB=m +CONFIG_SND_SOC_TEGRA210_DMIC=m +CONFIG_SND_SOC_TEGRA210_I2S=m +CONFIG_SND_SOC_TEGRA186_DSPK=m +CONFIG_SND_SOC_TEGRA210_ADMAIF=m +CONFIG_SND_SOC_AK4613=m +CONFIG_SND_SOC_ES7134=m +CONFIG_SND_SOC_ES7241=m +CONFIG_SND_SOC_PCM3168A_I2C=m +CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m +CONFIG_SND_SOC_TAS571X=m +CONFIG_SND_SOC_WCD934X=m +CONFIG_SND_SOC_WM8904=m +CONFIG_SND_SOC_WSA881X=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_AUDIO_GRAPH_CARD=m +CONFIG_I2C_HID=m +CONFIG_USB_CONN_GPIO=m +CONFIG_USB=y +CONFIG_USB_OTG=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_TEGRA=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_EXYNOS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_EXYNOS=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_RENESAS_USBHS_HCD=m +CONFIG_USB_RENESAS_USBHS=m +CONFIG_USB_ACM=m +CONFIG_USB_STORAGE=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_MUSB_SUNXI=y +CONFIG_USB_DWC3=y +CONFIG_USB_DWC2=y +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_HSIC_USB3503=y +CONFIG_NOP_USB_XCEIV=y +CONFIG_USB_GADGET=y +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_RENESAS_USB3=m +CONFIG_USB_TEGRA_XUDC=m +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_MASS_STORAGE=y +CONFIG_USB_CONFIGFS_F_FS=y +CONFIG_TYPEC=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_FUSB302=m +CONFIG_TYPEC_HD3SS3220=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +CONFIG_MMC_SDHCI_OF_ESDHC=y +CONFIG_MMC_SDHCI_CADENCE=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_TEGRA=y +CONFIG_MMC_SDHCI_F_SDH30=y +CONFIG_MMC_MESON_GX=y +CONFIG_MMC_SDHCI_MSM=y +CONFIG_MMC_SPI=y +CONFIG_MMC_SDHI=y +CONFIG_MMC_UNIPHIER=y +CONFIG_MMC_DW=y +CONFIG_MMC_DW_EXYNOS=y +CONFIG_MMC_DW_HI3798CV200=y +CONFIG_MMC_DW_K3=y +CONFIG_MMC_DW_ROCKCHIP=y +CONFIG_MMC_SUNXI=y +CONFIG_MMC_BCM2835=y +CONFIG_MMC_SDHCI_XENON=y +CONFIG_MMC_SDHCI_AM654=y +CONFIG_MMC_OWL=y +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_PWM=y +CONFIG_LEDS_SYSCON=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_DISK=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +CONFIG_LEDS_TRIGGER_PANIC=y +CONFIG_EDAC=y +CONFIG_EDAC_GHES=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1307=m +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_RK808=m +CONFIG_RTC_DRV_PCF85363=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_RV8803=m +CONFIG_RTC_DRV_S5M=y +CONFIG_RTC_DRV_DS3232=y +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_EFI=y +CONFIG_RTC_DRV_CROS_EC=y +CONFIG_RTC_DRV_S3C=y +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_SUN6I=y +CONFIG_RTC_DRV_ARMADA38X=y +CONFIG_RTC_DRV_PM8XXX=m +CONFIG_RTC_DRV_TEGRA=y +CONFIG_RTC_DRV_SNVS=m +CONFIG_RTC_DRV_IMX_SC=m +CONFIG_RTC_DRV_XGENE=y +CONFIG_DMADEVICES=y +CONFIG_DMA_BCM2835=y +CONFIG_DMA_SUN6I=m +CONFIG_FSL_EDMA=y +CONFIG_IMX_SDMA=y +CONFIG_K3_DMA=y +CONFIG_MV_XOR=y +CONFIG_MV_XOR_V2=y +CONFIG_OWL_DMA=y +CONFIG_PL330_DMA=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA210_ADMA=m +CONFIG_QCOM_BAM_DMA=y +CONFIG_QCOM_HIDMA_MGMT=y +CONFIG_QCOM_HIDMA=y +CONFIG_RCAR_DMAC=y +CONFIG_RENESAS_USB_DMAC=m +CONFIG_TI_K3_UDMA=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_VFIO=y +CONFIG_VFIO_PCI=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_MMIO=y +CONFIG_XEN_GNTDEV=y +CONFIG_XEN_GRANT_DEV_ALLOC=y +CONFIG_MFD_CROS_EC_DEV=y +CONFIG_CHROME_PLATFORMS=y +CONFIG_CROS_EC=y +CONFIG_CROS_EC_I2C=y +CONFIG_CROS_EC_SPI=y +CONFIG_CROS_EC_CHARDEV=m +CONFIG_COMMON_CLK_RK808=y +CONFIG_COMMON_CLK_SCPI=y +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_COMMON_CLK_FSL_SAI=y +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_COMMON_CLK_PWM=y +CONFIG_COMMON_CLK_VC5=y +CONFIG_COMMON_CLK_BD718XX=m +CONFIG_CLK_RASPBERRYPI=m +CONFIG_CLK_IMX8MM=y +CONFIG_CLK_IMX8MN=y +CONFIG_CLK_IMX8MP=y +CONFIG_CLK_IMX8MQ=y +CONFIG_CLK_IMX8QXP=y +CONFIG_TI_SCI_CLK=y +CONFIG_COMMON_CLK_QCOM=y +CONFIG_QCOM_A53PLL=y +CONFIG_QCOM_CLK_APCS_MSM8916=y +CONFIG_QCOM_CLK_SMD_RPM=y +CONFIG_QCOM_CLK_RPMH=y +CONFIG_IPQ_GCC_8074=y +CONFIG_IPQ_GCC_6018=y +CONFIG_MSM_GCC_8916=y +CONFIG_MSM_GCC_8994=y +CONFIG_MSM_MMCC_8996=y +CONFIG_MSM_GCC_8998=y +CONFIG_QCS_GCC_404=y +CONFIG_SC_GCC_7180=y +CONFIG_SDM_CAMCC_845=m +CONFIG_SDM_GCC_845=y +CONFIG_SDM_GPUCC_845=y +CONFIG_SDM_VIDEOCC_845=y +CONFIG_SDM_DISPCC_845=y +CONFIG_SM_GCC_8150=y +CONFIG_SM_GCC_8250=y +CONFIG_SM_GPUCC_8150=y +CONFIG_SM_GPUCC_8250=y +CONFIG_QCOM_HFPLL=y +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_QCOM=y +CONFIG_ARM_MHU=y +CONFIG_IMX_MBOX=y +CONFIG_PLATFORM_MHU=y +CONFIG_BCM2835_MBOX=y +CONFIG_QCOM_APCS_IPC=y +CONFIG_QCOM_IPCC=y +CONFIG_ROCKCHIP_IOMMU=y +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y +CONFIG_QCOM_IOMMU=y +CONFIG_REMOTEPROC=y +CONFIG_QCOM_Q6V5_MSS=m +CONFIG_QCOM_Q6V5_PAS=m +CONFIG_QCOM_SYSMON=m +CONFIG_RPMSG_QCOM_GLINK_RPM=y +CONFIG_RPMSG_QCOM_GLINK_SMEM=m +CONFIG_RPMSG_QCOM_SMD=y +CONFIG_SOUNDWIRE=m +CONFIG_SOUNDWIRE_QCOM=m +CONFIG_OWL_PM_DOMAINS=y +CONFIG_RASPBERRYPI_POWER=y +CONFIG_FSL_DPAA=y +CONFIG_FSL_MC_DPIO=y +CONFIG_QCOM_AOSS_QMP=y +CONFIG_QCOM_GENI_SE=y +CONFIG_QCOM_RMTFS_MEM=m +CONFIG_QCOM_RPMH=y +CONFIG_QCOM_RPMHPD=y +CONFIG_QCOM_RPMPD=y +CONFIG_QCOM_SMEM=y +CONFIG_QCOM_SMD_RPM=y +CONFIG_QCOM_SMP2P=y +CONFIG_QCOM_SMSM=y +CONFIG_QCOM_SOCINFO=m +CONFIG_QCOM_APR=m +CONFIG_ARCH_R8A774A1=y +CONFIG_ARCH_R8A774B1=y +CONFIG_ARCH_R8A774C0=y +CONFIG_ARCH_R8A774E1=y +CONFIG_ARCH_R8A77950=y +CONFIG_ARCH_R8A77951=y +CONFIG_ARCH_R8A77960=y +CONFIG_ARCH_R8A77961=y +CONFIG_ARCH_R8A77965=y +CONFIG_ARCH_R8A77970=y +CONFIG_ARCH_R8A77980=y +CONFIG_ARCH_R8A77990=y +CONFIG_ARCH_R8A77995=y +CONFIG_ROCKCHIP_PM_DOMAINS=y +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y +CONFIG_ARCH_TEGRA_186_SOC=y +CONFIG_ARCH_TEGRA_194_SOC=y +CONFIG_ARCH_K3_AM6_SOC=y +CONFIG_ARCH_K3_J721E_SOC=y +CONFIG_TI_SCI_PM_DOMAINS=y +CONFIG_EXTCON_PTN5150=m +CONFIG_EXTCON_USB_GPIO=y +CONFIG_EXTCON_USBC_CROS_EC=y +CONFIG_RENESAS_RPCIF=m +CONFIG_IIO=y +CONFIG_EXYNOS_ADC=y +CONFIG_MAX9611=m +CONFIG_QCOM_SPMI_ADC5=m +CONFIG_ROCKCHIP_SARADC=m +CONFIG_IIO_CROS_EC_SENSORS_CORE=m +CONFIG_IIO_CROS_EC_SENSORS=m +CONFIG_IIO_CROS_EC_LIGHT_PROX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_IIO_CROS_EC_BARO=m +CONFIG_MPL3115=m +CONFIG_PWM=y +CONFIG_PWM_BCM2835=m +CONFIG_PWM_CROS_EC=m +CONFIG_PWM_MESON=m +CONFIG_PWM_RCAR=m +CONFIG_PWM_ROCKCHIP=y +CONFIG_PWM_SAMSUNG=y +CONFIG_PWM_SL28CPLD=m +CONFIG_PWM_SUN4I=m +CONFIG_PWM_TEGRA=m +CONFIG_SL28CPLD_INTC=y +CONFIG_QCOM_PDC=y +CONFIG_RESET_IMX7=y +CONFIG_RESET_QCOM_AOSS=y +CONFIG_RESET_QCOM_PDC=m +CONFIG_RESET_TI_SCI=y +CONFIG_PHY_XGENE=y +CONFIG_PHY_SUN4I_USB=y +CONFIG_PHY_MIXEL_MIPI_DPHY=m +CONFIG_PHY_HI6220_USB=y +CONFIG_PHY_HISTB_COMBPHY=y +CONFIG_PHY_HISI_INNO_USB2=y +CONFIG_PHY_MVEBU_CP110_COMPHY=y +CONFIG_PHY_QCOM_QMP=m +CONFIG_PHY_QCOM_QUSB2=m +CONFIG_PHY_QCOM_USB_HS=y +CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=y +CONFIG_PHY_RCAR_GEN3_PCIE=y +CONFIG_PHY_RCAR_GEN3_USB2=y +CONFIG_PHY_RCAR_GEN3_USB3=m +CONFIG_PHY_ROCKCHIP_EMMC=y +CONFIG_PHY_ROCKCHIP_INNO_HDMI=m +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +CONFIG_PHY_ROCKCHIP_PCIE=m +CONFIG_PHY_ROCKCHIP_TYPEC=y +CONFIG_PHY_UNIPHIER_USB2=y +CONFIG_PHY_UNIPHIER_USB3=y +CONFIG_PHY_TEGRA_XUSB=y +CONFIG_ARM_SMMU_V3_PMU=m +CONFIG_FSL_IMX8_DDR_PMU=m +CONFIG_HISI_PMU=y +CONFIG_QCOM_L2_PMU=y +CONFIG_QCOM_L3_PMU=y +CONFIG_NVMEM_IMX_OCOTP=y +CONFIG_NVMEM_IMX_OCOTP_SCU=y +CONFIG_QCOM_QFPROM=y +CONFIG_ROCKCHIP_EFUSE=y +CONFIG_NVMEM_SUNXI_SID=y +CONFIG_UNIPHIER_EFUSE=y +CONFIG_MESON_EFUSE=m +CONFIG_FPGA=y +CONFIG_FPGA_MGR_STRATIX10_SOC=m +CONFIG_FPGA_BRIDGE=m +CONFIG_ALTERA_FREEZE_BRIDGE=m +CONFIG_FPGA_REGION=m +CONFIG_OF_FPGA_REGION=m +CONFIG_TEE=y +CONFIG_OPTEE=y +CONFIG_SLIMBUS=m +CONFIG_SLIM_QCOM_CTRL=m +CONFIG_SLIM_QCOM_NGD_CTRL=m +CONFIG_MUX_MMIO=y +CONFIG_INTERCONNECT=y +CONFIG_INTERCONNECT_QCOM=y +CONFIG_INTERCONNECT_QCOM_MSM8916=m +CONFIG_INTERCONNECT_QCOM_SDM845=m +CONFIG_INTERCONNECT_QCOM_SM8150=m +CONFIG_INTERCONNECT_QCOM_SM8250=m +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_BTRFS_FS=m +CONFIG_BTRFS_FS_POSIX_ACL=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=m +CONFIG_CUSE=m +CONFIG_OVERLAY_FS=m +CONFIG_VFAT_FS=y +CONFIG_HUGETLBFS=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=y +CONFIG_SQUASHFS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V4=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_ROOT_NFS=y +CONFIG_9P_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_ISO8859_1=y +CONFIG_SECURITY=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_USER_API_RNG=m +CONFIG_CRYPTO_DEV_SUN8I_CE=m +CONFIG_CRYPTO_DEV_FSL_CAAM=m +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=m +CONFIG_CRYPTO_DEV_QCOM_RNG=m +CONFIG_CRYPTO_DEV_CCREE=m +CONFIG_CRYPTO_DEV_HISI_SEC2=m +CONFIG_CRYPTO_DEV_HISI_ZIP=m +CONFIG_CRYPTO_DEV_HISI_HPRE=m +CONFIG_CMA_SIZE_MBYTES=32 +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_KERNEL=y +# CONFIG_SCHED_DEBUG is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_FTRACE is not set +CONFIG_MEMTEST=y diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/sysdig/0.23.1/driver.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/sysdig/0.23.1/driver.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/sysdig/0.23.1/driver.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/sysdig/0.23.1/driver.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/sysdig/0.23.1/luajit.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/sysdig/0.23.1/luajit.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/sysdig/0.23.1/luajit.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/sysdig/0.23.1/luajit.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/systemd/240/dhcp-multiple-addresses-for-router.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/systemd/240/dhcp-multiple-addresses-for-router.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/systemd/240/dhcp-multiple-addresses-for-router.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/systemd/240/dhcp-multiple-addresses-for-router.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/systemd/240/rdrand-workaround-on-amd.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/systemd/240/rdrand-workaround-on-amd.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/systemd/240/rdrand-workaround-on-amd.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/systemd/240/rdrand-workaround-on-amd.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/patches/varlink/19/ctags.patch b/deploy/iso/minikube-iso/board/minikube/aarch64/patches/varlink/19/ctags.patch similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/patches/varlink/19/ctags.patch rename to deploy/iso/minikube-iso/board/minikube/aarch64/patches/varlink/19/ctags.patch diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/permissions b/deploy/iso/minikube-iso/board/minikube/aarch64/permissions similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/permissions rename to deploy/iso/minikube-iso/board/minikube/aarch64/permissions diff --git a/deploy/iso/minikube-iso/board/iso/x86_64/post-build.sh b/deploy/iso/minikube-iso/board/minikube/aarch64/post-build.sh similarity index 100% rename from deploy/iso/minikube-iso/board/iso/x86_64/post-build.sh rename to deploy/iso/minikube-iso/board/minikube/aarch64/post-build.sh diff --git a/deploy/iso/minikube-iso/board/iso/x86_64/post-image.sh b/deploy/iso/minikube-iso/board/minikube/aarch64/post-image.sh similarity index 93% rename from deploy/iso/minikube-iso/board/iso/x86_64/post-image.sh rename to deploy/iso/minikube-iso/board/minikube/aarch64/post-image.sh index b3b21c3304..ade1610b78 100755 --- a/deploy/iso/minikube-iso/board/iso/x86_64/post-image.sh +++ b/deploy/iso/minikube-iso/board/minikube/aarch64/post-image.sh @@ -22,8 +22,8 @@ support/scripts/genimage.sh -c "$GENIMAGE_CFG" cd "$BINARIES_DIR" mkdir -p root/boot -cp bzImage root/boot/vmlinuz -cp rootfs.cpio.gz root/boot/initrd.img +cp Image root/boot/bzimage +cp rootfs.cpio.lz4 root/boot/initrd mkdir -p root/EFI/BOOT cp efi-part/EFI/BOOT/* root/EFI/BOOT/ cp efiboot.img root/EFI/BOOT/ diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/cni/net.d/.keep b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/cni/net.d/.keep similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/cni/net.d/.keep rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/cni/net.d/.keep diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/docker/.keep b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/docker/.keep similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/docker/.keep rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/docker/.keep diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/fstab b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/fstab similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/fstab rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/fstab diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/motd b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/motd similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/motd rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/motd diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/ssh/sshd_config b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/ssh/sshd_config similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/ssh/sshd_config rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/ssh/sshd_config diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sudoers b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sudoers similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sudoers rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sudoers diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/journald.conf b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/journald.conf similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/journald.conf rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/journald.conf diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/network/10-eth1.network b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/network/10-eth1.network similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/network/10-eth1.network rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/network/10-eth1.network diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/network/20-dhcp.network b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/network/20-dhcp.network similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/network/20-dhcp.network rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/network/20-dhcp.network diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/init b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/init similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/init rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/init diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/bin/toolbox b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/usr/bin/toolbox similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/usr/bin/toolbox rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/usr/bin/toolbox diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/var/lib/boot2docker/.keep b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/var/lib/boot2docker/.keep similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/var/lib/boot2docker/.keep rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/var/lib/boot2docker/.keep diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/var/log/.keep b/deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/var/log/.keep similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/rootfs-overlay/var/log/.keep rename to deploy/iso/minikube-iso/board/minikube/aarch64/rootfs-overlay/var/log/.keep diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/users b/deploy/iso/minikube-iso/board/minikube/aarch64/users similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/users rename to deploy/iso/minikube-iso/board/minikube/aarch64/users diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/genimage.cfg b/deploy/iso/minikube-iso/board/minikube/x86_64/genimage.cfg new file mode 100644 index 0000000000..0411d3cf49 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/genimage.cfg @@ -0,0 +1,12 @@ +image efiboot.img { + vfat { + label = "EFIBOOTISO" + file startup.nsh { + image = "efi-part/startup.nsh" + } + file EFI { + image = "efi-part/EFI" + } + } + size = 1474560 +} diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/grub-stub.cfg b/deploy/iso/minikube-iso/board/minikube/x86_64/grub-stub.cfg new file mode 100644 index 0000000000..e0b01cf7f5 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/grub-stub.cfg @@ -0,0 +1,6 @@ +insmod iso9660 +insmod udf + +search --no-floppy --label EFIBOOTISO --set root + +# used to find the cd diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg b/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg new file mode 100644 index 0000000000..009b345539 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/grub.cfg @@ -0,0 +1,7 @@ +set default="0" +set timeout="5" + +menuentry "Buildroot" { + linux /boot/bzimage console=tty0 rw # kernel + initrd /boot/initrd # rootfs +} diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/isolinux.cfg b/deploy/iso/minikube-iso/board/minikube/x86_64/isolinux.cfg similarity index 100% rename from deploy/iso/minikube-iso/board/coreos/minikube/isolinux.cfg rename to deploy/iso/minikube-iso/board/minikube/x86_64/isolinux.cfg diff --git a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig similarity index 99% rename from deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig rename to deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig index 2a91b1fdaf..2c5364616d 100644 --- a/deploy/iso/minikube-iso/board/coreos/minikube/linux_defconfig +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/linux_x86_64_defconfig @@ -525,3 +525,4 @@ CONFIG_PROVIDE_OHCI1394_DMA_INIT=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_DEBUG_BOOT_PARAMS=y CONFIG_OPTIMIZE_INLINING=y +CONFIG_FRAMEBUFFER_CONSOLE=y diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch new file mode 100644 index 0000000000..1cdd0b5936 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/go/1.15.15/dist-generate-stub-go.mod-in-workdir.patch @@ -0,0 +1,78 @@ +From 2b512af2ddaae01926fdcc9056b71017cac2a8d2 Mon Sep 17 00:00:00 2001 +From: Tamir Duberstein +Date: Thu, 25 Feb 2021 16:44:46 -0500 +Subject: [PATCH] dist: generate stub go.mod in workdir + +(cherry picked from commit c6374f516206c02b905d0d76ee1a66dab6fcd212) +--- + src/cmd/dist/build.go | 26 ++++++-------------------- + 1 file changed, 6 insertions(+), 20 deletions(-) + +diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go +index 9e2b4f33b8..e5a7f9e9c4 100644 +--- a/src/cmd/dist/build.go ++++ b/src/cmd/dist/build.go +@@ -110,9 +110,6 @@ func xinit() { + fatalf("$GOROOT must be set") + } + goroot = filepath.Clean(b) +- if modRoot := findModuleRoot(goroot); modRoot != "" { +- fatalf("found go.mod file in %s: $GOROOT must not be inside a module", modRoot) +- } + + b = os.Getenv("GOROOT_FINAL") + if b == "" { +@@ -244,6 +241,9 @@ func xinit() { + os.Setenv("LANGUAGE", "en_US.UTF8") + + workdir = xworkdir() ++ if err := ioutil.WriteFile(pathf("%s/go.mod", workdir), []byte("module bootstrap"), 0666); err != nil { ++ fatalf("cannot write stub go.mod: %s", err) ++ } + xatexit(rmworkdir) + + tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch) +@@ -1484,11 +1484,11 @@ func goCmd(goBinary string, cmd string, args ...string) { + goCmd = append(goCmd, "-p=1") + } + +- run(goroot, ShowOutput|CheckExit, append(goCmd, args...)...) ++ run(workdir, ShowOutput|CheckExit, append(goCmd, args...)...) + } + + func checkNotStale(goBinary string, targets ...string) { +- out := run(goroot, CheckExit, ++ out := run(workdir, CheckExit, + append([]string{ + goBinary, + "list", "-gcflags=all=" + gogcflags, "-ldflags=all=" + goldflags, +@@ -1498,7 +1498,7 @@ func checkNotStale(goBinary string, targets ...string) { + os.Setenv("GODEBUG", "gocachehash=1") + for _, target := range []string{"runtime/internal/sys", "cmd/dist", "cmd/link"} { + if strings.Contains(out, "STALE "+target) { +- run(goroot, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) ++ run(workdir, ShowOutput|CheckExit, goBinary, "list", "-f={{.ImportPath}} {{.Stale}}", target) + break + } + } +@@ -1590,20 +1590,6 @@ func checkCC() { + } + } + +-func findModuleRoot(dir string) (root string) { +- for { +- if fi, err := os.Stat(filepath.Join(dir, "go.mod")); err == nil && !fi.IsDir() { +- return dir +- } +- d := filepath.Dir(dir) +- if d == dir { +- break +- } +- dir = d +- } +- return "" +-} +- + func defaulttarg() string { + // xgetwd might return a path with symlinks fully resolved, and if + // there happens to be symlinks in goroot, then the hasprefix test diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/driver.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/driver.patch new file mode 100644 index 0000000000..71a73033a3 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/driver.patch @@ -0,0 +1,1614 @@ +From e272b73e703e5691f79d3a15005ba2c937d203eb Mon Sep 17 00:00:00 2001 +From: Nathan Baker <7409217+nathan-b@users.noreply.github.com> +Date: Thu, 23 May 2019 09:59:06 -0400 +Subject: [PATCH] Changes to build the kmod with 5.1 kernels [SMAGENT-1643] + (#1413) + +[SMAGENT-1643] Changes to build the kmod with 5.1 kernels + +* The syscall_get_arguments function changed its parameters. +* The mmap symbols changed header locations +* Wrapped the kernel version check in a function + +(cherry picked from commit a6ab1e66fc05a02178e051ea2441633996d5871e) +--- + driver/main.c | 21 ++- + driver/ppm.h | 2 + + driver/ppm_events.c | 47 +++--- + driver/ppm_fillers.c | 333 ++++++++++++++++++++------------------ + driver/ppm_flag_helpers.h | 3 +- + 5 files changed, 221 insertions(+), 185 deletions(-) + +diff --git a/driver/main.c b/driver/main.c +index a9febf28..e2bdf992 100644 +--- a/driver/main.c ++++ b/driver/main.c +@@ -225,6 +225,15 @@ do { \ + pr_info(fmt, ##__VA_ARGS__); \ + } while (0) + ++inline void ppm_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, unsigned long *args) ++{ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)) ++ syscall_get_arguments(task, regs, 0, 6, args); ++#else ++ syscall_get_arguments(task, regs, args); ++#endif ++} ++ + /* compat tracepoint functions */ + static int compat_register_trace(void *func, const char *probename, struct tracepoint *tp) + { +@@ -1275,11 +1284,10 @@ static const unsigned char compat_nas[21] = { + #ifdef _HAS_SOCKETCALL + static enum ppm_event_type parse_socketcall(struct event_filler_arguments *filler_args, struct pt_regs *regs) + { +- unsigned long __user args[2]; ++ unsigned long __user args[6] = {}; + unsigned long __user *scargs; + int socketcall_id; +- +- syscall_get_arguments(current, regs, 0, 2, args); ++ ppm_syscall_get_arguments(current, regs, args); + socketcall_id = args[0]; + scargs = (unsigned long __user *)args[1]; + +@@ -1394,6 +1402,7 @@ static inline void record_drop_x(struct ppm_consumer_t *consumer, struct timespe + static inline int drop_nostate_event(enum ppm_event_type event_type, + struct pt_regs *regs) + { ++ unsigned long args[6] = {}; + unsigned long arg = 0; + int close_fd = -1; + struct files_struct *files; +@@ -1415,7 +1424,8 @@ static inline int drop_nostate_event(enum ppm_event_type event_type, + * The invalid fd events don't matter to userspace in dropping mode, + * so we do this before the UF_NEVER_DROP check + */ +- syscall_get_arguments(current, regs, 0, 1, &arg); ++ ppm_syscall_get_arguments(current, regs, args); ++ arg = args[0]; + close_fd = (int)arg; + + files = current->files; +@@ -1435,7 +1445,8 @@ static inline int drop_nostate_event(enum ppm_event_type event_type, + case PPME_SYSCALL_FCNTL_E: + case PPME_SYSCALL_FCNTL_X: + // cmd arg +- syscall_get_arguments(current, regs, 1, 1, &arg); ++ ppm_syscall_get_arguments(current, regs, args); ++ arg = args[1]; + if (arg != F_DUPFD && arg != F_DUPFD_CLOEXEC) + drop = true; + break; +diff --git a/driver/ppm.h b/driver/ppm.h +index fa8f3378..dede196f 100644 +--- a/driver/ppm.h ++++ b/driver/ppm.h +@@ -120,4 +120,6 @@ extern const struct syscall_evt_pair g_syscall_ia32_table[]; + extern const enum ppm_syscall_code g_syscall_ia32_code_routing_table[]; + #endif + ++extern void ppm_syscall_get_arguments(struct task_struct *task, struct pt_regs *regs, unsigned long *args); ++ + #endif /* PPM_H_ */ +diff --git a/driver/ppm_events.c b/driver/ppm_events.c +index 7b0a9ba3..7be81657 100644 +--- a/driver/ppm_events.c ++++ b/driver/ppm_events.c +@@ -249,14 +249,16 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l + if (err == 0) { + if(args->event_type == PPME_SOCKET_SENDTO_X) + { ++ unsigned long syscall_args[6] = {}; + unsigned long val; + struct sockaddr __user * usrsockaddr; + /* + * Get the address + */ +- if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 4, 1, &val); +- else ++ if (!args->is_socketcall) { ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[4]; ++ } else + val = args->socketcall_args[4]; + + usrsockaddr = (struct sockaddr __user *)val; +@@ -270,9 +272,10 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l + /* + * Get the address len + */ +- if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 5, 1, &val); +- else ++ if (!args->is_socketcall) { ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[5]; ++ } else + val = args->socketcall_args[5]; + + if (val != 0) { +@@ -288,6 +291,7 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l + } + } + } else if (args->event_type == PPME_SOCKET_SENDMSG_X) { ++ unsigned long syscall_args[6] = {}; + unsigned long val; + struct sockaddr __user * usrsockaddr; + int addrlen; +@@ -300,9 +304,10 @@ inline u32 compute_snaplen(struct event_filler_arguments *args, char *buf, u32 l + struct msghdr mh; + #endif + +- if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); +- else ++ if (!args->is_socketcall) { ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[1]; ++ } else + val = args->socketcall_args[1]; + + #ifdef CONFIG_COMPAT +@@ -1102,6 +1107,7 @@ int32_t parse_readv_writev_bufs(struct event_filler_arguments *args, const struc + unsigned long bufsize; + char *targetbuf = args->str_storage; + u32 targetbuflen = STR_STORAGE_SIZE; ++ unsigned long syscall_args[6] = {}; + unsigned long val; + u32 notcopied_len; + size_t tocopy_len; +@@ -1147,9 +1153,10 @@ int32_t parse_readv_writev_bufs(struct event_filler_arguments *args, const struc + /* + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ +- if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); +- else ++ if (!args->is_socketcall) { ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[0]; ++ } else + val = args->socketcall_args[0]; + args->fd = (int)val; + +@@ -1233,6 +1240,7 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons + unsigned long bufsize; + char *targetbuf = args->str_storage; + u32 targetbuflen = STR_STORAGE_SIZE; ++ unsigned long syscall_args[6] = {}; + unsigned long val; + u32 notcopied_len; + compat_size_t tocopy_len; +@@ -1278,9 +1286,10 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons + /* + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ +- if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); +- else ++ if (!args->is_socketcall) { ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[0]; ++ } else + val = args->socketcall_args[0]; + args->fd = (int)val; + +@@ -1364,6 +1373,7 @@ int32_t compat_parse_readv_writev_bufs(struct event_filler_arguments *args, cons + int f_sys_autofill(struct event_filler_arguments *args) + { + int res; ++ unsigned long syscall_args[6] = {}; + unsigned long val; + u32 j; + int64_t retval; +@@ -1382,11 +1392,8 @@ int f_sys_autofill(struct event_filler_arguments *args) + /* + * Regular argument + */ +- syscall_get_arguments(current, +- args->regs, +- evinfo->autofill_args[j].id, +- 1, +- &val); ++ ppm_syscall_get_arguments(current, args->regs, syscall_args); ++ val = syscall_args[evinfo->autofill_args[j].id]; + } + + res = val_to_ring(args, val, 0, true, 0); +diff --git a/driver/ppm_fillers.c b/driver/ppm_fillers.c +index e595c0f0..4770fe49 100644 +--- a/driver/ppm_fillers.c ++++ b/driver/ppm_fillers.c +@@ -56,6 +56,23 @@ along with sysdig. If not, see . + + #define merge_64(hi, lo) ((((unsigned long long)(hi)) << 32) + ((lo) & 0xffffffffUL)) + ++/* ++ * Linux 5.1 kernels modify the syscall_get_arguments function to always ++ * return all arguments rather than allowing the caller to select which ++ * arguments are desired. This wrapper replicates the original ++ * functionality. ++ */ ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 1, 0)) ++#define syscall_get_arguments_deprecated syscall_get_arguments ++#else ++#define syscall_get_arguments_deprecated(_task, _reg, _start, _len, _args) \ ++ do { \ ++ unsigned long _sga_args[6] = {}; \ ++ syscall_get_arguments(_task, _reg, _sga_args); \ ++ memcpy(_args, &_sga_args[_start], _len); \ ++ } while(0) ++#endif ++ + int f_sys_generic(struct event_filler_arguments *args) + { + int res; +@@ -115,7 +132,7 @@ int f_sys_single(struct event_filler_arguments *args) + int res; + unsigned long val; + +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -155,7 +172,7 @@ int f_sys_open_x(struct event_filler_arguments *args) + /* + * name + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -164,7 +181,7 @@ int f_sys_open_x(struct event_filler_arguments *args) + * Flags + * Note that we convert them into the ppm portable representation before pushing them to the ring + */ +- syscall_get_arguments(current, args->regs, 1, 1, &flags); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &flags); + res = val_to_ring(args, open_flags_to_scap(flags), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -172,7 +189,7 @@ int f_sys_open_x(struct event_filler_arguments *args) + /* + * mode + */ +- syscall_get_arguments(current, args->regs, 2, 1, &modes); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &modes); + res = val_to_ring(args, open_modes_to_scap(flags, modes), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -190,7 +207,7 @@ int f_sys_read_x(struct event_filler_arguments *args) + /* + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + args->fd = (int)val; + + /* +@@ -211,7 +228,7 @@ int f_sys_read_x(struct event_filler_arguments *args) + val = 0; + bufsize = 0; + } else { +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + + /* + * The return value can be lower than the value provided by the user, +@@ -241,7 +258,7 @@ int f_sys_write_x(struct event_filler_arguments *args) + /* + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + args->fd = (int)val; + + /* +@@ -256,13 +273,13 @@ int f_sys_write_x(struct event_filler_arguments *args) + /* + * data + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + bufsize = val; + + /* + * Copy the buffer + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + args->enforce_snaplen = true; + res = val_to_ring(args, val, bufsize, true, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -701,7 +718,7 @@ int f_proc_startupdate(struct event_filler_arguments *args) + */ + args->str_storage[0] = 0; + +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) + args_len = compat_accumulate_argv_or_env((compat_uptr_t)val, +@@ -873,9 +890,9 @@ cgroups_error: + */ + if (args->event_type == PPME_SYSCALL_CLONE_20_X) { + #ifdef CONFIG_S390 +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + #else +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + #endif + } else + val = 0; +@@ -948,7 +965,7 @@ cgroups_error: + /* + * The call failed, so get the env from the arguments + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) + env_len = compat_accumulate_argv_or_env((compat_uptr_t)val, +@@ -1003,7 +1020,7 @@ int f_sys_execve_e(struct event_filler_arguments *args) + /* + * filename + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (res == PPM_FAILURE_INVALID_USER_MEMORY) + res = val_to_ring(args, (unsigned long)"", 0, false, 0); +@@ -1035,7 +1052,7 @@ int f_sys_socket_bind_x(struct event_filler_arguments *args) + * addr + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1045,7 +1062,7 @@ int f_sys_socket_bind_x(struct event_filler_arguments *args) + * Get the address len + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + else + val = args->socketcall_args[2]; + +@@ -1103,7 +1120,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) + * in the stack, and therefore we can consume them. + */ + if (!args->is_socketcall) { +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + fd = (int)val; + } else + fd = (int)args->socketcall_args[0]; +@@ -1113,7 +1130,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) + * Get the address + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1123,7 +1140,7 @@ int f_sys_connect_x(struct event_filler_arguments *args) + * Get the address len + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + else + val = args->socketcall_args[2]; + +@@ -1188,7 +1205,7 @@ int f_sys_socketpair_x(struct event_filler_arguments *args) + * fds + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + else + val = args->socketcall_args[3]; + #ifdef CONFIG_COMPAT +@@ -1308,7 +1325,7 @@ int f_sys_accept_x(struct event_filler_arguments *args) + * queuepct + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &srvskfd); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &srvskfd); + else + srvskfd = args->socketcall_args[0]; + +@@ -1350,7 +1367,7 @@ int f_sys_send_e_common(struct event_filler_arguments *args, int *fd) + * fd + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + else + val = args->socketcall_args[0]; + +@@ -1364,7 +1381,7 @@ int f_sys_send_e_common(struct event_filler_arguments *args, int *fd) + * size + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 2, 1, &size); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); + else + size = args->socketcall_args[2]; + +@@ -1411,7 +1428,7 @@ int f_sys_sendto_e(struct event_filler_arguments *args) + * Get the address + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 4, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); + else + val = args->socketcall_args[4]; + +@@ -1421,7 +1438,7 @@ int f_sys_sendto_e(struct event_filler_arguments *args) + * Get the address len + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 5, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); + else + val = args->socketcall_args[5]; + +@@ -1469,7 +1486,7 @@ int f_sys_send_x(struct event_filler_arguments *args) + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + else + val = args->socketcall_args[0]; + +@@ -1494,7 +1511,7 @@ int f_sys_send_x(struct event_filler_arguments *args) + bufsize = 0; + } else { + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1523,7 +1540,7 @@ int f_sys_recv_x_common(struct event_filler_arguments *args, int64_t *retval) + * Retrieve the FD. It will be used for dynamic snaplen calculation. + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1548,7 +1565,7 @@ int f_sys_recv_x_common(struct event_filler_arguments *args, int64_t *retval) + bufsize = 0; + } else { + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1604,7 +1621,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) + * Get the fd + */ + if (!args->is_socketcall) { +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + fd = (int)val; + } else + fd = (int)args->socketcall_args[0]; +@@ -1613,7 +1630,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) + * Get the address + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 4, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); + else + val = args->socketcall_args[4]; + usrsockaddr = (struct sockaddr __user *)val; +@@ -1622,7 +1639,7 @@ int f_sys_recvfrom_x(struct event_filler_arguments *args) + * Get the address len + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 5, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); + else + val = args->socketcall_args[5]; + if (usrsockaddr != NULL && val != 0) { +@@ -1698,7 +1715,7 @@ int f_sys_sendmsg_e(struct event_filler_arguments *args) + * fd + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + else + val = args->socketcall_args[0]; + +@@ -1711,7 +1728,7 @@ int f_sys_sendmsg_e(struct event_filler_arguments *args) + * Retrieve the message header + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1823,7 +1840,7 @@ int f_sys_sendmsg_x(struct event_filler_arguments *args) + * Retrieve the message header + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1896,7 +1913,7 @@ int f_sys_recvmsg_x(struct event_filler_arguments *args) + * Retrieve the message header + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -1940,7 +1957,7 @@ int f_sys_recvmsg_x(struct event_filler_arguments *args) + * Get the fd + */ + if (!args->is_socketcall) { +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + fd = (int)val; + } else + fd = (int)args->socketcall_args[0]; +@@ -2002,7 +2019,7 @@ int f_sys_pipe_x(struct event_filler_arguments *args) + /* + * fds + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + #ifdef CONFIG_COMPAT + if (!args->compat) { +@@ -2050,7 +2067,7 @@ int f_sys_eventfd_e(struct event_filler_arguments *args) + /* + * initval + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2059,7 +2076,7 @@ int f_sys_eventfd_e(struct event_filler_arguments *args) + * flags + * XXX not implemented yet + */ +- /* syscall_get_arguments(current, args->regs, 1, 1, &val); */ ++ /* syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); */ + val = 0; + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -2077,7 +2094,7 @@ int f_sys_shutdown_e(struct event_filler_arguments *args) + * fd + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + else + val = args->socketcall_args[0]; + +@@ -2089,7 +2106,7 @@ int f_sys_shutdown_e(struct event_filler_arguments *args) + * how + */ + if (!args->is_socketcall) +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + else + val = args->socketcall_args[1]; + +@@ -2108,7 +2125,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) + /* + * addr + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2116,7 +2133,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) + /* + * op + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, (unsigned long)futex_op_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2124,7 +2141,7 @@ int f_sys_futex_e(struct event_filler_arguments *args) + /* + * val + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2140,7 +2157,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2148,7 +2165,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) + /* + * offset + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2156,7 +2173,7 @@ int f_sys_lseek_e(struct event_filler_arguments *args) + /* + * whence + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, lseek_whence_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2175,7 +2192,7 @@ int f_sys_llseek_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2184,8 +2201,8 @@ int f_sys_llseek_e(struct event_filler_arguments *args) + * offset + * We build it by combining the offset_high and offset_low system call arguments + */ +- syscall_get_arguments(current, args->regs, 1, 1, &oh); +- syscall_get_arguments(current, args->regs, 2, 1, &ol); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &oh); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &ol); + offset = (((uint64_t)oh) << 32) + ((uint64_t)ol); + res = val_to_ring(args, offset, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -2194,7 +2211,7 @@ int f_sys_llseek_e(struct event_filler_arguments *args) + /* + * whence + */ +- syscall_get_arguments(current, args->regs, 4, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); + res = val_to_ring(args, lseek_whence_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2218,7 +2235,7 @@ static int poll_parse_fds(struct event_filler_arguments *args, bool enter_event) + * + * Get the number of fds + */ +- syscall_get_arguments(current, args->regs, 1, 1, &nfds); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &nfds); + + /* + * Check if we have enough space to store both the fd list +@@ -2228,7 +2245,7 @@ static int poll_parse_fds(struct event_filler_arguments *args, bool enter_event) + return PPM_FAILURE_BUFFER_FULL; + + /* Get the fds pointer */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + fds = (struct pollfd *)args->str_storage; + #ifdef CONFIG_COMPAT +@@ -2285,7 +2302,7 @@ int f_sys_poll_e(struct event_filler_arguments *args) + /* + * timeout + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2340,7 +2357,7 @@ int f_sys_ppoll_e(struct event_filler_arguments *args) + /* + * timeout + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + /* NULL timeout specified as 0xFFFFFF.... */ + if (val == (unsigned long)NULL) + res = val_to_ring(args, (uint64_t)(-1), 0, false, 0); +@@ -2352,7 +2369,7 @@ int f_sys_ppoll_e(struct event_filler_arguments *args) + /* + * sigmask + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + if (val != (unsigned long)NULL) + if (0 != ppm_copy_from_user(&val, (void __user *)val, sizeof(val))) + return PPM_FAILURE_INVALID_USER_MEMORY; +@@ -2394,7 +2411,7 @@ int f_sys_mount_e(struct event_filler_arguments *args) + * Fix mount flags in arg 3. + * See http://lxr.free-electrons.com/source/fs/namespace.c?v=4.2#L2650 + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + if ((val & PPM_MS_MGC_MSK) == PPM_MS_MGC_VAL) + val &= ~PPM_MS_MGC_MSK; + res = val_to_ring(args, val, 0, false, 0); +@@ -2420,7 +2437,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) + /* + * dirfd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -2432,7 +2449,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) + /* + * name + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2441,7 +2458,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) + * Flags + * Note that we convert them into the ppm portable representation before pushing them to the ring + */ +- syscall_get_arguments(current, args->regs, 2, 1, &flags); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &flags); + res = val_to_ring(args, open_flags_to_scap(flags), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2449,7 +2466,7 @@ int f_sys_openat_x(struct event_filler_arguments *args) + /* + * mode + */ +- syscall_get_arguments(current, args->regs, 3, 1, &modes); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &modes); + res = val_to_ring(args, open_modes_to_scap(flags, modes), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2471,7 +2488,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) + /* + * dirfd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -2483,7 +2500,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) + /* + * name + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2492,7 +2509,7 @@ int f_sys_unlinkat_x(struct event_filler_arguments *args) + * flags + * Note that we convert them into the ppm portable representation before pushing them to the ring + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, unlinkat_flags_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2515,7 +2532,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) + /* + * olddir + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -2527,7 +2544,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) + /* + * oldpath + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2535,7 +2552,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) + /* + * newdir + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -2547,7 +2564,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) + /* + * newpath + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2556,7 +2573,7 @@ int f_sys_linkat_x(struct event_filler_arguments *args) + * Flags + * Note that we convert them into the ppm portable representation before pushing them to the ring + */ +- syscall_get_arguments(current, args->regs, 4, 1, &flags); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &flags); + res = val_to_ring(args, linkat_flags_to_scap(flags), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2577,7 +2594,7 @@ int f_sys_pread64_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2585,7 +2602,7 @@ int f_sys_pread64_e(struct event_filler_arguments *args) + /* + * size + */ +- syscall_get_arguments(current, args->regs, 2, 1, &size); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); + res = val_to_ring(args, size, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2594,11 +2611,11 @@ int f_sys_pread64_e(struct event_filler_arguments *args) + * pos + */ + #if defined CONFIG_X86 +- syscall_get_arguments(current, args->regs, 3, 1, &pos0); +- syscall_get_arguments(current, args->regs, 4, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); + #elif defined CONFIG_ARM && CONFIG_AEABI +- syscall_get_arguments(current, args->regs, 4, 1, &pos0); +- syscall_get_arguments(current, args->regs, 5, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 5, 1, &pos1); + #else + #error This architecture/abi not yet supported + #endif +@@ -2628,7 +2645,7 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2636,7 +2653,7 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) + /* + * size + */ +- syscall_get_arguments(current, args->regs, 2, 1, &size); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &size); + res = val_to_ring(args, size, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2647,17 +2664,17 @@ int f_sys_pwrite64_e(struct event_filler_arguments *args) + * separate registers that we need to merge. + */ + #ifdef _64BIT_ARGS_SINGLE_REGISTER +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; + #else + #if defined CONFIG_X86 +- syscall_get_arguments(current, args->regs, 3, 1, &pos0); +- syscall_get_arguments(current, args->regs, 4, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); + #elif defined CONFIG_ARM && CONFIG_AEABI +- syscall_get_arguments(current, args->regs, 4, 1, &pos0); +- syscall_get_arguments(current, args->regs, 5, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 5, 1, &pos1); + #else + #error This architecture/abi not yet supported + #endif +@@ -2695,8 +2712,8 @@ int f_sys_readv_preadv_x(struct event_filler_arguments *args) + /* + * data and size + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); +- syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); + + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) { +@@ -2727,7 +2744,7 @@ int f_sys_writev_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2735,12 +2752,12 @@ int f_sys_writev_e(struct event_filler_arguments *args) + /* + * size + */ +- syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); + + /* + * Copy the buffer + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) { + compat_iov = (const struct compat_iovec __user *)compat_ptr(val); +@@ -2783,13 +2800,13 @@ int f_sys_writev_pwritev_x(struct event_filler_arguments *args) + /* + * data and size + */ +- syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); + + + /* + * Copy the buffer + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) { + compat_iov = (const struct compat_iovec __user *)compat_ptr(val); +@@ -2818,7 +2835,7 @@ int f_sys_preadv64_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2833,8 +2850,8 @@ int f_sys_preadv64_e(struct event_filler_arguments *args) + * requirements apply here. For an overly-detailed discussion about + * this, see https://lwn.net/Articles/311630/ + */ +- syscall_get_arguments(current, args->regs, 3, 1, &pos0); +- syscall_get_arguments(current, args->regs, 4, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); + + pos64 = merge_64(pos1, pos0); + +@@ -2864,7 +2881,7 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2872,12 +2889,12 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) + /* + * size + */ +- syscall_get_arguments(current, args->regs, 2, 1, &iovcnt); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &iovcnt); + + /* + * Copy the buffer + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + #ifdef CONFIG_COMPAT + if (unlikely(args->compat)) { + compat_iov = (const struct compat_iovec __user *)compat_ptr(val); +@@ -2900,7 +2917,7 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) + * separate registers that we need to merge. + */ + #ifdef _64BIT_ARGS_SINGLE_REGISTER +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2911,8 +2928,8 @@ int f_sys_pwritev_e(struct event_filler_arguments *args) + * requirements apply here. For an overly-detailed discussion about + * this, see https://lwn.net/Articles/311630/ + */ +- syscall_get_arguments(current, args->regs, 3, 1, &pos0); +- syscall_get_arguments(current, args->regs, 4, 1, &pos1); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &pos0); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &pos1); + + pos64 = merge_64(pos1, pos0); + +@@ -2929,7 +2946,7 @@ int f_sys_nanosleep_e(struct event_filler_arguments *args) + unsigned long val; + int res; + +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = timespec_parse(args, val); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -2946,7 +2963,7 @@ int f_sys_getrlimit_setrlimit_e(struct event_filler_arguments *args) + /* + * resource + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + ppm_resource = rlimit_resource_to_scap(val); + +@@ -2981,7 +2998,7 @@ int f_sys_getrlimit_setrlrimit_x(struct event_filler_arguments *args) + * Copy the user structure and extract cur and max + */ + if (retval >= 0 || args->event_type == PPME_SYSCALL_SETRLIMIT_X) { +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + + #ifdef CONFIG_COMPAT + if (!args->compat) { +@@ -3029,7 +3046,7 @@ int f_sys_prlimit_e(struct event_filler_arguments *args) + /* + * pid + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -3038,7 +3055,7 @@ int f_sys_prlimit_e(struct event_filler_arguments *args) + /* + * resource + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + + ppm_resource = rlimit_resource_to_scap(val); + +@@ -3075,7 +3092,7 @@ int f_sys_prlimit_x(struct event_filler_arguments *args) + * Copy the user structure and extract cur and max + */ + if (retval >= 0) { +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + + #ifdef CONFIG_COMPAT + if (!args->compat) { +@@ -3103,7 +3120,7 @@ int f_sys_prlimit_x(struct event_filler_arguments *args) + newmax = -1; + } + +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + + #ifdef CONFIG_COMPAT + if (!args->compat) { +@@ -3258,7 +3275,7 @@ int f_sys_fcntl_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3266,7 +3283,7 @@ int f_sys_fcntl_e(struct event_filler_arguments *args) + /* + * cmd + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, fcntl_cmd_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3280,7 +3297,7 @@ static inline int parse_ptrace_addr(struct event_filler_arguments *args, u16 req + uint64_t dst; + u8 idx; + +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + switch (request) { + default: + idx = PPM_PTRACE_IDX_UINT64; +@@ -3297,7 +3314,7 @@ static inline int parse_ptrace_data(struct event_filler_arguments *args, u16 req + uint64_t dst; + u8 idx; + +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + switch (request) { + case PPM_PTRACE_PEEKTEXT: + case PPM_PTRACE_PEEKDATA: +@@ -3345,7 +3362,7 @@ int f_sys_ptrace_e(struct event_filler_arguments *args) + /* + * request + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, ptrace_requests_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3353,7 +3370,7 @@ int f_sys_ptrace_e(struct event_filler_arguments *args) + /* + * pid + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3391,7 +3408,7 @@ int f_sys_ptrace_x(struct event_filler_arguments *args) + /* + * request + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + request = ptrace_requests_to_scap(val); + + res = parse_ptrace_addr(args, request); +@@ -3457,7 +3474,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * addr + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3465,7 +3482,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * length + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3473,7 +3490,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * prot + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, prot_flags_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3481,7 +3498,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * flags + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, mmap_flags_to_scap(val), 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3489,7 +3506,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * fd + */ +- syscall_get_arguments(current, args->regs, 4, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 4, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3497,7 +3514,7 @@ int f_sys_mmap_e(struct event_filler_arguments *args) + /* + * offset/pgoffset + */ +- syscall_get_arguments(current, args->regs, 5, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 5, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3519,7 +3536,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) + /* + * olddirfd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -3531,7 +3548,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) + /* + * oldpath + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3539,7 +3556,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) + /* + * newdirfd + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -3551,7 +3568,7 @@ int f_sys_renameat_x(struct event_filler_arguments *args) + /* + * newpath + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3573,7 +3590,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) + /* + * oldpath + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3581,7 +3598,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) + /* + * newdirfd + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -3593,7 +3610,7 @@ int f_sys_symlinkat_x(struct event_filler_arguments *args) + /* + * newpath + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3629,7 +3646,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) + /* + * out_fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3637,7 +3654,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) + /* + * in_fd + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3645,7 +3662,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) + /* + * offset + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + + if (val != 0) { + #ifdef CONFIG_COMPAT +@@ -3670,7 +3687,7 @@ int f_sys_sendfile_e(struct event_filler_arguments *args) + /* + * size + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3696,7 +3713,7 @@ int f_sys_sendfile_x(struct event_filler_arguments *args) + /* + * offset + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + + if (val != 0) { + #ifdef CONFIG_COMPAT +@@ -3732,7 +3749,7 @@ int f_sys_quotactl_e(struct event_filler_arguments *args) + /* + * extract cmd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + cmd = quotactl_cmd_to_scap(val); + res = val_to_ring(args, cmd, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -3749,7 +3766,7 @@ int f_sys_quotactl_e(struct event_filler_arguments *args) + * extract id + */ + id = 0; +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + if ((cmd == PPM_Q_GETQUOTA) || + (cmd == PPM_Q_SETQUOTA) || + (cmd == PPM_Q_XGETQUOTA) || +@@ -3792,7 +3809,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) + /* + * extract cmd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + cmd = quotactl_cmd_to_scap(val); + + /* +@@ -3806,7 +3823,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) + /* + * Add special + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -3814,7 +3831,7 @@ int f_sys_quotactl_x(struct event_filler_arguments *args) + /* + * get addr + */ +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + + /* + * get quotafilepath only for QUOTAON +@@ -3992,7 +4009,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) + /* + * ruid + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + #ifdef CONFIG_COMPAT + if (!args->compat) { + #endif +@@ -4012,7 +4029,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) + /* + * euid + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + len = ppm_copy_from_user(&uid, (void *)val, sizeof(uint32_t)); + if (unlikely(len != 0)) + return PPM_FAILURE_INVALID_USER_MEMORY; +@@ -4024,7 +4041,7 @@ int f_sys_getresuid_and_gid_x(struct event_filler_arguments *args) + /* + * suid + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + len = ppm_copy_from_user(&uid, (void *)val, sizeof(uint32_t)); + if (unlikely(len != 0)) + return PPM_FAILURE_INVALID_USER_MEMORY; +@@ -4042,12 +4059,12 @@ int f_sys_flock_e(struct event_filler_arguments *args) + int res; + u32 flags; + +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; + +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + flags = flock_flags_to_scap(val); + res = val_to_ring(args, flags, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -4065,7 +4082,7 @@ int f_sys_setns_e(struct event_filler_arguments *args) + /* + * parse fd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4073,7 +4090,7 @@ int f_sys_setns_e(struct event_filler_arguments *args) + /* + * get type, parse as clone flags as it's a subset of it + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + flags = clone_flags_to_scap(val); + res = val_to_ring(args, flags, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -4091,7 +4108,7 @@ int f_sys_unshare_e(struct event_filler_arguments *args) + /* + * get type, parse as clone flags as it's a subset of it + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + flags = clone_flags_to_scap(val); + res = val_to_ring(args, flags, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) +@@ -4192,7 +4209,7 @@ int f_sys_semop_x(struct event_filler_arguments *args) + * actually this could be read in the enter function but + * we also need to know the value to access the sembuf structs + */ +- syscall_get_arguments(current, args->regs, 2, 1, &nsops); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &nsops); + res = val_to_ring(args, nsops, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4200,7 +4217,7 @@ int f_sys_semop_x(struct event_filler_arguments *args) + /* + * sembuf + */ +- syscall_get_arguments(current, args->regs, 1, 1, (unsigned long *) &ptr); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, (unsigned long *) &ptr); + + if (nsops && ptr) { + /* max length of sembuf array in g_event_info = 2 */ +@@ -4239,7 +4256,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) + /* + * key + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4247,7 +4264,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) + /* + * nsems + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4255,7 +4272,7 @@ int f_sys_semget_e(struct event_filler_arguments *args) + /* + * semflg + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, semget_flags_to_scap(val), 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4271,7 +4288,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) + /* + * semid + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4279,7 +4296,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) + /* + * semnum + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4287,7 +4304,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) + /* + * cmd + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, semctl_cmd_to_scap(val), 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4296,7 +4313,7 @@ int f_sys_semctl_e(struct event_filler_arguments *args) + * optional argument semun/val + */ + if (val == SETVAL) +- syscall_get_arguments(current, args->regs, 3, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 3, 1, &val); + else + val = 0; + res = val_to_ring(args, val, 0, true, 0); +@@ -4314,7 +4331,7 @@ int f_sys_access_e(struct event_filler_arguments *args) + /* + * mode + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, access_flags_to_scap(val), 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4342,7 +4359,7 @@ int f_sys_bpf_x(struct event_filler_arguments *args) + /* + * fd, depending on cmd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &cmd); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &cmd); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 18, 0) + if(cmd == BPF_MAP_CREATE || cmd == BPF_PROG_LOAD) + #else +@@ -4375,7 +4392,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) + /* + * dirfd + */ +- syscall_get_arguments(current, args->regs, 0, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 0, 1, &val); + + if ((int)val == AT_FDCWD) + val = PPM_AT_FDCWD; +@@ -4387,7 +4404,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) + /* + * path + */ +- syscall_get_arguments(current, args->regs, 1, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 1, 1, &val); + res = val_to_ring(args, val, 0, true, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +@@ -4395,7 +4412,7 @@ int f_sys_mkdirat_x(struct event_filler_arguments *args) + /* + * mode + */ +- syscall_get_arguments(current, args->regs, 2, 1, &val); ++ syscall_get_arguments_deprecated(current, args->regs, 2, 1, &val); + res = val_to_ring(args, val, 0, false, 0); + if (unlikely(res != PPM_SUCCESS)) + return res; +diff --git a/driver/ppm_flag_helpers.h b/driver/ppm_flag_helpers.h +index 92aaa1a4..00f11ec9 100644 +--- a/driver/ppm_flag_helpers.h ++++ b/driver/ppm_flag_helpers.h +@@ -18,8 +18,7 @@ along with sysdig. If not, see . + + #ifndef PPM_FLAG_HELPERS_H_ + #define PPM_FLAG_HELPERS_H_ +- +-#include ++#include + #include + #include + +-- +2.26.2 + +diff --git a/driver/ppm_events.c b/driver/ppm_events.c +index 7be81657..3b94e651 100644 +--- a/driver/ppm_events.c ++++ b/driver/ppm_events.c +@@ -55,7 +55,11 @@ along with sysdig. If not, see . + #ifdef access_ok_noprefault + #define ppm_access_ok access_ok_noprefault + #else ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(5, 0, 0) + #define ppm_access_ok access_ok ++#else ++#define ppm_access_ok(type,addr,size) access_ok(addr,size) ++#endif + #endif + + extern bool g_tracers_enabled; diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/luajit.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/luajit.patch new file mode 100644 index 0000000000..1945908ba7 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/sysdig/0.23.1/luajit.patch @@ -0,0 +1,56 @@ +# hack taken from CMakeLists.txt +# PATCH_COMMAND sed -i "s/luaL_reg/luaL_Reg/g" ${PROJECT_SOURCE_DIR}/userspace/libsinsp/chisel.cpp && sed -i "s/luaL_reg/luaL_Reg/g" ${PROJECT_SOURCE_DIR}/userspace/libsinsp/lua_parser.cpp && sed -i "s/luaL_getn/lua_objlen /g" ${PROJECT_SOURCE_DIR}/userspace/libsinsp/lua_parser_api.cpp +diff -ur sysdig-0.23.1.orig/userspace/libsinsp/chisel.cpp sysdig-0.23.1/userspace/libsinsp/chisel.cpp +--- sysdig-0.23.1.orig/userspace/libsinsp/chisel.cpp 2018-08-14 22:58:06.000000000 +0200 ++++ sysdig-0.23.1/userspace/libsinsp/chisel.cpp 2020-05-17 12:33:38.871530253 +0200 +@@ -96,7 +96,7 @@ + // Lua callbacks + /////////////////////////////////////////////////////////////////////////////// + #ifdef HAS_LUA_CHISELS +-const static struct luaL_reg ll_sysdig [] = ++const static struct luaL_Reg ll_sysdig [] = + { + {"set_filter", &lua_cbacks::set_global_filter}, + {"set_snaplen", &lua_cbacks::set_snaplen}, +@@ -132,7 +132,7 @@ + {NULL,NULL} + }; + +-const static struct luaL_reg ll_chisel [] = ++const static struct luaL_Reg ll_chisel [] = + { + {"request_field", &lua_cbacks::request_field}, + {"set_filter", &lua_cbacks::set_filter}, +@@ -144,7 +144,7 @@ + {NULL,NULL} + }; + +-const static struct luaL_reg ll_evt [] = ++const static struct luaL_Reg ll_evt [] = + { + {"field", &lua_cbacks::field}, + {"get_num", &lua_cbacks::get_num}, +diff -ur sysdig-0.23.1.orig/userspace/libsinsp/lua_parser_api.cpp sysdig-0.23.1/userspace/libsinsp/lua_parser_api.cpp +--- sysdig-0.23.1.orig/userspace/libsinsp/lua_parser_api.cpp 2018-08-14 22:58:06.000000000 +0200 ++++ sysdig-0.23.1/userspace/libsinsp/lua_parser_api.cpp 2020-05-17 12:33:53.019534358 +0200 +@@ -235,7 +235,7 @@ + fprintf(stderr, "%s\n", err.c_str()); + throw sinsp_exception("parser API error"); + } +- int n = luaL_getn(ls, 3); /* get size of table */ ++ int n = lua_objlen (ls, 3); /* get size of table */ + for (i=1; i<=n; i++) + { + lua_rawgeti(ls, 3, i); +diff -ur sysdig-0.23.1.orig/userspace/libsinsp/lua_parser.cpp sysdig-0.23.1/userspace/libsinsp/lua_parser.cpp +--- sysdig-0.23.1.orig/userspace/libsinsp/lua_parser.cpp 2018-08-14 22:58:06.000000000 +0200 ++++ sysdig-0.23.1/userspace/libsinsp/lua_parser.cpp 2020-05-17 12:33:46.343532385 +0200 +@@ -14,7 +14,7 @@ + #include "lauxlib.h" + } + +-const static struct luaL_reg ll_filter [] = ++const static struct luaL_Reg ll_filter [] = + { + {"rel_expr", &lua_parser_cbacks::rel_expr}, + {"bool_op", &lua_parser_cbacks::bool_op}, diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/dhcp-multiple-addresses-for-router.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/dhcp-multiple-addresses-for-router.patch new file mode 100644 index 0000000000..10be45fdf5 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/dhcp-multiple-addresses-for-router.patch @@ -0,0 +1,470 @@ +From 398f9301fd2db3b15407a62e90d416914f94c669 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Mon, 11 Feb 2019 21:25:13 +0900 +Subject: [PATCH 1/3] network: minor coding style update + +(cherry picked from commit 860e636cf6855260634ef2f7f52af4635b1271c3) +--- + src/network/networkd-dhcp4.c | 16 +++++++--------- + 1 file changed, 7 insertions(+), 9 deletions(-) + +diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c +index 980d49e..61f767a 100644 +--- a/src/network/networkd-dhcp4.c ++++ b/src/network/networkd-dhcp4.c +@@ -70,7 +70,7 @@ static int link_set_dhcp_routes(Link *link) { + /* When the interface is part of an VRF use the VRFs routing table, unless + * there is a another table specified. */ + table = link->network->dhcp_route_table; +- if (!link->network->dhcp_route_table_set && link->network->vrf != NULL) ++ if (!link->network->dhcp_route_table_set && link->network->vrf) + table = VRF(link->network->vrf)->table; + + r = sd_dhcp_lease_get_address(link->dhcp_lease, &address); +@@ -135,14 +135,7 @@ static int link_set_dhcp_routes(Link *link) { + log_link_warning(link, "Classless static routes received from DHCP server: ignoring static-route option and router option"); + + if (r >= 0 && !classless_route) { +- _cleanup_(route_freep) Route *route = NULL; +- _cleanup_(route_freep) Route *route_gw = NULL; +- +- r = route_new(&route); +- if (r < 0) +- return log_link_error_errno(link, r, "Could not allocate route: %m"); +- +- route->protocol = RTPROT_DHCP; ++ _cleanup_(route_freep) Route *route = NULL, *route_gw = NULL; + + r = route_new(&route_gw); + if (r < 0) +@@ -166,9 +159,14 @@ static int link_set_dhcp_routes(Link *link) { + + link->dhcp4_messages++; + ++ r = route_new(&route); ++ if (r < 0) ++ return log_link_error_errno(link, r, "Could not allocate route: %m"); ++ + route->family = AF_INET; + route->gw.in = gateway; + route->prefsrc.in = address; ++ route->protocol = RTPROT_DHCP; + route->priority = link->network->dhcp_route_metric; + route->table = table; + +-- +2.7.4 + +From 8fac545db140bd5c29113d13caa2d0d7cb8bb49b Mon Sep 17 00:00:00 2001 +From: Thomas Haller +Date: Fri, 14 Dec 2018 11:10:57 +0100 +Subject: [PATCH 2/3] dhcp: handle multiple addresses for "Router" (option 3) + in DHCP library + +The Router DHCP option may contain a list of one or more +routers ([1]). Extend the API of sd_dhcp_lease to return a +list instead of only the first. + +Note that networkd still only uses the first router (if present). +Aside from extending the internal API of the DHCP client, there +is almost no change in behavior. The only visible difference in +behavior is that the "ROUTER" variable in the lease file is now a +list of addresses. + +Note how RFC 2132 does not define certain IP addresses as invalid for the +router option. Still, previously sd_dhcp_lease_get_router() would never +return a "0.0.0.0" address. In fact, the previous API could not +differenciate whether no router option was present, whether it +was invalid, or whether its first router was "0.0.0.0". No longer let +the DHCP client library impose additional restrictions that are not +part of RFC. Instead, the caller should handle this. The patch does +that, and networkd only consideres the first router entry if it is not +"0.0.0.0". + +[1] https://tools.ietf.org/html/rfc2132#section-3.5 + +(cherry picked from commit f8862395e8f802e4106a07ceaaf02b6a1faa5a6d) +--- + src/libsystemd-network/dhcp-lease-internal.h | 4 ++- + src/libsystemd-network/sd-dhcp-lease.c | 50 +++++++++++++++------------- + src/libsystemd-network/test-dhcp-client.c | 7 ++-- + src/network/networkd-dhcp4.c | 37 ++++++++++---------- + src/systemd/sd-dhcp-lease.h | 2 +- + 5 files changed, 54 insertions(+), 46 deletions(-) + +diff --git a/src/libsystemd-network/dhcp-lease-internal.h b/src/libsystemd-network/dhcp-lease-internal.h +index 9d245a9..122042a 100644 +--- a/src/libsystemd-network/dhcp-lease-internal.h ++++ b/src/libsystemd-network/dhcp-lease-internal.h +@@ -41,7 +41,6 @@ struct sd_dhcp_lease { + /* each 0 if unset */ + be32_t address; + be32_t server_address; +- be32_t router; + be32_t next_server; + + bool have_subnet_mask; +@@ -50,6 +49,9 @@ struct sd_dhcp_lease { + bool have_broadcast; + be32_t broadcast; + ++ struct in_addr *router; ++ size_t router_size; ++ + struct in_addr *dns; + size_t dns_size; + +diff --git a/src/libsystemd-network/sd-dhcp-lease.c b/src/libsystemd-network/sd-dhcp-lease.c +index 13badbf..406188c 100644 +--- a/src/libsystemd-network/sd-dhcp-lease.c ++++ b/src/libsystemd-network/sd-dhcp-lease.c +@@ -151,15 +151,15 @@ int sd_dhcp_lease_get_root_path(sd_dhcp_lease *lease, const char **root_path) { + return 0; + } + +-int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, struct in_addr *addr) { ++int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, const struct in_addr **addr) { + assert_return(lease, -EINVAL); + assert_return(addr, -EINVAL); + +- if (lease->router == 0) ++ if (lease->router_size <= 0) + return -ENODATA; + +- addr->s_addr = lease->router; +- return 0; ++ *addr = lease->router; ++ return (int) lease->router_size; + } + + int sd_dhcp_lease_get_netmask(sd_dhcp_lease *lease, struct in_addr *addr) { +@@ -261,6 +261,7 @@ static sd_dhcp_lease *dhcp_lease_free(sd_dhcp_lease *lease) { + } + + free(lease->root_path); ++ free(lease->router); + free(lease->timezone); + free(lease->hostname); + free(lease->domainname); +@@ -387,7 +388,7 @@ static void filter_bogus_addresses(struct in_addr *addresses, size_t *n) { + *n = j; + } + +-static int lease_parse_in_addrs(const uint8_t *option, size_t len, struct in_addr **ret, size_t *n_ret) { ++static int lease_parse_in_addrs(const uint8_t *option, size_t len, bool filter_bogus, struct in_addr **ret, size_t *n_ret) { + assert(option); + assert(ret); + assert(n_ret); +@@ -408,7 +409,8 @@ static int lease_parse_in_addrs(const uint8_t *option, size_t len, struct in_add + if (!addresses) + return -ENOMEM; + +- filter_bogus_addresses(addresses, &n_addresses); ++ if (filter_bogus) ++ filter_bogus_addresses(addresses, &n_addresses); + + free(*ret); + *ret = addresses; +@@ -554,21 +556,19 @@ int dhcp_lease_parse_options(uint8_t code, uint8_t len, const void *option, void + break; + + case SD_DHCP_OPTION_ROUTER: +- if (len >= 4) { +- r = lease_parse_be32(option, 4, &lease->router); +- if (r < 0) +- log_debug_errno(r, "Failed to parse router address, ignoring: %m"); +- } ++ r = lease_parse_in_addrs(option, len, false, &lease->router, &lease->router_size); ++ if (r < 0) ++ log_debug_errno(r, "Failed to parse router addresses, ignoring: %m"); + break; + + case SD_DHCP_OPTION_DOMAIN_NAME_SERVER: +- r = lease_parse_in_addrs(option, len, &lease->dns, &lease->dns_size); ++ r = lease_parse_in_addrs(option, len, true, &lease->dns, &lease->dns_size); + if (r < 0) + log_debug_errno(r, "Failed to parse DNS server, ignoring: %m"); + break; + + case SD_DHCP_OPTION_NTP_SERVER: +- r = lease_parse_in_addrs(option, len, &lease->ntp, &lease->ntp_size); ++ r = lease_parse_in_addrs(option, len, true, &lease->ntp, &lease->ntp_size); + if (r < 0) + log_debug_errno(r, "Failed to parse NTP server, ignoring: %m"); + break; +@@ -820,7 +820,6 @@ int dhcp_lease_new(sd_dhcp_lease **ret) { + if (!lease) + return -ENOMEM; + +- lease->router = INADDR_ANY; + lease->n_ref = 1; + + *ret = lease; +@@ -863,9 +862,12 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) { + if (r >= 0) + fprintf(f, "NETMASK=%s\n", inet_ntoa(address)); + +- r = sd_dhcp_lease_get_router(lease, &address); +- if (r >= 0) +- fprintf(f, "ROUTER=%s\n", inet_ntoa(address)); ++ r = sd_dhcp_lease_get_router(lease, &addresses); ++ if (r > 0) { ++ fputs("ROUTER=", f); ++ serialize_in_addrs(f, addresses, r); ++ fputc('\n', f); ++ } + + r = sd_dhcp_lease_get_server_identifier(lease, &address); + if (r >= 0) +@@ -899,14 +901,14 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) { + if (r > 0) { + fputs("DNS=", f); + serialize_in_addrs(f, addresses, r); +- fputs("\n", f); ++ fputc('\n', f); + } + + r = sd_dhcp_lease_get_ntp(lease, &addresses); + if (r > 0) { + fputs("NTP=", f); + serialize_in_addrs(f, addresses, r); +- fputs("\n", f); ++ fputc('\n', f); + } + + r = sd_dhcp_lease_get_domainname(lease, &string); +@@ -917,7 +919,7 @@ int dhcp_lease_save(sd_dhcp_lease *lease, const char *lease_file) { + if (r > 0) { + fputs("DOMAIN_SEARCH_LIST=", f); + fputstrv(f, search_domains, NULL, NULL); +- fputs("\n", f); ++ fputc('\n', f); + } + + r = sd_dhcp_lease_get_hostname(lease, &string); +@@ -1080,9 +1082,11 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) { + } + + if (router) { +- r = inet_pton(AF_INET, router, &lease->router); +- if (r <= 0) +- log_debug("Failed to parse router %s, ignoring.", router); ++ r = deserialize_in_addrs(&lease->router, router); ++ if (r < 0) ++ log_debug_errno(r, "Failed to deserialize router addresses %s, ignoring: %m", router); ++ else ++ lease->router_size = r; + } + + if (netmask) { +diff --git a/src/libsystemd-network/test-dhcp-client.c b/src/libsystemd-network/test-dhcp-client.c +index fe6788d..0431e2c 100644 +--- a/src/libsystemd-network/test-dhcp-client.c ++++ b/src/libsystemd-network/test-dhcp-client.c +@@ -423,6 +423,7 @@ static void test_addr_acq_acquired(sd_dhcp_client *client, int event, + sd_event *e = userdata; + sd_dhcp_lease *lease; + struct in_addr addr; ++ const struct in_addr *addrs; + + assert_se(client); + assert_se(event == SD_DHCP_CLIENT_EVENT_IP_ACQUIRE); +@@ -438,9 +439,9 @@ static void test_addr_acq_acquired(sd_dhcp_client *client, int event, + assert_se(memcmp(&addr.s_addr, &test_addr_acq_ack[285], + sizeof(addr.s_addr)) == 0); + +- assert_se(sd_dhcp_lease_get_router(lease, &addr) >= 0); +- assert_se(memcmp(&addr.s_addr, &test_addr_acq_ack[308], +- sizeof(addr.s_addr)) == 0); ++ assert_se(sd_dhcp_lease_get_router(lease, &addrs) == 1); ++ assert_se(memcmp(&addrs[0].s_addr, &test_addr_acq_ack[308], ++ sizeof(addrs[0].s_addr)) == 0); + + if (verbose) + printf(" DHCP address acquired\n"); +diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c +index 61f767a..56512e5 100644 +--- a/src/network/networkd-dhcp4.c ++++ b/src/network/networkd-dhcp4.c +@@ -52,7 +52,8 @@ static int route_scope_from_address(const Route *route, const struct in_addr *se + static int link_set_dhcp_routes(Link *link) { + _cleanup_free_ sd_dhcp_route **static_routes = NULL; + bool classless_route = false, static_route = false; +- struct in_addr gateway, address; ++ const struct in_addr *router; ++ struct in_addr address; + int r, n, i; + uint32_t table; + +@@ -123,18 +124,18 @@ static int link_set_dhcp_routes(Link *link) { + link->dhcp4_messages++; + } + +- r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway); +- if (r == -ENODATA) +- log_link_info_errno(link, r, "DHCP: No gateway received from DHCP server: %m"); +- else if (r < 0) ++ r = sd_dhcp_lease_get_router(link->dhcp_lease, &router); ++ if (r < 0 && r != -ENODATA) + log_link_warning_errno(link, r, "DHCP error: could not get gateway: %m"); ++ else if (r <= 0 || in4_addr_is_null(&router[0])) ++ log_link_info_errno(link, r, "DHCP: No gateway received from DHCP server: %m"); + + /* According to RFC 3442: If the DHCP server returns both a Classless Static Routes option and + a Router option, the DHCP client MUST ignore the Router option. */ + if (classless_route && static_route) + log_link_warning(link, "Classless static routes received from DHCP server: ignoring static-route option and router option"); + +- if (r >= 0 && !classless_route) { ++ if (r > 0 && !classless_route && !in4_addr_is_null(&router[0])) { + _cleanup_(route_freep) Route *route = NULL, *route_gw = NULL; + + r = route_new(&route_gw); +@@ -145,7 +146,7 @@ static int link_set_dhcp_routes(Link *link) { + * route for the gw host so that we can route no matter the + * netmask or existing kernel route tables. */ + route_gw->family = AF_INET; +- route_gw->dst.in = gateway; ++ route_gw->dst.in = router[0]; + route_gw->dst_prefixlen = 32; + route_gw->prefsrc.in = address; + route_gw->scope = RT_SCOPE_LINK; +@@ -164,7 +165,7 @@ static int link_set_dhcp_routes(Link *link) { + return log_link_error_errno(link, r, "Could not allocate route: %m"); + + route->family = AF_INET; +- route->gw.in = gateway; ++ route->gw.in = router[0]; + route->prefsrc.in = address; + route->protocol = RTPROT_DHCP; + route->priority = link->network->dhcp_route_metric; +@@ -185,9 +186,9 @@ static int link_set_dhcp_routes(Link *link) { + + static int dhcp_lease_lost(Link *link) { + _cleanup_(address_freep) Address *address = NULL; ++ const struct in_addr *router; + struct in_addr addr; + struct in_addr netmask; +- struct in_addr gateway; + unsigned prefixlen = 0; + int r; + +@@ -220,15 +221,15 @@ static int dhcp_lease_lost(Link *link) { + + r = address_new(&address); + if (r >= 0) { +- r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway); +- if (r >= 0) { ++ r = sd_dhcp_lease_get_router(link->dhcp_lease, &router); ++ if (r > 0 && !in4_addr_is_null(&router[0])) { + _cleanup_(route_freep) Route *route_gw = NULL; + _cleanup_(route_freep) Route *route = NULL; + + r = route_new(&route_gw); + if (r >= 0) { + route_gw->family = AF_INET; +- route_gw->dst.in = gateway; ++ route_gw->dst.in = router[0]; + route_gw->dst_prefixlen = 32; + route_gw->scope = RT_SCOPE_LINK; + +@@ -238,7 +239,7 @@ static int dhcp_lease_lost(Link *link) { + r = route_new(&route); + if (r >= 0) { + route->family = AF_INET; +- route->gw.in = gateway; ++ route->gw.in = router[0]; + + route_remove(route, link, NULL); + } +@@ -397,10 +398,10 @@ static int dhcp_lease_renew(sd_dhcp_client *client, Link *link) { + } + + static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) { ++ const struct in_addr *router; + sd_dhcp_lease *lease; + struct in_addr address; + struct in_addr netmask; +- struct in_addr gateway; + unsigned prefixlen; + uint32_t lifetime = CACHE_INFO_INFINITY_LIFE_TIME; + int r; +@@ -422,20 +423,20 @@ static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) { + + prefixlen = in4_addr_netmask_to_prefixlen(&netmask); + +- r = sd_dhcp_lease_get_router(lease, &gateway); ++ r = sd_dhcp_lease_get_router(lease, &router); + if (r < 0 && r != -ENODATA) + return log_link_error_errno(link, r, "DHCP error: Could not get gateway: %m"); + +- if (r >= 0) ++ if (r > 0 && !in4_addr_is_null(&router[0])) + log_struct(LOG_INFO, + LOG_LINK_INTERFACE(link), + LOG_LINK_MESSAGE(link, "DHCPv4 address %u.%u.%u.%u/%u via %u.%u.%u.%u", + ADDRESS_FMT_VAL(address), + prefixlen, +- ADDRESS_FMT_VAL(gateway)), ++ ADDRESS_FMT_VAL(router[0])), + "ADDRESS=%u.%u.%u.%u", ADDRESS_FMT_VAL(address), + "PREFIXLEN=%u", prefixlen, +- "GATEWAY=%u.%u.%u.%u", ADDRESS_FMT_VAL(gateway)); ++ "GATEWAY=%u.%u.%u.%u", ADDRESS_FMT_VAL(router[0])); + else + log_struct(LOG_INFO, + LOG_LINK_INTERFACE(link), +diff --git a/src/systemd/sd-dhcp-lease.h b/src/systemd/sd-dhcp-lease.h +index 4875f10..d299c79 100644 +--- a/src/systemd/sd-dhcp-lease.h ++++ b/src/systemd/sd-dhcp-lease.h +@@ -39,7 +39,7 @@ int sd_dhcp_lease_get_t1(sd_dhcp_lease *lease, uint32_t *t1); + int sd_dhcp_lease_get_t2(sd_dhcp_lease *lease, uint32_t *t2); + int sd_dhcp_lease_get_broadcast(sd_dhcp_lease *lease, struct in_addr *addr); + int sd_dhcp_lease_get_netmask(sd_dhcp_lease *lease, struct in_addr *addr); +-int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, struct in_addr *addr); ++int sd_dhcp_lease_get_router(sd_dhcp_lease *lease, const struct in_addr **addr); + int sd_dhcp_lease_get_next_server(sd_dhcp_lease *lease, struct in_addr *addr); + int sd_dhcp_lease_get_server_identifier(sd_dhcp_lease *lease, struct in_addr *addr); + int sd_dhcp_lease_get_dns(sd_dhcp_lease *lease, const struct in_addr **addr); +-- +2.7.4 + +From da9adbb9539bee8886bb680e70616eac8281acd5 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe +Date: Tue, 19 Feb 2019 15:09:28 +0900 +Subject: [PATCH 3/3] network: do not log wrong error cause + +If sd_dhcp_lease_get_router() returns a positive value and the first +router is null, then invalid error cause was logged. + +Follow-up for f8862395e8f802e4106a07ceaaf02b6a1faa5a6d. + +(cherry picked from commit 825ace96b1076ac367d2962e3979f62954145812) +--- + src/network/networkd-dhcp4.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c +index 56512e5..29ad323 100644 +--- a/src/network/networkd-dhcp4.c ++++ b/src/network/networkd-dhcp4.c +@@ -125,10 +125,12 @@ static int link_set_dhcp_routes(Link *link) { + } + + r = sd_dhcp_lease_get_router(link->dhcp_lease, &router); +- if (r < 0 && r != -ENODATA) ++ if (IN_SET(r, 0, -ENODATA)) ++ log_link_info(link, "DHCP: No gateway received from DHCP server."); ++ else if (r < 0) + log_link_warning_errno(link, r, "DHCP error: could not get gateway: %m"); +- else if (r <= 0 || in4_addr_is_null(&router[0])) +- log_link_info_errno(link, r, "DHCP: No gateway received from DHCP server: %m"); ++ else if (in4_addr_is_null(&router[0])) ++ log_link_info(link, "DHCP: Received gateway is null."); + + /* According to RFC 3442: If the DHCP server returns both a Classless Static Routes option and + a Router option, the DHCP client MUST ignore the Router option. */ +-- +2.7.4 + diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/rdrand-workaround-on-amd.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/rdrand-workaround-on-amd.patch new file mode 100644 index 0000000000..a209e58bfd --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/systemd/240/rdrand-workaround-on-amd.patch @@ -0,0 +1,36 @@ +Index: systemd-240/src/basic/random-util.c +=================================================================== +--- systemd-240.orig/src/basic/random-util.c ++++ systemd-240/src/basic/random-util.c +@@ -37,6 +37,7 @@ int rdrand(unsigned long *ret) { + + #if defined(__i386__) || defined(__x86_64__) + static int have_rdrand = -1; ++ unsigned long v; + unsigned char err; + + if (have_rdrand < 0) { +@@ -56,9 +57,22 @@ int rdrand(unsigned long *ret) { + + asm volatile("rdrand %0;" + "setc %1" +- : "=r" (*ret), ++ : "=r" (v), + "=qm" (err)); + ++ /* Apparently on some AMD CPUs RDRAND will sometimes (after a suspend/resume cycle?) report success ++ * via the carry flag but nonetheless return the same fixed value -1 in all cases. This appears to be ++ * a bad bug in the CPU or firmware. Let's deal with that and work-around this by explicitly checking ++ * for this special value (and also 0, just to be sure) and filtering it out. This is a work-around ++ * only however and something AMD really should fix properly. The Linux kernel should probably work ++ * around this issue by turning off RDRAND altogether on those CPUs. See: ++ * https://github.com/systemd/systemd/issues/11810 */ ++ if (v == 0 || v == ULONG_MAX) ++ return log_debug_errno(SYNTHETIC_ERRNO(EUCLEAN), ++ "RDRAND returned suspicious value %lx, assuming bad hardware RNG, not using value.", v); ++ ++ *ret = v; ++ + #if HAS_FEATURE_MEMORY_SANITIZER + __msan_unpoison(&err, sizeof(err)); + #endif diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/patches/varlink/19/ctags.patch b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/varlink/19/ctags.patch new file mode 100644 index 0000000000..88642dcdd7 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/patches/varlink/19/ctags.patch @@ -0,0 +1,12 @@ +diff -ur libvarlink-19.orig/meson.build libvarlink-19/meson.build +--- libvarlink-19.orig/meson.build 2020-03-06 11:42:33.000000000 +0100 ++++ libvarlink-19/meson.build 2020-05-17 13:27:52.972980173 +0200 +@@ -96,8 +96,4 @@ + 'tags', + output : 'tags', + command : ['env', 'etags', '-o', '@0@/TAGS'.format(meson.current_source_dir())] + all_files) +- custom_target( +- 'ctags', +- output : 'ctags', +- command : ['env', 'ctags', '-o', '@0@/tags'.format(meson.current_source_dir())] + all_files) + endif diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/permissions b/deploy/iso/minikube-iso/board/minikube/x86_64/permissions new file mode 100644 index 0000000000..02ad93232e --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/permissions @@ -0,0 +1,4 @@ +# https://buildroot.org/downloads/manual/manual.html#makedev-syntax + +/usr/bin/toolbox f 755 0 0 - - - - - + diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/post-build.sh b/deploy/iso/minikube-iso/board/minikube/x86_64/post-build.sh new file mode 100755 index 0000000000..38ce764f90 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/post-build.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +# Copyright 2021 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +BOARD_DIR=$(dirname "$0") + +cp -f "$BOARD_DIR/grub.cfg" "$BINARIES_DIR/efi-part/EFI/BOOT/grub.cfg" diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/post-image.sh b/deploy/iso/minikube-iso/board/minikube/x86_64/post-image.sh new file mode 100755 index 0000000000..99c560f656 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/post-image.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +# Copyright 2021 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +GENIMAGE_CFG="$2" + +support/scripts/genimage.sh -c "$GENIMAGE_CFG" + +cd "$BINARIES_DIR" +mkdir -p root/boot +cp bzImage root/boot/bzimage +cp rootfs.cpio.gz root/boot/initrd +mkdir -p root/EFI/BOOT +cp efi-part/EFI/BOOT/* root/EFI/BOOT/ +cp efiboot.img root/EFI/BOOT/ + +mkisofs \ + -o boot.iso \ + -R -J -v -d -N \ + -hide-rr-moved \ + -no-emul-boot \ + -eltorito-platform=efi \ + -eltorito-boot EFI/BOOT/efiboot.img \ + -V "EFIBOOTISO" \ + -A "EFI Boot ISO" \ + root +cd - diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/cni/net.d/.keep b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/cni/net.d/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/docker/.keep b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/docker/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/fstab b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/fstab new file mode 100644 index 0000000000..8c56808aa3 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/fstab @@ -0,0 +1,5 @@ +# +/dev/root / ext2 rw,noauto 0 1 +proc /proc proc defaults 0 0 +devpts /dev/pts devpts defaults,gid=5,mode=620 0 0 +sysfs /sys sysfs defaults 0 0 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/motd b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/motd new file mode 100644 index 0000000000..d914a81ab4 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/motd @@ -0,0 +1,7 @@ + _ _ + _ _ ( ) ( ) + ___ ___ (_) ___ (_)| |/') _ _ | |_ __ +/' _ ` _ `\| |/' _ `\| || , < ( ) ( )| '_`\ /'__`\ +| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )( ___/ +(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____) + diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/ssh/sshd_config b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/ssh/sshd_config new file mode 100644 index 0000000000..b7ab4a59a6 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/ssh/sshd_config @@ -0,0 +1,124 @@ +# $OpenBSD: sshd_config,v 1.100 2016/08/15 12:32:04 naddy Exp $ + +# This is the sshd server system-wide configuration file. See +# sshd_config(5) for more information. + +# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin + +# The strategy used for options in the default sshd_config shipped with +# OpenSSH is to specify options with their default value where +# possible, but leave them commented. Uncommented options override the +# default value. + +#Port 22 +#AddressFamily any +#ListenAddress 0.0.0.0 +#ListenAddress :: + +#HostKey /etc/ssh/ssh_host_rsa_key +#HostKey /etc/ssh/ssh_host_dsa_key +#HostKey /etc/ssh/ssh_host_ecdsa_key +#HostKey /etc/ssh/ssh_host_ed25519_key + +# Ciphers and keying +#RekeyLimit default none + +# Logging +#SyslogFacility AUTH +#LogLevel INFO + +# Authentication: + +#LoginGraceTime 2m +#PermitRootLogin prohibit-password +#StrictModes yes +#MaxAuthTries 6 +MaxSessions 1000 + +#PubkeyAuthentication yes + +# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2 +# but this is overridden so installations will only check .ssh/authorized_keys +AuthorizedKeysFile .ssh/authorized_keys + +#AuthorizedPrincipalsFile none + +#AuthorizedKeysCommand none +#AuthorizedKeysCommandUser nobody + +# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts +#HostbasedAuthentication no +# Change to yes if you don't trust ~/.ssh/known_hosts for +# HostbasedAuthentication +#IgnoreUserKnownHosts no +# Don't read the user's ~/.rhosts and ~/.shosts files +#IgnoreRhosts yes + +# To disable tunneled clear text passwords, change to no here! +#PasswordAuthentication yes +#PermitEmptyPasswords no + +# Change to no to disable s/key passwords +#ChallengeResponseAuthentication yes + +# Kerberos options +#KerberosAuthentication no +#KerberosOrLocalPasswd yes +#KerberosTicketCleanup yes +#KerberosGetAFSToken no + +# GSSAPI options +#GSSAPIAuthentication no +#GSSAPICleanupCredentials yes + +# Set this to 'yes' to enable PAM authentication, account processing, +# and session processing. If this is enabled, PAM authentication will +# be allowed through the ChallengeResponseAuthentication and +# PasswordAuthentication. Depending on your PAM configuration, +# PAM authentication via ChallengeResponseAuthentication may bypass +# the setting of "PermitRootLogin without-password". +# If you just want the PAM account and session checks to run without +# PAM authentication, then enable this but set PasswordAuthentication +# and ChallengeResponseAuthentication to 'no'. +#UsePAM no + +#AllowAgentForwarding yes +#AllowTcpForwarding yes +GatewayPorts yes +#X11Forwarding no +#X11DisplayOffset 10 +#X11UseLocalhost yes +#PermitTTY yes +PrintMotd yes +#PrintLastLog yes +#TCPKeepAlive yes +#UseLogin no +#UsePrivilegeSeparation sandbox +#PermitUserEnvironment no +#Compression delayed +#ClientAliveInterval 0 +#ClientAliveCountMax 3 +#UseDNS no +#PidFile /var/run/sshd.pid +#MaxStartups 10:30:100 +PermitTunnel yes +#ChrootDirectory none +#VersionAddendum none + +# no default banner path +#Banner none + +# override default of no subsystems +Subsystem sftp /usr/libexec/sftp-server + +# Example of overriding settings on a per-user basis +#Match User anoncvs +# X11Forwarding no +# AllowTcpForwarding no +# PermitTTY no +# ForceCommand cvs server + +# Temporarily accept ssh-rsa algorithm for openssh >= 8.8, +# until most ssh clients could deprecate ssh-rsa. +HostkeyAlgorithms +ssh-rsa +PubkeyAcceptedAlgorithms +ssh-rsa diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sudoers b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sudoers new file mode 100644 index 0000000000..eb6a2d3d92 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sudoers @@ -0,0 +1,2 @@ +root ALL=(ALL) ALL +%wheel ALL=(ALL) NOPASSWD: ALL diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf new file mode 100644 index 0000000000..c34569dd81 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/11-tcp-mtu-probing.conf @@ -0,0 +1,3 @@ +# Turn on MTU probing to avoid network hangs when the Docker MTU is larger than +# the host or upstream network MTU. +net.ipv4.tcp_mtu_probing=1 \ No newline at end of file diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf new file mode 100644 index 0000000000..aa285916a5 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/90-cilium-rp_filter.conf @@ -0,0 +1,2 @@ +net.ipv4.conf.lxc*.rp_filter = 0 +net.ipv4.conf.cilium_*.rp_filter = 0 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf new file mode 100644 index 0000000000..30b2d9b487 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/sysctl.d/disable-ipv6.conf @@ -0,0 +1,2 @@ +net.ipv6.conf.all.disable_ipv6=1 +net.ipv6.conf.default.disable_ipv6=1 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/journald.conf b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/journald.conf new file mode 100644 index 0000000000..2e9d3eccd0 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/journald.conf @@ -0,0 +1,16 @@ +# Copyright 2018 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +[Journal] +Storage=volatile diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/10-eth1.network b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/10-eth1.network new file mode 100644 index 0000000000..63a89ca2af --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/10-eth1.network @@ -0,0 +1,9 @@ +[Match] +Name=eth1 +Virtualization=qemu + +[Network] +DHCP=ipv4 + +[DHCP] +UseDNS=false diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/20-dhcp.network b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/20-dhcp.network new file mode 100644 index 0000000000..c9086ef085 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/network/20-dhcp.network @@ -0,0 +1,9 @@ +[Match] +Name=eth* + +[Network] +DHCP=ipv4 +LinkLocalAddressing=no + +[DHCP] +ClientIdentifier=mac diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service new file mode 120000 index 0000000000..7bfe0808b1 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/getty.target.wants/getty@tty1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/getty@.service \ No newline at end of file diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf new file mode 100644 index 0000000000..c732fdedb2 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/systemd/system/systemd-timesyncd.service.d/disable-virtualbox.conf @@ -0,0 +1,2 @@ +[Unit] +ConditionVirtualization=!oracle diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules new file mode 120000 index 0000000000..f69baf4515 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/etc/udev/rules.d/80-net-setup-link.rules @@ -0,0 +1 @@ +80-net-setup-link.rules \ No newline at end of file diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/init b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/init new file mode 100755 index 0000000000..d6f7a2987b --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/init @@ -0,0 +1,13 @@ +#!/bin/sh +mkdir /sysroot +# the value 90% borrowed from tcl via boot2docker +mount -t tmpfs -o size=90% tmpfs /sysroot +# copy from rootfs, to be able to do switch_root(8) +tar -C / --exclude=sysroot -cf - . | tar -C /sysroot/ -xf - + +# devtmpfs does not get automounted for initramfs +/bin/mount -t devtmpfs devtmpfs /sysroot/dev +exec 0/sysroot/dev/console +exec 2>/sysroot/dev/console +exec /sbin/switch_root /sysroot /sbin/init "$@" diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/usr/bin/toolbox b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/usr/bin/toolbox new file mode 100644 index 0000000000..2f597cd80b --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/usr/bin/toolbox @@ -0,0 +1,77 @@ +#!/bin/bash + +set -e +set -o pipefail + +machine=$(uname -m) + +case ${machine} in + aarch64 ) + TOOLBOX_DOCKER_IMAGE=arm64v8/fedora + TOOLBOX_DOCKER_TAG=latest + ;; + x86_64 ) + TOOLBOX_DOCKER_IMAGE=fedora + TOOLBOX_DOCKER_TAG=latest + ;; + * ) + echo "Warning: Unknown machine type ${machine}" >&2 + ;; +esac + +TOOLBOX_USER=root +TOOLBOX_DIRECTORY="/var/lib/toolbox" +TOOLBOX_BIND="--bind=/:/media/root --bind=/usr:/media/root/usr --bind=/run:/media/root/run" +# Ex: "--setenv=KEY=VALUE" +TOOLBOX_ENV="" + +toolboxrc="${HOME}"/.toolboxrc + +# System defaults +if [ -f "/etc/default/toolbox" ]; then + source "/etc/default/toolbox" +fi + +# User overrides +if [ -f "${toolboxrc}" ]; then + source "${toolboxrc}" +fi + +if [[ -n "${TOOLBOX_DOCKER_IMAGE}" ]] && [[ -n "${TOOLBOX_DOCKER_TAG}" ]]; then + TOOLBOX_NAME=${TOOLBOX_DOCKER_IMAGE}-${TOOLBOX_DOCKER_TAG} + have_docker_image="y" +fi + +machinename=$(echo "${USER}-${TOOLBOX_NAME}" | sed -r 's/[^a-zA-Z0-9_.-]/_/g') +machinepath="${TOOLBOX_DIRECTORY}/${machinename}" +osrelease="${machinepath}/etc/os-release" +if [ ! -f "${osrelease}" ] || systemctl is-failed -q "${machinename}" ; then + sudo mkdir -p "${machinepath}" + sudo chown "${USER}:" "${machinepath}" + + if [[ -n "${have_docker_image}" ]]; then + piid=$(sudo --preserve-env podman pull "docker://${TOOLBOX_DOCKER_IMAGE}:${TOOLBOX_DOCKER_TAG}") + pcid=$(sudo --preserve-env podman create "${piid}") + mnt=$(sudo --preserve-env podman mount "${pcid}") + sudo --preserve-env rsync -ax "${mnt}"/ "${machinepath}"/ + sudo --preserve-env podman unmount "${pcid}" + sudo --preserve-env podman rm "${pcid}" + sudo --preserve-env podman rmi "${piid}" + else + echo "Error: No toolbox filesystem specified." >&2 + exit 1 + fi + sudo touch "${osrelease}" +fi + +# Special case for when SSH tries to pass a shell command with -c +if [ "x${1-}" == x-c ]; then + set /bin/sh "$@" +fi + +sudo SYSTEMD_NSPAWN_SHARE_SYSTEM=1 systemd-nspawn \ + --directory="${machinepath}" \ + --capability=all \ + ${TOOLBOX_BIND} \ + ${TOOLBOX_ENV} \ + --user="${TOOLBOX_USER}" "$@" diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/var/lib/boot2docker/.keep b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/var/lib/boot2docker/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/var/log/.keep b/deploy/iso/minikube-iso/board/minikube/x86_64/rootfs-overlay/var/log/.keep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/deploy/iso/minikube-iso/board/minikube/x86_64/users b/deploy/iso/minikube-iso/board/minikube/x86_64/users new file mode 100644 index 0000000000..e5ece397b9 --- /dev/null +++ b/deploy/iso/minikube-iso/board/minikube/x86_64/users @@ -0,0 +1 @@ +docker 1000 docker 1000 =tcuser /home/docker /bin/bash wheel,vboxsf,podman,buildkit - diff --git a/deploy/iso/minikube-iso/configs/minikube_defconfig b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig similarity index 76% rename from deploy/iso/minikube-iso/configs/minikube_defconfig rename to deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig index 0e1decb0de..2ab5989e6a 100644 --- a/deploy/iso/minikube-iso/configs/minikube_defconfig +++ b/deploy/iso/minikube-iso/configs/minikube_aarch64_defconfig @@ -1,11 +1,13 @@ # Architecture -BR2_x86_64=y +BR2_aarch64=y # Toolchain BR2_TOOLCHAIN_BUILDROOT_WCHAR=y # System BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y # Required tools to create bootable media BR2_PACKAGE_HOST_DOSFSTOOLS=y @@ -14,16 +16,18 @@ BR2_PACKAGE_HOST_MTOOLS=y # Bootloader BR2_TARGET_GRUB2=y -BR2_TARGET_GRUB2_X86_64_EFI=y -BR2_TARGET_GRUB2_BUILTIN_CONFIG="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/iso/x86_64/grub-stub.cfg" +BR2_TARGET_GRUB2_ARM64_EFI=y +BR2_TARGET_GRUB2_BUILTIN_CONFIG="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/grub-stub.cfg" BR2_TARGET_GRUB2_BUILTIN_MODULES="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop udf iso9660 search search_fs_file search_fs_uuid search_label" # Filesystem / image BR2_TARGET_ROOTFS_CPIO=y -BR2_TARGET_ROOTFS_CPIO_GZIP=y -BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/iso/x86_64/post-build.sh" -BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/iso/x86_64/post-image.sh" -BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/iso/x86_64/genimage.cfg" +BR2_TARGET_ROOTFS_CPIO_LZ4=y +# BR2_TARGET_ROOTFS_TAR is not set +BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/post-image.sh" +BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/genimage.cfg" + # Linux headers same as kernel, a 4.19 series BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y @@ -34,6 +38,7 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.235" BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_CCACHE=y @@ -42,8 +47,10 @@ BR2_PACKAGE_ACPID=y # Minikube +BR2_PACKAGE_VBOX_GUEST=n + BR2_OPTIMIZE_2=y -BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/patches" +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/patches" BR2_TOOLCHAIN_BUILDROOT_VENDOR="minikube" BR2_TOOLCHAIN_BUILDROOT_GLIBC=y BR2_TOOLCHAIN_BUILDROOT_CXX=y @@ -52,18 +59,17 @@ BR2_TARGET_GENERIC_HOSTNAME="minikube" BR2_TARGET_GENERIC_ISSUE="Welcome to minikube" BR2_TARGET_GENERIC_PASSWD_SHA512=y BR2_INIT_SYSTEMD=y -BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/permissions" +BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/permissions" BR2_SYSTEM_BIN_SH_BASH=y -BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/users" -BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/rootfs-overlay" +BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/users" +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/rootfs-overlay" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y -BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/linux_defconfig" +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/aarch64/linux_aarch64_defconfig" BR2_LINUX_KERNEL_LZ4=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_GZIP=y BR2_PACKAGE_XZ=y BR2_PACKAGE_STRACE=y -BR2_PACKAGE_SYSDIG=y BR2_PACKAGE_FINDUTILS=y BR2_PACKAGE_GIT=y BR2_PACKAGE_CIFS_UTILS=y @@ -78,6 +84,7 @@ BR2_PACKAGE_LZ4=y BR2_PACKAGE_LZ4_PROGS=y BR2_PACKAGE_CA_CERTIFICATES=y BR2_PACKAGE_LIBOPENSSL_BIN=y +BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y BR2_PACKAGE_BRIDGE_UTILS=y BR2_PACKAGE_CONNTRACK_TOOLS=y @@ -102,9 +109,6 @@ BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y -BR2_TARGET_ROOTFS_ISO9660=y -BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/coreos/minikube/isolinux.cfg" -BR2_TARGET_SYSLINUX=y BR2_PACKAGE_HOST_E2TOOLS=y BR2_PACKAGE_HOST_PYTHON=y BR2_PACKAGE_LIBFUSE=y diff --git a/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig new file mode 100644 index 0000000000..2623be4091 --- /dev/null +++ b/deploy/iso/minikube-iso/configs/minikube_x86_64_defconfig @@ -0,0 +1,116 @@ +# Architecture +BR2_x86_64=y + +# Toolchain +BR2_TOOLCHAIN_BUILDROOT_WCHAR=y + +# System +BR2_SYSTEM_DHCP="eth0" +BR2_TARGET_GENERIC_GETTY_PORT="tty1" +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y + +# Required tools to create bootable media +BR2_PACKAGE_HOST_DOSFSTOOLS=y +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_MTOOLS=y + +# Bootloader +# To turn the x86_64 ISO from BIOS to EFI, uncomment the following 7 lines and comment out the 3 lines beneath it. +#BR2_TARGET_GRUB2=y +#BR2_TARGET_GRUB2_X86_64_EFI=y +#BR2_TARGET_GRUB2_BUILTIN_CONFIG="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/grub-stub.cfg" +#BR2_TARGET_GRUB2_BUILTIN_MODULES="boot linux ext2 fat squash4 part_msdos part_gpt normal efi_gop udf iso9660 search search_fs_file search_fs_uuid search_label" +#BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/post-build.sh" +#BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/post-image.sh" +#BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/genimage.cfg" +BR2_TARGET_ROOTFS_ISO9660=y +BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/isolinux.cfg" +BR2_TARGET_SYSLINUX=y + +# Filesystem / image +BR2_TARGET_ROOTFS_CPIO=y +BR2_TARGET_ROOTFS_CPIO_GZIP=y + +# Linux headers same as kernel, a 4.19 series +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_19=y + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.235" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y +BR2_LINUX_KERNEL_INSTALL_TARGET=y + +BR2_CCACHE=y + +# Packages +BR2_PACKAGE_ACPID=y + +# Minikube + +config BR2_PACKAGE_VBOX_GUEST=y + +BR2_OPTIMIZE_2=y +BR2_GLOBAL_PATCH_DIR="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/patches" +BR2_TOOLCHAIN_BUILDROOT_VENDOR="minikube" +BR2_TOOLCHAIN_BUILDROOT_GLIBC=y +BR2_TOOLCHAIN_BUILDROOT_CXX=y +BR2_GCC_ENABLE_LTO=y +BR2_TARGET_GENERIC_HOSTNAME="minikube" +BR2_TARGET_GENERIC_ISSUE="Welcome to minikube" +BR2_TARGET_GENERIC_PASSWD_SHA512=y +BR2_INIT_SYSTEMD=y +BR2_ROOTFS_DEVICE_TABLE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/permissions" +BR2_SYSTEM_BIN_SH_BASH=y +BR2_ROOTFS_USERS_TABLES="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/users" +BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/rootfs-overlay" +BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y +BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_MINIKUBE_PATH)/board/minikube/x86_64/linux_x86_64_defconfig" +BR2_LINUX_KERNEL_LZ4=y +BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y +BR2_PACKAGE_GZIP=y +BR2_PACKAGE_XZ=y +BR2_PACKAGE_STRACE=y +BR2_PACKAGE_FINDUTILS=y +BR2_PACKAGE_GIT=y +BR2_PACKAGE_CIFS_UTILS=y +BR2_PACKAGE_E2TOOLS=y +BR2_PACKAGE_NFS_UTILS=y +BR2_PACKAGE_SSHFS=y +BR2_PACKAGE_XFSPROGS=y +BR2_PACKAGE_PARTED=y +BR2_PACKAGE_SYSSTAT=y +BR2_PACKAGE_LUAJIT=y +BR2_PACKAGE_LZ4=y +BR2_PACKAGE_LZ4_PROGS=y +BR2_PACKAGE_CA_CERTIFICATES=y +BR2_PACKAGE_LIBOPENSSL_BIN=y +BR2_PACKAGE_LIBCURL=y +BR2_PACKAGE_LIBCURL_CURL=y +BR2_PACKAGE_BRIDGE_UTILS=y +BR2_PACKAGE_CONNTRACK_TOOLS=y +BR2_PACKAGE_EBTABLES=y +BR2_PACKAGE_ETHTOOL=y +BR2_PACKAGE_IPROUTE2=y +BR2_PACKAGE_IPTABLES=y +BR2_PACKAGE_RSYNC=y +BR2_PACKAGE_SOCAT=y +BR2_PACKAGE_SUDO=y +BR2_PACKAGE_ACL=y +BR2_PACKAGE_COREUTILS=y +BR2_PACKAGE_HTOP=y +BR2_PACKAGE_OPENVMTOOLS=y +BR2_PACKAGE_PROCPS_NG=y +BR2_PACKAGE_PSMISC=y +BR2_PACKAGE_SYSTEMD_LOGIND=y +BR2_PACKAGE_SYSTEMD_MACHINED=y +BR2_PACKAGE_TAR=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_LOSETUP=y +BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y +BR2_PACKAGE_UTIL_LINUX_NSENTER=y +BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y +BR2_PACKAGE_HOST_E2TOOLS=y +BR2_PACKAGE_HOST_PYTHON=y +BR2_PACKAGE_LIBFUSE=y diff --git a/deploy/iso/minikube-iso/external.mk b/deploy/iso/minikube-iso/external.mk index de09e68021..5a8a5d065e 100644 --- a/deploy/iso/minikube-iso/external.mk +++ b/deploy/iso/minikube-iso/external.mk @@ -1,2 +1,4 @@ include $(sort $(wildcard $(BR2_EXTERNAL_MINIKUBE_PATH)/linux/*.mk)) include $(sort $(wildcard $(BR2_EXTERNAL_MINIKUBE_PATH)/package/*/*.mk)) +include $(sort $(wildcard $(BR2_EXTERNAL_MINIKUBE_PATH)/arch/x86_64/package/*/*.mk)) +include $(sort $(wildcard $(BR2_EXTERNAL_MINIKUBE_PATH)/arch/aarch64/package/*/*.mk)) diff --git a/deploy/iso/minikube-iso/package/Config.in b/deploy/iso/minikube-iso/package/Config.in index 7fc3d3aad6..3cb958fae6 100644 --- a/deploy/iso/minikube-iso/package/Config.in +++ b/deploy/iso/minikube-iso/package/Config.in @@ -1,20 +1,7 @@ menu "System tools" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/runc-master/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crun/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/podman/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/conmon/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crio-bin/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/crictl-bin/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/automount/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/docker-bin/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cri-dockerd/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cni/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/cni-plugins/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/hyperv-daemons/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/gluster/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/vbox-guest/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/containerd-bin/Config.in" - source "$BR2_EXTERNAL_MINIKUBE_PATH/package/buildkit-bin/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/falco-module/Config.in" source "$BR2_EXTERNAL_MINIKUBE_PATH/package/scheduled-stop/Config.in" endmenu diff --git a/deploy/iso/minikube-iso/package/gluster/Config.in b/deploy/iso/minikube-iso/package/gluster/Config.in index 7d2515e177..cc5f3b5404 100644 --- a/deploy/iso/minikube-iso/package/gluster/Config.in +++ b/deploy/iso/minikube-iso/package/gluster/Config.in @@ -1,7 +1,6 @@ config BR2_PACKAGE_GLUSTER bool "gluster" default y - depends on BR2_x86_64 select BR2_PACKAGE_LIBURCU select BR2_PACKAGE_LIBXML2 help diff --git a/deploy/kicbase/Dockerfile b/deploy/kicbase/Dockerfile index 7983889b8b..549f48c985 100644 --- a/deploy/kicbase/Dockerfile +++ b/deploy/kicbase/Dockerfile @@ -35,7 +35,7 @@ RUN git clone -n https://github.com/Mirantis/cri-dockerd && \ # for a kubernetes node image, it doesn't contain much we don't need FROM ubuntu:focal-20220316 -ARG BUILDKIT_VERSION="v0.9.3" +ARG BUILDKIT_VERSION="v0.10.3" ARG FUSE_OVERLAYFS_VERSION="v1.7.1" ARG CONTAINERD_FUSE_OVERLAYFS_VERSION="1.0.3" ARG CRIO_VERSION="1.22" @@ -146,8 +146,8 @@ RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/ && tar -C /usr/local -xzvf /tmp/buildkit.tgz \ && rm -rf /tmp/buildkit.tgz \ && mkdir -p /usr/local/lib/systemd/system \ - && curl -L --retry 5 --output /usr/local/lib/systemd/system/buildkit.service "https://raw.githubusercontent.com/moby/buildkit/${BUILDKIT_VERSION}/examples/systemd/buildkit.service" \ - && curl -L --retry 5 --output /usr/local/lib/systemd/system/buildkit.socket "https://raw.githubusercontent.com/moby/buildkit/${BUILDKIT_VERSION}/examples/systemd/buildkit.socket" \ + && curl -L --retry 5 --output /usr/local/lib/systemd/system/buildkit.service "https://raw.githubusercontent.com/moby/buildkit/${BUILDKIT_VERSION}/examples/systemd/system/buildkit.service" \ + && curl -L --retry 5 --output /usr/local/lib/systemd/system/buildkit.socket "https://raw.githubusercontent.com/moby/buildkit/${BUILDKIT_VERSION}/examples/systemd/system/buildkit.socket" \ && mkdir -p /etc/buildkit \ && echo "[worker.oci]\n enabled = false\n[worker.containerd]\n enabled = true\n namespace = \"k8s.io\"" > /etc/buildkit/buildkitd.toml \ && chmod 755 /usr/local/bin/buildctl \ @@ -158,8 +158,8 @@ RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/ # Install cri-o/podman dependencies: RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/') && \ - sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \ - curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \ + sh -c "echo 'deb https://downloadcontent.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \ + curl -LO https://downloadcontent.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \ apt-key add - < Release.key && \ if [ "$ARCH" != "ppc64le" ]; then \ clean-install containers-common catatonit conmon containernetworking-plugins cri-tools podman-plugins crun; \ @@ -169,15 +169,15 @@ RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/') && \ # install cri-o based on https://github.com/cri-o/cri-o/blob/release-1.22/README.md#installing-cri-o RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/' | sed 's/armhf/arm-v7/') && \ - if [ "$ARCH" != "ppc64le" ] && [ "$ARCH" != "arm-v7" ]; then sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:${CRIO_VERSION}.list" && \ - curl -LO https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/Release.key && \ + if [ "$ARCH" != "ppc64le" ] && [ "$ARCH" != "arm-v7" ]; then sh -c "echo 'deb https://downloadcontent.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable:cri-o:${CRIO_VERSION}.list" && \ + curl -LO https://downloadcontent.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/${CRIO_VERSION}/xUbuntu_20.04/Release.key && \ apt-key add - < Release.key && \ clean-install cri-o cri-o-runc; fi # install podman RUN export ARCH=$(dpkg --print-architecture | sed 's/ppc64el/ppc64le/') && \ - if [ "$ARCH" != "ppc64le" ]; then sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \ - curl -LO https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \ + if [ "$ARCH" != "ppc64le" ]; then sh -c "echo 'deb http://downloadcontent.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_20.04/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list" && \ + curl -LO https://downloadcontent.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_20.04/Release.key && \ apt-key add - < Release.key && \ clean-install podman && \ addgroup --system podman && \ diff --git a/deploy/kicbase/entrypoint b/deploy/kicbase/entrypoint index 0a0a26641c..abbf337a77 100755 --- a/deploy/kicbase/entrypoint +++ b/deploy/kicbase/entrypoint @@ -28,6 +28,11 @@ if grep -Eqv "0[[:space:]]+0[[:space:]]+4294967295" /proc/self/uid_map; then echo 'INFO: running in a user namespace (experimental)' fi +grep_allow_nomatch() { + # grep exits 0 on match, 1 on no match, 2 on error + grep "$@" || [[ $? == 1 ]] +} + validate_userns() { if [[ -z "${userns}" ]]; then return @@ -40,22 +45,81 @@ validate_userns() { echo "WARN: UserNS: expected RLIMIT_NOFILE to be at least ${nofile_hard_expected}, got ${nofile_hard}" >&2 fi - if [[ ! -f "/sys/fs/cgroup/cgroup.controllers" ]]; then - echo "ERROR: UserNS: cgroup v2 needs to be enabled, see https://rootlesscontaine.rs/getting-started/common/cgroup2/" >&2 - exit 1 + if [[ -f "/sys/fs/cgroup/cgroup.controllers" ]]; then + for f in cpu memory pids; do + if ! grep -qw $f /sys/fs/cgroup/cgroup.controllers; then + echo "ERROR: UserNS: $f controller needs to be delegated" >&2 + exit 1 + fi + done fi - for f in cpu memory pids; do - if ! grep -qw $f /sys/fs/cgroup/cgroup.controllers; then - echo "ERROR: UserNS: $f controller needs to be delegated, see https://rootlesscontaine.rs/getting-started/common/cgroup2/" >&2 - exit 1 - fi - done +} + +overlayfs_preferrable() { + if [[ -z "$userns" ]]; then + # If we are outside userns, we can always assume overlayfs is preferrable + return 0 + fi + + # Debian 10 and 11 supports overlayfs in userns with a "permit_mount_in_userns" kernel patch, + # but known to be unstable, so we avoid using it https://github.com/moby/moby/issues/42302 + if [[ -e "/sys/module/overlay/parameters/permit_mounts_in_userns" ]]; then + echo "INFO: UserNS: kernel seems supporting overlayfs with permit_mounts_in_userns, but avoiding due to instability." + return 1 + fi + + # Check overlayfs availability, by attempting to mount it. + # + # Overlayfs inside userns is known to be available for the following environments: + # - Kernel >= 5.11 (but 5.11 and 5.12 have issues on SELinux hosts. Fixed in 5.13.) + # - Ubuntu kernel + # - Debian kernel (but avoided due to instability, see the /sys/module/overlay/... check above) + # - Sysbox + tmp=$(mktemp -d) + mkdir -p "${tmp}/l" "${tmp}/u" "${tmp}/w" "${tmp}/m" + if ! mount -t overlay -o lowerdir="${tmp}/l,upperdir=${tmp}/u,workdir=${tmp}/w" overlay "${tmp}/m"; then + echo "INFO: UserNS: kernel does not seem to support overlayfs." + rm -rf "${tmp}" + return 1 + fi + umount "${tmp}/m" + rm -rf "${tmp}" + + # Detect whether SELinux is Enforcing (or Permitted) by grepping /proc/self/attr/current . + # Note that we cannot use `getenforce` command here because /sys/fs/selinux is typically not mounted for containers. + if grep -q "_t:" "/proc/self/attr/current"; then + # When the kernel is before v5.13 and SELinux is enforced, fuse-overlayfs might be safer, so we print a warning (but not an error). + # https://github.com/torvalds/linux/commit/7fa2e79a6bb924fa4b2de5766dab31f0f47b5ab6 + echo "WARN: UserNS: SELinux might be Enforcing. If you see an error related to overlayfs, try setting \`KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER=fuse-overlayfs\` ." >&2 + fi + return 0 } configure_containerd() { - # we need to switch to the 'native' snapshotter on zfs - if [[ "$(stat -f -c %T /kind)" == 'zfs' ]]; then - sed -i 's/snapshotter = "overlayfs"/snapshotter = "native"/' /etc/containerd/config.toml + local snapshotter=${KIND_EXPERIMENTAL_CONTAINERD_SNAPSHOTTER:-} + if [[ -n "$userns" ]]; then + # userns (rootless) configs + + # Adjust oomScoreAdj + sed -i 's/restrict_oom_score_adj = false/restrict_oom_score_adj = true/' /etc/containerd/config.toml + + # Use fuse-overlayfs if overlayfs is not preferrable: https://github.com/kubernetes-sigs/kind/issues/2275 + if [[ -z "$snapshotter" ]] && ! overlayfs_preferrable; then + snapshotter="fuse-overlayfs" + fi + else + # we need to switch to the 'native' snapshotter on zfs + if [[ -z "$snapshotter" ]] && [["$(stat -f -c %T /kind)" == 'zfs' ]]; then + snapshotter="native" + fi + fi + if [[ -n "$snapshotter" ]]; then + echo "INFO: changing snapshotter from \"overlayfs\" to \"$snapshotter\"" + sed -i "s/snapshotter = \"overlayfs\"/snapshotter = \"$snapshotter\"/" /etc/containerd/config.toml + if [[ "$snapshotter" = "fuse-overlayfs" ]]; then + echo 'INFO: enabling containerd-fuse-overlayfs service' + systemctl enable containerd-fuse-overlayfs + fi fi } @@ -106,15 +170,19 @@ fix_mount() { sync fi - if [[ -z "${userns}" ]]; then - echo 'INFO: remounting /sys read-only' - # systemd-in-a-container should have read only /sys - # https://systemd.io/CONTAINER_INTERFACE/ - # however, we need other things from `docker run --privileged` ... - # and this flag also happens to make /sys rw, amongst other things - # - # This step is skipped when running inside UserNS, because it fails with EACCES. - mount -o remount,ro /sys + echo 'INFO: remounting /sys read-only' + # systemd-in-a-container should have read only /sys + # https://systemd.io/CONTAINER_INTERFACE/ + # however, we need other things from `docker run --privileged` ... + # and this flag also happens to make /sys rw, amongst other things + # + # This step is ignored when running inside UserNS, because it fails with EACCES. + if ! mount -o remount,ro /sys; then + if [[ -n "$userns" ]]; then + echo 'INFO: UserNS: ignoring mount fail' >&2 + else + exit 1 + fi fi echo 'INFO: making mounts shared' >&2 @@ -163,20 +231,55 @@ fix_cgroup() { return fi echo 'INFO: detected cgroup v1' - echo 'INFO: fix cgroup mounts for all subsystems' + local current_cgroup + current_cgroup=$(grep -E '^[^:]*:([^:]*,)?cpu(,[^,:]*)?:.*' /proc/self/cgroup | cut -d: -f3) + if [ "$current_cgroup" = "/" ]; then + echo "INFO: cgroupns detected, no need to fix cgroups" + return + fi + + # NOTE The rest of this function deals with the unfortunate situation of + # cgroup v1 with no cgroupns enabled. One fine day every user will have + # cgroupns enabled (or switch or cgroup v2 which has it enabled by default). + # Once that happens, this function can be removed completely. + + echo 'WARN: cgroupns not enabled! Please use cgroup v2, or cgroup v1 with cgroupns enabled.' + # See: https://d2iq.com/blog/running-kind-inside-a-kubernetes-cluster-for-continuous-integration # Capture initial state before modifying # # Basically we're looking for the cgroup-path for the cpu controller for the # current process. this tells us what cgroup-path the container is in. # Then we collect the subsystems that are active on this path. - # We assume the cpu controller is in use on all node containers. + # We assume the cpu controller is in use on all node containers, + # and other controllers use the same sub-path. # # See: https://man7.org/linux/man-pages/man7/cgroups.7.html - local current_cgroup - current_cgroup=$(grep -E '^[^:]*:([^:]*,)?cpu(,[^,:]*)?:.*' /proc/self/cgroup | cut -d: -f3) + echo 'INFO: fix cgroup mounts for all subsystems' local cgroup_subsystems cgroup_subsystems=$(findmnt -lun -o source,target -t cgroup | grep "${current_cgroup}" | awk '{print $2}') + # Unmount the cgroup subsystems that are not known to runtime used to + # run the container we are in. Those subsystems are not properly scoped + # (i.e. the root cgroup is exposed, rather than something like docker/xxxx). + # In case a runtime (which is aware of more subsystems -- such as rdma, + # misc, or unified) is used inside the container, it may create cgroups for + # these subsystems, and as they are not scoped, they will leak to the host + # and thus will become non-removable. + # + # See https://github.com/kubernetes/kubernetes/issues/109182 + local unsupported_cgroups + unsupported_cgroups=$(findmnt -lun -o source,target -t cgroup | grep_allow_nomatch -v "${current_cgroup}" | awk '{print $2}') + if [ -n "$unsupported_cgroups" ]; then + local mnt + echo "$unsupported_cgroups" | + while IFS= read -r mnt; do + echo "INFO: unmounting and removing $mnt" + umount "$mnt" || true + rmdir "$mnt" || true + done + fi + + # For each cgroup subsystem, Docker does a bind mount from the current # cgroup to the root of the cgroup subsystem. For instance: # /sys/fs/cgroup/memory/docker/ -> /sys/fs/cgroup/memory @@ -214,10 +317,12 @@ fix_cgroup() { # "nesting" clusters, unless we instruct it to use a different cgroup root. # We do this, and when doing so we must fixup this alternative root # currently this is hardcoded to be /kubelet + # under systemd cgroup driver, kubelet appends .slice mount --make-rprivate /sys/fs/cgroup echo "${cgroup_subsystems}" | while IFS= read -r subsystem; do mount_kubelet_cgroup_root "/kubelet" "${subsystem}" + mount_kubelet_cgroup_root "/kubelet.slice" "${subsystem}" done } @@ -287,18 +392,15 @@ fix_kmsg() { } select_iptables() { - # based on: https://github.com/kubernetes/kubernetes/blob/ffe93b3979486feb41a0f85191bdd189cbd56ccc/build/debian-iptables/iptables-wrapper - local mode=nft - num_legacy_lines=$( (iptables-legacy-save || true; ip6tables-legacy-save || true) 2>/dev/null | grep '^-' | wc -l || true) - if [ "${num_legacy_lines}" -ge 10 ]; then + # based on: https://github.com/kubernetes-sigs/iptables-wrappers/blob/97b01f43a8e8db07840fc4b95e833a37c0d36b12/iptables-wrapper-installer.sh + local mode num_legacy_lines num_nft_lines + num_legacy_lines=$( (iptables-legacy-save || true; ip6tables-legacy-save || true) 2>/dev/null | grep -c '^-' || true) + num_nft_lines=$( (timeout 5 sh -c "iptables-nft-save; ip6tables-nft-save" || true) 2>/dev/null | grep -c '^-' || true) + if [ "${num_legacy_lines}" -ge "${num_nft_lines}" ]; then mode=legacy else - num_nft_lines=$( (timeout 5 sh -c "iptables-nft-save; ip6tables-nft-save" || true) 2>/dev/null | grep '^-' | wc -l || true) - if [ "${num_legacy_lines}" -ge "${num_nft_lines}" ]; then - mode=legacy - fi + mode=nft fi - echo "INFO: setting iptables to detected mode: ${mode}" >&2 update-alternatives --set iptables "/usr/sbin/iptables-${mode}" > /dev/null update-alternatives --set ip6tables "/usr/sbin/ip6tables-${mode}" > /dev/null diff --git a/deploy/minikube/releases-beta-v2.json b/deploy/minikube/releases-beta-v2.json index 3a372d48d0..5eb84727c3 100644 --- a/deploy/minikube/releases-beta-v2.json +++ b/deploy/minikube/releases-beta-v2.json @@ -1,34 +1,86 @@ [ -{ - "name": "v1.24.0-beta.0", - "checksums": { - "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", - "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", - "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" - } - }, - { - "name": "v1.22.0-beta.0", - "checksums": { - "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", - "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5", - "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1" - } - }, - { - "name": "v1.21.0-beta.0", - "checksums": { - "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6", - "linux": "41a26190c6774e1f3cc568986d4043431022d5dff4a619f131e9bb49d13e2874", - "windows": "e7d41c8c40e33633d47976047a48600ff23657c824db7e60fe5a4f2d2daeb135" - } - }, - { - "name": "v1.20.0-beta.0", - "checksums": { - "darwin": "686f8d7c06c93f28543f982ec56a68544ab2ad6c7f70b39ede5174d7bac29651", - "linux": "fe0796852c9ef266597fc93fa4b7a88d2cab9ba7008f0e9f644b633c51d269a1", - "windows": "84a0686c90ab88d04a0aab57b8cadacf9197d3ea6b467f9f807d071efe7fad3c" - } - } -] + { + "checksums": { + "amd64": { + "darwin": "a1cbd7847462f6c693e6df13033036ea2401ac4c9cac3186e0c494022021defa", + "linux": "8dc0f14a1c6db1b009128ad1a7fab28a49c29dd46f8d90eb1429dacda8e8d948", + "windows": "a327ccc5009ba45b7c2f668af110c9b414ae847c23e4a38b812ef69de9e396fb" + }, + "arm": { + "linux": "19c9b82491ff02cf1844ae2ea705d8970882d1f40d96ce0777f7084cb7aaa7ac" + }, + "arm64": { + "darwin": "ab973bb05305d725c194c358f723504f4a2891a035482fc352f2cfbc3654a526", + "linux": "8ef60a1369080fe1b12831b307dfb7b87e2b6f100c47226468f6eb0b84ea82aa" + }, + "ppc64le": { + "linux": "2018960bf1918b4d80ef63b236d9c107f5747799432c45a10c1b262e487c2203" + }, + "s390x": { + "linux": "4325510e5dd9955c13a3ce9fd273745dd55bd9ab6910c6667b5feb0f912ce28b" + }, + "darwin": "a1cbd7847462f6c693e6df13033036ea2401ac4c9cac3186e0c494022021defa", + "linux": "8dc0f14a1c6db1b009128ad1a7fab28a49c29dd46f8d90eb1429dacda8e8d948", + "windows": "a327ccc5009ba45b7c2f668af110c9b414ae847c23e4a38b812ef69de9e396fb" + }, + "name": "v1.26.0-beta.1" + }, + { + "checksums": { + "amd64": { + "darwin": "96a8cbb6fe8e8fd629fd49cd222358ceaee2fbac946f86da9113925d3f8d685b", + "linux": "c4576588f6c746ffcf9d8f768a0ca929b63d15652c230e15163f8ccf212bcae5", + "windows": "09c83da4d1e1712175a199452076e1cdb77662d15725da8fc0704528f15e4d7a" + }, + "arm": { + "linux": "baaaa5bb066faea551158551aad5e9e547fbc05769e59adec54433118a6a5dc6" + }, + "arm64": { + "darwin": "ef7dfe41df9b8ebb5a5f836c9255d355ba9e664cd2e8db6f5377d24b2b2ceb14", + "linux": "27561719a6164079966bba0648ce704140462b46cac9257cb2f98367f674208a" + }, + "ppc64le": { + "linux": "2747ed3a01d5d2c3fa576acc5a1e3aa431cebec0e4f92e498b53ce9e892f6c6c" + }, + "s390x": { + "linux": "dc8f2475e87eafbedfcabad2bb56b283c7151529029dd1bde749736dd56d9eab" + }, + "darwin": "96a8cbb6fe8e8fd629fd49cd222358ceaee2fbac946f86da9113925d3f8d685b", + "linux": "c4576588f6c746ffcf9d8f768a0ca929b63d15652c230e15163f8ccf212bcae5", + "windows": "09c83da4d1e1712175a199452076e1cdb77662d15725da8fc0704528f15e4d7a" + }, + "name": "v1.26.0-beta.0" + }, + { + "checksums": { + "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", + "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", + "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" + }, + "name": "v1.24.0-beta.0" + }, + { + "checksums": { + "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", + "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5", + "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1" + }, + "name": "v1.22.0-beta.0" + }, + { + "checksums": { + "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6", + "linux": "41a26190c6774e1f3cc568986d4043431022d5dff4a619f131e9bb49d13e2874", + "windows": "e7d41c8c40e33633d47976047a48600ff23657c824db7e60fe5a4f2d2daeb135" + }, + "name": "v1.21.0-beta.0" + }, + { + "checksums": { + "darwin": "686f8d7c06c93f28543f982ec56a68544ab2ad6c7f70b39ede5174d7bac29651", + "linux": "fe0796852c9ef266597fc93fa4b7a88d2cab9ba7008f0e9f644b633c51d269a1", + "windows": "84a0686c90ab88d04a0aab57b8cadacf9197d3ea6b467f9f807d071efe7fad3c" + }, + "name": "v1.20.0-beta.0" + } +] \ No newline at end of file diff --git a/deploy/minikube/releases-beta.json b/deploy/minikube/releases-beta.json index 3a372d48d0..b025a885ac 100644 --- a/deploy/minikube/releases-beta.json +++ b/deploy/minikube/releases-beta.json @@ -1,34 +1,50 @@ [ -{ - "name": "v1.24.0-beta.0", - "checksums": { - "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", - "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", - "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" - } - }, - { - "name": "v1.22.0-beta.0", - "checksums": { - "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", - "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5", - "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1" - } - }, - { - "name": "v1.21.0-beta.0", - "checksums": { - "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6", - "linux": "41a26190c6774e1f3cc568986d4043431022d5dff4a619f131e9bb49d13e2874", - "windows": "e7d41c8c40e33633d47976047a48600ff23657c824db7e60fe5a4f2d2daeb135" - } - }, - { - "name": "v1.20.0-beta.0", - "checksums": { - "darwin": "686f8d7c06c93f28543f982ec56a68544ab2ad6c7f70b39ede5174d7bac29651", - "linux": "fe0796852c9ef266597fc93fa4b7a88d2cab9ba7008f0e9f644b633c51d269a1", - "windows": "84a0686c90ab88d04a0aab57b8cadacf9197d3ea6b467f9f807d071efe7fad3c" - } - } -] + { + "checksums": { + "darwin": "a1cbd7847462f6c693e6df13033036ea2401ac4c9cac3186e0c494022021defa", + "linux": "8dc0f14a1c6db1b009128ad1a7fab28a49c29dd46f8d90eb1429dacda8e8d948", + "windows": "a327ccc5009ba45b7c2f668af110c9b414ae847c23e4a38b812ef69de9e396fb" + }, + "name": "v1.26.0-beta.1" + }, + { + "checksums": { + "darwin": "96a8cbb6fe8e8fd629fd49cd222358ceaee2fbac946f86da9113925d3f8d685b", + "linux": "c4576588f6c746ffcf9d8f768a0ca929b63d15652c230e15163f8ccf212bcae5", + "windows": "09c83da4d1e1712175a199452076e1cdb77662d15725da8fc0704528f15e4d7a" + }, + "name": "v1.26.0-beta.0" + }, + { + "checksums": { + "darwin": "f8b0a2d0ca7435e98fff553702ed4977e33b301d0316ee4512d28b485701613e", + "linux": "8cd17a9fb5c73f9cab97754bd6ed725cb2b1fe9faa02f7f75a9cf5566b6f8716", + "windows": "ba87d2ef329db940890f8970afce1a6654814e0e427f91b9d5347496d4e7d1a3" + }, + "name": "v1.24.0-beta.0" + }, + { + "checksums": { + "darwin": "1ec06c37be5c6c79a7255da09ff83490a44d1e8cd2b2f45e4b489edfdeacde94", + "linux": "c9d9ac605a94748379188cced6b832037b8069441744b889214990c4ca3485a5", + "windows": "68fb9c24f0ea55b985856d0cce9fa0c288b8a4d7e13519d6f0790038165d7ef1" + }, + "name": "v1.22.0-beta.0" + }, + { + "checksums": { + "darwin": "69ab001eb4984d09ed731d5ac92afd8310e5c7672c2275b39d7a4c7e2dcfb4c6", + "linux": "41a26190c6774e1f3cc568986d4043431022d5dff4a619f131e9bb49d13e2874", + "windows": "e7d41c8c40e33633d47976047a48600ff23657c824db7e60fe5a4f2d2daeb135" + }, + "name": "v1.21.0-beta.0" + }, + { + "checksums": { + "darwin": "686f8d7c06c93f28543f982ec56a68544ab2ad6c7f70b39ede5174d7bac29651", + "linux": "fe0796852c9ef266597fc93fa4b7a88d2cab9ba7008f0e9f644b633c51d269a1", + "windows": "84a0686c90ab88d04a0aab57b8cadacf9197d3ea6b467f9f807d071efe7fad3c" + }, + "name": "v1.20.0-beta.0" + } +] \ No newline at end of file diff --git a/go.mod b/go.mod index 6576673e90..4a6f594ba5 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/cenkalti/backoff/v4 v4.1.3 github.com/cheggaaa/pb/v3 v3.0.8 github.com/cloudevents/sdk-go/v2 v2.9.0 - github.com/docker/docker v20.10.14+incompatible + github.com/docker/docker v20.10.15+incompatible github.com/docker/go-units v0.4.0 github.com/docker/machine v0.16.2 github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e @@ -45,6 +45,7 @@ require ( github.com/juju/version v0.0.0-20180108022336-b64dbd566305 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/klauspost/cpuid v1.2.0 + github.com/machine-drivers/docker-machine-driver-qemu v0.1.1-0.20220331133007-0324171328f7 github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 github.com/mattbaird/jsonpatch v0.0.0-20200820163806-098863c1fc24 github.com/mattn/go-isatty v0.0.14 @@ -74,37 +75,38 @@ require ( golang.org/x/build v0.0.0-20190927031335-2835ba2e683f golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 golang.org/x/exp v0.0.0-20210220032938-85be41e4509f - golang.org/x/mod v0.5.1 + golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20220412211240-33da011f77ad + golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 golang.org/x/text v0.3.7 gonum.org/v1/plot v0.11.0 - google.golang.org/api v0.77.0 + google.golang.org/api v0.79.0 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.23.6 - k8s.io/apimachinery v0.23.6 - k8s.io/client-go v0.23.6 + k8s.io/api v0.24.0 + k8s.io/apimachinery v0.24.0 + k8s.io/client-go v0.24.0 k8s.io/cluster-bootstrap v0.0.0 - k8s.io/component-base v0.23.6 + k8s.io/component-base v0.24.0 k8s.io/klog/v2 v2.60.1 - k8s.io/kubectl v0.23.6 - k8s.io/utils v0.0.0-20211116205334-6203023598ed - libvirt.org/go/libvirt v1.8002.0 + k8s.io/kubectl v0.24.0 + k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 + libvirt.org/go/libvirt v1.8003.0 sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0 ) require ( github.com/Xuanwo/go-locale v1.1.0 github.com/docker/go-connections v0.4.0 + github.com/opencontainers/runc v1.0.2 github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 ) require ( cloud.google.com/go v0.100.2 // indirect - cloud.google.com/go/compute v1.6.0 // indirect + cloud.google.com/go/compute v1.6.1 // indirect cloud.google.com/go/iam v0.3.0 // indirect cloud.google.com/go/monitoring v1.1.0 // indirect cloud.google.com/go/trace v1.2.0 // indirect @@ -112,6 +114,8 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd // indirect github.com/Microsoft/go-winio v0.5.0 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect github.com/VividCortex/ewma v1.1.1 // indirect github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b // indirect github.com/aws/aws-sdk-go v1.38.49 // indirect @@ -122,11 +126,14 @@ require ( github.com/containerd/cgroups v1.0.1 // indirect github.com/containerd/containerd v1.5.2 // indirect github.com/containerd/stargz-snapshotter/estargz v0.7.0 // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect + github.com/cyphar/filepath-securejoin v0.2.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/cli v20.10.7+incompatible // indirect - github.com/docker/distribution v2.7.1+incompatible // indirect + github.com/docker/distribution v2.8.1+incompatible // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect + github.com/emicklei/go-restful v2.9.5+incompatible // indirect github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/fatih/color v1.13.0 // indirect github.com/fsnotify/fsnotify v1.5.1 // indirect @@ -135,16 +142,20 @@ require ( github.com/go-logr/logr v1.2.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.5 // indirect + github.com/go-openapi/swag v0.19.14 // indirect github.com/go-pdf/fpdf v0.6.0 // indirect + github.com/godbus/dbus/v5 v5.0.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.3 // indirect + github.com/google/gnostic v0.5.7-v3refs // indirect github.com/google/go-querystring v1.0.0 // indirect github.com/google/gofuzz v1.1.0 // indirect github.com/googleapis/gax-go/v2 v2.3.0 // indirect - github.com/googleapis/gnostic v0.5.5 // indirect github.com/googleapis/go-type-adapters v1.0.0 // indirect github.com/gookit/color v1.4.2 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect @@ -154,10 +165,12 @@ require ( github.com/imdario/mergo v0.3.11 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/klauspost/compress v1.13.0 // indirect github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect github.com/magiconair/properties v1.8.6 // indirect + github.com/mailru/easyjson v0.7.6 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect @@ -168,18 +181,19 @@ require ( github.com/mitchellh/mapstructure v1.4.3 // indirect github.com/moby/spdystream v0.2.0 // indirect github.com/moby/sys/mountinfo v0.4.1 // indirect - github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 // indirect + github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/opencontainers/image-spec v1.0.1 // indirect - github.com/opencontainers/runc v1.0.2 // indirect + github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect github.com/pelletier/go-toml v1.9.4 // indirect github.com/pelletier/go-toml/v2 v2.0.0-beta.8 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect - github.com/prometheus/client_golang v1.11.0 // indirect + github.com/prometheus/client_golang v1.12.1 // indirect github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.28.0 // indirect - github.com/prometheus/procfs v0.6.0 // indirect + github.com/prometheus/common v0.32.1 // indirect + github.com/prometheus/procfs v0.7.3 // indirect github.com/prometheus/prometheus v2.5.0+incompatible // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect @@ -197,18 +211,18 @@ require ( go.uber.org/multierr v1.6.0 // indirect go.uber.org/zap v1.19.0 // indirect golang.org/x/image v0.0.0-20220302094943-723b81ca9867 // indirect - golang.org/x/net v0.0.0-20220412020605-290c469a71a5 // indirect - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect + golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect + golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 // indirect golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4 // indirect - google.golang.org/grpc v1.45.0 // indirect + google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3 // indirect + google.golang.org/grpc v1.46.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect - k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect - sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect + k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 // indirect + sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index 7e4179d8b7..3e02c0b342 100644 --- a/go.sum +++ b/go.sum @@ -41,8 +41,9 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= -cloud.google.com/go/compute v1.6.0 h1:XdQIN5mdPTSBVwSIVDuY5e8ZzVAccsHvD3qTEz4zIps= cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1 h1:2sMmt8prCn7DPaG4Pmh0N3Inmc8cT8ae5k1M6VJ9Wqc= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= @@ -73,7 +74,6 @@ git.sr.ht/~sbinet/gg v0.3.1 h1:LNhjNn8DerC8f9DHLz6lS0YYul/b602DUxDgGkd/Aik= git.sr.ht/~sbinet/gg v0.3.1/go.mod h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= @@ -136,8 +136,10 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE github.com/Parallels/docker-machine-parallels/v2 v2.0.1 h1:3Rj+4tcm/UqMU5g2bLJmpxD0ssn1BB5am4Cd6yUDbVI= github.com/Parallels/docker-machine-parallels/v2 v2.0.1/go.mod h1:NKwI5KryEmEHMZVj80t9JQcfXWZp4/ZYNBuw4C5sQ9E= github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= github.com/VividCortex/ewma v1.1.1 h1:MnEK4VOv6n0RSY4vtRe3h11qjxL3+t0B8yOL8iMXdcM= @@ -164,6 +166,8 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= @@ -232,6 +236,7 @@ github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XP github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= @@ -334,6 +339,7 @@ github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= @@ -345,6 +351,7 @@ github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7Do github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= @@ -363,13 +370,15 @@ github.com/docker/cli v20.10.7+incompatible h1:pv/3NqibQKphWZiAskMzdz8w0PRbtTaEB github.com/docker/cli v20.10.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= +github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v0.0.0-20180621001606-093424bec097/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v17.12.0-ce-rc1.0.20181225093023-5ddb1d410a8b+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v17.12.0-ce-rc1.0.20190115220918-5ec31380a5d3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker v20.10.14+incompatible h1:+T9/PRYWNDo5SZl5qS1r9Mo/0Q8AwxKKPtu9S1yxM0w= -github.com/docker/docker v20.10.14+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.15+incompatible h1:dk9FewY/9Xwm4ay/HViEEHSQuM/kL4F+JaG6GQdgmGo= +github.com/docker/docker v20.10.15+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker-credential-helpers v0.6.3 h1:zI2p9+1NQYdnG6sMU26EX4aVGlqbInSQxQXLvzJ4RPQ= github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= @@ -391,6 +400,7 @@ github.com/elazarl/goproxy v0.0.0-20210110162100-a92cc753f88e/go.mod h1:Ro8st/El github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2 h1:dWB6v3RcOy03t/bUadywsbyrQwCqZeNIEX6M1OtSZOM= github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -400,6 +410,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= @@ -464,16 +475,19 @@ github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiU github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/jsonreference v0.19.5 h1:1WJP/wi4OjB4iV8KVbH73rQaoialJrqv8gitZLxGLtM= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.14 h1:gm3vOOXfiuw5i9p5N9xJvfjvuofpyvLA9Wr6QfK5Fng= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-pdf/fpdf v0.5.0/go.mod h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M= github.com/go-pdf/fpdf v0.6.0 h1:MlgtGIfsdMEEQJr2le6b/HNr1ZlQwxyWr77r2aj2U/8= @@ -483,6 +497,7 @@ github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblf github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= @@ -539,6 +554,8 @@ github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA// github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= +github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -604,7 +621,6 @@ github.com/googleapis/gax-go/v2 v2.3.0 h1:nRJtk3y8Fm770D42QV6T90ZnvFZyk7agSo3Q+Z github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/go-type-adapters v1.0.0 h1:9XdMn+d/G57qq1s8dNc5IesGCXHf6V2HZ2JwRxfA2tA= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= @@ -695,6 +711,7 @@ github.com/johanneswuerbach/nfsexports v0.0.0-20200318065542-c48c3734757f h1:tL0 github.com/johanneswuerbach/nfsexports v0.0.0-20200318065542-c48c3734757f/go.mod h1:+c1/kUpg2zlkoWqTOvzDs36Wpbm3Gd1nlmtXAEB0WGU= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -762,6 +779,8 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9 github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/machine-drivers/docker-machine-driver-qemu v0.1.1-0.20220331133007-0324171328f7 h1:f9xnae3LZMVUXFJtqy1xuwQfwX+NQUS5LelCLM3RBxg= +github.com/machine-drivers/docker-machine-driver-qemu v0.1.1-0.20220331133007-0324171328f7/go.mod h1:yhDK3dYTcmZljNMDPXfmVRwSsHx1EoaEL32v7BANaYs= github.com/machine-drivers/docker-machine-driver-vmware v0.1.5 h1:51GqJ84u9EBATnn8rWsHNavcuRPlCLnDmvjzZVuliwY= github.com/machine-drivers/docker-machine-driver-vmware v0.1.5/go.mod h1:dTnTzUH3uzhMo0ddV1zRjGYWcVhQWwqiHPxz5l+HPd0= github.com/machine-drivers/machine v0.7.1-0.20211105063445-78a84df85426 h1:gVDPCmqwvHQ4ox/9svvnkomYJAAiV59smbPdTK4DIm4= @@ -774,6 +793,7 @@ github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/maruel/panicparse v1.5.0/go.mod h1:aOutY/MUjdj80R0AEVI9qE2zHqig+67t2ffUDDiLzAM= @@ -840,8 +860,8 @@ github.com/moby/sys/mountinfo v0.4.1 h1:1O+1cHA1aujwEwwVMa2Xm2l+gIpUHyd3+D+d7LZh github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297 h1:yH0SvLzcbZxcJXho2yh7CqdENGMQe73Cw3woZBpPli0= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -854,6 +874,7 @@ github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= @@ -906,6 +927,7 @@ github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/ github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= @@ -958,8 +980,9 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.11.0 h1:HNkLOAEQMIDv/K+04rukrLx6ch7msSRwf3/SASFAGtQ= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -974,8 +997,8 @@ github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+ github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.28.0 h1:vGVfV9KrDTvWt5boZO0I19g2E3CsWfpPPKZM9dt3mEw= -github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= @@ -986,8 +1009,9 @@ github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDa github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/prometheus v2.5.0+incompatible h1:7QPitgO2kOFG8ecuRn9O/4L9+10He72rVRJvMXrE9Hg= github.com/prometheus/prometheus v2.5.0+incompatible/go.mod h1:oAIUtOny2rjMX0OWN5vPR5/q/twIROJvdqnQKDdil/s= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -1020,6 +1044,7 @@ github.com/shirou/gopsutil/v3 v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR github.com/shirou/gopsutil/v3 v3.22.4/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.4/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -1124,7 +1149,7 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= @@ -1185,6 +1210,7 @@ go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= golang.org/x/build v0.0.0-20190927031335-2835ba2e683f h1:hXVePvSFG7tPGX4Pwk1d10ePFfoTCc0QmISfpKOHsS8= golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= +golang.org/x/crypto v0.0.0-20170704135851-51714a8c4ac1/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1206,8 +1232,9 @@ golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1261,8 +1288,8 @@ golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hM golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= -golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1317,13 +1344,14 @@ golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96b golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5 h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4= golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1360,6 +1388,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180202135801-37707fdb30a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1424,7 +1453,6 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1460,26 +1488,26 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211023085530-d6a326fbbf70/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6 h1:nonptSpoQ4vQjyraW20DXPAglgQfVnM9ZC6MmNLMR60= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1497,8 +1525,9 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1564,8 +1593,8 @@ golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff h1:VX/uD7MK0AHXGiScH3fsieUQUcpmRERPDYtqZdJnA+Q= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= +golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717 h1:hI3jKY4Hpf63ns040onEbB3dAkR/H/P83hw1TG8dD3Y= +golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1614,8 +1643,9 @@ google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQ google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= -google.golang.org/api v0.77.0 h1:msijLTxwkJ7Jub5tv9KBVCKtHOQwnvnvkX7ErFFCVxY= -google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.79.0 h1:vaOcm0WdXvhGkci9a0+CcQVZqSRjN8ksSBlWv99f8Pg= +google.golang.org/api v0.79.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1696,6 +1726,7 @@ google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ6 google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= @@ -1706,8 +1737,10 @@ google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2I google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= -google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4 h1:myaecH64R0bIEDjNORIel4iXubqzaHU1K2z8ajBwWcM= google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3 h1:q1kiSVscqoDeqTF27eQ2NnLLDmqF0I373qQNXYMy0fo= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1739,8 +1772,9 @@ google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnD google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0 h1:oCjezcn6g6A75TGoKYBPgKmVBLexhYLM6MebdrPApP8= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -1818,77 +1852,77 @@ k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= k8s.io/api v0.22.4/go.mod h1:Rgs+9gIGYC5laXQSZZ9JqT5NevNgoGiOdVWi1BAB3qk= -k8s.io/api v0.23.6 h1:yOK34wbYECH4RsJbQ9sfkFK3O7f/DUHRlzFehkqZyVw= -k8s.io/api v0.23.6/go.mod h1:1kFaYxGCFHYp3qd6a85DAj/yW8aVD6XLZMqJclkoi9g= +k8s.io/api v0.24.0 h1:J0hann2hfxWr1hinZIDefw7Q96wmCBx6SSB8IY0MdDg= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= k8s.io/apimachinery v0.19.1/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= k8s.io/apimachinery v0.22.4/go.mod h1:yU6oA6Gnax9RrxGzVvPFFJ+mpnW6PBSqp0sx0I0HHW0= -k8s.io/apimachinery v0.23.6 h1:RH1UweWJkWNTlFx0D8uxOpaU1tjIOvVVWV/bu5b3/NQ= -k8s.io/apimachinery v0.23.6/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= +k8s.io/apimachinery v0.24.0 h1:ydFCyC/DjCvFCHK5OPMKBlxayQytB8pxy8YQInd5UyQ= +k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= -k8s.io/cli-runtime v0.23.6/go.mod h1:0Z3VR/HRIFKiLzKIAkm1mPtcH98GT/fXu2IU0E4vFmw= +k8s.io/cli-runtime v0.24.0/go.mod h1:9XxoZDsEkRFUThnwqNviqzljtT/LdHtNWvcNFrAXl0A= k8s.io/client-go v0.19.1/go.mod h1:AZOIVSI9UUtQPeJD3zJFp15CEhSjRgAuQP5PWRJrCIQ= k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= -k8s.io/client-go v0.23.6 h1:7h4SctDVQAQbkHQnR4Kzi7EyUyvla5G1pFWf4+Od7hQ= -k8s.io/client-go v0.23.6/go.mod h1:Umt5icFOMLV/+qbtZ3PR0D+JA6lvvb3syzodv4irpK4= +k8s.io/client-go v0.24.0 h1:lbE4aB1gTHvYFSwm6eD3OF14NhFDKCejlnsGYlSJe5U= +k8s.io/client-go v0.24.0/go.mod h1:VFPQET+cAFpYxh6Bq6f4xyMY80G6jKKktU6G0m00VDw= k8s.io/cluster-bootstrap v0.22.4 h1:2ZhV/1K4GiCrnmDHHbBnN3bERWn+Nxrtxmxp6uYYThI= k8s.io/cluster-bootstrap v0.22.4/go.mod h1:fTQZ6u9G6fg2LHhB8nEgZLnXIhCDSRYuLUUS5pgW8RY= -k8s.io/code-generator v0.23.6/go.mod h1:S0Q1JVA+kSzTI1oUvbKAxZY/DYbA/ZUb4Uknog12ETk= +k8s.io/code-generator v0.24.0/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= -k8s.io/component-base v0.23.6 h1:8dhVZ4VrRcNdV2EGjl8tj8YOHwX6ysgCGMJ2Oyy0NW8= -k8s.io/component-base v0.23.6/go.mod h1:FGMPeMrjYu0UZBSAFcfloVDplj9IvU+uRMTOdE23Fj0= -k8s.io/component-helpers v0.23.6/go.mod h1:kgvl6wvnYg9oebklLPpbW8UhvAZ9Qds26/RANEbny/8= +k8s.io/component-base v0.24.0 h1:h5jieHZQoHrY/lHG+HyrSbJeyfuitheBvqvKwKHVC0g= +k8s.io/component-base v0.24.0/go.mod h1:Dgazgon0i7KYUsS8krG8muGiMVtUZxG037l1MKyXgrA= +k8s.io/component-helpers v0.24.0/go.mod h1:Q2SlLm4h6g6lPTC9GMMfzdywfLSvJT2f1hOnnjaWD8c= k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.3.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.60.1 h1:VW25q3bZx9uE3vvdL6M8ezOX79vA2Aq1nEWLqNQclHc= k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= -k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4= -k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= -k8s.io/kubectl v0.23.6 h1:ajzrqj88GqlH/gpscMCts+mKNeSJprpkWJEHO8CR2Ss= -k8s.io/kubectl v0.23.6/go.mod h1:mMtJhc2QtQiSfvIQoMEUIjGHtZuP4uxMy/ees6j6zx8= +k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42 h1:Gii5eqf+GmIEwGNKQYQClCayuJCe2/4fZUvF7VG99sU= +k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= +k8s.io/kubectl v0.24.0 h1:nA+WtMLVdXUs4wLogGd1mPTAesnLdBpCVgCmz3I7dXo= +k8s.io/kubectl v0.24.0/go.mod h1:pdXkmCyHiRTqjYfyUJiXtbVNURhv0/Q1TyRhy2d5ic0= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= -k8s.io/metrics v0.23.6/go.mod h1:Fm9VzVMZ7KVEEeLStF2y3XogfcDwpGyI15o1xB6PbYk= +k8s.io/metrics v0.24.0/go.mod h1:jrLlFGdKl3X+szubOXPG0Lf2aVxuV3QJcbsgVRAM6fI= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20211116205334-6203023598ed h1:ck1fRPWPJWsMd8ZRFsWc6mh/zHp5fZ/shhbrgPUxDAE= -k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -libvirt.org/go/libvirt v1.8002.0 h1:X8gz2Sa1ek4S5FznpDpeRz6JpNb7NdkfzTii5GMIwDY= -libvirt.org/go/libvirt v1.8002.0/go.mod h1:1WiFE8EjZfq+FCVog+rvr1yatKbKZ9FaFMZgEqxEJqQ= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +libvirt.org/go/libvirt v1.8003.0 h1:2puEq21MkIiOK6EboeRp7dLW1CdPsSJAYPWufH0CESg= +libvirt.org/go/libvirt v1.8003.0/go.mod h1:1WiFE8EjZfq+FCVog+rvr1yatKbKZ9FaFMZgEqxEJqQ= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= -sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= -sigs.k8s.io/kustomize/api v0.10.1/go.mod h1:2FigT1QN6xKdcnGS2Ppp1uIWrtWN28Ms8A3OZUZhwr8= -sigs.k8s.io/kustomize/cmd/config v0.10.2/go.mod h1:K2aW7nXJ0AaT+VA/eO0/dzFLxmpFcTzudmAgDwPY1HQ= -sigs.k8s.io/kustomize/kustomize/v4 v4.4.1/go.mod h1:qOKJMMz2mBP+vcS7vK+mNz4HBLjaQSWRY22EF6Tb7Io= -sigs.k8s.io/kustomize/kyaml v0.13.0/go.mod h1:FTJxEZ86ScK184NpGSAQcfEqee0nul8oLCK30D47m4E= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 h1:kDi4JBNAsJWfz1aEXhO8Jg87JJaPNLh5tIzYHgStQ9Y= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/kustomize/api v0.11.4/go.mod h1:k+8RsqYbgpkIrJ4p9jcdPqe8DprLxFUUO0yNOq8C+xI= +sigs.k8s.io/kustomize/cmd/config v0.10.6/go.mod h1:/S4A4nUANUa4bZJ/Edt7ZQTyKOY9WCER0uBS1SW2Rco= +sigs.k8s.io/kustomize/kustomize/v4 v4.5.4/go.mod h1:Zo/Xc5FKD6sHl0lilbrieeGeZHVYCA4BzxeAaLI05Bg= +sigs.k8s.io/kustomize/kyaml v0.13.6/go.mod h1:yHP031rn1QX1lr/Xd934Ri/xdVNG8BE2ECa78Ht/kEg= sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0 h1:IKsKAnscMyIOqyl8s8V7guTcx0QBEa6OT57EPgAgpmM= sigs.k8s.io/sig-storage-lib-external-provisioner/v6 v6.3.0/go.mod h1:DhZ52sQMJHW21+JXyA2LRUPRIxKnrNrwh+QFV+2tVA4= sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= diff --git a/gui/window.h b/gui/window.h index a78944a6b8..55a120ce77 100644 --- a/gui/window.h +++ b/gui/window.h @@ -125,7 +125,6 @@ private: HyperKit *hyperKit; Updater *updater; QVBoxLayout *layout; - }; #endif // QT_NO_SYSTEMTRAYICON diff --git a/hack/jenkins/build_iso.sh b/hack/jenkins/build_iso.sh index 5a95616992..f9f93b2bc8 100755 --- a/hack/jenkins/build_iso.sh +++ b/hack/jenkins/build_iso.sh @@ -37,6 +37,7 @@ if [[ -z $ISO_VERSION ]]; then now=$(date +%s) export ISO_VERSION=$IV-$now-$ghprbPullId export ISO_BUCKET=minikube-builds/iso/$ghprbPullId + echo "#$ghprPullId - $ghprPullTitle" >> deploy/iso/minikube-iso/CHANGELOG else release=true export ISO_VERSION @@ -60,8 +61,10 @@ else # Copy the most recently built PR ISO for release CURRENT_ISO_VERSION=$(egrep "ISO_VERSION \?=" Makefile | cut -d " " -f 3) CURRENT_ISO_BUCKET=$(egrep "isoBucket :=" pkg/minikube/download/iso.go | cut -d " " -f 3 | cut -d '"' -f 2) - gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}.iso gs://${ISO_BUCKET}/minikube-${ISO_VERSION}.iso - gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}.iso.sha256 gs://${ISO_BUCKET}/minikube-${ISO_VERSION}.iso.sha256 + gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}-amd64.iso gs://${ISO_BUCKET}/minikube-${ISO_VERSION}-amd64.iso + gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}-amd64.iso.sha256 gs://${ISO_BUCKET}/minikube-${ISO_VERSION}-amd64.iso.sha256 + gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}-arm64.iso gs://${ISO_BUCKET}/minikube-${ISO_VERSION}-arm64.iso + gsutil cp gs://${CURRENT_ISO_BUCKET}/minikube-${CURRENT_ISO_VERSION}-arm64.iso.sha256 gs://${ISO_BUCKET}/minikube-${ISO_VERSION}-arm64.iso.sha256 fi git config user.name "minikube-bot" diff --git a/hack/jenkins/common.sh b/hack/jenkins/common.sh index 6a0f7c6b87..ccc6a70812 100755 --- a/hack/jenkins/common.sh +++ b/hack/jenkins/common.sh @@ -100,6 +100,13 @@ sudo ARCH="$ARCH" ./installers/check_install_docker.sh || true # install gotestsum if not present GOROOT="/usr/local/go" ./installers/check_install_gotestsum.sh || true +# install cron jobs +if [ "$OS" == "linux" ]; then + source ./installers/check_install_linux_crons.sh +else + source ./installers/check_install_osx_crons.sh +fi + # let's just clean all docker artifacts up docker system prune --force --volumes || true docker system df || true diff --git a/hack/jenkins/cron/cleanup_go_modules.sh b/hack/jenkins/cron/cleanup_go_modules.sh new file mode 100755 index 0000000000..38f7a07b06 --- /dev/null +++ b/hack/jenkins/cron/cleanup_go_modules.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# Copyright 2022 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +go clean -modcache diff --git a/hack/jenkins/installers/check_install_golang.sh b/hack/jenkins/installers/check_install_golang.sh index 37dea2c673..3aec596fda 100755 --- a/hack/jenkins/installers/check_install_golang.sh +++ b/hack/jenkins/installers/check_install_golang.sh @@ -22,7 +22,7 @@ if (($# < 1)); then exit 1 fi -VERSION_TO_INSTALL=1.18.1 +VERSION_TO_INSTALL=1.18.2 INSTALL_PATH=${1} function current_arch() { diff --git a/hack/jenkins/installers/check_install_gotestsum.sh b/hack/jenkins/installers/check_install_gotestsum.sh old mode 100644 new mode 100755 diff --git a/hack/jenkins/installers/check_install_linux_crons.sh b/hack/jenkins/installers/check_install_linux_crons.sh new file mode 100755 index 0000000000..e46e985b49 --- /dev/null +++ b/hack/jenkins/installers/check_install_linux_crons.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Copyright 2022 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" +sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP AND REBOOT" +sudo install cron/cleanup_go_modules.sh /etc/cron.monthly/cleanup_go_modules || echo "FAILED TO INSTALL GO MODULES CLEANUP" diff --git a/hack/jenkins/installers/check_install_osx_crons.sh b/hack/jenkins/installers/check_install_osx_crons.sh new file mode 100755 index 0000000000..1378bf63d1 --- /dev/null +++ b/hack/jenkins/installers/check_install_osx_crons.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright 2022 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" +install cron/cleanup_and_reboot_Darwin.sh $HOME/cleanup_and_reboot.sh || echo "FAILED TO INSTALL CLEANUP AND REBOOT" +echo "*/30 * * * * $HOME/cleanup_and_reboot.sh" | crontab +install cron/cleanup_go_modules.sh $HOME/cleanup_go_modules.sh || echo "FAILED TO INSTALL GO MODULES CLEANUP" +echo "0 0 1 * * $HOME/cleanup_go_modules.sh" | crontab +crontab -l diff --git a/hack/jenkins/linux_integration_tests_docker.sh b/hack/jenkins/linux_integration_tests_docker.sh index 76d2a75268..0884cc1f97 100755 --- a/hack/jenkins/linux_integration_tests_docker.sh +++ b/hack/jenkins/linux_integration_tests_docker.sh @@ -31,9 +31,6 @@ DRIVER="docker" JOB_NAME="Docker_Linux" CONTAINER_RUNTIME="docker" -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - # removing possible left over docker containers from previous runs docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true diff --git a/hack/jenkins/linux_integration_tests_docker_arm64.sh b/hack/jenkins/linux_integration_tests_docker_arm64.sh old mode 100644 new mode 100755 index 3e37be2439..8412555f8b --- a/hack/jenkins/linux_integration_tests_docker_arm64.sh +++ b/hack/jenkins/linux_integration_tests_docker_arm64.sh @@ -22,18 +22,17 @@ # COMMIT: Actual commit ID from upstream build # EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests # access_token: The GitHub API access token. Injected by the Jenkins credential provider. + set -e -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" +ARCH="arm64" +OS="linux" +DRIVER="docker" +JOB_NAME="$JOB_NAME" +CONTAINER_RUNTIME="docker" +EXTERNAL="yes" # removing possible left over docker containers from previous runs docker rm -f -v "$(docker ps -aq)" >/dev/null 2>&1 || true -ARCH="arm64" \ -OS="linux" \ -DRIVER="docker" \ -JOB_NAME="$JOB_NAME" \ -CONTAINER_RUNTIME="docker" \ -EXTERNAL="yes" \ source ./common.sh diff --git a/hack/jenkins/linux_integration_tests_docker_containerd.sh b/hack/jenkins/linux_integration_tests_docker_containerd.sh index a6fd8eeef6..903bfbf578 100755 --- a/hack/jenkins/linux_integration_tests_docker_containerd.sh +++ b/hack/jenkins/linux_integration_tests_docker_containerd.sh @@ -31,11 +31,6 @@ DRIVER="docker" JOB_NAME="Docker_Linux_containerd" CONTAINER_RUNTIME="containerd" - - -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - # removing possible left over docker containers from previous runs docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true diff --git a/hack/jenkins/linux_integration_tests_docker_containerd_arm64.sh b/hack/jenkins/linux_integration_tests_docker_containerd_arm64.sh old mode 100644 new mode 100755 index 6e0e505fe2..c42fa286e9 --- a/hack/jenkins/linux_integration_tests_docker_containerd_arm64.sh +++ b/hack/jenkins/linux_integration_tests_docker_containerd_arm64.sh @@ -22,18 +22,17 @@ # COMMIT: Actual commit ID from upstream build # EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests # access_token: The GitHub API access token. Injected by the Jenkins credential provider. + set -e -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" +ARCH="arm64" +OS="linux" +DRIVER="docker" +JOB_NAME="$JOB_NAME" +CONTAINER_RUNTIME="containerd" +EXTERNAL="yes" # removing possible left over docker containers from previous runs docker rm -f -v "$(docker ps -aq)" >/dev/null 2>&1 || true -ARCH="arm64" \ -OS="linux" \ -DRIVER="docker" \ -JOB_NAME="$JOB_NAME" \ -CONTAINER_RUNTIME="containerd" \ -EXTERNAL="yes" \ source ./common.sh diff --git a/hack/jenkins/linux_integration_tests_docker_crio.sh b/hack/jenkins/linux_integration_tests_docker_crio.sh index 466e62f685..a96dc9d4a6 100755 --- a/hack/jenkins/linux_integration_tests_docker_crio.sh +++ b/hack/jenkins/linux_integration_tests_docker_crio.sh @@ -31,11 +31,6 @@ DRIVER="docker" JOB_NAME="Docker_Linux_crio" CONTAINER_RUNTIME="crio" - - -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - # removing possible left over docker containers from previous runs docker rm -f -v $(docker ps -aq) >/dev/null 2>&1 || true diff --git a/hack/jenkins/linux_integration_tests_docker_crio_arm64.sh b/hack/jenkins/linux_integration_tests_docker_crio_arm64.sh old mode 100644 new mode 100755 index eeb7b03a6d..3af937dfff --- a/hack/jenkins/linux_integration_tests_docker_crio_arm64.sh +++ b/hack/jenkins/linux_integration_tests_docker_crio_arm64.sh @@ -22,18 +22,17 @@ # COMMIT: Actual commit ID from upstream build # EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests # access_token: The GitHub API access token. Injected by the Jenkins credential provider. + set -e -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" +ARCH="arm64" +OS="linux" +DRIVER="docker" +JOB_NAME="$JOB_NAME" +CONTAINER_RUNTIME="crio" +EXTERNAL="yes" # removing possible left over docker containers from previous runs docker rm -f -v "$(docker ps -aq)" >/dev/null 2>&1 || true -ARCH="arm64" \ -OS="linux" \ -DRIVER="docker" \ -JOB_NAME="$JOB_NAME" \ -CONTAINER_RUNTIME="crio" \ -EXTERNAL="yes" \ source ./common.sh diff --git a/hack/jenkins/linux_integration_tests_kvm.sh b/hack/jenkins/linux_integration_tests_kvm.sh index e88b2c5b0f..ac120ca52c 100755 --- a/hack/jenkins/linux_integration_tests_kvm.sh +++ b/hack/jenkins/linux_integration_tests_kvm.sh @@ -34,9 +34,6 @@ EXPECTED_DEFAULT_DRIVER="kvm2" # We pick kvm as our gvisor testbed because it is fast & reliable EXTRA_TEST_ARGS="-gvisor" -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - sudo apt-get update sudo apt-get -y install qemu-system libvirt-clients libvirt-daemon-system ebtables iptables dnsmasq sudo adduser jenkins libvirt || true diff --git a/hack/jenkins/linux_integration_tests_kvm_containerd.sh b/hack/jenkins/linux_integration_tests_kvm_containerd.sh index 82c5c89930..253ec00584 100755 --- a/hack/jenkins/linux_integration_tests_kvm_containerd.sh +++ b/hack/jenkins/linux_integration_tests_kvm_containerd.sh @@ -31,11 +31,6 @@ DRIVER="kvm2" JOB_NAME="KVM_Linux_containerd" CONTAINER_RUNTIME="containerd" - - -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - sudo apt-get update sudo apt-get -y install qemu-system libvirt-clients libvirt-daemon-system ebtables iptables dnsmasq sudo adduser jenkins libvirt || true diff --git a/hack/jenkins/linux_integration_tests_kvm_crio.sh b/hack/jenkins/linux_integration_tests_kvm_crio.sh index 10414d1a7a..14e489b6ce 100755 --- a/hack/jenkins/linux_integration_tests_kvm_crio.sh +++ b/hack/jenkins/linux_integration_tests_kvm_crio.sh @@ -31,11 +31,6 @@ DRIVER="kvm2" JOB_NAME="KVM_Linux_crio" CONTAINER_RUNTIME="crio" - - -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - sudo apt-get update sudo apt-get -y install qemu-system libvirt-clients libvirt-daemon-system ebtables iptables dnsmasq sudo adduser jenkins libvirt || true diff --git a/hack/jenkins/linux_integration_tests_none.sh b/hack/jenkins/linux_integration_tests_none.sh index 10d5aa4d85..5f6c950705 100755 --- a/hack/jenkins/linux_integration_tests_none.sh +++ b/hack/jenkins/linux_integration_tests_none.sh @@ -23,7 +23,6 @@ # EXTRA_BUILD_ARGS (optional): Extra args to be passed into the minikube integrations tests # access_token: The GitHub API access token. Injected by the Jenkins credential provider. - set -e OS="linux" @@ -66,9 +65,6 @@ if ! which socat &>/dev/null; then sudo apt-get -qq -y install socat fi -mkdir -p cron && gsutil -m rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - # We need this for reasons now sudo sysctl fs.protected_regular=0 diff --git a/hack/jenkins/linux_integration_tests_podman.sh b/hack/jenkins/linux_integration_tests_podman.sh index fd19ae9e2a..d61e712d71 100755 --- a/hack/jenkins/linux_integration_tests_podman.sh +++ b/hack/jenkins/linux_integration_tests_podman.sh @@ -31,9 +31,6 @@ DRIVER="podman" JOB_NAME="Experimental_Podman_Linux" CONTAINER_RUNTIME="containerd" -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - # remove possible left over podman containers sudo podman rm -f -v $(sudo podman ps -aq) || true diff --git a/hack/jenkins/linux_integration_tests_virtualbox.sh b/hack/jenkins/linux_integration_tests_virtualbox.sh index 0957872928..7bd5e0205f 100755 --- a/hack/jenkins/linux_integration_tests_virtualbox.sh +++ b/hack/jenkins/linux_integration_tests_virtualbox.sh @@ -32,7 +32,4 @@ JOB_NAME="VirtualBox_Linux" EXTRA_TEST_ARGS="" EXPECTED_DEFAULT_DRIVER="kvm2" -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -sudo install cron/cleanup_and_reboot_Linux.sh /etc/cron.hourly/cleanup_and_reboot || echo "FAILED TO INSTALL CLEANUP" - source ./common.sh 2h diff --git a/hack/jenkins/osx_integration_tests_docker.sh b/hack/jenkins/osx_integration_tests_docker.sh index a177d0d41e..ff987a96b8 100755 --- a/hack/jenkins/osx_integration_tests_docker.sh +++ b/hack/jenkins/osx_integration_tests_docker.sh @@ -47,9 +47,4 @@ do fi done -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -install cron/cleanup_and_reboot_Darwin.sh $HOME/cleanup_and_reboot.sh || echo "FAILED TO INSTALL CLEANUP" -echo "*/30 * * * * $HOME/cleanup_and_reboot.sh" | crontab -crontab -l - source common.sh diff --git a/hack/jenkins/osx_integration_tests_hyperkit.sh b/hack/jenkins/osx_integration_tests_hyperkit.sh index 52d81595f3..a8efe9ba0d 100755 --- a/hack/jenkins/osx_integration_tests_hyperkit.sh +++ b/hack/jenkins/osx_integration_tests_hyperkit.sh @@ -34,9 +34,4 @@ EXTRA_TEST_ARGS="" EXPECTED_DEFAULT_DRIVER="hyperkit" EXTERNAL="yes" -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -install cron/cleanup_and_reboot_Darwin.sh $HOME/cleanup_and_reboot.sh || echo "FAILED TO INSTALL CLEANUP" -echo "*/30 * * * * $HOME/cleanup_and_reboot.sh" | crontab -crontab -l - source common.sh diff --git a/hack/jenkins/osx_integration_tests_virtualbox.sh b/hack/jenkins/osx_integration_tests_virtualbox.sh index 06aa488ba8..d20e90a41b 100755 --- a/hack/jenkins/osx_integration_tests_virtualbox.sh +++ b/hack/jenkins/osx_integration_tests_virtualbox.sh @@ -33,10 +33,4 @@ EXTRA_START_ARGS="--bootstrapper=kubeadm" # Assumes that hyperkit is also installed on the VirtualBox CI host. EXPECTED_DEFAULT_DRIVER="hyperkit" - -mkdir -p cron && gsutil -qm rsync "gs://minikube-builds/${MINIKUBE_LOCATION}/cron" cron || echo "FAILED TO GET CRON FILES" -install cron/cleanup_and_reboot_Darwin.sh $HOME/cleanup_and_reboot.sh || echo "FAILED TO GET INSTALL CLEANUP" -echo "*/30 * * * * $HOME/cleanup_and_reboot.sh" | crontab -crontab -l - source common.sh diff --git a/hack/jenkins/prbot.sh b/hack/jenkins/prbot.sh old mode 100644 new mode 100755 diff --git a/hack/jenkins/preload_generation.sh b/hack/jenkins/preload_generation.sh old mode 100644 new mode 100755 index b019d6f6e1..2aeddd3aaf --- a/hack/jenkins/preload_generation.sh +++ b/hack/jenkins/preload_generation.sh @@ -20,6 +20,8 @@ set -eux -o pipefail +source ./hack/jenkins/installers/check_install_linux_crons.sh + # Make sure the right golang version is installed based on Makefile ./hack/jenkins/installers/check_install_golang.sh /usr/local diff --git a/hack/jenkins/release_github_page.sh b/hack/jenkins/release_github_page.sh index 932c9134d0..c4ddbbaf82 100755 --- a/hack/jenkins/release_github_page.sh +++ b/hack/jenkins/release_github_page.sh @@ -21,7 +21,8 @@ # VERSION_MAJOR: The major version of the tag to be released. # VERSION_MINOR: The minor version of the tag to be released. # VERSION_BUILD: The build version of the tag to be released. -# ISO_SHA256: The sha 256 of the minikube-iso for the current release. +# ISO_SHA256_AMD64: The sha 256 of the amd64 minikube-iso for the current release. +# ISO_SHA256_ARM64: The sha 256 of the arm64 minikube-iso for the current release. # GITHUB_TOKEN: The GitHub API access token. Injected by the Jenkins credential provider. set -eux -o pipefail @@ -62,7 +63,8 @@ See [Getting Started](https://minikube.sigs.k8s.io/docs/start/) ## ISO Checksum -\`${ISO_SHA256}\`" +amd64: \`${ISO_SHA256_AMD64}\` +arm64: \`${ISO_SHA256_ARM64}\`" # ================================================================================ # Deleting release from github before creating new one diff --git a/hack/jenkins/test-flake-chart/compute_flake_rate.sh b/hack/jenkins/test-flake-chart/compute_flake_rate.sh old mode 100644 new mode 100755 diff --git a/hack/jenkins/test-flake-chart/sync_tests.sh b/hack/jenkins/test-flake-chart/sync_tests.sh old mode 100644 new mode 100755 diff --git a/hack/jenkins/upload_integration_report.sh b/hack/jenkins/upload_integration_report.sh old mode 100644 new mode 100755 diff --git a/pkg/addons/addons.go b/pkg/addons/addons.go index 94016ab2e2..2b273dd6d2 100644 --- a/pkg/addons/addons.go +++ b/pkg/addons/addons.go @@ -250,7 +250,7 @@ func addonSpecificChecks(cc *config.ClusterConfig, name string, enable bool, run } if name == "registry" { - if driver.NeedsPortForward(cc.Driver) { + if driver.NeedsPortForward(cc.Driver) && driver.IsKIC(cc.Driver) { port, err := oci.ForwardedPort(cc.Driver, cc.Name, constants.RegistryAddonPort) if err != nil { return false, errors.Wrap(err, "registry port") diff --git a/pkg/addons/addons_autopause.go b/pkg/addons/addons_autopause.go index 3b33b7f9bd..2e5faf86e9 100644 --- a/pkg/addons/addons_autopause.go +++ b/pkg/addons/addons_autopause.go @@ -51,7 +51,7 @@ func enableOrDisableAutoPause(cc *config.ClusterConfig, name, val string) error port := co.CP.Port // API server port if enable { // if enable, calculate the forwarded port port = constants.AutoPauseProxyPort - if driver.NeedsPortForward(cc.Driver) { + if driver.NeedsPortForward(cc.Driver) && driver.IsKIC(cc.Driver) { port, err = oci.ForwardedPort(cc.Driver, cc.Name, port) if err != nil { klog.ErrorS(err, "failed to get forwarded port for", "auto-pause port", port) diff --git a/pkg/addons/addons_gcpauth.go b/pkg/addons/addons_gcpauth.go index b69a7df27a..cf2f9b315d 100644 --- a/pkg/addons/addons_gcpauth.go +++ b/pkg/addons/addons_gcpauth.go @@ -101,7 +101,7 @@ func enableAddonGCPAuth(cfg *config.ClusterConfig) error { } if creds.JSON == nil { - out.WarningT("You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.") + out.WarningT("You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.") return nil } diff --git a/pkg/drivers/kic/oci/cgroups_linux.go b/pkg/drivers/kic/oci/cgroups_linux.go index f963864c88..2ced555223 100644 --- a/pkg/drivers/kic/oci/cgroups_linux.go +++ b/pkg/drivers/kic/oci/cgroups_linux.go @@ -19,16 +19,64 @@ limitations under the License. package oci import ( - "syscall" + "fmt" + "os" + "path" - "golang.org/x/sys/unix" + "github.com/opencontainers/runc/libcontainer/cgroups" + + "k8s.io/klog/v2" ) -// IsCgroup2UnifiedMode returns whether we are running in cgroup 2 cgroup2 mode. -func IsCgroup2UnifiedMode() (bool, error) { - var st syscall.Statfs_t - if err := syscall.Statfs("/sys/fs/cgroup", &st); err != nil { - return false, err +// findCgroupMountpoints returns the cgroups mount point +// defined in docker engine engine/pkg/sysinfo/sysinfo_linux.go +func findCgroupMountpoints() (map[string]string, error) { + cgMounts, err := cgroups.GetCgroupMounts(false) + if err != nil { + return nil, fmt.Errorf("failed to parse cgroup information: %v", err) } - return st.Type == unix.CGROUP2_SUPER_MAGIC, nil + mps := make(map[string]string) + for _, m := range cgMounts { + for _, ss := range m.Subsystems { + mps[ss] = m.Mountpoint + } + } + return mps, nil +} + +// HasMemoryCgroup checks whether it is possible to set memory limit for cgroup. +func HasMemoryCgroup() bool { + cgMounts, err := findCgroupMountpoints() + if err != nil { + klog.Warning("Your kernel does not support memory limit capabilities or the cgroup is not mounted.") + return false + } + _, ok := cgMounts["memory"] + if !ok { + klog.Warning("Your kernel does not support memory limit capabilities or the cgroup is not mounted.") + return false + } + return true +} + +// hasMemorySwapCgroup checks whether it is possible to set swap limit for cgroup +func hasMemorySwapCgroup() bool { + cgMounts, err := findCgroupMountpoints() + if err != nil { + klog.Warning("Your kernel does not support swap limit capabilities or the cgroup is not mounted.") + return false + } + mountPoint, ok := cgMounts["memory"] + if !ok { + klog.Warning("Your kernel does not support swap limit capabilities or the cgroup is not mounted.") + return false + } + + _, err = os.Stat(path.Join(mountPoint, "memory.memsw.limit_in_bytesw")) + if err != nil { + klog.Warning("Your kernel does not support swap limit capabilities or the cgroup is not mounted.") + return false + + } + return true } diff --git a/pkg/drivers/kic/oci/cgroups_other.go b/pkg/drivers/kic/oci/cgroups_other.go index a64a8449a8..db124317a6 100644 --- a/pkg/drivers/kic/oci/cgroups_other.go +++ b/pkg/drivers/kic/oci/cgroups_other.go @@ -18,13 +18,10 @@ limitations under the License. package oci -import ( - "runtime" - - "github.com/pkg/errors" -) - -// IsCgroup2UnifiedMode returns whether we are running in cgroup 2 cgroup2 mode. -func IsCgroup2UnifiedMode() (bool, error) { - return false, errors.Errorf("Not supported on %s", runtime.GOOS) +func HasMemoryCgroup() bool { + return true +} + +func hasMemorySwapCgroup() bool { + return true } diff --git a/pkg/drivers/kic/oci/oci.go b/pkg/drivers/kic/oci/oci.go index 91337ff82c..9516af6b6f 100644 --- a/pkg/drivers/kic/oci/oci.go +++ b/pkg/drivers/kic/oci/oci.go @@ -108,38 +108,6 @@ func PrepareContainerNode(p CreateParams) error { return nil } -// HasMemoryCgroup checks whether it is possible to set memory limit for cgroup. -func HasMemoryCgroup() bool { - memcg := true - if runtime.GOOS == "linux" { - var memory string - if cgroup2, err := IsCgroup2UnifiedMode(); err == nil && cgroup2 { - memory = "/sys/fs/cgroup/memory/memsw.limit_in_bytes" - } - if _, err := os.Stat(memory); os.IsNotExist(err) { - klog.Warning("Your kernel does not support memory limit capabilities or the cgroup is not mounted.") - memcg = false - } - } - return memcg -} - -func hasMemorySwapCgroup() bool { - memcgSwap := true - if runtime.GOOS == "linux" { - var memoryswap string - if cgroup2, err := IsCgroup2UnifiedMode(); err == nil && cgroup2 { - memoryswap = "/sys/fs/cgroup/memory/memory.swap.max" - } - if _, err := os.Stat(memoryswap); os.IsNotExist(err) { - // requires CONFIG_MEMCG_SWAP_ENABLED or cgroup_enable=memory in grub - klog.Warning("Your kernel does not support swap limit capabilities or the cgroup is not mounted.") - memcgSwap = false - } - } - return memcgSwap -} - // CreateContainerNode creates a new container node func CreateContainerNode(p CreateParams) error { // on windows os, if docker desktop is using Windows Containers. Exit early with error diff --git a/pkg/drivers/kic/types.go b/pkg/drivers/kic/types.go index d8d9d3207f..dad8c54d6e 100644 --- a/pkg/drivers/kic/types.go +++ b/pkg/drivers/kic/types.go @@ -24,13 +24,13 @@ import ( const ( // Version is the current version of kic - Version = "v0.0.30-1647797120-13815" + Version = "v0.0.31" // SHA of the kic base image - baseImageSHA = "90e8f7ee4065da728c0b80d303827e05ce4421985fe9bd7bdca30a55218347b5" + baseImageSHA = "c3375f1b260bd936aa532a0c749626e07d94ab129a7f2395e95345aa04ca708c" // The name of the GCR kicbase repository - gcrRepo = "gcr.io/k8s-minikube/kicbase-builds" + gcrRepo = "gcr.io/k8s-minikube/kicbase" // The name of the Dockerhub kicbase repository - dockerhubRepo = "docker.io/kicbase/build" + dockerhubRepo = "docker.io/kicbase/stable" ) var ( diff --git a/pkg/drivers/kvm/domain_definition_arm64.go b/pkg/drivers/kvm/domain_definition_arm64.go index 7e7314945a..85082457f7 100644 --- a/pkg/drivers/kvm/domain_definition_arm64.go +++ b/pkg/drivers/kvm/domain_definition_arm64.go @@ -24,8 +24,9 @@ const domainTmpl = ` {{.Memory}} {{.CPU}} - - + + + {{if .Hidden}} @@ -37,11 +38,10 @@ const domainTmpl = ` {{.NUMANodeXML}} {{end}} - - /usr/share/AAVMF/AAVMF_CODE.fd - /var/lib/libvirt/qemu/nvram/ubuntu_VARS.fd hvm + /usr/share/AAVMF/AAVMF_CODE.fd + /usr/share/AAVMF/AAVMF_VARS.fd @@ -49,7 +49,7 @@ const domainTmpl = ` - + diff --git a/pkg/drivers/kvm/kvm.go b/pkg/drivers/kvm/kvm.go index 7093b48e1c..733fd31d41 100644 --- a/pkg/drivers/kvm/kvm.go +++ b/pkg/drivers/kvm/kvm.go @@ -546,7 +546,7 @@ func (d *Driver) undefineDomain(conn *libvirt.Connect, dom *libvirt.Domain) erro return nil } - return dom.Undefine() + return dom.UndefineFlags(libvirt.DOMAIN_UNDEFINE_KEEP_NVRAM) } // lvErr will return libvirt Error struct containing specific libvirt error code, domain, message and level diff --git a/pkg/drivers/qemu/qemu.go b/pkg/drivers/qemu/qemu.go new file mode 100644 index 0000000000..2919735d9c --- /dev/null +++ b/pkg/drivers/qemu/qemu.go @@ -0,0 +1,767 @@ +/* +Copyright 2018 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package qemu + +import ( + "archive/tar" + "bytes" + "encoding/json" + "fmt" + "io/ioutil" + "math/rand" + "net" + "os" + "os/exec" + "path/filepath" + "runtime" + "strconv" + "strings" + "syscall" + "time" + + "github.com/docker/machine/libmachine/drivers" + "github.com/docker/machine/libmachine/log" + "github.com/docker/machine/libmachine/mcnutils" + "github.com/docker/machine/libmachine/ssh" + "github.com/docker/machine/libmachine/state" + "github.com/pkg/errors" + + pkgdrivers "k8s.io/minikube/pkg/drivers" +) + +const ( + isoFilename = "boot2docker.iso" + privateNetworkName = "docker-machines" + + defaultSSHUser = "docker" +) + +type Driver struct { + *drivers.BaseDriver + *pkgdrivers.CommonDriver + EnginePort int + FirstQuery bool + + Memory int + DiskSize int + CPU int + Program string + BIOS bool + CPUType string + MachineType string + Firmware string + Display bool + DisplayType string + Nographic bool + VirtioDrives bool + Network string + PrivateNetwork string + Boot2DockerURL string + NetworkInterface string + NetworkAddress string + NetworkSocket string + NetworkBridge string + CaCertPath string + PrivateKeyPath string + DiskPath string + CacheMode string + IOMode string + UserDataFile string + CloudConfigRoot string + LocalPorts string +} + +func (d *Driver) GetMachineName() string { + return d.MachineName +} + +func (d *Driver) GetSSHHostname() (string, error) { + return "localhost", nil +} + +func (d *Driver) GetSSHKeyPath() string { + return d.ResolveStorePath("id_rsa") +} + +func (d *Driver) GetSSHPort() (int, error) { + if d.SSHPort == 0 { + d.SSHPort = 22 + } + + return d.SSHPort, nil +} + +func (d *Driver) GetSSHUsername() string { + if d.SSHUser == "" { + d.SSHUser = "docker" + } + + return d.SSHUser +} + +func (d *Driver) DriverName() string { + return "qemu2" +} + +func (d *Driver) GetURL() (string, error) { + log.Debugf("GetURL called") + if _, err := os.Stat(d.pidfilePath()); err != nil { + return "", nil + } + ip, err := d.GetIP() + if err != nil { + log.Warnf("Failed to get IP: %s", err) + return "", err + } + if ip == "" { + return "", nil + } + port := d.GetPort() + return fmt.Sprintf("tcp://%s:%d", ip, port), nil +} + +func NewDriver(hostName, storePath string) drivers.Driver { + return &Driver{ + BIOS: runtime.GOARCH != "arm64", + PrivateNetwork: privateNetworkName, + BaseDriver: &drivers.BaseDriver{ + SSHUser: defaultSSHUser, + MachineName: hostName, + StorePath: storePath, + }, + } +} + +func (d *Driver) GetIP() (string, error) { + if d.Network == "user" { + return "127.0.0.1", nil + } + return d.NetworkAddress, nil +} + +func (d *Driver) GetPort() int { + var port = d.EnginePort + if d.FirstQuery { + d.FirstQuery = false + port = 2376 + } + return port +} + +func checkPid(pid int) error { + process, err := os.FindProcess(pid) + if err != nil { + return err + } + return process.Signal(syscall.Signal(0)) +} + +func (d *Driver) GetState() (state.State, error) { + + if _, err := os.Stat(d.pidfilePath()); err != nil { + return state.Stopped, nil + } + p, err := ioutil.ReadFile(d.pidfilePath()) + if err != nil { + return state.Error, err + } + pid, err := strconv.Atoi(strings.TrimSpace(string(p))) + if err != nil { + return state.Error, err + } + if err := checkPid(pid); err != nil { + // No pid, remove pidfile + os.Remove(d.pidfilePath()) + return state.Stopped, nil + } + ret, err := d.RunQMPCommand("query-status") + if err != nil { + return state.Error, err + } + // RunState is one of: + // 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused', + // 'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm', + // 'running', 'save-vm', 'shutdown', 'suspended', 'watchdog', + // 'guest-panicked' + switch ret["status"] { + case "running": + return state.Running, nil + case "paused": + return state.Paused, nil + case "shutdown": + return state.Stopped, nil + } + return state.None, nil +} + +func (d *Driver) PreCreateCheck() error { + return nil +} + +func (d *Driver) Create() error { + var err error + if d.Network == "user" { + minPort, maxPort, err := parsePortRange(d.LocalPorts) + log.Debugf("port range: %d -> %d", minPort, maxPort) + if err != nil { + return err + } + d.SSHPort, err = getAvailableTCPPortFromRange(minPort, maxPort) + if err != nil { + return err + } + + for { + d.EnginePort, err = getAvailableTCPPortFromRange(minPort, maxPort) + if err != nil { + return err + } + if d.EnginePort == d.SSHPort { + // can't have both on same port + continue + } + break + } + } + b2dutils := mcnutils.NewB2dUtils(d.StorePath) + if err := b2dutils.CopyIsoToMachineDir(d.Boot2DockerURL, d.MachineName); err != nil { + return err + } + + log.Infof("Creating SSH key...") + if err := ssh.GenerateSSHKey(d.sshKeyPath()); err != nil { + return err + } + + log.Infof("Creating Disk image...") + if err := d.generateDiskImage(d.DiskSize); err != nil { + return err + } + + if d.UserDataFile != "" { + log.Infof("Creating Userdata Disk...") + if d.CloudConfigRoot, err = d.generateUserdataDisk(d.UserDataFile); err != nil { + return err + } + } + + log.Infof("Starting QEMU VM...") + return d.Start() +} + +func parsePortRange(rawPortRange string) (int, int, error) { + if rawPortRange == "" { + return 0, 65535, nil + } + + portRange := strings.Split(rawPortRange, "-") + + if len(portRange) < 2 { + return 0, 0, errors.New("Invalid port range, must be at least of length 2") + } + + minPort, err := strconv.Atoi(portRange[0]) + if err != nil { + return 0, 0, errors.Wrap(err, "Invalid port range") + } + maxPort, err := strconv.Atoi(portRange[1]) + if err != nil { + return 0, 0, errors.Wrap(err, "Invalid port range") + } + + if maxPort < minPort { + return 0, 0, errors.New("Invalid port range") + } + + if maxPort-minPort < 2 { + return 0, 0, errors.New("Port range must be minimum 2 ports") + } + + return minPort, maxPort, nil +} + +func getRandomPortNumberInRange(min int, max int) int { + return rand.Intn(max-min) + min +} + +func getAvailableTCPPortFromRange(minPort int, maxPort int) (int, error) { + port := 0 + for i := 0; i <= 10; i++ { + var ln net.Listener + var err error + if minPort == 0 && maxPort == 65535 { + ln, err = net.Listen("tcp4", "127.0.0.1:0") + if err != nil { + return 0, err + } + } else { + port = getRandomPortNumberInRange(minPort, maxPort) + log.Debugf("testing port: %d", port) + ln, err = net.Listen("tcp4", fmt.Sprintf("127.0.0.1:%d", port)) + if err != nil { + log.Debugf("port already in use: %d", port) + continue + } + } + defer ln.Close() + addr := ln.Addr().String() + addrParts := strings.SplitN(addr, ":", 2) + p, err := strconv.Atoi(addrParts[1]) + if err != nil { + return 0, err + } + if p != 0 { + port = p + return port, nil + } + time.Sleep(1 * time.Second) + } + return 0, fmt.Errorf("unable to allocate tcp port") +} + +func (d *Driver) Start() error { + // fmt.Printf("Init qemu %s\n", i.VM) + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + + var startCmd []string + + if d.MachineType != "" { + machineType := d.MachineType + startCmd = append(startCmd, + "-M", machineType, + ) + } + if d.CPUType != "" { + startCmd = append(startCmd, + "-cpu", d.CPUType, + ) + } + + if !d.BIOS { + if d.Firmware != "" { + startCmd = append(startCmd, + "-drive", fmt.Sprintf("file=%s,readonly=on,format=raw,if=pflash", d.Firmware)) + } else { + return fmt.Errorf("unknown firmware") + } + } + + if d.Display { + if d.DisplayType != "" { + startCmd = append(startCmd, + "-display", d.DisplayType, + ) + } + // else use the default graphic output + } else { + if d.Nographic { + startCmd = append(startCmd, + "-nographic", + ) + } else { + startCmd = append(startCmd, + "-display", "none", + ) + } + } + + // hardware acceleration is important, it increases performance by 10x + if runtime.GOOS == "darwin" { + startCmd = append(startCmd, "-accel", "hvf") + } else if _, err := os.Stat("/dev/kvm"); err == nil && runtime.GOOS == "linux" { + startCmd = append(startCmd, "-accel", "kvm") + } + + startCmd = append(startCmd, + "-m", fmt.Sprintf("%d", d.Memory), + "-smp", fmt.Sprintf("%d", d.CPU), + "-boot", "d") + var isoPath = filepath.Join(machineDir, isoFilename) + if d.VirtioDrives { + startCmd = append(startCmd, + "-drive", fmt.Sprintf("file=%s,index=2,media=cdrom,if=virtio", isoPath)) + } else { + startCmd = append(startCmd, + "-cdrom", isoPath) + } + startCmd = append(startCmd, + "-qmp", fmt.Sprintf("unix:%s,server,nowait", d.monitorPath()), + "-pidfile", d.pidfilePath(), + ) + + if d.Network == "user" { + startCmd = append(startCmd, + "-nic", fmt.Sprintf("user,model=virtio,hostfwd=tcp::%d-:22,hostfwd=tcp::%d-:2376,hostname=%s", d.SSHPort, d.EnginePort, d.GetMachineName()), + ) + } else if d.Network == "tap" { + startCmd = append(startCmd, + "-nic", fmt.Sprintf("tap,model=virtio,ifname=%s,script=no,downscript=no", d.NetworkInterface), + ) + } else if d.Network == "vde" { + startCmd = append(startCmd, + "-nic", fmt.Sprintf("vde,model=virtio,sock=%s", d.NetworkSocket), + ) + } else if d.Network == "bridge" { + startCmd = append(startCmd, + "-nic", fmt.Sprintf("bridge,model=virtio,br=%s", d.NetworkBridge), + ) + } else { + log.Errorf("Unknown network: %s", d.Network) + } + + startCmd = append(startCmd, "-daemonize") + + if d.CloudConfigRoot != "" { + startCmd = append(startCmd, + "-fsdev", + fmt.Sprintf("local,security_model=passthrough,readonly,id=fsdev0,path=%s", d.CloudConfigRoot)) + startCmd = append(startCmd, "-device", "virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=config-2") + } + + if d.VirtioDrives { + startCmd = append(startCmd, + "-drive", fmt.Sprintf("file=%s,index=0,media=disk,if=virtio", d.diskPath())) + } else { + // last argument is always the name of the disk image + startCmd = append(startCmd, d.diskPath()) + } + + if stdout, stderr, err := cmdOutErr(d.Program, startCmd...); err != nil { + fmt.Printf("OUTPUT: %s\n", stdout) + fmt.Printf("ERROR: %s\n", stderr) + return err + } + log.Infof("Waiting for VM to start (ssh -p %d docker@localhost)...", d.SSHPort) + + return WaitForTCPWithDelay(fmt.Sprintf("localhost:%d", d.SSHPort), time.Second) +} + +func cmdOutErr(cmdStr string, args ...string) (string, string, error) { + cmd := exec.Command(cmdStr, args...) + log.Debugf("executing: %v %v", cmdStr, strings.Join(args, " ")) + var stdout bytes.Buffer + var stderr bytes.Buffer + cmd.Stdout = &stdout + cmd.Stderr = &stderr + err := cmd.Run() + stderrStr := stderr.String() + log.Debugf("STDOUT: %v", stdout.String()) + log.Debugf("STDERR: %v", stderrStr) + if err != nil { + if ee, ok := err.(*exec.Error); ok && ee == exec.ErrNotFound { + err = fmt.Errorf("mystery error: %s", ee) + } + } else { + // also catch error messages in stderr, even if the return code + // looks OK + if strings.Contains(stderrStr, "error:") { + err = fmt.Errorf("%v %v failed: %v", cmdStr, strings.Join(args, " "), stderrStr) + } + } + return stdout.String(), stderrStr, err +} + +func (d *Driver) Stop() error { + // _, err := d.RunQMPCommand("stop") + _, err := d.RunQMPCommand("system_powerdown") + if err != nil { + return err + } + return nil +} + +func (d *Driver) Remove() error { + s, err := d.GetState() + if err != nil { + return errors.Wrap(err, "get state") + } + if s == state.Running { + if err := d.Kill(); err != nil { + return errors.Wrap(err, "kill") + } + } + if s != state.Stopped { + _, err = d.RunQMPCommand("quit") + if err != nil { + return errors.Wrap(err, "quit") + } + } + return nil +} + +func (d *Driver) Restart() error { + s, err := d.GetState() + if err != nil { + return err + } + + if s == state.Running { + if err := d.Stop(); err != nil { + return err + } + } + return d.Start() +} + +func (d *Driver) Kill() error { + // _, err := d.RunQMPCommand("quit") + _, err := d.RunQMPCommand("system_powerdown") + if err != nil { + return err + } + return nil +} + +func (d *Driver) StartDocker() error { + return fmt.Errorf("hosts without a driver cannot start docker") +} + +func (d *Driver) StopDocker() error { + return fmt.Errorf("hosts without a driver cannot stop docker") +} + +func (d *Driver) GetDockerConfigDir() string { + return "" +} + +func (d *Driver) Upgrade() error { + return fmt.Errorf("hosts without a driver cannot be upgraded") +} + +func (d *Driver) sshKeyPath() string { + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + return filepath.Join(machineDir, "id_rsa") +} + +func (d *Driver) publicSSHKeyPath() string { + return d.sshKeyPath() + ".pub" +} + +func (d *Driver) diskPath() string { + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + return filepath.Join(machineDir, "disk.qcow2") +} + +func (d *Driver) monitorPath() string { + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + return filepath.Join(machineDir, "monitor") +} + +func (d *Driver) pidfilePath() string { + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + return filepath.Join(machineDir, "qemu.pid") +} + +// Make a boot2docker VM disk image. +func (d *Driver) generateDiskImage(size int) error { + log.Debugf("Creating %d MB hard disk image...", size) + + magicString := "boot2docker, please format-me" + + buf := new(bytes.Buffer) + tw := tar.NewWriter(buf) + + // magicString first so the automount script knows to format the disk + file := &tar.Header{Name: magicString, Size: int64(len(magicString))} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write([]byte(magicString)); err != nil { + return err + } + // .ssh/key.pub => authorized_keys + file = &tar.Header{Name: ".ssh", Typeflag: tar.TypeDir, Mode: 0700} + if err := tw.WriteHeader(file); err != nil { + return err + } + pubKey, err := ioutil.ReadFile(d.publicSSHKeyPath()) + if err != nil { + return err + } + file = &tar.Header{Name: ".ssh/authorized_keys", Size: int64(len(pubKey)), Mode: 0644} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write(pubKey); err != nil { + return err + } + file = &tar.Header{Name: ".ssh/authorized_keys2", Size: int64(len(pubKey)), Mode: 0644} + if err := tw.WriteHeader(file); err != nil { + return err + } + if _, err := tw.Write(pubKey); err != nil { + return err + } + if err := tw.Close(); err != nil { + return err + } + rawFile := fmt.Sprintf("%s.raw", d.diskPath()) + if err := ioutil.WriteFile(rawFile, buf.Bytes(), 0644); err != nil { + return nil + } + if stdout, stderr, err := cmdOutErr("qemu-img", "convert", "-f", "raw", "-O", "qcow2", rawFile, d.diskPath()); err != nil { + fmt.Printf("OUTPUT: %s\n", stdout) + fmt.Printf("ERROR: %s\n", stderr) + return err + } + if stdout, stderr, err := cmdOutErr("qemu-img", "resize", d.diskPath(), fmt.Sprintf("+%dM", size)); err != nil { + fmt.Printf("OUTPUT: %s\n", stdout) + fmt.Printf("ERROR: %s\n", stderr) + return err + } + log.Debugf("DONE writing to %s and %s", rawFile, d.diskPath()) + + return nil +} + +func (d *Driver) generateUserdataDisk(userdataFile string) (string, error) { + // Start with virtio, add ISO & FAT format later + // Start with local file, add wget/fetct URL? (or if URL, use datasource..) + userdata, err := ioutil.ReadFile(userdataFile) + if err != nil { + return "", err + } + + machineDir := filepath.Join(d.StorePath, "machines", d.GetMachineName()) + ccRoot := filepath.Join(machineDir, "cloud-config") + err = os.MkdirAll(ccRoot, 0755) + if err != nil { + return "", err + } + + userDataDir := filepath.Join(ccRoot, "openstack/latest") + err = os.MkdirAll(userDataDir, 0755) + if err != nil { + return "", err + } + + writeFile := filepath.Join(userDataDir, "user_data") + if err := ioutil.WriteFile(writeFile, userdata, 0644); err != nil { + return "", err + } + + return ccRoot, nil + +} + +func (d *Driver) RunQMPCommand(command string) (map[string]interface{}, error) { + + // connect to monitor + conn, err := net.Dial("unix", d.monitorPath()) + if err != nil { + return nil, err + } + defer conn.Close() + + // initial QMP response + var buf [1024]byte + nr, err := conn.Read(buf[:]) + if err != nil { + return nil, err + } + type qmpInitialResponse struct { + QMP struct { + Version struct { + QEMU struct { + Micro int `json:"micro"` + Minor int `json:"minor"` + Major int `json:"major"` + } `json:"qemu"` + Package string `json:"package"` + } `json:"version"` + Capabilities []string `json:"capabilities"` + } `jason:"QMP"` + } + + var initialResponse qmpInitialResponse + err = json.Unmarshal(buf[:nr], &initialResponse) + if err != nil { + return nil, err + } + + // run 'qmp_capabilities' to switch to command mode + // { "execute": "qmp_capabilities" } + type qmpCommand struct { + Command string `json:"execute"` + } + jsonCommand, err := json.Marshal(qmpCommand{Command: "qmp_capabilities"}) + if err != nil { + return nil, err + } + _, err = conn.Write(jsonCommand) + if err != nil { + return nil, err + } + nr, err = conn.Read(buf[:]) + if err != nil { + return nil, err + } + type qmpResponse struct { + Return map[string]interface{} `json:"return"` + } + var response qmpResponse + err = json.Unmarshal(buf[:nr], &response) + if err != nil { + return nil, err + } + // expecting empty response + if len(response.Return) != 0 { + return nil, fmt.Errorf("qmp_capabilities failed: %v", response.Return) + } + + // { "execute": command } + jsonCommand, err = json.Marshal(qmpCommand{Command: command}) + if err != nil { + return nil, err + } + _, err = conn.Write(jsonCommand) + if err != nil { + return nil, err + } + nr, err = conn.Read(buf[:]) + if err != nil { + return nil, err + } + err = json.Unmarshal(buf[:nr], &response) + if err != nil { + return nil, err + } + if strings.HasPrefix(command, "query-") { + return response.Return, nil + } + // non-query commands should return an empty response + if len(response.Return) != 0 { + return nil, fmt.Errorf("%s failed: %v", command, response.Return) + } + return response.Return, nil +} + +func WaitForTCPWithDelay(addr string, duration time.Duration) error { + for { + conn, err := net.Dial("tcp", addr) + if err != nil { + continue + } + defer conn.Close() + if _, err = conn.Read(make([]byte, 1)); err != nil { + time.Sleep(duration) + continue + } + break + } + return nil +} diff --git a/pkg/minikube/assets/addons.go b/pkg/minikube/assets/addons.go index 371e0e7bb7..8fbeb0b662 100755 --- a/pkg/minikube/assets/addons.go +++ b/pkg/minikube/assets/addons.go @@ -813,6 +813,7 @@ func GenerateTemplateData(addon *Addon, cfg config.KubernetesConfig, netInfo Net CustomIngressCert string IngressAPIVersion string ContainerRuntime string + RegistryAliases string Images map[string]string Registries map[string]string CustomRegistries map[string]string @@ -825,6 +826,7 @@ func GenerateTemplateData(addon *Addon, cfg config.KubernetesConfig, netInfo Net LoadBalancerStartIP: cfg.LoadBalancerStartIP, LoadBalancerEndIP: cfg.LoadBalancerEndIP, CustomIngressCert: cfg.CustomIngressCert, + RegistryAliases: cfg.RegistryAliases, IngressAPIVersion: "v1", // api version for ingress (eg, "v1beta1"; defaults to "v1" for k8s 1.19+) ContainerRuntime: cfg.ContainerRuntime, Images: images, diff --git a/pkg/minikube/bootstrapper/images/images.go b/pkg/minikube/bootstrapper/images/images.go index 5000478df5..60d2e68d6b 100644 --- a/pkg/minikube/bootstrapper/images/images.go +++ b/pkg/minikube/bootstrapper/images/images.go @@ -18,9 +18,14 @@ limitations under the License. package images import ( + "encoding/json" "fmt" + "io" + "net/http" "path" + "k8s.io/klog/v2" + "k8s.io/minikube/pkg/minikube/constants" "github.com/blang/semver/v4" @@ -28,6 +33,11 @@ import ( "k8s.io/minikube/pkg/version" ) +const ( + // builds a docker v2 repository API call in the format https://k8s.gcr.io/v2/coredns/coredns/tags/list + tagURLTemplate = "https://%s/v2/%s/tags/list" +) + // Pause returns the image name to pull for a given Kubernetes version func Pause(v semver.Version, mirror string) string { // Note: changing this logic requires bumping the preload version @@ -35,10 +45,13 @@ func Pause(v semver.Version, mirror string) string { // https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/constants/constants.go // https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/constants/constants_unix.go pv := "3.6" - majorMinorVersion := fmt.Sprintf("v%d.%d", v.Major, v.Minor) imageName := "pause" + majorMinorVersion := fmt.Sprintf("v%d.%d", v.Major, v.Minor) + if pVersion, ok := constants.KubeadmImages[majorMinorVersion][imageName]; ok { pv = pVersion + } else { + pv = findLatestTagFromRepository(fmt.Sprintf(tagURLTemplate, kubernetesRepo(mirror), imageName), pv) } return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), pv) @@ -64,24 +77,60 @@ func componentImage(name string, v semver.Version, mirror string) string { return fmt.Sprintf("%s:v%s", path.Join(kubernetesRepo(mirror), name), v) } +// fixes 13136 by getting the latest image version from the k8s.gcr.io repository instead of hardcoded +func findLatestTagFromRepository(url string, lastKnownGood string) string { + client := &http.Client{} + errorMsg := fmt.Sprintf("Failed to get latest image version for %s, reverting to version %s.", url, lastKnownGood) + + resp, err := client.Get(url) + + if err != nil || resp.StatusCode != http.StatusOK { + klog.Warningf("%s Error %v", errorMsg, err) + return lastKnownGood + } + defer resp.Body.Close() + + body, err := io.ReadAll(resp.Body) + if err != nil { + klog.Warningf("%s Error %v", errorMsg, err) + return lastKnownGood + } + + type TagsResponse struct { + Name string `json:"name"` + Tags []string `json:"tags"` + } + + tags := TagsResponse{} + err = json.Unmarshal(body, &tags) + if err != nil || len(tags.Tags) < 1 { + klog.Warningf("%s Error %v", errorMsg, err) + return lastKnownGood + } + lastTagNum := len(tags.Tags) - 1 + return tags.Tags[lastTagNum] +} + // coreDNS returns the images used for CoreDNS func coreDNS(v semver.Version, mirror string) string { // Note: changing this logic requires bumping the preload version // Should match `CoreDNSImageName` and `CoreDNSVersion` in // https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/constants/constants.go - cv := "1.8.4" - in := "coredns/coredns" + imageName := "coredns/coredns" + cv := "v1.8.6" if semver.MustParseRange("<1.21.0-alpha.1")(v) { - in = "coredns" + imageName = "coredns" } majorMinorVersion := fmt.Sprintf("v%d.%d", v.Major, v.Minor) - if cVersion, ok := constants.KubeadmImages[majorMinorVersion][in]; ok { + if cVersion, ok := constants.KubeadmImages[majorMinorVersion][imageName]; ok { cv = cVersion + } else { + cv = findLatestTagFromRepository(fmt.Sprintf(tagURLTemplate, kubernetesRepo(mirror), imageName), cv) } - return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), in), cv) + return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), cv) } // etcd returns the image used for etcd @@ -90,10 +139,12 @@ func etcd(v semver.Version, mirror string) string { // Should match `DefaultEtcdVersion` in: // https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/constants/constants.go ev := "3.5.0-0" - majorMinorVersion := fmt.Sprintf("v%d.%d", v.Major, v.Minor) imageName := "etcd" + majorMinorVersion := fmt.Sprintf("v%d.%d", v.Major, v.Minor) if eVersion, ok := constants.KubeadmImages[majorMinorVersion][imageName]; ok { ev = eVersion + } else { + ev = findLatestTagFromRepository(fmt.Sprintf(tagURLTemplate, kubernetesRepo(mirror), imageName), ev) } return fmt.Sprintf("%s:%s", path.Join(kubernetesRepo(mirror), imageName), ev) diff --git a/pkg/minikube/bootstrapper/images/images_test.go b/pkg/minikube/bootstrapper/images/images_test.go index 2d2280016f..65fac2e26e 100644 --- a/pkg/minikube/bootstrapper/images/images_test.go +++ b/pkg/minikube/bootstrapper/images/images_test.go @@ -17,6 +17,8 @@ limitations under the License. package images import ( + "net/http" + "net/http/httptest" "strings" "testing" @@ -91,6 +93,40 @@ k8s.gcr.io/coredns/coredns:v1.8.4 } } +func TestGetLatestTag(t *testing.T) { + serverResp := "{tags: [\"1.8.7\"]}" + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + _, err := w.Write([]byte(serverResp)) + if err != nil { + t.Errorf("failed to write https response") + } + })) + defer server.Close() + + var testCases = []struct { + name string + url string + lastKnownGood string + wsResponse string + expect string + }{ + {name: "VersionGetSuccess", url: server.URL, lastKnownGood: "v1.8.6", wsResponse: `{"name": "coredns", "tags": ["v1.8.9"]}`, expect: "v1.8.9"}, + {name: "VersionGetFail", url: server.URL, lastKnownGood: "v1.8.6", wsResponse: `{"name": "nah", "nope": ["v1.8.9"]}`, expect: "v1.8.6"}, + {name: "VersionGetFailNone", url: server.URL, lastKnownGood: "v1.8.6", wsResponse: ``, expect: "v1.8.6"}, + {name: "VersionGetSuccessMultiple", url: server.URL, lastKnownGood: "v1.8.6", wsResponse: `{"name": "coredns", "tags": ["1.8.7","v1.8.9"]}`, expect: "v1.8.9"}, + } + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + serverResp = tc.wsResponse + resp := findLatestTagFromRepository(tc.url, tc.lastKnownGood) + if diff := cmp.Diff(tc.expect, resp); diff != "" { + t.Errorf("Incorrect response version (-want +got):\n%s", diff) + } + }) + } +} + func TestAuxiliary(t *testing.T) { want := []string{ "gcr.io/k8s-minikube/storage-provisioner:" + version.GetStorageProvisionerVersion(), diff --git a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go index 05c5ac1acf..65a51c8162 100644 --- a/pkg/minikube/bootstrapper/kubeadm/kubeadm.go +++ b/pkg/minikube/bootstrapper/kubeadm/kubeadm.go @@ -290,6 +290,10 @@ func (k *Bootstrapper) init(cfg config.ClusterConfig) error { }() wg.Wait() + // Tunnel apiserver to guest, if necessary + if cfg.APIServerPort != 0 { + k.tunnelToAPIServer(cfg) + } return nil } @@ -399,6 +403,10 @@ func (k *Bootstrapper) StartCluster(cfg config.ClusterConfig) error { } if err := bsutil.ExistingConfig(k.c); err == nil { + // If the guest already exists and was stopped, re-establish the apiserver tunnel so checks pass + if cfg.APIServerPort != 0 { + k.tunnelToAPIServer(cfg) + } klog.Infof("found existing configuration files, will attempt cluster restart") rerr := k.restartControlPlane(cfg) if rerr == nil { @@ -433,6 +441,22 @@ func (k *Bootstrapper) StartCluster(cfg config.ClusterConfig) error { return err } +func (k *Bootstrapper) tunnelToAPIServer(cfg config.ClusterConfig) { + m, err := machine.NewAPIClient() + if err != nil { + klog.Warningf("libmachine API failed: %v", err) + } + cp, err := config.PrimaryControlPlane(&cfg) + if err != nil { + klog.Warningf("finding control plane failed: %v", err) + } + args := []string{"-f", "-NTL", fmt.Sprintf("%d:localhost:8443", cfg.APIServerPort)} + err = machine.CreateSSHShell(m, cfg, cp, args, false) + if err != nil { + klog.Warningf("apiserver tunnel failed: %v", err) + } +} + // client sets and returns a Kubernetes client to use to speak to a kubeadm launched apiserver func (k *Bootstrapper) client(ip string, port int) (*kubernetes.Clientset, error) { if k.k8sClient != nil { @@ -569,6 +593,7 @@ func (k *Bootstrapper) needsReconfigure(conf string, hostname string, port int, klog.Infof("needs reconfigure: configs differ:\n%s", rr.Output()) return true } + // cruntime.Enable() may restart kube-apiserver but does not wait for it to return back apiStatusTimeout := 3000 * time.Millisecond st, err := kverify.WaitForAPIServerStatus(k.c, apiStatusTimeout, hostname, port) diff --git a/pkg/minikube/cluster/ip.go b/pkg/minikube/cluster/ip.go index bb73ca8956..313fb72656 100644 --- a/pkg/minikube/cluster/ip.go +++ b/pkg/minikube/cluster/ip.go @@ -58,6 +58,10 @@ func HostIP(host *host.Host, clusterName string) (net.IP, error) { return []byte{}, errors.Wrap(err, "Error converting VM/Host IP address to IPv4 address") } return net.IPv4(vmIP[0], vmIP[1], vmIP[2], byte(1)), nil + case driver.QEMU2: + return net.ParseIP("10.0.2.2"), nil + case driver.QEMU: + return net.ParseIP("10.0.2.2"), nil case driver.HyperV: v := reflect.ValueOf(host.Driver).Elem() var hypervVirtualSwitch string @@ -147,6 +151,9 @@ func DriverIP(api libmachine.API, machineName string) (net.IP, error) { if driver.IsKIC(host.DriverName) { ipStr = oci.DefaultBindIPV4 } + if driver.IsQEMU(host.DriverName) { + ipStr = "127.0.0.1" + } ip := net.ParseIP(ipStr) if ip == nil { return nil, fmt.Errorf("parsing IP: %s", ipStr) diff --git a/pkg/minikube/config/types.go b/pkg/minikube/config/types.go index c1af9ace7a..7c3b5b0786 100644 --- a/pkg/minikube/config/types.go +++ b/pkg/minikube/config/types.go @@ -52,11 +52,12 @@ type ClusterConfig struct { HypervVirtualSwitch string HypervUseExternalSwitch bool HypervExternalAdapter string - KVMNetwork string // Only used by the KVM2 driver - KVMQemuURI string // Only used by the KVM2 driver - KVMGPU bool // Only used by the KVM2 driver - KVMHidden bool // Only used by the KVM2 driver - KVMNUMACount int // Only used by the KVM2 driver + KVMNetwork string // Only used by the KVM2 driver + KVMQemuURI string // Only used by the KVM2 driver + KVMGPU bool // Only used by the KVM2 driver + KVMHidden bool // Only used by the KVM2 driver + KVMNUMACount int // Only used by the KVM2 driver + APIServerPort int DockerOpt []string // Each entry is formatted as KEY=VALUE. DisableDriverMounts bool // Only used by virtualbox NFSShare []string @@ -119,6 +120,7 @@ type KubernetesConfig struct { LoadBalancerStartIP string // currently only used by MetalLB addon LoadBalancerEndIP string // currently only used by MetalLB addon CustomIngressCert string // used by Ingress addon + RegistryAliases string // currently only used by registry-aliases addon ExtraOptions ExtraOptionSlice ShouldLoadCachedImages bool diff --git a/pkg/minikube/constants/constants.go b/pkg/minikube/constants/constants.go index 39d16e56d9..505b18e8a2 100644 --- a/pkg/minikube/constants/constants.go +++ b/pkg/minikube/constants/constants.go @@ -33,10 +33,10 @@ var ( const ( // DefaultKubernetesVersion is the default Kubernetes version // dont update till #10545 is solved - DefaultKubernetesVersion = "v1.23.5" + DefaultKubernetesVersion = "v1.23.6" // NewestKubernetesVersion is the newest Kubernetes version to test against // NOTE: You may need to update coreDNS & etcd versions in pkg/minikube/bootstrapper/images/images.go - NewestKubernetesVersion = "v1.23.6-rc.0" + NewestKubernetesVersion = "v1.23.6" // OldestKubernetesVersion is the oldest Kubernetes version to test against OldestKubernetesVersion = "v1.16.0" // NoKubernetesVersion is the version used when users does NOT want to install kubernetes diff --git a/pkg/minikube/download/iso.go b/pkg/minikube/download/iso.go index a4d93c15e8..404359a48a 100644 --- a/pkg/minikube/download/iso.go +++ b/pkg/minikube/download/iso.go @@ -22,6 +22,7 @@ import ( "os" "path" "path/filepath" + "runtime" "strings" "time" @@ -40,8 +41,12 @@ const fileScheme = "file" // DefaultISOURLs returns a list of ISO URL's to consult by default, in priority order func DefaultISOURLs() []string { v := version.GetISOVersion() - isoBucket := "minikube-builds/iso/13814" + isoBucket := "minikube/iso" return []string{ + fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s-%s.iso", isoBucket, v, runtime.GOARCH), + fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s-%s.iso", v, v, runtime.GOARCH), + fmt.Sprintf("https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-%s-%s.iso", v, runtime.GOARCH), + // fallback to older style ISO urls, without explicit arch reference fmt.Sprintf("https://storage.googleapis.com/%s/minikube-%s.iso", isoBucket, v), fmt.Sprintf("https://github.com/kubernetes/minikube/releases/download/%s/minikube-%s.iso", v, v), fmt.Sprintf("https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-%s.iso", v), diff --git a/pkg/minikube/driver/driver.go b/pkg/minikube/driver/driver.go index 0b2e317c93..cae2cdd08e 100644 --- a/pkg/minikube/driver/driver.go +++ b/pkg/minikube/driver/driver.go @@ -46,6 +46,10 @@ const ( SSH = "ssh" // KVM2 driver KVM2 = "kvm2" + // QEMU2 driver + QEMU2 = "qemu2" + // QEMU driver + QEMU = "qemu" // VirtualBox driver VirtualBox = "virtualbox" // HyperKit driver @@ -156,6 +160,11 @@ func IsKVM(name string) bool { return name == KVM2 || name == AliasKVM } +// IsQEMU checks if the driver is a QEMU[2] +func IsQEMU(name string) bool { + return name == QEMU2 || name == QEMU +} + // IsVM checks if the driver is a VM func IsVM(name string) bool { if IsKIC(name) || BareMetal(name) { @@ -181,6 +190,9 @@ func AllowsPreload(driverName string) bool { // NeedsPortForward returns true if driver is unable provide direct IP connectivity func NeedsPortForward(name string) bool { + if IsQEMU(name) { + return true + } if !IsKIC(name) { return false } diff --git a/pkg/minikube/driver/driver_darwin.go b/pkg/minikube/driver/driver_darwin.go index 195f9841c0..cfeba75bbf 100644 --- a/pkg/minikube/driver/driver_darwin.go +++ b/pkg/minikube/driver/driver_darwin.go @@ -27,6 +27,7 @@ var supportedDrivers = func() []string { if runtime.GOARCH == "arm64" { // on darwin/arm64 only docker and ssh are supported yet return []string{ + QEMU2, Docker, Podman, SSH, @@ -50,6 +51,7 @@ var supportedDrivers = func() []string { VMwareFusion, HyperKit, VMware, + QEMU2, Docker, Podman, SSH, diff --git a/pkg/minikube/driver/driver_linux.go b/pkg/minikube/driver/driver_linux.go index a428a9a2bf..e12c23d702 100644 --- a/pkg/minikube/driver/driver_linux.go +++ b/pkg/minikube/driver/driver_linux.go @@ -25,6 +25,8 @@ var supportedDrivers = []string{ VirtualBox, VMwareFusion, KVM2, + QEMU2, + QEMU, VMware, None, Docker, diff --git a/pkg/minikube/driver/driver_test.go b/pkg/minikube/driver/driver_test.go index 021f78c74c..0b7806610e 100644 --- a/pkg/minikube/driver/driver_test.go +++ b/pkg/minikube/driver/driver_test.go @@ -66,6 +66,8 @@ func TestMachineType(t *testing.T) { None: "bare metal machine", SSH: "bare metal machine", KVM2: "VM", + QEMU2: "VM", + QEMU: "VM", VirtualBox: "VM", HyperKit: "VM", VMware: "VM", diff --git a/pkg/minikube/driver/driver_windows.go b/pkg/minikube/driver/driver_windows.go index 8352366ae2..51defd6228 100644 --- a/pkg/minikube/driver/driver_windows.go +++ b/pkg/minikube/driver/driver_windows.go @@ -32,6 +32,7 @@ var supportedDrivers = []string{ VMwareFusion, HyperV, VMware, + QEMU2, Docker, Podman, SSH, diff --git a/pkg/minikube/driver/endpoint.go b/pkg/minikube/driver/endpoint.go index 15203db100..aa02afc9af 100644 --- a/pkg/minikube/driver/endpoint.go +++ b/pkg/minikube/driver/endpoint.go @@ -28,7 +28,7 @@ import ( // ControlPlaneEndpoint returns the location where callers can reach this cluster func ControlPlaneEndpoint(cc *config.ClusterConfig, cp *config.Node, driverName string) (string, net.IP, int, error) { - if NeedsPortForward(driverName) { + if NeedsPortForward(driverName) && IsKIC(driverName) { port, err := oci.ForwardedPort(cc.Driver, cc.Name, cp.Port) if err != nil { klog.Warningf("failed to get forwarded control plane port %v", err) @@ -45,6 +45,8 @@ func ControlPlaneEndpoint(cc *config.ClusterConfig, cp *config.Node, driverName hostname = cc.KubernetesConfig.APIServerName } return hostname, ips[0], port, err + } else if NeedsPortForward(driverName) && IsQEMU(driverName) { + return "localhost", net.IPv4(127, 0, 0, 1), cc.APIServerPort, nil } // https://github.com/kubernetes/minikube/issues/3878 diff --git a/pkg/minikube/machine/machine.go b/pkg/minikube/machine/machine.go index a465694e0b..9f96600fa3 100644 --- a/pkg/minikube/machine/machine.go +++ b/pkg/minikube/machine/machine.go @@ -122,6 +122,9 @@ func saveHost(api libmachine.API, h *host.Host, cfg *config.ClusterConfig, n *co if err != nil { return err } + if ip == "127.0.0.1" && driver.IsQEMU(h.Driver.DriverName()) { + ip = "10.0.2.15" + } n.IP = ip return config.SaveNode(cfg, n) } diff --git a/pkg/minikube/node/start.go b/pkg/minikube/node/start.go index 10b3b4d957..730bb6f03d 100644 --- a/pkg/minikube/node/start.go +++ b/pkg/minikube/node/start.go @@ -328,7 +328,7 @@ func Provision(cc *config.ClusterConfig, n *config.Node, apiServer bool, delOnFa register.Reg.SetStep(register.StartingNode) name := config.MachineName(*cc, *n) - // for sake of trasnlation process be easy we make the code a bit more verbose and the if statements may seem unnecessary + // Be explicit with each case for the sake of translations if cc.KubernetesConfig.KubernetesVersion == constants.NoKubernetesVersion { out.Step(style.ThumbsUp, "Starting minikube without Kubernetes {{.name}} in cluster {{.cluster}}", out.V{"name": name, "cluster": cc.Name}) } else { @@ -558,6 +558,14 @@ func startMachine(cfg *config.ClusterConfig, node *config.Node, delOnFail bool) return runner, preExists, m, host, errors.Wrap(err, "Failed to validate network") } + if driver.IsQEMU(host.Driver.DriverName()) { + apiServerPort, err := getPort() + if err != nil { + return runner, preExists, m, host, errors.Wrap(err, "Failed to find apiserver port") + } + cfg.APIServerPort = apiServerPort + } + // Bypass proxy for minikube's vm host ip err = proxy.ExcludeIP(ip) if err != nil { @@ -567,6 +575,21 @@ func startMachine(cfg *config.ClusterConfig, node *config.Node, delOnFail bool) return runner, preExists, m, host, err } +// getPort asks the kernel for a free open port that is ready to use +func getPort() (int, error) { + addr, err := net.ResolveTCPAddr("tcp", "localhost:0") + if err != nil { + panic(err) + } + + l, err := net.ListenTCP("tcp", addr) + if err != nil { + return -1, errors.Errorf("Error accessing port %d", addr.Port) + } + defer l.Close() + return l.Addr().(*net.TCPAddr).Port, nil +} + // startHostInternal starts a new minikube host using a VM or None func startHostInternal(api libmachine.API, cc *config.ClusterConfig, n *config.Node, delOnFail bool) (*host.Host, bool, error) { host, exists, err := machine.StartHost(api, cc, n) @@ -638,7 +661,7 @@ func validateNetwork(h *host.Host, r command.Runner, imageRepository string) (st } } - if !driver.BareMetal(h.Driver.DriverName()) && !driver.IsKIC(h.Driver.DriverName()) { + if !driver.BareMetal(h.Driver.DriverName()) && !driver.IsKIC(h.Driver.DriverName()) && !driver.IsQEMU(h.Driver.DriverName()) { if err := trySSH(h, ip); err != nil { return ip, err } diff --git a/pkg/minikube/reason/reason.go b/pkg/minikube/reason/reason.go index 1b10ae3b60..e990ebce4d 100644 --- a/pkg/minikube/reason/reason.go +++ b/pkg/minikube/reason/reason.go @@ -71,6 +71,9 @@ var ( // user attempted to run a Windows executable (.exe) inside of WSL rather than using the Linux binary WrongBinaryWSL = Kind{ID: "MK_WRONG_BINARY_WSL", ExitCode: ExProgramUnsupported} + // this feature is unimplemented for whatever reason + Unimplemented = Kind{ID: "MK_UNIMPLEMENTED", ExitCode: ExProgramUnsupported} + // minikube failed to create a new Docker Machine api client NewAPIClient = Kind{ID: "MK_NEW_APICLIENT", ExitCode: ExProgramError} // minikube could not disable an addon, e.g. dashboard addon diff --git a/pkg/minikube/registry/drvs/init.go b/pkg/minikube/registry/drvs/init.go index 06b1115827..6176d892ef 100644 --- a/pkg/minikube/registry/drvs/init.go +++ b/pkg/minikube/registry/drvs/init.go @@ -25,6 +25,8 @@ import ( _ "k8s.io/minikube/pkg/minikube/registry/drvs/none" _ "k8s.io/minikube/pkg/minikube/registry/drvs/parallels" _ "k8s.io/minikube/pkg/minikube/registry/drvs/podman" + _ "k8s.io/minikube/pkg/minikube/registry/drvs/qemu" + _ "k8s.io/minikube/pkg/minikube/registry/drvs/qemu2" _ "k8s.io/minikube/pkg/minikube/registry/drvs/ssh" _ "k8s.io/minikube/pkg/minikube/registry/drvs/virtualbox" _ "k8s.io/minikube/pkg/minikube/registry/drvs/vmware" diff --git a/pkg/minikube/registry/drvs/qemu/doc.go b/pkg/minikube/registry/drvs/qemu/doc.go new file mode 100644 index 0000000000..ea4425ce8d --- /dev/null +++ b/pkg/minikube/registry/drvs/qemu/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2018 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package qemu diff --git a/pkg/minikube/registry/drvs/qemu/qemu.go b/pkg/minikube/registry/drvs/qemu/qemu.go new file mode 100644 index 0000000000..24f15693eb --- /dev/null +++ b/pkg/minikube/registry/drvs/qemu/qemu.go @@ -0,0 +1,75 @@ +/* +Copyright 2018 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package qemu + +import ( + "fmt" + "os/exec" + "path/filepath" + + "github.com/docker/machine/libmachine/drivers" + drvqemu "github.com/machine-drivers/docker-machine-driver-qemu" + + "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/driver" + "k8s.io/minikube/pkg/minikube/localpath" + "k8s.io/minikube/pkg/minikube/registry" +) + +const ( + docURL = "https://minikube.sigs.k8s.io/docs/reference/drivers/qemu/" +) + +func init() { + if err := registry.Register(registry.DriverDef{ + Name: driver.QEMU, + Config: configure, + Status: status, + Default: true, + Priority: registry.Experimental, + }); err != nil { + panic(fmt.Sprintf("register failed: %v", err)) + } +} + +func configure(cc config.ClusterConfig, n config.Node) (interface{}, error) { + name := config.MachineName(cc, n) + return drvqemu.Driver{ + BaseDriver: &drivers.BaseDriver{ + MachineName: name, + StorePath: localpath.MiniPath(), + SSHUser: "docker", + }, + Boot2DockerURL: download.LocalISOResource(cc.MinikubeISO), + DiskSize: cc.DiskSize, + Memory: cc.Memory, + CPU: cc.CPUs, + EnginePort: 2376, + FirstQuery: true, + DiskPath: filepath.Join(localpath.MiniPath(), "machines", name, fmt.Sprintf("%s.img", name)), + }, nil +} + +func status() registry.State { + _, err := exec.LookPath("qemu-system-x86_64") + if err != nil { + return registry.State{Error: err, Fix: "Install qemu-system", Doc: docURL} + } + + return registry.State{Installed: true, Healthy: true, Running: true} +} diff --git a/pkg/minikube/registry/drvs/qemu2/doc.go b/pkg/minikube/registry/drvs/qemu2/doc.go new file mode 100644 index 0000000000..c059331503 --- /dev/null +++ b/pkg/minikube/registry/drvs/qemu2/doc.go @@ -0,0 +1,17 @@ +/* +Copyright 2018 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package qemu2 diff --git a/pkg/minikube/registry/drvs/qemu2/qemu2.go b/pkg/minikube/registry/drvs/qemu2/qemu2.go new file mode 100644 index 0000000000..5cd70e58f1 --- /dev/null +++ b/pkg/minikube/registry/drvs/qemu2/qemu2.go @@ -0,0 +1,179 @@ +/* +Copyright 2018 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package qemu2 + +import ( + "fmt" + "io/ioutil" + "os" + "os/exec" + "path" + "path/filepath" + "runtime" + + "github.com/docker/machine/libmachine/drivers" + "k8s.io/minikube/pkg/drivers/qemu" + + "k8s.io/minikube/pkg/minikube/config" + "k8s.io/minikube/pkg/minikube/download" + "k8s.io/minikube/pkg/minikube/driver" + "k8s.io/minikube/pkg/minikube/localpath" + "k8s.io/minikube/pkg/minikube/registry" +) + +const ( + docURL = "https://minikube.sigs.k8s.io/docs/reference/drivers/qemu2/" +) + +func init() { + if err := registry.Register(registry.DriverDef{ + Name: driver.QEMU2, + Init: func() drivers.Driver { return qemu.NewDriver("", "") }, + Config: configure, + Status: status, + Default: true, + Priority: registry.Experimental, + }); err != nil { + panic(fmt.Sprintf("register failed: %v", err)) + } +} + +func qemuSystemProgram() (string, error) { + arch := runtime.GOARCH + switch arch { + case "amd64": + return "qemu-system-x86_64", nil + case "arm64": + return "qemu-system-aarch64", nil + default: + return "", fmt.Errorf("unknown arch: %s", arch) + } +} + +func qemuFirmwarePath() (string, error) { + arch := runtime.GOARCH + // For macOS, find the correct brew installation path for qemu firmware + if runtime.GOOS == "darwin" { + var p, fw string + switch arch { + case "amd64": + p = "/usr/local/Cellar/qemu" + fw = "share/qemu/edk2-x86_64-code.fd" + case "arm64": + p = "/opt/homebrew/Cellar/qemu" + fw = "share/qemu/edk2-aarch64-code.fd" + default: + return "", fmt.Errorf("unknown arch: %s", arch) + } + + v, err := ioutil.ReadDir(p) + if err != nil { + return "", fmt.Errorf("lookup qemu: %v", err) + } + for _, version := range v { + if version.IsDir() { + return path.Join(p, version.Name(), fw), nil + } + } + } + + switch arch { + case "amd64": + return "/usr/share/OVMF/OVMF_CODE.fd", nil + case "arm64": + return "/usr/share/AAVMF/AAVMF_CODE.fd", nil + default: + return "", fmt.Errorf("unknown arch: %s", arch) + } +} + +func configure(cc config.ClusterConfig, n config.Node) (interface{}, error) { + name := config.MachineName(cc, n) + qemuSystem, err := qemuSystemProgram() + if err != nil { + return nil, err + } + var qemuMachine string + var qemuCPU string + switch runtime.GOARCH { + case "amd64": + qemuMachine = "" // default + qemuCPU = "" // default + case "arm64": + qemuMachine = "virt" + qemuCPU = "cortex-a72" + // highmem=off needed, see https://patchwork.kernel.org/project/qemu-devel/patch/20201126215017.41156-9-agraf@csgraf.de/#23800615 for details + if runtime.GOOS == "darwin" { + qemuMachine = "virt,highmem=off" + } else if _, err := os.Stat("/dev/kvm"); err == nil { + qemuMachine = "virt,gic-version=3" + qemuCPU = "host" + } + default: + return nil, fmt.Errorf("unknown arch: %s", runtime.GOARCH) + } + qemuFirmware, err := qemuFirmwarePath() + if err != nil { + return nil, err + } + return qemu.Driver{ + BaseDriver: &drivers.BaseDriver{ + MachineName: name, + StorePath: localpath.MiniPath(), + SSHUser: "docker", + }, + Boot2DockerURL: download.LocalISOResource(cc.MinikubeISO), + DiskSize: cc.DiskSize, + Memory: cc.Memory, + CPU: cc.CPUs, + EnginePort: 2376, + FirstQuery: true, + DiskPath: filepath.Join(localpath.MiniPath(), "machines", name, fmt.Sprintf("%s.img", name)), + Program: qemuSystem, + BIOS: runtime.GOARCH != "arm64", + MachineType: qemuMachine, + CPUType: qemuCPU, + Firmware: qemuFirmware, + VirtioDrives: false, + Network: "user", + CacheMode: "default", + IOMode: "threads", + }, nil +} + +func status() registry.State { + qemuSystem, err := qemuSystemProgram() + if err != nil { + return registry.State{Error: err, Doc: docURL} + } + + _, err = exec.LookPath(qemuSystem) + if err != nil { + return registry.State{Error: err, Fix: "Install qemu-system", Doc: docURL} + } + + qemuFirmware, err := qemuFirmwarePath() + if err != nil { + return registry.State{Error: err, Doc: docURL} + } + + if _, err := os.Stat(qemuFirmware); err != nil && runtime.GOARCH == "arm64" { + return registry.State{Error: err, Fix: "Install uefi firmware", Doc: docURL} + } + + return registry.State{Installed: true, Healthy: true, Running: true} +} diff --git a/site/content/en/docs/commands/start.md b/site/content/en/docs/commands/start.md index 367b8f5f82..065cbf92fb 100644 --- a/site/content/en/docs/commands/start.md +++ b/site/content/en/docs/commands/start.md @@ -26,7 +26,7 @@ minikube start [flags] --apiserver-names strings A set of apiserver names which are used in the generated certificate for kubernetes. This can be used if you want to make the apiserver available from outside the machine --apiserver-port int The apiserver listening port (default 8443) --auto-update-drivers If set, automatically updates drivers to the latest version. Defaults to true. (default true) - --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase-builds:v0.0.30-1647797120-13815@sha256:90e8f7ee4065da728c0b80d303827e05ce4421985fe9bd7bdca30a55218347b5") + --base-image string The base image to use for docker/podman drivers. Intended for local development. (default "gcr.io/k8s-minikube/kicbase:v0.0.31@sha256:c3375f1b260bd936aa532a0c749626e07d94ab129a7f2395e95345aa04ca708c") --binary-mirror string Location to fetch kubectl, kubelet, & kubeadm binaries from. --cache-images If true, cache docker images for the current bootstrapper and load them into the machine. Always false with --driver=none. (default true) --cert-expiration duration Duration until minikube certificate expiration, defaults to three years (26280h). (default 26280h0m0s) @@ -69,9 +69,9 @@ minikube start [flags] --insecure-registry strings Insecure Docker registries to pass to the Docker daemon. The default service CIDR range will automatically be added. --install-addons If set, install addons. Defaults to true. (default true) --interactive Allow user prompts for more information (default true) - --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube-builds/iso/13814/minikube-v1.25.2-1650391217-13814.iso,https://github.com/kubernetes/minikube/releases/download/v1.25.2-1650391217-13814/minikube-v1.25.2-1650391217-13814.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.25.2-1650391217-13814.iso]) + --iso-url strings Locations to fetch the minikube ISO from. (default [https://storage.googleapis.com/minikube/iso/minikube-v1.26.0-beta.1-amd64.iso,https://github.com/kubernetes/minikube/releases/download/v1.26.0-beta.1/minikube-v1.26.0-beta.1-amd64.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.26.0-beta.1-amd64.iso,https://storage.googleapis.com/minikube/iso/minikube-v1.26.0-beta.1.iso,https://github.com/kubernetes/minikube/releases/download/v1.26.0-beta.1/minikube-v1.26.0-beta.1.iso,https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.26.0-beta.1.iso]) --keep-context This will keep the existing kubectl context and will create a minikube context. - --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.23.5, 'latest' for v1.23.6-rc.0). Defaults to 'stable'. + --kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.23.6, 'latest' for v1.23.6). Defaults to 'stable'. --kvm-gpu Enable experimental NVIDIA GPU support in minikube --kvm-hidden Hide the hypervisor signature from the guest in minikube (kvm2 driver only) --kvm-network string The KVM default network name. (kvm2 driver only) (default "default") diff --git a/site/content/en/docs/contrib/errorcodes.en.md b/site/content/en/docs/contrib/errorcodes.en.md index 08e224a7b9..42705e32ac 100644 --- a/site/content/en/docs/contrib/errorcodes.en.md +++ b/site/content/en/docs/contrib/errorcodes.en.md @@ -19,6 +19,9 @@ minikube was interrupted by an OS signal "MK_WRONG_BINARY_WSL" (Exit code ExProgramUnsupported) user attempted to run a Windows executable (.exe) inside of WSL rather than using the Linux binary +"MK_UNIMPLEMENTED" (Exit code ExProgramUnsupported) +this feature is unimplemented for whatever reason + "MK_NEW_APICLIENT" (Exit code ExProgramError) minikube failed to create a new Docker Machine api client diff --git a/site/content/en/docs/contrib/releasing/binaries.md b/site/content/en/docs/contrib/releasing/binaries.md index ed54e1e85a..983bcaa39d 100644 --- a/site/content/en/docs/contrib/releasing/binaries.md +++ b/site/content/en/docs/contrib/releasing/binaries.md @@ -72,7 +72,8 @@ This step uses the git tag to publish new binaries to GCS and create a GitHub re * Ensure that you are logged in (top right) * Click "▶️ Build with Parameters" (left) * `VERSION_MAJOR`, `VERSION_MINOR`, and `VERSION_BUILD` should reflect the values in your Makefile -* For `ISO_SHA256`, run: `gsutil cat gs://minikube/iso/minikube-v.iso.sha256` +* For `ISO_SHA256_AMD64`, run: `gsutil cat gs://minikube/iso/minikube-v-amd64.iso.sha256` +* For `ISO_SHA256_ARM64`, run: `gsutil cat gs://minikube/iso/minikube-v-arm64.iso.sha256` * Click *Build* ## Check the release logs diff --git a/site/content/en/docs/drivers/_index.md b/site/content/en/docs/drivers/_index.md index daf996e84f..6744c03ff3 100644 --- a/site/content/en/docs/drivers/_index.md +++ b/site/content/en/docs/drivers/_index.md @@ -17,6 +17,7 @@ To do so, we use the [Docker Machine](https://github.com/docker/machine) library * [Docker]({{}}) - container-based (preferred) * [KVM2]({{}}) - VM-based (preferred) * [VirtualBox]({{}}) - VM +* [QEMU]({{}}) - VM (experimental) * [None]({{}}) - bare-metal * [Podman]({{}}) - container (experimental) * [SSH]({{}}) - remote ssh @@ -29,6 +30,7 @@ To do so, we use the [Docker Machine](https://github.com/docker/machine) library * [VirtualBox]({{}}) - VM * [Parallels]({{}}) - VM * [VMware Fusion]({{}}) - VM +* [QEMU]({{}}) - VM (experimental) * [SSH]({{}}) - remote ssh ## Windows @@ -37,4 +39,5 @@ To do so, we use the [Docker Machine](https://github.com/docker/machine) library * [Docker]({{}}) - VM + Container (preferred) * [VirtualBox]({{}}) - VM * [VMware Workstation]({{}}) - VM +* [QEMU]({{}}) - VM (experimental) * [SSH]({{}}) - remote ssh diff --git a/site/content/en/docs/drivers/qemu.md b/site/content/en/docs/drivers/qemu.md new file mode 100644 index 0000000000..23167b1e5b --- /dev/null +++ b/site/content/en/docs/drivers/qemu.md @@ -0,0 +1,22 @@ +--- +title: "qemu" +weight: 3 +description: > + QEMU driver +aliases: + - /docs/reference/drivers/qemu +--- + +## Overview + +The `qemu` driver users QEMU (system) for VM creation. + + + +## Issues + +* [Full list of open 'qemu' driver issues](https://github.com/kubernetes/minikube/labels/co%2Fqemu-driver) + +## Troubleshooting + +* Run `minikube start --alsologtostderr -v=4` to debug crashes diff --git a/site/content/en/docs/handbook/accessing.md b/site/content/en/docs/handbook/accessing.md index 09a77f9a2c..9ad403b6fb 100644 --- a/site/content/en/docs/handbook/accessing.md +++ b/site/content/en/docs/handbook/accessing.md @@ -25,10 +25,77 @@ A NodePort service is the most basic way to get external traffic directly to you We also have a shortcut for fetching the minikube IP and a service's `NodePort`: ```shell -minikube service --url +minikube service --url ``` -## Getting the NodePort using kubectl +### Using `minikube service` with tunnel + +The network is limited if using the Docker driver on Darwin, Windows, or WSL, and the Node IP is not reachable directly. + +Running minikube on Linux with the Docker driver will result in no tunnel being created. + +Services of type `NodePort` can be exposed via the `minikube service --url` command. It must be run in a separate terminal window to keep the [tunnel](https://en.wikipedia.org/wiki/Port_forwarding#Local_port_forwarding) open. Ctrl-C in the terminal can be used to terminate the process at which time the network routes will be cleaned up. + +### Example of NodePort + +1. Create a Kubernetes deployment + + ```shell + kubectl create deployment hello-minikube1 --image=k8s.gcr.io/echoserver:1.4 + ``` + +2. Create a Kubernetes service type NodePort + + ```shell + kubectl expose deployment hello-minikube1 --type=NodePort --port=8080 + ``` + +3. Check Node Port + + ```shell + kubectl get svc + ``` +
+    $ kc get svc
+    AME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
+    hello-minikube1   NodePort    10.100.238.34           8080:31389/TCP   3s
+    
+ +4. Run service tunnel + + ```shell + minikube service hello-minikube1 --url + ``` + + `minikube service hello-minikube1 --url` runs as a process, creating a [tunnel](https://en.wikipedia.org/wiki/Port_forwarding#Local_port_forwarding) to the cluster. The command exposes the service directly to any program running on the host operating system. + +
+ + service output example + +
+    $ minikube service hello-minikube1 --url
+    http://127.0.0.1:57123
+    ❗  Because you are using a Docker driver on darwin, the terminal needs to be open to run it.
+    
+
+ + Check ssh tunnel in another terminal + + ```shell + $ ps -ef | grep docker@127.0.0.1 + ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -N docker@127.0.0.1 -p 55972 -i /Users/FOO/.minikube/machines/minikube/id_rsa -L TUNNEL_PORT:CLUSTER_IP:TARGET_PORT + ``` + +5. Try in your browser + + Open in your browser (ensure there is no proxy set) + + ```shell + http://127.0.0.1:TUNNEL_PORT + ``` + +### Getting the NodePort using kubectl The minikube VM is exposed to the host system via a host-only IP address, that can be obtained with the `minikube ip` command. Any services of type `NodePort` can be accessed over that IP address, on the NodePort. @@ -54,77 +121,78 @@ This flag also accepts a comma separated list of ports and port ranges. A LoadBalancer service is the standard way to expose a service to the internet. With this method, each service gets its own IP address. -## Using `minikube tunnel` +### Using `minikube tunnel` Services of type `LoadBalancer` can be exposed via the `minikube tunnel` command. It must be run in a separate terminal window to keep the `LoadBalancer` running. Ctrl-C in the terminal can be used to terminate the process at which time the network routes will be cleaned up. -## Example +### Example of LoadBalancer -#### Run tunnel in a separate terminal +1. Run the tunnel in a separate terminal -it will ask for password. + It will ask for a password. -```shell -minikube tunnel -``` + ```shell + minikube tunnel + ``` -`minikube tunnel` runs as a process, creating a network route on the host to the service CIDR of the cluster using the cluster's IP address as a gateway. The tunnel command exposes the external IP directly to any program running on the host operating system. + `minikube tunnel` runs as a process, creating a network route on the host to the service CIDR of the cluster using the cluster's IP address as a gateway. The tunnel command exposes the external IP directly to any program running on the host operating system. -
- -tunnel output example - -
-Password:
-Status:
- machine: minikube
- pid: 39087
- route: 10.96.0.0/12 -> 192.168.64.194
- minikube: Running
- services: [hello-minikube]
-    errors:
-  minikube: no errors
-  router: no errors
-  loadbalancer emulator: no errors
-...
-...
-...
-
-
+
+ + tunnel output example + +
+    Password:
+    Status:
+    machine: minikube
+    pid: 39087
+    route: 10.96.0.0/12 -> 192.168.64.194
+    minikube: Running
+    services: [hello-minikube]
+        errors:
+      minikube: no errors
+      router: no errors
+      loadbalancer emulator: no errors
+    ...
+    ...
+    ...
+    
+
-#### Create a kubernetes deployment +2. Create a Kubernetes deployment -```shell -kubectl create deployment hello-minikube1 --image=k8s.gcr.io/echoserver:1.4 -``` + ```shell + kubectl create deployment hello-minikube1 --image=k8s.gcr.io/echoserver:1.4 + ``` -#### Create a kubernetes service type LoadBalancer +3. Create a Kubernetes service with type LoadBalancer -```shell -kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8080 -``` + ```shell + kubectl expose deployment hello-minikube1 --type=LoadBalancer --port=8080 + ``` -### Check external IP +4. Check the external IP -```shell -kubectl get svc -``` -
-$ kc get svc
-NAME              TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
-hello-minikube1   LoadBalancer   10.96.184.178   10.96.184.178   8080:30791/TCP   40s
-
+ ```shell + kubectl get svc + ``` +
+    $ kc get svc
+    NAME              TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
+    hello-minikube1   LoadBalancer   10.96.184.178   10.96.184.178   8080:30791/TCP   40s
+    
-note that without minikube tunnel, kubernetes would be showing external IP as "pending". + Note that without minikube tunnel, Kubernetes will show the external IP as "pending". -### Try in your browser +5. Try in your browser -open in your browser (make sure there is no proxy set) -``` -http://REPLACE_WITH_EXTERNAL_IP:8080 -``` + Open in your browser (ensure there is no proxy set) -Each service will get its own external ip. + ```shell + http://REPLACE_WITH_EXTERNAL_IP:8080 + ``` + + Each service will get its own external IP. ---- @@ -150,12 +218,12 @@ Adding a route requires root privileges for the user, and thus there are differe - ### Access to ports <1024 on Windows requires root permission + If you are using Docker driver on Windows, there is a chance that you have an old version of SSH client you might get an error like - `Privileged ports can only be forwarded by root.` or you might not be able to access the service even after `minikube tunnel` if the access port is less than 1024 but for ports greater than 1024 works fine. In order to resolve this, ensure that you are running the latest version of SSH client. You can install the latest version of the SSH client on Windows by running the following in a Command Prompt with an Administrator Privileges (Requires [chocolatey package manager](https://chocolatey.org/install)) -``` +```cmd choco install openssh ``` -The latest version (`OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5`) which is available on Windows 10 by default doesn't work. You can track the issue with this over here - https://github.com/PowerShell/Win32-OpenSSH/issues/1693 \ No newline at end of file +The latest version (`OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5`) which is available on Windows 10 by default doesn't work. You can track the issue with this over here - https://github.com/PowerShell/Win32-OpenSSH/issues/1693 diff --git a/site/content/en/docs/handbook/addons/kong-ingress.md b/site/content/en/docs/handbook/addons/kong-ingress.md index 5f3c982d4d..75ee7e76e1 100644 --- a/site/content/en/docs/handbook/addons/kong-ingress.md +++ b/site/content/en/docs/handbook/addons/kong-ingress.md @@ -80,7 +80,7 @@ $ curl -v localhost ## Creating Ingress object Let's create a service. -As an example, we use `tyoe-ExternalName` to point to https://httpbin.org +As an example, we use `type=ExternalName` to point to https://httpbin.org ```bash echo " diff --git a/site/content/en/docs/start/_index.md b/site/content/en/docs/start/_index.md index 95581fe416..7e245b8de9 100644 --- a/site/content/en/docs/start/_index.md +++ b/site/content/en/docs/start/_index.md @@ -438,7 +438,7 @@ choco install minikube {{% /quiz_instruction %}} {{% quiz_instruction id="/Windows/x86-64/Stable/.exe download" %}} -1. Download the [latest release](https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe). +1. Download and run the installer for the [latest release](https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe).
Or if using `PowerShell`, use this command: ```powershell @@ -446,7 +446,7 @@ choco install minikube Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing ``` -2. Add the binary in to your `PATH`. +2. Add the `minikube.exe` binary to your `PATH`.
_Make sure to run PowerShell as Administrator._ ```powershell @@ -459,7 +459,7 @@ choco install minikube {{% /quiz_instruction %}} {{% quiz_instruction id="/Windows/x86-64/Beta/.exe download" %}} -1. Download the latest beta release. +1. Download and run the installer for the latest beta release.
Or if using `PowerShell`, use this command: ```powershell @@ -470,7 +470,7 @@ choco install minikube Invoke-WebRequest -Uri $item.browser_download_url -OutFile 'c:\minikube\minikube.exe' -UseBasicParsing ``` -2. Add the binary in to your `PATH`. +2. Add the `minikube.exe` binary to your `PATH`.
_Make sure to run PowerShell as Administrator._ ```powershell diff --git a/test/integration/functional_test.go b/test/integration/functional_test.go index b04df234f5..a3109b1b70 100644 --- a/test/integration/functional_test.go +++ b/test/integration/functional_test.go @@ -49,7 +49,7 @@ import ( "github.com/blang/semver/v4" "github.com/elazarl/goproxy" "github.com/hashicorp/go-retryablehttp" - "github.com/otiai10/copy" + cp "github.com/otiai10/copy" "github.com/phayes/freeport" "github.com/pkg/errors" "golang.org/x/build/kubernetes/api" @@ -480,10 +480,7 @@ func validateDockerEnv(ctx context.Context, t *testing.T, profile string) { defer cancel() command := make([]string, len(tc.commandPrefix)+1) - // Would use "copy" built-in here, but that is shadowed by "copy" package - for i, v := range tc.commandPrefix { - command[i] = v - } + copy(command, tc.commandPrefix) formattedArg := fmt.Sprintf(tc.formatArg, Target(), profile) @@ -1783,7 +1780,7 @@ func setupFileSync(ctx context.Context, t *testing.T, profile string) { p := localSyncTestPath() t.Logf("local sync path: %s", p) syncFile := filepath.Join(*testdataDir, "sync.test") - err := copy.Copy(syncFile, p) + err := cp.Copy(syncFile, p) if err != nil { t.Fatalf("failed to copy testdata/sync.test: %v", err) } @@ -1792,7 +1789,7 @@ func setupFileSync(ctx context.Context, t *testing.T, profile string) { // Write to a temp file for an atomic write tmpPem := localTestCertPath() + ".pem" - if err := copy.Copy(testPem, tmpPem); err != nil { + if err := cp.Copy(testPem, tmpPem); err != nil { t.Fatalf("failed to copy %s: %v", testPem, err) } @@ -1816,7 +1813,7 @@ func setupFileSync(ctx context.Context, t *testing.T, profile string) { testPem2 := filepath.Join(*testdataDir, "minikube_test2.pem") tmpPem2 := localTestCertFilesPath() + ".pem" - if err := copy.Copy(testPem2, tmpPem2); err != nil { + if err := cp.Copy(testPem2, tmpPem2); err != nil { t.Fatalf("failed to copy %s: %v", testPem2, err) } diff --git a/translations/de.json b/translations/de.json index 362499f3f7..dc13eb9dd3 100644 --- a/translations/de.json +++ b/translations/de.json @@ -245,6 +245,7 @@ "Failed to check main repository and mirrors for images": "Prüfen des Haupt-Repositories und der Mirrors für Images fehlgeschlagen", "Failed to configure metallb IP {{.profile}}": "Konfiguration der metallb IP {{.profile}} fehlgeschlagen", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "Erstellen der Datei fehlgeschlagen", "Failed to create runtime": "Erstellen der Runtime fehlgeschlagen", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "Löschen des Clusters {{.name}} fehlgeschlagen, versuche es dennoch erneut.", @@ -867,7 +868,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "Die Anzahl der CPUs eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "Die Plattengröße eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "Die Speichergröße eines existierenden Minikube Clusters kann nicht geändert werden. Bitte löschen Sie den Cluster zuerst.", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "Sie haben sich mit einem Service Account authentifiziert, welcher kein zugehöriges JSON besitzt. GCP Auth benötigt Zugangsdaten in einer JSON-Datei um weitermachen zu können. Das Image Pull Secret wurde importiert.", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "Sie haben den CNI Treiber deaktiviert, aber die \\\"{{.name}}\\\" Container Laufzeitumgebung benötigt ein CNI", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "Sie haben den \"virtualbox\" Treiber ausgewählt, aber es existieren bessere Möglichkeiten !\nFür eine bessere Performanz und besseren Support erwägen Sie die Verwendung eines anderen Treibers: {{.drivers}}\n\nUm diese Warnung zu deaktivieren, führen Sie folgendes aus:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nUm mehr über die Minikube-Treiber zu erfahren, lesen Sie https://minikube.sigs.k8s.io/docs/drivers/\nZu Benchmarks lesen Sie https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n", @@ -889,6 +890,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "Addon '{{.name}}' ist derzeit nicht aktiviert.\nUm es zu aktivieren, führe Folgendes aus:\nminikube addons enable {{.name}}", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "Addon '{{.name}}' ist kein valides Addon welches mit Minikube paketiert ist.\nUm eine Liste der verfügbaren Addons anzuzeigen, führe Folgendes aus:\nminikube addons list", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "addons modifiziert Minikube Addon Dateien mittels Unter-Befehlen wie \"minikube addons enable dashboard\"", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "auto-pause für ein Addon ist ein Alpha-Feature und ist immer noch in Entwicklung. Bitte melde Issues um uns zu helfen das Feature zu verbessern.", "bash completion failed": "bash completion fehlgeschlagen", "bash completion.": "", @@ -948,8 +950,10 @@ "minikube profile was successfully set to {{.profile_name}}": "Minikube Profil wurde erfolgreich gesetzt auf {{.profile_name}}", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "Minikube provisioniert und managed lokale Kubernetes Cluster optimiert für Entwicklungs-Workflows.", "minikube quickly sets up a local Kubernetes cluster": "Minikube installiert schnell einen lokalen Kubernetes Cluster", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "Minikube überspringt diverse Validierungen wenn --force angegeben ist; das könnte zu unerwartetem Verhalten führen", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "Minikube {{.version}} ist verfügbar. Lade es herunter: {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "mkcmp wird verwendet um die Performance von zwei Minikube Binaries zu vergleichen", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "Das Argument \"{{.value}}\" für Mount muss in der Form \u003cQuell Verzeichnis\u003e:\u003cZiel Verzeichnis\u003e", diff --git a/translations/es.json b/translations/es.json index 5a5e429866..62ac409130 100644 --- a/translations/es.json +++ b/translations/es.json @@ -254,6 +254,7 @@ "Failed to check main repository and mirrors for images": "", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "No se pudo crear el fichero", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -871,7 +872,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Puede que tengas que retirar manualmente la VM \"{{.name}}\" de tu hipervisor", @@ -891,6 +892,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "", "bash completion.": "", @@ -948,8 +950,10 @@ "minikube profile was successfully set to {{.profile_name}}": "", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "", "minikube quickly sets up a local Kubernetes cluster": "", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", diff --git a/translations/fr.json b/translations/fr.json index 17cd630f91..a8e2b8ca43 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -240,6 +240,7 @@ "Failed to check main repository and mirrors for images": "Échec de la vérification du référentiel principal et des miroirs pour les images", "Failed to configure metallb IP {{.profile}}": "Échec de la configuration de metallb IP {{.profile}}", "Failed to configure network plugin": "Échec de la configuration du plug-in réseau", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "La création du fichier a échoué", "Failed to create runtime": "Échec de la création de l'environnement d'exécution", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "Échec de la suppression du cluster {{.name}}, réessayez quand même.", @@ -832,8 +833,9 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier les processeurs d'un cluster minikube existant. Veuillez d'abord supprimer le cluster.", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier la taille du disque pour un cluster minikube existant. Veuillez d'abord supprimer le cluster.", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "Vous ne pouvez pas modifier la taille de la mémoire d'un cluster minikube existant. Veuillez d'abord supprimer le cluster.", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de JSON associé. L'authentification GCP nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de JSON associé. L'authentification GCP nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. Le module complémentaire GCP Auth nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", + "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. L'authentification GCP nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", + "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "Vous vous êtes authentifié avec un compte de service qui n'a pas de fichier JSON associé. L'authentification GCP nécessite des informations d'identification avec un fichier JSON pour continuer. Le secret d'extraction d'image a été importé.", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "Vous avez choisi de désactiver le CNI mais le runtime du conteneur \\\"{{.name}}\\\" nécessite CNI", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "Vous avez sélectionné le pilote \"virtualbox\", mais il existe de meilleures options !\nPour de meilleures performances et une meilleure assistance, envisagez d'utiliser un autre pilote: {{.drivers}}\n\nPour désactiver cet avertissement, exécutez :\n\n\t $ minikube config set WantVirtualBoxDriverWarning false\n\n\nPour en savoir plus sur les pilotes minikube, consultez https://minikube.sigs.k8s.io/docs/drivers/\nPour voir les benchmarks, consultez https://minikube.sigs.k8s. io/docs/benchmarks/cpuusage/\n\n", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "Vous devrez peut-être supprimer la VM \"{{.name}}\" manuellement de votre hyperviseur.", @@ -854,6 +856,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "Le module '{{.name}}' n'est actuellement pas activé.\nPour activer ce module, exécutez :\nminikube addons enable {{.name}}", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "Le module '{{.name}}' n'est pas un module valide fourni avec minikube.\nPour voir la liste des modules disponibles, exécutez :\nminikube addons list", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "addons modifie les fichiers de modules minikube à l'aide de sous-commandes telles que \"minikube addons enable dashboard\"", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "Le module auto-pause est une fonctionnalité alpha et encore en développement précoce. Veuillez signaler les problèmes pour nous aider à l'améliorer.", "bash completion failed": "échec de la complétion bash", "bash completion.": "complétion bash", @@ -913,8 +916,10 @@ "minikube profile was successfully set to {{.profile_name}}": "Le profil de minikube a été défini avec succès sur {{.profile_name}}", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "minikube provisionne et gère des clusters Kubernetes locaux optimisés pour les workflows de développement.", "minikube quickly sets up a local Kubernetes cluster": "minikube configure rapidement un cluster Kubernetes local", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "minikube ignore diverses validations lorsque --force est fourni ; cela peut conduire à un comportement inattendu", "minikube status --output OUTPUT. json, text": "état minikube --sortie SORTIE. json, texte", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "minikube {{.version}} est disponible ! Téléchargez-le ici : {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "mkcmp est utilisé pour comparer les performances de deux binaires minikube", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "argument de montage \"{{.value}}\" doit être de la forme : \u003cdossier source\u003e:\u003cdossier de destination\u003e", diff --git a/translations/ja.json b/translations/ja.json index 926ed57702..ca2561498d 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -246,6 +246,7 @@ "Failed to check main repository and mirrors for images": "メインリポジトリーとミラーのイメージのチェックに失敗しました", "Failed to configure metallb IP {{.profile}}": "metallb IP {{.profile}} の設定に失敗しました", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "ファイルの作成に失敗しました", "Failed to create runtime": "ランタイムの作成に失敗しました", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "{{.name}} クラスターを削除できませんでしたが、処理を続行します。", @@ -875,7 +876,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、CPU を変更できません。最初にクラスターを削除してください。", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、ディスクサイズを変更できません。最初にクラスターを削除してください。", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "既存の minikube クラスターに対して、メモリサイズを変更できません。最初にクラスターを削除してください。", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file to in order to continue. The image pull secret has been imported.": "関連する JSON がないサービスアカウントで認証しています。GCP Auth は、作業を続行するために JSON ファイル付きクレデンシャルを要求します。イメージ取得シークレットがインポートされました。", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "CNI 無効が選択されましたが、「{{.name}}」コンテナランタイムは CNI が必要です", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "「virtualbox」ドライバーが選択されましたが、より良い選択肢があります!\n性能と機能の向上のため、別のドライバー使用を検討してください: {{.drivers}}\n\nこの警告を表示させないためには、以下を実行してください:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nminikube ドライバーについてもっと知るためには、https://minikube.sigs.k8s.io/docs/drivers/ を確認してください。\nベンチマークについては https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/ を確認してください\n\n", @@ -899,6 +900,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "'{{.name}}' アドオンは現在無効になっています。\n有効にするためには、以下のコマンドを実行してください。 \nminikube addons enable {{.name}}", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "'{{.name}}' は minikube にパッケージングされた有効なアドオンではありません。\n利用可能なアドオンの一覧を表示するためには、以下のコマンドを実行してください。 \nminikube addons list", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "addons コマンドは「minikube addons enable dashboard」のようなサブコマンドを使用することで、minikube アドオンファイルを修正します", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "auto-pause アドオンはアルファ機能で、まだ開発の初期段階です。auto-pause アドオン改善の手助けのために、問題は報告してください。", "bash completion failed": "bash のコマンド補完に失敗しました", "bash completion.": "bash のコマンド補完です。", @@ -964,8 +966,10 @@ "minikube profile was successfully set to {{.profile_name}}": "無事 minikube のプロファイルが {{.profile_name}} に設定されました", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "minikube は、開発ワークフロー用に最適化されたローカル Kubernetes クラスターを構築・管理します。", "minikube quickly sets up a local Kubernetes cluster": "minikube はローカル Kubernetes クラスターを迅速にセットアップします", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "minikube は --force が付与された場合、様々な検証をスキップします (これは予期せぬ挙動を引き起こすかも知れません)", "minikube status --output OUTPUT. json, text": "minikube status --output OUTPUT. json, text", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "minikube {{.version}} が利用可能です!次の URL からダウンロードしてください: {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "mkcmp で 2 つの minikube のバイナリーのパフォーマンスを比較できます", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "マウント引数「{{.value}}」は次の形式でなければなりません: \u003cソースディレクトリー\u003e:\u003cターゲットディレクトリー\u003e", diff --git a/translations/ko.json b/translations/ko.json index 2332370d55..551947c123 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -267,6 +267,7 @@ "Failed to check main repository and mirrors for images": "", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -872,7 +873,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "", @@ -894,6 +895,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "bash 자동 완성이 실패하였습니다", "bash completion.": "", @@ -958,8 +960,10 @@ "minikube profile was successfully set to {{.profile_name}}": "", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "minikube는 개발 워크플로우에 최적화된 로컬 쿠버네티스를 제공하고 관리합니다.", "minikube quickly sets up a local Kubernetes cluster": "", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "minikube {{.version}} 이 사용가능합니다! 다음 경로에서 다운받으세요: {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", diff --git a/translations/pl.json b/translations/pl.json index 0683f261a9..7a6850d76b 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -256,6 +256,7 @@ "Failed to check main repository and mirrors for images": "", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -881,7 +882,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "", @@ -902,6 +903,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "", "bash completion.": "", @@ -960,8 +962,10 @@ "minikube profile was successfully set to {{.profile_name}}": "profil minikube został z powodzeniem zmieniony na: {{.profile_name}}", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "minikube dostarcza lokalne klastry Kubernetesa zoptymalizowane do celów rozwoju oprogramowania oraz zarządza nimi", "minikube quickly sets up a local Kubernetes cluster": "minikube szybko inicjalizuje lokalny klaster Kubernetesa", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "użycie flagi --force sprawia, że minikube pomija pewne walidacje, co może skutkować niespodziewanym zachowaniem", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "minikube {{.version}} jest dostępne! Pobierz je z: {{.url}}", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", diff --git a/translations/ru.json b/translations/ru.json index 038ab82bad..b336a0e471 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -230,6 +230,7 @@ "Failed to check main repository and mirrors for images": "", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -805,7 +806,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "", @@ -825,6 +826,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "", "bash completion.": "", @@ -882,8 +884,10 @@ "minikube profile was successfully set to {{.profile_name}}": "", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "", "minikube quickly sets up a local Kubernetes cluster": "", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", diff --git a/translations/strings.txt b/translations/strings.txt index 576a75a1fa..c0e6441dc2 100644 --- a/translations/strings.txt +++ b/translations/strings.txt @@ -230,6 +230,7 @@ "Failed to check main repository and mirrors for images": "", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -805,7 +806,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "", @@ -825,6 +826,7 @@ "addon '{{.name}}' is currently not enabled.\nTo enable this addon run:\nminikube addons enable {{.name}}": "", "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "", "bash completion.": "", @@ -882,8 +884,10 @@ "minikube profile was successfully set to {{.profile_name}}": "", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "", "minikube quickly sets up a local Kubernetes cluster": "", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "", "mkcmp is used to compare performance of two minikube binaries": "", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "", diff --git a/translations/zh-CN.json b/translations/zh-CN.json index 1496703fb4..390d7611eb 100644 --- a/translations/zh-CN.json +++ b/translations/zh-CN.json @@ -315,6 +315,7 @@ "Failed to check main repository and mirrors for images for images": "无法检测主仓库和镜像仓库中的镜像", "Failed to configure metallb IP {{.profile}}": "", "Failed to configure network plugin": "", + "Failed to configure registry-aliases {{.profile}}": "", "Failed to create file": "", "Failed to create runtime": "", "Failed to delete cluster {{.name}}, proceeding with retry anyway.": "", @@ -989,7 +990,7 @@ "You cannot change the CPUs for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the disk size for an existing minikube cluster. Please first delete the cluster.": "", "You cannot change the memory size for an existing minikube cluster. Please first delete the cluster.": "", - "You have authenticated with a service account that does not have an associated JSON. The GCP Auth requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", + "You have authenticated with a service account that does not have an associated JSON file. The GCP Auth addon requires credentials with a JSON file in order to continue. The image pull secret has been imported.": "", "You have chosen to disable the CNI but the \\\"{{.name}}\\\" container runtime requires CNI": "", "You have selected \"virtualbox\" driver, but there are better options !\nFor better performance and support consider using a different driver: {{.drivers}}\n\nTo turn off this warning run:\n\n\t$ minikube config set WantVirtualBoxDriverWarning false\n\n\nTo learn more about on minikube drivers checkout https://minikube.sigs.k8s.io/docs/drivers/\nTo see benchmarks checkout https://minikube.sigs.k8s.io/docs/benchmarks/cpuusage/\n\n": "", "You may need to manually remove the \"{{.name}}\" VM from your hypervisor": "您可能需要从管理程序中手动移除“{{.name}}”虚拟机", @@ -1010,6 +1011,7 @@ "addon '{{.name}}' is not a valid addon packaged with minikube.\nTo see the list of available addons run:\nminikube addons list": "", "addon enable failed": "启用插件失败", "addons modifies minikube addons files using subcommands like \"minikube addons enable dashboard\"": "插件使用诸如 \"minikube addons enable dashboard\" 的子命令修改 minikube 的插件文件", + "arm64 VM drivers do not currently support containerd or crio container runtimes. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "auto-pause addon is an alpha feature and still in early development. Please file issues to help us make it better.": "", "bash completion failed": "", "bash completion.": "", @@ -1070,8 +1072,10 @@ "minikube profile was successfully set to {{.profile_name}}": "", "minikube provisions and manages local Kubernetes clusters optimized for development workflows.": "", "minikube quickly sets up a local Kubernetes cluster": "", + "minikube service is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube skips various validations when --force is supplied; this may lead to unexpected behavior": "", "minikube status --output OUTPUT. json, text": "", + "minikube tunnel is not currently implemented with the qemu2 driver. See https://github.com/kubernetes/minikube/issues/14146 for details.": "", "minikube {{.version}} is available! Download it: {{.url}}": "", "mkcmp is used to compare performance of two minikube binaries": "mkcmp 用于对比两个 minikube 二进制的性能", "mount argument \"{{.value}}\" must be in form: \u003csource directory\u003e:\u003ctarget directory\u003e": "",