Leverage Flux’s Source Controller to fetch Kubernetes manifests from an S3-compatible store (MinIO) and deploy them via GitOps. In this walkthrough, you will:Documentation Index
Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
Use this file to discover all available pages before exploring further.
- Set up a dedicated Git branch with demo manifests
- Deploy MinIO locally as an S3 replacement
- Create a bucket, upload manifests, and configure Flux sources
- Apply and verify your application in the cluster
1. Prepare the Demo Branch
Open your terminal in Visual Studio Code and switch to the4-demo branch of the bb-app-source repo:
4-demo directory contains three manifests:
namespace.ymldeployment.yml(version 7.4.0)service.yml
2. Deploy MinIO as an S3-Compatible Store
Apply the MinIO manifest to create a namespace, pod, and service:| NAME | READY | STATUS | AGE |
|---|---|---|---|
| pod/minio | 1/1 | Running | 13s |
| NAME | TYPE | PORT(S) | AGE |
|---|---|---|---|
| service/minio | NodePort | 9000:30040/TCP, 9000:30041/TCP | 13s |
| Port | Purpose |
|---|---|
| 30040 | MinIO Web Console (HTTP) |
| 30041 | MinIO S3-compatible API |
By default, MinIO uses
minio-admin:minio-admin for S3 authentication. Keep this credential secure in production.3. Create a Bucket and Upload Manifests
- Open the MinIO console at http://localhost:30040
-
Authenticate with:
- Username:
minio-admin - Password:
minio-admin
- Username:
- Create a bucket named bucket-bb-app using all defaults.

- In the Object Browser, select bucket-bb-app.

- Create a folder called app740 and upload
namespace.yml,deployment.yml, andservice.ymlfrom your localbb-app-source/4-demofolder.

- Confirm all three manifests appear under
bucket-bb-app/app740/.

4. Create a Flux Bucket Source
Instead of Git, Flux will track this S3 bucket via the Bucket API. Generate the source manifest and export it to your cluster repo:5. Create a Flux Kustomization
Point your Kustomization at theapp-740 folder in the bucket:
6. Create the MinIO Credentials Secret
Flux requires a Kubernetes secret for S3 access. First, confirm Flux sees no secret:minio-crds in the flux-system namespace:
Storing credentials in plain text can be insecure. Consider using Sealed Secrets or a vault in production.
7. Confirm Deployment in 4-demo
Flux will now apply the manifests under the 4-demo namespace:
Resources & References
| Resource | Use Case | Documentation |
|---|---|---|
| Flux Bucket | Track S3 or HTTP directories as sources | https://fluxcd.io/docs/components/source/bucket/ |
| Flux Kustomize | Declarative application deployment | https://fluxcd.io/docs/components/kustomize/ |
| MinIO | S3-compatible object store | https://min.io/ |