Currently deploying IDM as a stateful set causes upgrade to incur some downtime. It is desirable though to have no downtime when upgrading the IDM pods in forgeops. See FRAAS-3964.
These are the reasons one would use a stateful set vs a deployment in Kubernetes. See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#using-statefulsets
These reasons should not apply to IDM.
- IDM pods dont talk to eachother
- IDM doesn't use persistent volumes
- IDM should not care if idm x comes up before idm y
- IDM should not care if idm x gets a pod update before idm y
Warren Strange Said at some point using a deployment vs a stateful set was tried and some issues were discovered around the scheduler. IDM should strive for IDM pods to be cattle and not pets, so IDM should investigate deploying itself as a deployment and not a stateful set. See the slack discussion: https://forgerock.slack.com/archives/C9ECR7XED/p1594174858495700.
- File jiras to fix issues blocking deploying IDM as a deployment, or make an official call that IDM MUST be a stateful set.