================================================================================
  TUTUM SYSTEM - OPENSHIFT RBAC MANIFESTS
================================================================================

Ten pakiet zawiera wszystkie wymagane manifesty RBAC i dokumentację
do instalacji Tutum System na platformie OpenShift.

================================================================================
ZAWARTOŚĆ PAKIETU
================================================================================

1. openshift-rbac-manifests.yaml
   - Główny plik manifestów RBAC
   - Zawiera: Namespace, ServiceAccounts, SCC, CRD, ClusterRoles, Bindings
   - Gotowy do: oc apply -f openshift-rbac-manifests.yaml

2. OPENSHIFT-RBAC-README.md
   - Szczegółowa dokumentacja techniczna
   - Opis wszystkich komponentów i uprawnień
   - Instrukcje instalacji, weryfikacji, troubleshooting
   - ~9.5 KB, format Markdown

3. OPENSHIFT-QUICK-START.md
   - Szybki przewodnik instalacji
   - TL;DR (3 komendy do instalacji)
   - Częste problemy i rozwiązania
   - ~8 KB, format Markdown

4. verify-openshift-rbac.sh
   - Skrypt automatycznej weryfikacji
   - Sprawdza 60+ warunków poprawności instalacji
   - Uruchom: ./verify-openshift-rbac.sh
   - Wykonowalny, 9.5 KB

5. Makefile.openshift
   - Automatyzacja zarządzania RBAC
   - Komendy: apply, verify, status, clean, backup
   - Użyj: make -f Makefile.openshift help
   - 11 KB

6. examples/tutumcertificate-example.yaml
   - 8 przykładowych manifestów TutumCertificate
   - Single cert, tree mode, wildcard, ingress/route
   - Do testowania po instalacji
   - 6.7 KB

================================================================================
SZYBKI START (3 KROKI)
================================================================================

1. Zaloguj się do OpenShift jako cluster-admin:

   oc login https://your-openshift-cluster:6443

2. Zastosuj manifesty RBAC:

   oc apply -f openshift-rbac-manifests.yaml

3. Zweryfikuj instalację:

   chmod +x verify-openshift-rbac.sh
   ./verify-openshift-rbac.sh

GOTOWE! Możesz teraz instalować komponenty Tutum System.

================================================================================
METODA ALTERNATYWNA (Z MAKEFILE)
================================================================================

make -f Makefile.openshift login
make -f Makefile.openshift apply
make -f Makefile.openshift verify
make -f Makefile.openshift status

================================================================================
CO ZOSTANIE UTWORZONE
================================================================================

- Namespace: tutum-system
- ServiceAccounts: 4 (operator, engine, csi-controller, csi-node)
- SecurityContextConstraints: 2 (tutum-privileged, tutum-restricted)
- CustomResourceDefinition: tutumcertificates.tutum.io
- ClusterRoles: 4
- ClusterRoleBindings: 4
- Role (namespace-scoped): 1
- RoleBinding: 1

================================================================================
WYMAGANIA
================================================================================

- OpenShift: 4.10 lub nowszy
- Uprawnienia: cluster-admin (do instalacji)
- CLI: oc zainstalowany i skonfigurowany
- System: Linux/macOS (dla skryptów bash)

================================================================================
UPRAWNIENIA (RBAC)
================================================================================

Tutum Operator:
  - TutumCertificate: get, list, watch, update, patch, status
  - Secrets: full access (cluster-wide, multi-tenant)
  - Events: create, patch
  - Leases: full access (leader election)

Tutum Engine:
  - Deployments, StatefulSets, DaemonSets: get, list, update, patch
  - DeploymentConfigs (OpenShift): get, list, update, patch
  - Służy do restartowania podów po aktualizacji certyfikatów

Tutum CSI Controller:
  - PersistentVolumes: create, delete, patch
  - StorageClasses, CSINodes, VolumeAttachments: get, list, watch
  - Leases: full access (leader election)

Tutum CSI Node:
  - Nodes: get, list, watch
  - Events: create, patch
  - Wymaga privileged SCC (montowanie wolumenów)

================================================================================
BEZPIECZEŃSTWO (SCC)
================================================================================

tutum-privileged:
  - Tylko dla: tutum-csi-node ServiceAccount
  - Wymaga: SYS_ADMIN capability, hostPath, privileged containers
  - Uzasadnienie: CSI Driver musi montować wolumeny na nodach

tutum-restricted:
  - Dla: tutum-operator, tutum-engine, tutum-csi-controller
  - Non-root user (UID 1000-65535)
  - Dropped capabilities: KILL, MKNOD, SETUID, SETGID
  - Brak dostępu do hosta

================================================================================
WERYFIKACJA PO INSTALACJI
================================================================================

# Sprawdź namespace
oc get ns tutum-system

# Sprawdź wszystkie zasoby
oc get all -n tutum-system

# Sprawdź SCC
oc get scc tutum-privileged tutum-restricted

# Sprawdź CRD
oc get crd tutumcertificates.tutum.io
oc explain tutumcertificates

# Test uprawnień
oc auth can-i create secrets \
  --as=system:serviceaccount:tutum-system:tutum-operator \
  --all-namespaces

# Pełna weryfikacja (zalecane!)
./verify-openshift-rbac.sh

================================================================================
TESTOWANIE
================================================================================

Po instalacji RBAC możesz przetestować TutumCertificate:

# Zastosuj przykłady
oc apply -f examples/tutumcertificate-example.yaml

# Sprawdź status
oc get tcert -n default
oc describe tcert example-single-cert -n default

# Sprawdź wygenerowany Secret
oc get secret example-tls -n default
oc get secret example-tls -n default -o yaml

# Zobacz logi Operatora
oc logs -n tutum-system deployment/tutum-operator -f

================================================================================
TROUBLESHOOTING
================================================================================

Problem: "unable to validate against any security context constraint"
Rozwiązanie:
  oc adm policy add-scc-to-user tutum-restricted \
    system:serviceaccount:tutum-system:tutum-operator

Problem: "User cannot create resource"
Rozwiązanie:
  - Upewnij się, że jesteś zalogowany jako cluster-admin
  - Sprawdź: oc auth can-i create clusterrole

Problem: CSI Node nie może montować
Rozwiązanie:
  oc adm policy add-scc-to-user tutum-privileged \
    system:serviceaccount:tutum-system:tutum-csi-node

Więcej w: OPENSHIFT-RBAC-README.md sekcja "Troubleshooting"

================================================================================
CZYSZCZENIE (USUWANIE)
================================================================================

# Usuń wszystkie zasoby
oc delete -f openshift-rbac-manifests.yaml

# LUB z Makefile
make -f Makefile.openshift clean

UWAGA: Usunięcie CRD usunie wszystkie instancje TutumCertificate!

================================================================================
BACKUP I RESTORE
================================================================================

# Backup
make -f Makefile.openshift backup

# Restore
make -f Makefile.openshift restore

================================================================================
NASTĘPNE KROKI
================================================================================

Po pomyślnej instalacji RBAC:

1. Zainstaluj Tutum Engine (backend API)
2. Zainstaluj Tutum Operator (controller)
3. Zainstaluj Tutum CSI Driver (storage)
4. Utwórz pierwszy TutumCertificate
5. Sprawdź czy certyfikat został zsynchronizowany do Secret

Szczegółowe instrukcje: OPENSHIFT-RBAC-README.md

================================================================================
DOKUMENTACJA
================================================================================

Pliki w tym pakiecie:
- OPENSHIFT-QUICK-START.md - Szybki start (TL;DR + troubleshooting)
- OPENSHIFT-RBAC-README.md - Pełna dokumentacja techniczna

Online:
- OpenShift SCC: https://docs.openshift.com/container-platform/latest/
                  authentication/managing-security-context-constraints.html

================================================================================
WSPARCIE
================================================================================

Jeśli masz problemy:

1. Sprawdź logi: oc logs -n tutum-system <pod-name>
2. Sprawdź events: oc get events -n tutum-system --sort-by='.lastTimestamp'
3. Uruchom weryfikację: ./verify-openshift-rbac.sh
4. Przeczytaj troubleshooting: OPENSHIFT-RBAC-README.md
5. Sprawdź uprawnienia: oc auth can-i ... -v=8

================================================================================
STRUKTURA KATALOGÓW PO ROZPAKOWANIU
================================================================================

.
├── openshift-rbac-manifests.yaml    # Główne manifesty
├── OPENSHIFT-RBAC-README.md         # Szczegółowa dokumentacja
├── OPENSHIFT-QUICK-START.md         # Szybki przewodnik
├── verify-openshift-rbac.sh         # Skrypt weryfikacji
├── Makefile.openshift               # Automatyzacja
├── README-OPENSHIFT.txt             # Ten plik
└── examples/
    └── tutumcertificate-example.yaml # Przykłady

================================================================================
WERSJA I DATA
================================================================================

Data utworzenia: 2026-01-26
Wersja: 1.0
Kompatybilność: OpenShift 4.10+

================================================================================
LICENCJA
================================================================================

Ten pakiet jest częścią Tutum CICD Project.

================================================================================
KONTAKT
================================================================================

Dla pytań technicznych sprawdź:
- Events: oc get events -n tutum-system
- Logi: oc logs -n tutum-system deployment/tutum-operator
- Debug: oc auth can-i ... -v=8

================================================================================
KONIEC
================================================================================
