ISD-Argo On-Prem Production Infrastructure Requirements
Identify Kubernetes Environment:
Access: Admin access to ONE namespace
Compute:
Minimum: 4CPU, 16GB, 1 node
Preferred: 8CPU/32 GB Ram 2 Nodes
Network: Is outbound internet access, http and grpc traffic, http traffic to all cloud-endpoints and artifact repos allowed?
If Yes: Proceed with normal installation
If No: Choose Air-Gapped installation.
Yes, but Proxy access is required for http but grpc is not allowed: Same as “No” and configure proxies as mentioned below.
ISTIO/Service Mesh: If this is in use, additional considerations are required w.r.t. to external access, including DB, cloud-endpoints, artifact and data endpoints. This is to ensure seamless integration.
ISD requires the following databases:
Aurora Postgres (e.g. RDS): Recommended Size of the Server is “db.r6g.xlarge(4CPU’s & 32gb)” up to Ver 13.3 has been tested: This is used by Autopilot (aka OEA). As a starting point we start with an estimated 20GB.
S3 Bucket(s): Required for Kayenta (or Verification)
Elastic Caching Redis(5.0.6): Recommended Size of the Cluster to be “cache.r6g.large” gate+other services. Typically, one redis instance is adequate for all services (gate, fiat, Orca(?))
Identify Proxy configuration:
Identify the proxy configuration for accessing any resources. The example “JAVA_OPTS” for http.proxyHost and http.noProxyHosts values need to be defined. We need to add all ISD-services to noProxyHosts.
Note: Most proxy-services automatically redirect https to http and vice-versa and proxy the requests. If this is NOT the case, please define https.proxyHost and https.noProxyHosts as well.
Custom CA certificates:
If any custom CAs or self-signed CAs need to be honored, they need to be included in oes-cacerts as mentioned here.
SSO:
Identify the SSO used (SAML(e.g. Okta),OIDC, LDAP).
Admin User: Create a service account user that will act as an admin.
Admin group(s): Identify groups that will give admin rights to users if they belong to any one of the groups.
RBAC: Define the groups/roles that are needed for the organization.
Note: In the case of LDAP, configuring the appropriate search strings might involve a bit of trial and error depending on the admin support available, knowledge of the group structure, how well structured the groups are, and available documentation.
URLs, routing and TLS termination:
Identify URLs for the application: Two URLs are required for ISD. One additional URL may be needed depending on the usage of Argo Agent based deployments.
Decide on how the traffic from the URLs will be routed to the Kubernetes services: Ingress(nginx, other?), ISTIO-gw or LoadBalancer.
Decide on where TLS termination will happen: Ingress, Load Balancer, gate+UI.
Decide on how the TLS certificates will be created: cert-manager, Cloud(e.g AWS) or custom-certificates.
Secrets handling:
Decide where do we want to store secrets: k8s, Vault or other (e.g. AWS Secret Manager, Azure KV, CyberArk, etc), please be informed that all the Autopilot-ISD and Argo secrets for their respective services are created and stored as kubernetes secrets by default within the cluster’s namespace.
Should any customization be required, this needs to be included in the helm-chart.
Last updated