Updated README to reflect minio admin password changes
This commit is contained in:
parent
f3b3af1feb
commit
ea28a0dccd
28
README.md
28
README.md
@ -35,17 +35,18 @@ graph TD
|
|||||||
F1(Jupyter Pod)
|
F1(Jupyter Pod)
|
||||||
F2(ServiceAccount)
|
F2(ServiceAccount)
|
||||||
F3(NetworkPolicy)
|
F3(NetworkPolicy)
|
||||||
F4(MinIO Setup Job)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph MinIO [Namespace: minio]
|
subgraph MinIO [Namespace: minio]
|
||||||
M1[(Shared MinIO S3)]
|
M1[(Shared MinIO S3)]
|
||||||
|
M2(MinIO Setup Job)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
B -.-> D
|
B -.-> D
|
||||||
C -.-> D
|
C -.-> D
|
||||||
F4 -->|Creates Buckets & Credentials| M1
|
M2 -->|Creates Buckets & Credentials| M1
|
||||||
|
M2 -->|Provisions Scoped Secret| F
|
||||||
F1 -->|Reads/Writes| M1
|
F1 -->|Reads/Writes| M1
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -74,9 +75,11 @@ values, and provisions the new namespace.
|
|||||||
* **Network Security:** A `NetworkPolicy` is deployed within each tenant namespace
|
* **Network Security:** A `NetworkPolicy` is deployed within each tenant namespace
|
||||||
to restrict ingress/egress traffic. The Jupyter notebook can only communicate
|
to restrict ingress/egress traffic. The Jupyter notebook can only communicate
|
||||||
with necessary services (like MinIO) and the internet, preventing cross-namespace communication.
|
with necessary services (like MinIO) and the internet, preventing cross-namespace communication.
|
||||||
* **Automated & Isolated S3 Setup:** Instead of sharing credentials, a one-off Kubernetes `Job`
|
**Automated & Isolated S3 Setup:** To prevent exposing admin credentials outside the storage
|
||||||
runs during the Helm deployment for each tenant. This job connects to the MinIO admin API,
|
infrastructure, a Kubernetes Job runs directly within the minio namespace during tenant provisioning.
|
||||||
creates a reference bucket (Read-Only), a work bucket (Read/Write), and generates
|
This job connects to the MinIO admin API locally, creates a reference bucket (Read-Only), a work bucket (Read/Write),
|
||||||
|
and generates dedicated, scoped S3 credentials. It then creates the resulting secret containing only
|
||||||
|
tenant-scoped credentials directly in the target tenant namespace.
|
||||||
**dedicated, scoped S3 credentials**. These credentials are saved as a Kubernetes
|
**dedicated, scoped S3 credentials**. These credentials are saved as a Kubernetes
|
||||||
Secret locally in the tenant's namespace.
|
Secret locally in the tenant's namespace.
|
||||||
* **Security Context:** The Docker images use the `tini` init system and execute
|
* **Security Context:** The Docker images use the `tini` init system and execute
|
||||||
@ -105,9 +108,10 @@ All infrastructure and application changes must be proposed via Pull Requests.
|
|||||||
The CI pipelines act as mandatory status checks, ensuring that no code can be merged
|
The CI pipelines act as mandatory status checks, ensuring that no code can be merged
|
||||||
into `main` unless the configurations are validated, no secrets are leaked, and all tests pass successfully.
|
into `main` unless the configurations are validated, no secrets are leaked, and all tests pass successfully.
|
||||||
* **Secret Scanning:** `TruffleHog` runs as a CI step to scan the repository and prevent any accidental commit of sensitive information (AWS keys, passwords).
|
* **Secret Scanning:** `TruffleHog` runs as a CI step to scan the repository and prevent any accidental commit of sensitive information (AWS keys, passwords).
|
||||||
* **Secret Injection:** Admin credentials (Docker registry, MinIO admin) are injected into the Argo CD
|
* **Secret Injection:** Docker registry credentials are injected into the argocd namespace and
|
||||||
namespace and propagated to tenant namespaces dynamically matching `tenant-[a-z0-9-]+`
|
propagated to tenant namespaces dynamically matching tenant-[a-z0-9-]+ using
|
||||||
using the `Reflector` Kubernetes addon.
|
the Reflector Kubernetes addon. MinIO admin credentials remain strictly contained
|
||||||
|
within the minio namespace and are never reflected to tenant environments.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@ -195,13 +199,7 @@ kubectl annotate secret registry-credentials -n argocd --overwrite \
|
|||||||
kubectl create secret generic minio-admin-credentials \
|
kubectl create secret generic minio-admin-credentials \
|
||||||
--from-literal=MINIO_ROOT_USER=admin \
|
--from-literal=MINIO_ROOT_USER=admin \
|
||||||
--from-literal=MINIO_ROOT_PASSWORD=password123 \
|
--from-literal=MINIO_ROOT_PASSWORD=password123 \
|
||||||
-n argocd
|
-n minio
|
||||||
|
|
||||||
kubectl annotate secret minio-admin-credentials -n argocd --overwrite \
|
|
||||||
reflector.v1.k8s.emberstack.com/reflection-allowed="true" \
|
|
||||||
reflector.v1.k8s.emberstack.com/reflection-auto-enabled="true" \
|
|
||||||
reflector.v1.k8s.emberstack.com/reflection-auto-namespaces="tenant-[a-z0-9-]+" \
|
|
||||||
reflector.v1.k8s.emberstack.com/reflection-allowed-namespaces="tenant-[a-z0-9-]+"
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user