The cluster is installed. Three nodes, 34 operators green, etcd healthy. A working cluster with nothing on it.
Day 2 is where a cluster becomes a platform. The principle from the design series still applies: you cannot implement without proper design, and you cannot operate without proper tooling. Before deploying any workloads — before storage, before networking changes, before anything — the management layer goes in first.
Important (Why GitOps first)
Every operator, every CRD, every network config applied manually is a cleanup waiting to happen. I learned this the hard way — experimenting with ODF and the community ArgoCD operator before establishing GitOps left 60+ orphaned CRDs and stuck namespaces that took longer to clean up than to install. If the first thing you deploy isn’t the deployment tool, you’re building debt from day one.
Day 2 breaks into four stages, each building on the last:
Summary (Day 2 stages)
- Bootstrap — OKDerators catalog, GitOps operator, ArgoCD instance, Git repo structure with App-of-Apps pattern. The foundation everything else depends on.
- cert-manager — TLS certificates via Cloudflare DNS-01. Browser-trusted wildcard for
*.apps.okd.sudops.pl. No more self-signed warnings. - Storage Network — NMState operator, per-node NNCPs for the 10GbE Mellanox ports on VLAN 10. The dedicated Ceph replication path.
- Rook-Ceph — NVMe fast pool with replica-3, StorageClasses, dashboard. (coming soon)
Start with the bootstrap — everything else is managed by what I deploy there.