Commit Graph

213 Commits

Author SHA1 Message Date
abuckit 1b4c61b845 docs: embed web console demo 2026-07-27 19:04:59 -04:00
abuckit 4488828b3a ci: update Go vulncheck baseline 2026-07-14 16:40:09 -04:00
abuckit 6d83d7c0af docs: refresh project docs and remove legacy artifacts 2026-07-07 22:47:25 -04:00
abuckit def0a2e492 chore: rebrand runtime messages for Buckit CLI 2026-07-04 20:51:44 -04:00
abuckit 414f5656f2 release: add Install section with one-line installers to release page
Add an Install panel to the generated release landing page listing the
curl/irm one-liners for the Linux, macOS, and Windows installer scripts.
2026-06-18 19:47:06 -04:00
abuckit 255c33fa3e feat: add macOS and Windows installer scripts
Add install-mac.sh (downloads the Apple Silicon binary, verifies SHA-256,
clears the macOS quarantine attr, prints the move-to-PATH command) and
install-windows.ps1 (downloads the .exe, verifies SHA-256, prints the
move-to-PATH command). Both write to a predictable filename (buckit /
buckit.exe) and use the same atomic temp-then-move + checksum-gate flow as
install-linux.sh.

Publish both to gh-pages in the release workflow, and point install-linux.sh's
non-Linux error at the new scripts.
2026-06-18 19:31:31 -04:00
abuckit 616eeea9a2 rename install-rpm.sh to install-linux.sh
The script installs rpm, deb, and apk packages, so the rpm-specific name
was misleading. install-linux.sh reflects its actual Linux-wide scope.
2026-06-18 17:58:02 -04:00
abuckit 3fab64f1bf feat: add install-rpm.sh native-package installer
Add packaging/install-rpm.sh, a POSIX sh helper served from gh-pages that
detects the host package manager (dnf/yum/zypper, apt/apt-get/dpkg, or apk),
downloads the matching .rpm/.deb/.apk for the latest stable release, verifies
its published SHA-256 checksum, and prints the install command to run. It does
not invoke the package manager itself.

Wire the update-gh-pages release job to check out source and publish the
script to pages/install-rpm.sh so it ships at
https://buckit-io.github.io/buckit/install-rpm.sh during a normal release.
2026-06-18 17:53:42 -04:00
abuckit 43e5cf2c85 ci: resolve multipart compose hosts on github runner 2026-06-16 18:38:36 -04:00
abuckit 3178c75874 ci: build mint image from local binary 2026-06-16 15:04:19 -04:00
abuckit c179cd46ed ci: run mint tests on github-hosted runner 2026-06-16 14:58:32 -04:00
abuckit e701c06571 ci: fix lint and verifier workflow failures 2026-06-14 13:57:47 -04:00
abuckit de269229bc ci: stabilize Go and lint workflow tooling 2026-06-13 22:55:34 -04:00
abuckit f9e878aa5e ci(release): restyle gh-pages release & archives pages to match bm landing design 2026-05-31 13:22:52 -04:00
abuckit d26fd31215 ci(gh-pages): keep hand-written styled root index out of regeneration 2026-05-31 12:43:17 -04:00
abuckit 27a73eae7e ci: remove SonarQube workflow 2026-05-29 22:54:51 -04:00
abuckit 371e426469 Create sonarqube.yml 2026-05-29 22:50:58 -04:00
abuckit b4011734af ci: remove Lock Threads workflow 2026-05-29 22:50:17 -04:00
abuckit b2b1237a8c ci: replace gh-pages binary storage with HTML index pages linking to GitHub Releases
- update-gh-pages: remove zip_binary/publish_package/trim_archives; only write
  4 buckit.sha256sum files for self-update; generate release/index.html with
  per-platform download links and archives/index.html from GitHub API listing
  all stable releases; add force_orphan to prevent git history bloat
- gh-pages-index.yml: skip server/buckit/release and server/buckit/archives
  so the auto-indexer does not overwrite the custom HTML pages
2026-05-22 17:33:05 -04:00
abuckit e9ee3eb59a feat: keep only last 30 releases in gh-pages archives/ 2026-05-22 17:03:56 -04:00
abuckit 4e8e603b63 feat: archive versioned packages (deb/rpm/apk) in gh-pages archives/ 2026-05-22 16:54:20 -04:00
abuckit 316d2707b4 feat: zip binaries into gh-pages release/ and archives/ directories 2026-05-22 16:47:50 -04:00
abuckit f68ca79dfc fix: download binaries from GitHub Releases instead of gh-pages
Binaries exceed GitHub's 100MB git push limit so they cannot be stored
in the gh-pages branch. Two changes to fix this:

- release.yml: stop copying binaries/minisig to gh-pages; write
  buckit.sha256sum files with the release tag embedded in the filename
  field (e.g. 'buckit.RELEASE.xxx') so the Go code can construct the
  versioned GitHub Releases URL.

- update.go / admin-handlers.go: getBinaryURL now constructs a
  github.com/releases/download URL when the checksum source is github.io
  and the sha256sum filename contains a release tag. Fixes two dead-code
  bugs in both admin handlers where 'if updateURL == ""' was always
  false after updateURL had already been set.
2026-05-21 21:47:16 -04:00
abuckit 338973577f fix: add dist/ prefix to package globs in update-gh-pages step 2026-05-21 21:12:50 -04:00
abuckit df9f18ef61 ci: generate directory indexes on gh-pages after each deploy 2026-05-21 20:42:30 -04:00
abuckit 1edd1dff25 ci: keep generic package aliases off GitHub releases 2026-05-20 16:47:25 -04:00
abuckit 6234f40b58 build: simplify self-update release flow 2026-05-11 18:01:52 -04:00
abuckit 343c2876d6 build: replace pkger with nfpm to ship a real systemd unit
The previous packaging step used minio/pkger, which is hardcoded for
MinIO's portfolio: its nfpm template only attaches a systemd unit when
the binary name matches "minio", "aistor", or "sidekick". Invoking it
with --appName buckit silently dropped the unit (and the maintainer/
homepage fields stayed MinIO-branded) — the published .rpm/.deb shipped
only /usr/local/bin/buckit with no service definition.

Switch to nfpm directly, driven by a config in packaging/nfpm.yaml that
we own. The packages now contain:

  /usr/local/bin/buckit
  /lib/systemd/system/buckit.service   (Type=notify, LimitNOFILE=1048576,
                                        OOMScoreAdjust=-1000, etc.)

A postinstall script creates the buckit system user/group idempotently;
preremove stops the service; postremove reloads systemd but deliberately
leaves the user in place to avoid orphaning data on attached storage.

The unit is modeled on MinIO's production unit but reads
EnvironmentFile=-/etc/default/minio (leading - = optional), keeping
fresh buckit nodes byte-compatible with the env file MinIO already
ships, so the manager's in-place migration story works without any
config translation.

Verified locally by building rpm/deb/apk against the published
RELEASE.2026-05-11T17-20-40Z binary and inspecting the output.
2026-05-11 15:21:58 -04:00
abuckit b6908c64d6 fix: remove unsupported pkger flag from release workflow 2026-05-11 13:16:54 -04:00
abuckit 15d5f02df7 feat: implement Buckit release process
Automated release pipeline triggered by tag push (RELEASE.YYYY-MM-DDTHH-MM-SSZ):

- Multi-platform builds: linux/amd64, linux/arm64, windows/amd64, darwin/arm64
- Minisign binary signing with Buckit keypair
- Linux packages (.deb, .rpm, .apk) via pkger
- Multi-arch Docker images pushed to ghcr.io and Docker Hub
- GitHub Release with all artifacts and auto-generated release notes
- Self-update support via GitHub Pages sha256sum pointers
- mc admin update works for all platforms (linux, windows, darwin)

Code changes:
- cmd/update.go: accept 'buckit.' prefix, new pubkey, GitHub Releases
  URL derivation, platform-aware binary URL construction
- cmd/build-constants.go: point default release URL at GitHub Pages
- cmd/admin-handlers.go: use getBinaryURL() helper
- Dockerfile: rewrite with ubi9/ubi-micro base (no MinIO inheritance)
- Remove legacy Dockerfiles (release, hotfix, old_cpu)

Docs:
- docs/release-process.md: operator guide
- docs/release-process-plan.md: implementation plan
- docs/self-update-migration.md: self-update technical details
2026-05-10 21:56:33 -04:00
abuckit 01ecad1ea9 fix: update CI scripts and workflows for buckit
- Rename all 'minio server' references to './buckit server'
- Update default credentials from minioadmin to buckitadmin
- Add 'pkill -9 buckit' to all test cleanup functions
- Pin workflow Go version to 1.25.10
- Update vulnerable Go modules
- Fix resiliency tests: restore docker compose --wait, add
  MC_HOST_local env var, fix induce_bitrot_for_xlmeta typo
- Update mint docker-compose images to buckit
- Update IAM integration and root lockdown test scripts
2026-05-09 16:31:50 -04:00
abuckit efbc9e1c30 chore: update default root credentials and test expectations 2026-05-08 14:10:10 -04:00
abuckit 5bd6b356f2 chore: rebrand repo metadata, build paths, and CI tooling for Buckit 2026-05-08 13:37:11 -04:00
abuckit de87d71b54 rebrand in all md files 2026-04-30 16:08:31 -04:00
abuckit 4969a9c426 Fix github Actions 2026-04-30 16:06:15 -04:00
Harshavardhana 9e49d5e7a6 update README.md and other docs to point to source only releases 2025-10-15 10:29:55 -07:00
Andreas Auernhammer 1d50cae43d remove support for FIPS 140-2 with boringcrypto (#21292)
This commit removes FIPS 140-2 related code for the following
reasons:
 - FIPS 140-2 is a compliance, not a security requirement. Being
   FIPS 140-2 compliant has no security implication on its own.
   From a tech. perspetive, a FIPS 140-2 compliant implementation
   is not necessarily secure and a non-FIPS 140-2 compliant implementation
   is not necessarily insecure. It depends on the concret design and
   crypto primitives/constructions used.
 - The boringcrypto branch used to achieve FIPS 140-2 compliance was never
   officially supported by the Go team and is now in maintainance mode.
   It is replaced by a built-in FIPS 140-3 module. It will be removed
   eventually. Ref: https://github.com/golang/go/issues/69536
 - FIPS 140-2 modules are no longer re-certified after Sep. 2026.
   Ref: https://csrc.nist.gov/projects/cryptographic-module-validation-program

Signed-off-by: Andreas Auernhammer <github@aead.dev>
2025-05-16 07:27:42 -07:00
Klaus Post f01374950f Use go mod tool to install tools for go generate (#21232)
Use go tool for generators

* Use go.mod tool section
* Install tools with go generate
* Update dependencies
* Remove madmin fork.
2025-04-24 16:34:11 -07:00
Harshavardhana 2b34e5b9ae move to go1.24 (#21114) 2025-04-09 07:28:39 -07:00
Harshavardhana 4ee62606e4 update govulncheck 2025-01-28 11:11:08 -08:00
Klaus Post 827004cd6d Add Full Object Checksums and CRC64-NVME (#20855)
Backport of AIStor PR 247.

Add support for full object checksums as described here:

https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html

New checksum types are fully supported. Mint tests from https://github.com/minio/minio-go/pull/2026 are now passing.

Includes fixes from https://github.com/minio/minio/pull/20743 for mint tests.

Add using checksums as validation for object content. Fixes #20845 #20849

Fixes checksum replication (downstream PR 250)
2025-01-20 06:49:07 -08:00
Allan Roger Reid 330dca9a35 Add resiliency tests (#20786) 2024-12-20 20:24:45 -08:00
Mark Theunissen a248ed5ff5 Fixes for POST policy checks and the x-ignore implementation (#20674) 2024-12-11 16:21:34 +05:30
Klaus Post 5bb31e4883 Disable mint full object tests (#20743)
Remove expected failures from https://github.com/minio/minio-go/pull/2026
2024-12-09 18:59:22 -08:00
Anis Eleuch b8dab7b1a9 Set http server read/write timeout from --idle-timeout (#228) (#20715)
Golang http.Server will call SetReadDeadline overwriting the previous
deadline configuration set after a new connection Accept in the custom
listener code. Therefore, --idle-timeout was not correctly respected.

Make http.Server read/write timeout similar to --idle-timeout.
2024-12-02 18:51:17 +05:30
Harshavardhana 4ee3434854 updating all dependencies as per regular cadence (#20646) 2024-11-14 12:33:18 -08:00
Harshavardhana a6f1e727fb add tests for ILM transition and healing (#166) (#20601)
This PR fixes a regression introduced in https://github.com/minio/minio/pull/19797
by restoring the healing ability of transitioned objects

Bonus: support for transitioned objects to carry original
The object name is for future reverse lookups if necessary.

Also fix parity calculation for tiered objects to n/2 for n/2 == (parity)
2024-10-31 15:10:24 -07:00
Shubhendu 5bd27346ac Added iam import tests for openid (#20432)
Tests if imported service accounts have 
required access to buckets and objects.

Signed-off-by: Shubhendu Ram Tripathi <shubhendu@minio.io>

Co-authored-by: Harshavardhana <harsha@minio.io>
2024-09-17 09:45:46 -07:00
Harshavardhana 70d40083e9 remove windows CI/CD for now (#20441)
windows has decided to be a community support
only and source compile-friendly.
2024-09-16 13:46:53 -07:00
Shubhendu 5862582cd7 IAM import test with missing entities (#20368)
Signed-off-by: Shubhendu Ram Tripathi <shubhendu@minio.io>
2024-09-12 08:59:00 -07:00