diff --git a/.github/workflows/depsreview.yaml b/.github/workflows/depsreview.yaml deleted file mode 100644 index b9d6d20ff..000000000 --- a/.github/workflows/depsreview.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: 'Dependency Review' -on: [pull_request] - -permissions: - contents: read - -jobs: - dependency-review: - runs-on: ubuntu-latest - steps: - - name: 'Checkout Repository' - uses: actions/checkout@v4 - - name: 'Dependency Review' - uses: actions/dependency-review-action@v4 diff --git a/.github/workflows/go-cross.yml b/.github/workflows/go-cross.yml deleted file mode 100644 index e462fe1aa..000000000 --- a/.github/workflows/go-cross.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Crosscompile - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Build Tests with Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Build on ${{ matrix.os }} - if: matrix.os == 'ubuntu-latest' - env: - CGO_ENABLED: 0 - GO111MODULE: on - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make crosscompile diff --git a/.github/workflows/go-healing.yml b/.github/workflows/go-healing.yml deleted file mode 100644 index 8617fd889..000000000 --- a/.github/workflows/go-healing.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Healing Functional Tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Build on ${{ matrix.os }} - if: matrix.os == 'ubuntu-latest' - env: - CGO_ENABLED: 0 - GO111MODULE: on - MINIO_KMS_SECRET_KEY: "my-minio-key:oyArl7zlPECEduNbB1KXgdzDn2Bdpvvw0l8VO51HQnY=" - MINIO_KMS_AUTO_ENCRYPTION: on - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make verify-healing - make verify-healing-inconsistent-versions - make verify-healing-with-root-disks - make verify-healing-with-rewrite diff --git a/.github/workflows/go-lint.yml b/.github/workflows/go-lint.yml deleted file mode 100644 index d0ce59d72..000000000 --- a/.github/workflows/go-lint.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Linters and Tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Build on ${{ matrix.os }} - if: matrix.os == 'ubuntu-latest' - env: - CGO_ENABLED: 0 - GO111MODULE: on - run: | - sudo apt install jq -y - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make - make test - make test-race diff --git a/.github/workflows/go-resiliency.yml b/.github/workflows/go-resiliency.yml deleted file mode 100644 index 70f043388..000000000 --- a/.github/workflows/go-resiliency.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Resiliency Functional Tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Build on ${{ matrix.os }} - if: matrix.os == 'ubuntu-latest' - env: - CGO_ENABLED: 0 - GO111MODULE: on - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-resiliency diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml deleted file mode 100644 index c5651a0cd..000000000 --- a/.github/workflows/go.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Functional Tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - healing - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Build on ${{ matrix.os }} - if: matrix.os == 'ubuntu-latest' - env: - CGO_ENABLED: 0 - GO111MODULE: on - MINIO_KMS_SECRET_KEY: "my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=" - MINIO_KMS_AUTO_ENCRYPTION: on - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make verify - make test-timeout diff --git a/.github/workflows/helm-lint.yml b/.github/workflows/helm-lint.yml deleted file mode 100644 index f444106f1..000000000 --- a/.github/workflows/helm-lint.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Helm Chart linting - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - release: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Install Helm - uses: azure/setup-helm@v4 - - - name: Run helm lint - run: | - cd helm/minio - helm lint . diff --git a/.github/workflows/iam-integrations.yaml b/.github/workflows/iam-integrations.yaml deleted file mode 100644 index a2e0d063d..000000000 --- a/.github/workflows/iam-integrations.yaml +++ /dev/null @@ -1,161 +0,0 @@ -name: IAM integration - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - iam-matrix-test: - name: "[Go=${{ matrix.go-version }}|ldap=${{ matrix.ldap }}|etcd=${{ matrix.etcd }}|openid=${{ matrix.openid }}]" - runs-on: ubuntu-latest - - services: - openldap: - image: quay.io/minio/openldap - ports: - - "389:389" - - "636:636" - env: - LDAP_ORGANIZATION: "MinIO Inc" - LDAP_DOMAIN: "min.io" - LDAP_ADMIN_PASSWORD: "admin" - etcd: - image: "quay.io/coreos/etcd:v3.5.1" - env: - ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379" - ETCD_ADVERTISE_CLIENT_URLS: "http://0.0.0.0:2379" - ports: - - "2379:2379" - options: >- - --health-cmd "etcdctl endpoint health" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - openid: - image: quay.io/minio/dex - ports: - - "5556:5556" - env: - DEX_LDAP_SERVER: "openldap:389" - openid2: - image: quay.io/minio/dex - ports: - - "5557:5557" - env: - DEX_LDAP_SERVER: "openldap:389" - DEX_ISSUER: "http://127.0.0.1:5557/dex" - DEX_WEB_HTTP: "0.0.0.0:5557" - - strategy: - # When ldap, etcd or openid vars are empty below, those external servers - # are turned off - i.e. if ldap="", then ldap server is not enabled for - # the tests. - matrix: - go-version: [1.26.1] - ldap: ["", "localhost:389"] - etcd: ["", "http://localhost:2379"] - openid: ["", "http://127.0.0.1:5556/dex"] - exclude: - # exclude combos where all are empty. - - ldap: "" - etcd: "" - openid: "" - # exclude combos where both ldap and openid IDPs are specified. - - ldap: "localhost:389" - openid: "http://127.0.0.1:5556/dex" - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Test LDAP/OpenID/Etcd combo - env: - _MINIO_LDAP_TEST_SERVER: ${{ matrix.ldap }} - _MINIO_ETCD_TEST_SERVER: ${{ matrix.etcd }} - _MINIO_OPENID_TEST_SERVER: ${{ matrix.openid }} - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-iam - - name: Test with multiple OpenID providers - if: matrix.openid == 'http://127.0.0.1:5556/dex' - env: - _MINIO_LDAP_TEST_SERVER: ${{ matrix.ldap }} - _MINIO_ETCD_TEST_SERVER: ${{ matrix.etcd }} - _MINIO_OPENID_TEST_SERVER: ${{ matrix.openid }} - _MINIO_OPENID_TEST_SERVER_2: "http://127.0.0.1:5557/dex" - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-iam - - name: Test with Access Management Plugin enabled - env: - _MINIO_LDAP_TEST_SERVER: ${{ matrix.ldap }} - _MINIO_ETCD_TEST_SERVER: ${{ matrix.etcd }} - _MINIO_OPENID_TEST_SERVER: ${{ matrix.openid }} - _MINIO_POLICY_PLUGIN_TEST_ENDPOINT: "http://127.0.0.1:8080" - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - go run docs/iam/access-manager-plugin.go & - make test-iam - - name: Test MinIO Old Version data to IAM import current version - if: matrix.ldap == 'ldaphost:389' - env: - _MINIO_LDAP_TEST_SERVER: ${{ matrix.ldap }} - run: | - make test-iam-ldap-upgrade-import - - name: Test LDAP for automatic site replication - if: matrix.ldap == 'localhost:389' - run: | - make test-site-replication-ldap - - name: Test OIDC for automatic site replication - if: matrix.openid == 'http://127.0.0.1:5556/dex' - run: | - make test-site-replication-oidc - iam-import-with-missing-entities: - name: Test IAM import in new cluster with missing entities - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Checkout minio-iam-testing - uses: actions/checkout@v4 - with: - repository: minio/minio-iam-testing - path: minio-iam-testing - - name: Test import of IAM artifacts when in fresh cluster there are missing groups etc - run: | - make test-iam-import-with-missing-entities - iam-import-with-openid: - name: Test IAM import in new cluster with opendid configurations - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Checkout minio-iam-testing - uses: actions/checkout@v4 - with: - repository: minio/minio-iam-testing - path: minio-iam-testing - - name: Test import of IAM artifacts when in fresh cluster with openid configurations - run: | - make test-iam-import-with-openid diff --git a/.github/workflows/issues.yaml b/.github/workflows/issues.yaml deleted file mode 100644 index d91950aeb..000000000 --- a/.github/workflows/issues.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# @format - -name: Issue Workflow - -on: - issues: - types: - - opened - -jobs: - add-to-project: - name: Add issue to project - runs-on: ubuntu-latest - steps: - - uses: actions/add-to-project@v0.5.0 - with: - project-url: https://github.com/orgs/miniohq/projects/2 - github-token: ${{ secrets.BOT_PAT }} diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml deleted file mode 100644 index da3afe3c4..000000000 --- a/.github/workflows/lock.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: 'Lock Threads' - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -permissions: - issues: write - -concurrency: - group: lock - -jobs: - action: - runs-on: ubuntu-latest - steps: - - uses: dessant/lock-threads@v3 - with: - github-token: ${{ github.token }} - issue-inactive-days: '365' - exclude-any-issue-labels: 'do-not-close' - issue-lock-reason: 'resolved' - log-output: true diff --git a/.github/workflows/mint.yml b/.github/workflows/mint.yml deleted file mode 100644 index 746812757..000000000 --- a/.github/workflows/mint.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Mint Tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - mint-test: - runs-on: mint - timeout-minutes: 120 - steps: - - name: cleanup #https://github.com/actions/checkout/issues/273 - run: | - sudo -S rm -rf ${GITHUB_WORKSPACE} - mkdir ${GITHUB_WORKSPACE} - - name: checkout-step - uses: actions/checkout@v4 - - - name: setup-go-step - uses: actions/setup-go@v5 - with: - go-version: 1.26.1 - - - name: github sha short - id: vars - run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: build-minio - run: | - TAG="quay.io/minio/minio:${{ steps.vars.outputs.sha_short }}" make docker - - - name: multipart uploads test - run: | - ${GITHUB_WORKSPACE}/.github/workflows/multipart/migrate.sh "${{ steps.vars.outputs.sha_short }}" - - - name: compress and encrypt - run: | - ${GITHUB_WORKSPACE}/.github/workflows/run-mint.sh "compress-encrypt" "minio" "minio123" "${{ steps.vars.outputs.sha_short }}" - - - name: multiple pools - run: | - ${GITHUB_WORKSPACE}/.github/workflows/run-mint.sh "pools" "minio" "minio123" "${{ steps.vars.outputs.sha_short }}" - - - name: standalone erasure - run: | - ${GITHUB_WORKSPACE}/.github/workflows/run-mint.sh "erasure" "minio" "minio123" "${{ steps.vars.outputs.sha_short }}" - - # FIXME: renable this back when we have a valid way to add deadlines for PUT()s (internode CreateFile) - # - name: resiliency - # run: | - # ${GITHUB_WORKSPACE}/.github/workflows/run-mint.sh "resiliency" "minio" "minio123" "${{ steps.vars.outputs.sha_short }}" - - - name: The job must cleanup - if: ${{ always() }} - run: | - export JOB_NAME=${{ steps.vars.outputs.sha_short }} - for mode in $(echo compress-encrypt pools erasure); do - docker-compose -f ${GITHUB_WORKSPACE}/.github/workflows/mint/minio-${mode}.yaml down || true - docker-compose -f ${GITHUB_WORKSPACE}/.github/workflows/mint/minio-${mode}.yaml rm || true - done - - docker-compose -f ${GITHUB_WORKSPACE}/.github/workflows/multipart/docker-compose-site1.yaml rm -s -f || true - docker-compose -f ${GITHUB_WORKSPACE}/.github/workflows/multipart/docker-compose-site2.yaml rm -s -f || true - for volume in $(docker volume ls -q | grep minio); do - docker volume rm ${volume} || true - done - - docker rmi -f quay.io/minio/minio:${{ steps.vars.outputs.sha_short }} - docker system prune -f || true - docker volume prune -f || true - docker volume rm $(docker volume ls -q -f dangling=true) || true diff --git a/.github/workflows/mint/minio-compress-encrypt.yaml b/.github/workflows/mint/minio-compress-encrypt.yaml deleted file mode 100644 index fe1238e80..000000000 --- a/.github/workflows/mint/minio-compress-encrypt.yaml +++ /dev/null @@ -1,80 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${JOB_NAME} - command: server --console-address ":9001" http://minio{1...4}/cdata{1...2} - expose: - - "9000" - - "9001" - environment: - MINIO_CI_CD: "on" - MINIO_ROOT_USER: "minio" - MINIO_ROOT_PASSWORD: "minio123" - MINIO_COMPRESSION_ENABLE: "on" - MINIO_COMPRESSION_MIME_TYPES: "*" - MINIO_COMPRESSION_ALLOW_ENCRYPTION: "on" - MINIO_KMS_SECRET_KEY: "my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=" - healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 5s - timeout: 5s - retries: 5 - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - minio1: - <<: *minio-common - hostname: minio1 - volumes: - - cdata1-1:/cdata1 - - cdata1-2:/cdata2 - - minio2: - <<: *minio-common - hostname: minio2 - volumes: - - cdata2-1:/cdata1 - - cdata2-2:/cdata2 - - minio3: - <<: *minio-common - hostname: minio3 - volumes: - - cdata3-1:/cdata1 - - cdata3-2:/cdata2 - - minio4: - <<: *minio-common - hostname: minio4 - volumes: - - cdata4-1:/cdata1 - - cdata4-2:/cdata2 - - nginx: - image: nginx:1.19.2-alpine - hostname: nginx - volumes: - - ./nginx-4-node.conf:/etc/nginx/nginx.conf:ro - ports: - - "9000:9000" - - "9001:9001" - depends_on: - - minio1 - - minio2 - - minio3 - - minio4 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - cdata1-1: - cdata1-2: - cdata2-1: - cdata2-2: - cdata3-1: - cdata3-2: - cdata4-1: - cdata4-2: diff --git a/.github/workflows/mint/minio-erasure.yaml b/.github/workflows/mint/minio-erasure.yaml deleted file mode 100644 index a3fd6dbc0..000000000 --- a/.github/workflows/mint/minio-erasure.yaml +++ /dev/null @@ -1,51 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${JOB_NAME} - command: server --console-address ":9001" edata{1...4} - expose: - - "9000" - - "9001" - environment: - MINIO_CI_CD: "on" - MINIO_ROOT_USER: "minio" - MINIO_ROOT_PASSWORD: "minio123" - MINIO_KMS_SECRET_KEY: "my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=" - healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 5s - timeout: 5s - retries: 5 - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - minio1: - <<: *minio-common - hostname: minio1 - volumes: - - edata1-1:/edata1 - - edata1-2:/edata2 - - edata1-3:/edata3 - - edata1-4:/edata4 - - nginx: - image: nginx:1.19.2-alpine - hostname: nginx - volumes: - - ./nginx-1-node.conf:/etc/nginx/nginx.conf:ro - ports: - - "9000:9000" - - "9001:9001" - depends_on: - - minio1 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - edata1-1: - edata1-2: - edata1-3: - edata1-4: diff --git a/.github/workflows/mint/minio-pools.yaml b/.github/workflows/mint/minio-pools.yaml deleted file mode 100644 index bd79fdae0..000000000 --- a/.github/workflows/mint/minio-pools.yaml +++ /dev/null @@ -1,117 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${JOB_NAME} - command: server --console-address ":9001" http://minio{1...4}/pdata{1...2} http://minio{5...8}/pdata{1...2} - expose: - - "9000" - - "9001" - environment: - MINIO_CI_CD: "on" - MINIO_ROOT_USER: "minio" - MINIO_ROOT_PASSWORD: "minio123" - MINIO_KMS_SECRET_KEY: "my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=" - healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 5s - timeout: 5s - retries: 5 - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - minio1: - <<: *minio-common - hostname: minio1 - volumes: - - pdata1-1:/pdata1 - - pdata1-2:/pdata2 - - minio2: - <<: *minio-common - hostname: minio2 - volumes: - - pdata2-1:/pdata1 - - pdata2-2:/pdata2 - - minio3: - <<: *minio-common - hostname: minio3 - volumes: - - pdata3-1:/pdata1 - - pdata3-2:/pdata2 - - minio4: - <<: *minio-common - hostname: minio4 - volumes: - - pdata4-1:/pdata1 - - pdata4-2:/pdata2 - - minio5: - <<: *minio-common - hostname: minio5 - volumes: - - pdata5-1:/pdata1 - - pdata5-2:/pdata2 - - minio6: - <<: *minio-common - hostname: minio6 - volumes: - - pdata6-1:/pdata1 - - pdata6-2:/pdata2 - - minio7: - <<: *minio-common - hostname: minio7 - volumes: - - pdata7-1:/pdata1 - - pdata7-2:/pdata2 - - minio8: - <<: *minio-common - hostname: minio8 - volumes: - - pdata8-1:/pdata1 - - pdata8-2:/pdata2 - - nginx: - image: nginx:1.19.2-alpine - hostname: nginx - volumes: - - ./nginx-8-node.conf:/etc/nginx/nginx.conf:ro - ports: - - "9000:9000" - - "9001:9001" - depends_on: - - minio1 - - minio2 - - minio3 - - minio4 - - minio5 - - minio6 - - minio7 - - minio8 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - pdata1-1: - pdata1-2: - pdata2-1: - pdata2-2: - pdata3-1: - pdata3-2: - pdata4-1: - pdata4-2: - pdata5-1: - pdata5-2: - pdata6-1: - pdata6-2: - pdata7-1: - pdata7-2: - pdata8-1: - pdata8-2: diff --git a/.github/workflows/mint/minio-resiliency.yaml b/.github/workflows/mint/minio-resiliency.yaml deleted file mode 100644 index 9d569c59e..000000000 --- a/.github/workflows/mint/minio-resiliency.yaml +++ /dev/null @@ -1,78 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${JOB_NAME} - command: server --console-address ":9001" http://minio{1...4}/rdata{1...2} - expose: - - "9000" - - "9001" - environment: - MINIO_CI_CD: "on" - MINIO_ROOT_USER: "minio" - MINIO_ROOT_PASSWORD: "minio123" - MINIO_KMS_SECRET_KEY: "my-minio-key:OSMM+vkKUTCvQs9YL/CVMIMt43HFhkUpqJxTmGl6rYw=" - MINIO_DRIVE_MAX_TIMEOUT: "5s" - healthcheck: - test: ["CMD", "mc", "ready", "local"] - interval: 5s - timeout: 5s - retries: 5 - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - minio1: - <<: *minio-common - hostname: minio1 - volumes: - - rdata1-1:/rdata1 - - rdata1-2:/rdata2 - - minio2: - <<: *minio-common - hostname: minio2 - volumes: - - rdata2-1:/rdata1 - - rdata2-2:/rdata2 - - minio3: - <<: *minio-common - hostname: minio3 - volumes: - - rdata3-1:/rdata1 - - rdata3-2:/rdata2 - - minio4: - <<: *minio-common - hostname: minio4 - volumes: - - rdata4-1:/rdata1 - - rdata4-2:/rdata2 - - nginx: - image: nginx:1.19.2-alpine - hostname: nginx - volumes: - - ./nginx-4-node.conf:/etc/nginx/nginx.conf:ro - ports: - - "9000:9000" - - "9001:9001" - depends_on: - - minio1 - - minio2 - - minio3 - - minio4 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - rdata1-1: - rdata1-2: - rdata2-1: - rdata2-2: - rdata3-1: - rdata3-2: - rdata4-1: - rdata4-2: diff --git a/.github/workflows/mint/nginx-1-node.conf b/.github/workflows/mint/nginx-1-node.conf deleted file mode 100644 index bb13bde24..000000000 --- a/.github/workflows/mint/nginx-1-node.conf +++ /dev/null @@ -1,100 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server minio1:9000; - } - - upstream console { - ip_hash; - server minio1:9001; - } - - server { - listen 9000; - listen [::]:9000; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } - - server { - listen 9001; - listen [::]:9001; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-NginX-Proxy true; - - # This is necessary to pass the correct IP to be hashed - real_ip_header X-Real-IP; - - proxy_connect_timeout 300; - - # To support websocket - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - chunked_transfer_encoding off; - - proxy_pass http://console; - } - } -} diff --git a/.github/workflows/mint/nginx-4-node.conf b/.github/workflows/mint/nginx-4-node.conf deleted file mode 100644 index b849940d9..000000000 --- a/.github/workflows/mint/nginx-4-node.conf +++ /dev/null @@ -1,105 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server minio1:9000 max_fails=1 fail_timeout=10s; - server minio2:9000 max_fails=1 fail_timeout=10s; - server minio3:9000 max_fails=1 fail_timeout=10s; - } - - upstream console { - ip_hash; - server minio1:9001; - server minio2:9001; - server minio3:9001; - server minio4:9001; - } - - server { - listen 9000; - listen [::]:9000; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } - - server { - listen 9001; - listen [::]:9001; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-NginX-Proxy true; - - # This is necessary to pass the correct IP to be hashed - real_ip_header X-Real-IP; - - proxy_connect_timeout 300; - - # To support websocket - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - chunked_transfer_encoding off; - - proxy_pass http://console; - } - } -} diff --git a/.github/workflows/mint/nginx-8-node.conf b/.github/workflows/mint/nginx-8-node.conf deleted file mode 100644 index 278b5ae76..000000000 --- a/.github/workflows/mint/nginx-8-node.conf +++ /dev/null @@ -1,114 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server minio1:9000 max_fails=1 fail_timeout=10s; - server minio2:9000 max_fails=1 fail_timeout=10s; - server minio3:9000 max_fails=1 fail_timeout=10s; - server minio4:9000 max_fails=1 fail_timeout=10s; - server minio5:9000 max_fails=1 fail_timeout=10s; - server minio6:9000 max_fails=1 fail_timeout=10s; - server minio7:9000 max_fails=1 fail_timeout=10s; - server minio8:9000 max_fails=1 fail_timeout=10s; - } - - upstream console { - ip_hash; - server minio1:9001; - server minio2:9001; - server minio3:9001; - server minio4:9001; - server minio5:9001; - server minio6:9001; - server minio7:9001; - server minio8:9001; - } - - server { - listen 9000; - listen [::]:9000; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } - - server { - listen 9001; - listen [::]:9001; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-NginX-Proxy true; - - # This is necessary to pass the correct IP to be hashed - real_ip_header X-Real-IP; - - proxy_connect_timeout 300; - - # To support websocket - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - chunked_transfer_encoding off; - - proxy_pass http://console; - } - } -} diff --git a/.github/workflows/mint/nginx.conf b/.github/workflows/mint/nginx.conf deleted file mode 100644 index 1455a3e2f..000000000 --- a/.github/workflows/mint/nginx.conf +++ /dev/null @@ -1,106 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server minio1:9000 max_fails=1 fail_timeout=10s; - server minio2:9000 max_fails=1 fail_timeout=10s; - server minio3:9000 max_fails=1 fail_timeout=10s; - server minio4:9000 max_fails=1 fail_timeout=10s; - } - - upstream console { - ip_hash; - server minio1:9001; - server minio2:9001; - server minio3:9001; - server minio4:9001; - } - - server { - listen 9000; - listen [::]:9000; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } - - server { - listen 9001; - listen [::]:9001; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-NginX-Proxy true; - - # This is necessary to pass the correct IP to be hashed - real_ip_header X-Real-IP; - - proxy_connect_timeout 300; - - # To support websocket - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - - chunked_transfer_encoding off; - - proxy_pass http://console; - } - } -} diff --git a/.github/workflows/multipart/docker-compose-site1.yaml b/.github/workflows/multipart/docker-compose-site1.yaml deleted file mode 100644 index b4a665ef0..000000000 --- a/.github/workflows/multipart/docker-compose-site1.yaml +++ /dev/null @@ -1,66 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${RELEASE} - command: server http://site1-minio{1...4}/data{1...2} - environment: - - MINIO_PROMETHEUS_AUTH_TYPE=public - - CI=true - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - site1-minio1: - <<: *minio-common - hostname: site1-minio1 - volumes: - - site1-data1-1:/data1 - - site1-data1-2:/data2 - - site1-minio2: - <<: *minio-common - hostname: site1-minio2 - volumes: - - site1-data2-1:/data1 - - site1-data2-2:/data2 - - site1-minio3: - <<: *minio-common - hostname: site1-minio3 - volumes: - - site1-data3-1:/data1 - - site1-data3-2:/data2 - - site1-minio4: - <<: *minio-common - hostname: site1-minio4 - volumes: - - site1-data4-1:/data1 - - site1-data4-2:/data2 - - site1-nginx: - image: nginx:1.19.2-alpine - hostname: site1-nginx - volumes: - - ./nginx-site1.conf:/etc/nginx/nginx.conf:ro - ports: - - "9001:9001" - depends_on: - - site1-minio1 - - site1-minio2 - - site1-minio3 - - site1-minio4 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - site1-data1-1: - site1-data1-2: - site1-data2-1: - site1-data2-2: - site1-data3-1: - site1-data3-2: - site1-data4-1: - site1-data4-2: diff --git a/.github/workflows/multipart/docker-compose-site2.yaml b/.github/workflows/multipart/docker-compose-site2.yaml deleted file mode 100644 index 31a1f7a8c..000000000 --- a/.github/workflows/multipart/docker-compose-site2.yaml +++ /dev/null @@ -1,66 +0,0 @@ -version: '3.7' - -# Settings and configurations that are common for all containers -x-minio-common: &minio-common - image: quay.io/minio/minio:${RELEASE} - command: server http://site2-minio{1...4}/data{1...2} - environment: - - MINIO_PROMETHEUS_AUTH_TYPE=public - - CI=true - -# starts 4 docker containers running minio server instances. -# using nginx reverse proxy, load balancing, you can access -# it through port 9000. -services: - site2-minio1: - <<: *minio-common - hostname: site2-minio1 - volumes: - - site2-data1-1:/data1 - - site2-data1-2:/data2 - - site2-minio2: - <<: *minio-common - hostname: site2-minio2 - volumes: - - site2-data2-1:/data1 - - site2-data2-2:/data2 - - site2-minio3: - <<: *minio-common - hostname: site2-minio3 - volumes: - - site2-data3-1:/data1 - - site2-data3-2:/data2 - - site2-minio4: - <<: *minio-common - hostname: site2-minio4 - volumes: - - site2-data4-1:/data1 - - site2-data4-2:/data2 - - site2-nginx: - image: nginx:1.19.2-alpine - hostname: site2-nginx - volumes: - - ./nginx-site2.conf:/etc/nginx/nginx.conf:ro - ports: - - "9002:9002" - depends_on: - - site2-minio1 - - site2-minio2 - - site2-minio3 - - site2-minio4 - -## By default this config uses default local driver, -## For custom volumes replace with volume driver configuration. -volumes: - site2-data1-1: - site2-data1-2: - site2-data2-1: - site2-data2-2: - site2-data3-1: - site2-data3-2: - site2-data4-1: - site2-data4-2: diff --git a/.github/workflows/multipart/migrate.sh b/.github/workflows/multipart/migrate.sh deleted file mode 100755 index 6058b008c..000000000 --- a/.github/workflows/multipart/migrate.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash - -set -x - -## change working directory -cd .github/workflows/multipart/ - -function cleanup() { - docker-compose -f docker-compose-site1.yaml rm -s -f || true - docker-compose -f docker-compose-site2.yaml rm -s -f || true - for volume in $(docker volume ls -q | grep minio); do - docker volume rm ${volume} || true - done - - docker system prune -f || true - docker volume prune -f || true - docker volume rm $(docker volume ls -q -f dangling=true) || true -} - -cleanup - -if [ ! -f ./mc ]; then - wget --quiet -O mc https://dl.minio.io/client/mc/release/linux-amd64/mc && - chmod +x mc -fi - -export RELEASE=RELEASE.2023-08-29T23-07-35Z - -docker-compose -f docker-compose-site1.yaml up -d -docker-compose -f docker-compose-site2.yaml up -d - -sleep 30s - -./mc alias set site1 http://site1-nginx:9001 minioadmin minioadmin --api s3v4 -./mc alias set site2 http://site2-nginx:9002 minioadmin minioadmin --api s3v4 - -./mc ready site1/ -./mc ready site2/ - -./mc admin replicate add site1 site2 -./mc mb site1/testbucket/ -./mc cp -r --quiet /usr/bin site1/testbucket/ - -sleep 5 - -./s3-check-md5 -h - -failed_count_site1=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l) -failed_count_site2=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l) - -if [ $failed_count_site1 -ne 0 ]; then - echo "failed with multipart on site1 uploads" - exit 1 -fi - -if [ $failed_count_site2 -ne 0 ]; then - echo "failed with multipart on site2 uploads" - exit 1 -fi - -./mc cp -r --quiet /usr/bin site1/testbucket/ - -sleep 5 - -failed_count_site1=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l) -failed_count_site2=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l) - -## we do not need to fail here, since we are going to test -## upgrading to master, healing and being able to recover -## the last version. -if [ $failed_count_site1 -ne 0 ]; then - echo "failed with multipart on site1 uploads ${failed_count_site1}" -fi - -if [ $failed_count_site2 -ne 0 ]; then - echo "failed with multipart on site2 uploads ${failed_count_site2}" -fi - -export RELEASE=${1} - -docker-compose -f docker-compose-site1.yaml up -d -docker-compose -f docker-compose-site2.yaml up -d - -./mc ready site1/ -./mc ready site2/ - -for i in $(seq 1 10); do - # mc admin heal -r --remove when used against a LB endpoint - # behaves flaky, let this run 10 times before giving up - ./mc admin heal -r --remove --json site1/ 2>&1 >/dev/null - ./mc admin heal -r --remove --json site2/ 2>&1 >/dev/null -done - -failed_count_site1=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site1-nginx:9001 -bucket testbucket 2>&1 | grep FAILED | wc -l) -failed_count_site2=$(./s3-check-md5 -versions -access-key minioadmin -secret-key minioadmin -endpoint http://site2-nginx:9002 -bucket testbucket 2>&1 | grep FAILED | wc -l) - -if [ $failed_count_site1 -ne 0 ]; then - echo "failed with multipart on site1 uploads" - exit 1 -fi - -if [ $failed_count_site2 -ne 0 ]; then - echo "failed with multipart on site2 uploads" - exit 1 -fi - -# Add user group test -./mc admin user add site1 site-replication-issue-user site-replication-issue-password -./mc admin group add site1 site-replication-issue-group site-replication-issue-user - -max_wait_attempts=30 -wait_interval=5 - -attempt=1 -while true; do - diff <(./mc admin group info site1 site-replication-issue-group) <(./mc admin group info site2 site-replication-issue-group) - - if [[ $? -eq 0 ]]; then - echo "Outputs are consistent." - break - fi - - remaining_attempts=$((max_wait_attempts - attempt)) - if ((attempt >= max_wait_attempts)); then - echo "Outputs remain inconsistent after $max_wait_attempts attempts. Exiting with error." - exit 1 - else - echo "Outputs are inconsistent. Waiting for $wait_interval seconds (attempt $attempt/$max_wait_attempts)." - sleep $wait_interval - fi - - ((attempt++)) -done - -status=$(./mc admin group info site1 site-replication-issue-group --json | jq .groupStatus | tr -d '"') - -if [[ $status == "enabled" ]]; then - echo "Success" -else - echo "Expected status: enabled, actual status: $status" - exit 1 -fi - -cleanup - -## change working directory -cd ../../../ diff --git a/.github/workflows/multipart/nginx-site1.conf b/.github/workflows/multipart/nginx-site1.conf deleted file mode 100644 index 1a37b9d2b..000000000 --- a/.github/workflows/multipart/nginx-site1.conf +++ /dev/null @@ -1,61 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server site1-minio1:9000; - server site1-minio2:9000; - server site1-minio3:9000; - server site1-minio4:9000; - } - - server { - listen 9001; - listen [::]:9001; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } -} diff --git a/.github/workflows/multipart/nginx-site2.conf b/.github/workflows/multipart/nginx-site2.conf deleted file mode 100644 index b93bba24d..000000000 --- a/.github/workflows/multipart/nginx-site2.conf +++ /dev/null @@ -1,61 +0,0 @@ -user nginx; -worker_processes auto; - -error_log /var/log/nginx/error.log warn; -pid /var/run/nginx.pid; - -events { - worker_connections 4096; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - - access_log /var/log/nginx/access.log main; - sendfile on; - keepalive_timeout 65; - - # include /etc/nginx/conf.d/*.conf; - - upstream minio { - server site2-minio1:9000; - server site2-minio2:9000; - server site2-minio3:9000; - server site2-minio4:9000; - } - - server { - listen 9002; - listen [::]:9002; - server_name localhost; - - # To allow special characters in headers - ignore_invalid_headers off; - # Allow any size file to be uploaded. - # Set to a value such as 1000m; to restrict file size to a specific value - client_max_body_size 0; - # To disable buffering - proxy_buffering off; - proxy_request_buffering off; - - location / { - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - - proxy_connect_timeout 300; - # Default is HTTP/1, keepalive is only enabled in HTTP/1.1 - proxy_http_version 1.1; - proxy_set_header Connection ""; - chunked_transfer_encoding off; - - proxy_pass http://minio; - } - } -} diff --git a/.github/workflows/replication.yaml b/.github/workflows/replication.yaml deleted file mode 100644 index 6e7997d65..000000000 --- a/.github/workflows/replication.yaml +++ /dev/null @@ -1,79 +0,0 @@ -name: MinIO advanced tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - replication-test: - name: Advanced Tests with Go ${{ matrix.go-version }} - runs-on: ubuntu-latest - - strategy: - matrix: - go-version: [1.26.1] - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Test Decom - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-decom - - - name: Test ILM - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-ilm - make test-ilm-transition - - - name: Test PBAC - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-pbac - - - name: Test Config File - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-configfile - - - name: Test Replication - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-replication - - - name: Test MinIO IDP for automatic site replication - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-site-replication-minio - - - name: Test Versioning - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-versioning - - - name: Test Multipart upload with failures - run: | - sudo sysctl net.ipv6.conf.all.disable_ipv6=0 - sudo sysctl net.ipv6.conf.default.disable_ipv6=0 - make test-multipart diff --git a/.github/workflows/root-disable.yml b/.github/workflows/root-disable.yml deleted file mode 100644 index dde6d6606..000000000 --- a/.github/workflows/root-disable.yml +++ /dev/null @@ -1,34 +0,0 @@ -name: Root lockdown tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Start root lockdown tests - run: | - make test-root-disable diff --git a/.github/workflows/root.cert b/.github/workflows/root.cert deleted file mode 100644 index 5f220f79b..000000000 --- a/.github/workflows/root.cert +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBKDCB26ADAgECAhB6vebGMUfKnmBKyqoApRSOMAUGAytlcDAbMRkwFwYDVQQD -DBByb290QHBsYXkubWluLmlvMB4XDTIwMDQzMDE1MjIyNVoXDTI1MDQyOTE1MjIy -NVowGzEZMBcGA1UEAwwQcm9vdEBwbGF5Lm1pbi5pbzAqMAUGAytlcAMhALzn735W -fmSH/ghKs+4iPWziZMmWdiWr/sqvqeW+WwSxozUwMzAOBgNVHQ8BAf8EBAMCB4Aw -EwYDVR0lBAwwCgYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAFBgMrZXADQQDZOrGK -b2ATkDlu2pTcP3LyhSBDpYh7V4TvjRkBTRgjkacCzwFLm+mh+7US8V4dBpIDsJ4u -uWoF0y6vbLVGIlkG ------END CERTIFICATE----- diff --git a/.github/workflows/root.key b/.github/workflows/root.key deleted file mode 100644 index 53a47e25d..000000000 --- a/.github/workflows/root.key +++ /dev/null @@ -1,3 +0,0 @@ ------BEGIN PRIVATE KEY----- -MC4CAQAwBQYDK2VwBCIEID9E7FSYWrMD+VjhI6q545cYT9YOyFxZb7UnjEepYDRc ------END PRIVATE KEY----- diff --git a/.github/workflows/run-mint.sh b/.github/workflows/run-mint.sh deleted file mode 100755 index 0bbc1cbaf..000000000 --- a/.github/workflows/run-mint.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash - -set -ex - -export MODE="$1" -export ACCESS_KEY="$2" -export SECRET_KEY="$3" -export JOB_NAME="$4" -export MINT_MODE="full" - -docker system prune -f || true -docker volume prune -f || true -docker volume rm $(docker volume ls -f dangling=true) || true - -## change working directory -cd .github/workflows/mint - -## always pull latest -docker pull docker.io/minio/mint:edge - -docker-compose -f minio-${MODE}.yaml up -d -sleep 1m - -docker system prune -f || true -docker volume prune -f || true -docker volume rm $(docker volume ls -q -f dangling=true) || true - -# Stop two nodes, one of each pool, to check that all S3 calls work while quorum is still there -[ "${MODE}" == "pools" ] && docker-compose -f minio-${MODE}.yaml stop minio2 -[ "${MODE}" == "pools" ] && docker-compose -f minio-${MODE}.yaml stop minio6 - -# Pause one node, to check that all S3 calls work while one node goes wrong -[ "${MODE}" == "resiliency" ] && docker-compose -f minio-${MODE}.yaml pause minio4 - -docker run --rm --net=mint_default \ - --name="mint-${MODE}-${JOB_NAME}" \ - -e SERVER_ENDPOINT="nginx:9000" \ - -e ACCESS_KEY="${ACCESS_KEY}" \ - -e SECRET_KEY="${SECRET_KEY}" \ - -e ENABLE_HTTPS=0 \ - -e MINT_MODE="${MINT_MODE}" \ - docker.io/minio/mint:edge - -# FIXME: enable this after fixing aws-sdk-java-v2 tests -# # unpause the node, to check that all S3 calls work while one node goes wrong -# [ "${MODE}" == "resiliency" ] && docker-compose -f minio-${MODE}.yaml unpause minio4 -# [ "${MODE}" == "resiliency" ] && docker run --rm --net=mint_default \ -# --name="mint-${MODE}-${JOB_NAME}" \ -# -e SERVER_ENDPOINT="nginx:9000" \ -# -e ACCESS_KEY="${ACCESS_KEY}" \ -# -e SECRET_KEY="${SECRET_KEY}" \ -# -e ENABLE_HTTPS=0 \ -# -e MINT_MODE="${MINT_MODE}" \ -# docker.io/minio/mint:edge - -docker-compose -f minio-${MODE}.yaml down || true -sleep 10s - -docker system prune -f || true -docker volume prune -f || true -docker volume rm $(docker volume ls -q -f dangling=true) || true - -## change working directory -cd ../../../ diff --git a/.github/workflows/shfmt.yml b/.github/workflows/shfmt.yml deleted file mode 100644 index 3e446306b..000000000 --- a/.github/workflows/shfmt.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Shell formatting checks - -on: - pull_request: - branches: - - master - -permissions: - contents: read - -jobs: - build: - name: runner / shfmt - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: luizm/action-sh-checker@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SHFMT_OPTS: "-s" - with: - sh_checker_shellcheck_disable: true # disable for now diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml deleted file mode 100644 index 7addb3143..000000000 --- a/.github/workflows/typos.yml +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: Spelling -on: [pull_request] - -jobs: - run: - name: Spell Check with Typos - runs-on: ubuntu-latest - steps: - - name: Checkout Actions Repository - uses: actions/checkout@v4 - - - name: Check spelling of repo - uses: crate-ci/typos@master - diff --git a/.github/workflows/upgrade-ci-cd.yaml b/.github/workflows/upgrade-ci-cd.yaml deleted file mode 100644 index e9d4284c9..000000000 --- a/.github/workflows/upgrade-ci-cd.yaml +++ /dev/null @@ -1,34 +0,0 @@ -name: Upgrade old version tests - -on: - pull_request: - branches: - - master - -# This ensures that previous jobs for the PR are canceled when the PR is -# updated. -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build: - name: Go ${{ matrix.go-version }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - go-version: [1.26.1] - os: [ubuntu-latest] - - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-go@v5 - with: - go-version: ${{ matrix.go-version }} - check-latest: true - - name: Start upgrade tests - run: | - make test-upgrade diff --git a/.github/workflows/vulncheck.yml b/.github/workflows/vulncheck.yml deleted file mode 100644 index 03fdbee0c..000000000 --- a/.github/workflows/vulncheck.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: VulnCheck -on: - pull_request: - branches: - - master - - push: - branches: - - master - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - vulncheck: - name: Analysis - runs-on: ubuntu-latest - steps: - - name: Check out code into the Go module directory - uses: actions/checkout@v4 - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: 1.26.1 - cached: false - - name: Get official govulncheck - run: go install golang.org/x/vuln/cmd/govulncheck@latest - shell: bash - - name: Run govulncheck - run: govulncheck -show verbose ./... - shell: bash