Product DocumentationAPI and Python SDK ReferenceRelease Notes
Schedule a Demo
Schedule a Demo

Config Template

The Configuration template for Arthur version 3.4.0 is below:

apiVersion: kots.io/v1beta1
kind: ConfigValues
metadata:
  creationTimestamp: null
  name: arthur
spec:
  values:
    IAM_permission_type:
      default: access_keys
    advanced_cache_options:
      default: "0"
    advanced_messaging_connect_cpu_limits:
      default: "2"
    advanced_messaging_connect_cpu_limits_not_validate: {}
    advanced_messaging_connect_cpu_requests:
      default: "1"
    advanced_messaging_connect_cpu_requests_not_validate: {}
    advanced_messaging_connect_heap_options:
      default: -Xms1g -Xmx3g
    advanced_messaging_connect_memory_limits:
      default: 4Gi
    advanced_messaging_connect_memory_limits_not_validate: {}
    advanced_messaging_connect_memory_requests:
      default: 2Gi
    advanced_messaging_connect_memory_requests_not_validate: {}
    advanced_olap_options:
      default: "0"
    advanced_other:
      default: "0"
      value: "1"
    alert_service_update_rule_metrics:
      default: "0"
    api_token_ttl:
      default: "24"
    arthur_user_id:
      default: "1000"
    audit_log_event_bridge_bus_name: {}
    audit_log_event_bridge_bus_region: {}
    audit_log_event_bridge_detail_type:
      default: events.arthur.ai
    audit_log_event_bridge_source:
      default: arthur-audit-log
    audit_log_sink_destination:
      default: none
    batch_workflow_parallelism:
      default: "120"
    beta_ui:
      default: "0"
    beta_ui_alternate_site:
      default: "0"
    beta_ui_hostname: {}
    bootstrap_job_backoff_limit:
      default: "100"
    bootstrap_job_ttl:
      default: "86400"
    cache_cpu_limits: {}
    cache_cpu_limits_not_validate: {}
    cache_cpu_requests: {}
    cache_cpu_requests_not_validate: {}
    cache_memory_limits: {}
    cache_memory_limits_not_validate: {}
    cache_memory_requests: {}
    cache_memory_requests_not_validate: {}
    cache_password:
      default: SuperSecret
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    cache_replicas:
      default: "0"
    cicd_credentials:
      default: "0"
    cluster_nodes:
      # Only Relevant for "fixed" cluster sizes.  Enter the number of nodes in the cluster. This number cannot be decreased from the current value unless it's greater than `6`.
      default: "1"
      value: "3"
    config_job_and_workflow_retention:
      default: "0"
    database_admin_password:
      default: SuperSecret
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    database_hostname:
      # Leave the default configuration to use the embedded database. If you would like to use an external Postgres instance, provide the hostname here and follow this guide: https://docs.arthur.ai/platform-management/installation/externalize_postgres.html.
      default: database-primary
    database_password:
      default: SuperSecret
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    database_port:
      value: "5432"
    database_ssl_mode:
      # This option allows you to enable SSL communication between services and the postgres database.  See https://www.postgresql.org/docs/10/libpq-ssl.html for full descriptions of each option.  By default, the postgres database has ssl disabled.
      default: disable
    database_username:
      default: arthurai
    default_messaging_partition_count:
      default: "3"
      value: "1"
    disable_ssl_redirect_on_ingress:
      default: "0"
    email_selection:
      default: none
    enable_audit_log:
      default: "0"
    enable_olap_backup:
      default: '"0"'
    enable_olap_backup_user:
      default: "0"
    enable_password_rotation_cache:
      default: "0"
    enable_password_rotation_olap:
      default: "0"
    existing_database_primary_pvc: {}
    existing_or_vm:
      default: existing_cluster
    fixed_or_autoscale:
      # The `fixed` mode is recommended for clusters with a fixed number of nodes. The `autoscale` mode is used for clusters that can autoscale and automatically expand their node count.
      value: fixed
    full_name_override:
      default: arthurai
    global_identity_provider:
      default: none
    global_model_limit_Count:
      default: "500"
    global_model_limits:
      default: "0"
    global_workflow_parallelism:
      default: "150"
    http_proxy: {} # Relevant if you are using Explainability and your organization is behind a proxy server.  If PIP and/or Conda need to route through the proxy server to pull down public packages this will set the environment variable HTTP_PROXY to the supplied value. Ex. http://sysproxy.my-company.com:port
    http_proxy_user: {}
    https_proxy: {}
    https_proxy_user: {}
    ingestion_service_cpu_limits: {}
    ingestion_service_cpu_limits_not_validate: {}
    ingestion_service_cpu_requests: {}
    ingestion_service_cpu_requests_not_validate: {}
    ingestion_service_memory_limits: {}
    ingestion_service_memory_limits_not_validate: {}
    ingestion_service_memory_requests: {}
    ingestion_service_memory_requests_not_validate: {}
    ingress_ambassador_enabled:
      default: "false"
    ingress_class:
      default: nginx
    ingress_hostname:
      value: arthur.mydomain.ai
    ingress_namespace_label_key:
      value: name
    ingress_namespace_label_value:
      value: ingress-system
    ingress_nginx_additional_hostname:
      value: ""
    irsa_annotations: {}
    irsa_annotations_user:
      default: |
        eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/my-role
    k8_storageclass:
    # Provide Kubernetes StorageClass profile. Use 'gp2' for Amazon EKS, 'default' if you're using embedded Kubernetes provided by the installer
      value: default
    kafka_ecosystem_common_replication_calc:
      default: "1"
    max_arthur_replicas:
      default: "1"
    max_messaging_partition_count:
      default: "3"
    max_model_server_replicas:
      default: "2"
    messaging_cpu_limit:
      default: "1"
    messaging_heap:
      default: -Xmx2G -Xms1G
    messaging_memory_limit_and_request:
      default: 2560Mi
    messaging_rack_aware_enabled:
      default: "0"
    messaging_rack_label:
      default: topology.kubernetes.io/zone
    messaging_replicas:
      default: "3"
    messaging_sa_create:
      default: "0"
    messaging_sa_fullnameoverride: {}
    messaging_zookeeper_timeout:
      default: "20000"
    meta_replicas:
      default: "0"
    metric_service_update_default_metrics:
      default: "0"
    min_arthur_replicas:
      default: "1"
    model_servers_always_on:
      # For use with what-if and on-demand explainability. See https://docs.arthur.ai/user-guide/explainability.html  If set to "true", then on-demand and what-if explanations are available, but uses additional cluster resources, 1 CPU and 1 GB memory per model with explainability enabled. If set to "false", on-demand and what-if explanations are unavailable, but less cluster usage when there is no data being sent. Regardless of the setting here, streaming explainability will be available if enabled. This only effects what-if and on-demand explanations.
      default: "true"
    network_policy_enabled:
      default: "0"
    no_proxy: {} # Relevant if you are using Explainability and your organization is behind a proxy server.  If PIP and/or Conda need to route through the proxy server to pull down public packages this will set the environment variable NO_PROXY to the supplied value. Ex. localhost,127.0.0.1,.my-company.com
    no_proxy_user: {}
    number_of_olap_backups_to_keep:
      default: "7"
    oidc_identity_provider_config_yaml: {}
    oidc_identity_provider_config_yaml_user: {}
    olap_backup_s3_bucket:
      default: arthurai
    olap_backup_s3_bucket_region:
      default: us-east-1
    olap_backup_s3_endpoint:
      default: s3.us-east-1.amazonaws.com
    olap_backup_s3_path:
      default: olap_backups
    olap_backup_service_account:
      default: arthurai-arthurai
    olap_cpu_limits: {}
    olap_cpu_limits_not_validate: {}
    olap_cpu_requests:
      default: 1000m
    olap_cpu_requests_not_validate: {}
    olap_database_operator_password:
      # The OLAP database is installed along with a Kubernetes Operator to manage it.  This operator needs credentials to access the database.  We recommend overwriting the default password below.
      default: 5ugYLDJ2uLhRdEgz5t
      value: ch/0gntnboTNbQpxmzx4GuPCRnjqSNwTpOT6FwgQ9q4iY7CHiQLeFQ3snnZgxYnFt4gSyInce3KhYiMR7eebBtGbe5sIuY/aBPAySrSjExfO+1VYPBp176bP+zQ=
    olap_database_user_password:
      # Password used internally in our application to query the olap database, currently only supports alpha-numeric characters.
      default: eQ3iBo8UGh5zqJKQWuEEySrR
      value: ch/0gntnboTNbQppnGJgGvCjSmPlS/l8orO+UggQ/rstcryCj2r/GRXR8UNr+u3plPIj+uLMdXGGFiRtko6pTsClBoQkoeLXqDVr1jeqsThCZI/bTfovlA==
    olap_memory_limits: {}
    olap_memory_limits_not_validate: {}
    olap_memory_requests:
      default: 1Gi
    olap_memory_requests_not_validate: {}
    olap_node_label_key: {}
    olap_node_label_value: {}
    olap_replicas:
      default: "1"
    olap_zookeeper_cpu_limits: {}
    olap_zookeeper_cpu_limits_not_validate: {}
    olap_zookeeper_cpu_requests:
      default: 500m
    olap_zookeeper_cpu_requests_not_validate: {}
    olap_zookeeper_heap_options:
      default: -Xms4G -Xmx4G
    olap_zookeeper_memory_limits: {}
    olap_zookeeper_memory_limits_not_validate: {}
    olap_zookeeper_memory_requests:
      default: 1Gi
    olap_zookeeper_memory_requests_not_validate: {}
    password_rotation_cron_schedule:
      default: 0 0 1 */6 *
    pending_batch_workflows_limit:
      default: "100"
    prometheus_host:
    # Leave the default configuration if you're using the embedded K8s. Provide your Prometheus hostname if you're running your own K8s.
      default: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local
    prometheus_labels:
      # If your prometheus installation requires labels to identify ServiceMonitors and PrometheusRules, add them here. They should be in yaml format just as you would specify inside the "metadata.labels" block. Do not indent.
      default: |
        prometheus: monitor
        app: prometheus
    prometheus_namespace:
      default: monitoring
    prometheus_port:
      # Leave the default configuration if you're using the embedded K8s. Provide your Prometheus hostname if you're running your own K8s.
      default: "9090"
    pypi_registry_conda: {} # This is set as a channel in the '.condarc' file. Do not include 'https://' prefix (e.g. repository.arthur.ai/repository/conda-proxy/main).
    pypi_registry_conda_user: {}
    pypi_registry_index: {} # This maps to the 'index key' in the 'pip.conf' file. Do not include 'https://' prefix (e.g repository.arthur.ai/repository/pypi-virtual/pypi).
    pypi_registry_index_url: {} # This maps to the 'index-url' key in the 'pip.conf' file. Do not include 'https://' prefix (e.g. repository.arthur.ai/repository/pypi-virtual/simple).
    pypi_registry_index_url_user: {}
    pypi_registry_index_user: {}
    pypi_registry_password:
      default: bO4Mxhdaevso/029YtUgz98Wk7qPcxEpa1P/uVqG4cy4UY1B3+YN5Q==
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    pypi_registry_password_user:
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    pypi_registry_username: {}
    pypi_registry_username_user: {}
    raw_anaconda_config: {}
    raw_anaconda_config_user: {}
    raw_pypi_config: {}
    raw_pypi_config_user: {}
    rbac_privileges:
      # Change to "cluster_scope" to install CRDs too
      default: namespace_scope
    run_as_root:
      default: "0"
      value: "0"
    s3_access_key_id:
      default: access_key
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    s3_access_key_id_user:
      default: access_key
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    s3_bucket:
      default: arthurai
    s3_bucket_user:
      default: arthurai
    s3_region:
      default: us-east-1
    s3_region_user:
      default: us-east-1
    s3_secret_access_key:
      default: secret_key
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    s3_secret_access_key_user:
      default: secret_key
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    s3_url:
      default: http://minio:9000
    s3_url_user:
      default: http://minio:9000
    saml_identity_provider_config_yaml: {}
    saml_identity_provider_config_yaml_user: {}
    secondary_token_validation_key:
      value: Aj3ziCI/YcnTT3QR3WAtMNDNEzzqTa8W9iJCoHjNFMteiO6lrcnUKw==
    ses_region: {}
    ses_role: {}
    show_advanced_arthur_microservice_options:
      default: "0"
    show_advanced_messaging:
      default: "0"
      value: "1"
    show_hidden_variables:
      default: "0"
      value: "0"
    show_token_signing_and_validation_options:
      default: "0"
    signing_cert: {}
    signing_cert_user: {}
    signing_private_key: {}
    signing_private_key_user: {}
    single_or_ha:
      # The `single` configuration is a minimal deployment suitable for non-production environments. For production deployment, select `ha`.
      value: single
    smtp_from: {} # Provide the email address to send alerts from (e.g. [email protected])
    smtp_host: {} # Provide the address of the SMTP server (e.g. smtp.arthur.ai)
    smtp_password:
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    smtp_port: {}
    smtp_user: {}
    superadmin_email:
      default: [email protected]
    superadmin_firstname:
      default: Super
    superadmin_lastname:
      default: Admin
    superadmin_password:
      default: SuperSecret
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    superadmin_username:
      value: superadmin
    token_signing_primary_key:
      value: YSDFzjg5I83KMBJ+wHQmU/ejDQ7tTthIpaDcCRM+iqcDTofiul7DZzTblFkb0e2U0+UJ74TuIx28oGnxPM+pkmKlc1yx2uvj
    use_external_blob_storage:
      # Select "Yes" if and only if you are supplying your own S3 compatible storage, otherwise select "No" to use the embedded blob storage.
      default: "no"
    use_external_postgres:
      default: "no"
    use_raw_python_repository_configs:
      # The PyPi registry section is only relevant when using the explainability enrichment (https://docs.arthur.ai/user-guide/enrichments.html#explainability). 
      # Provide your private PyPi registry if you have an airgapped enrivonment or your model requirements file includes packages only hosted in a private repository. 
      # Leaving this section blank will cause the public PyPi to be used. If the public PyPi is inaccessible from the cluster, the explainability feature will not work.
      default: "no"
    use_smtp:
      default: "0"
    workflow_ttl_seconds:
      default: "3600"
    workflow_ttl_seconds_after_success:
      default: "60"
status: {}

Do note that these parameters are sorted alphabetically. Unfortunately, this is how the 'packager' software we use for our installer outputs the list of parameters. In reality, these parameters should be grouped based on their purpose.

Most of these parameters can be commented, unless you are advised by Arthur Support to configure them. It's also important to point out that all 'default' values will be ignored by the installer.

For reference, this is the same configuration template, grouped by topic, and with only the most necessary parameters uncommented:

apiVersion: kots.io/v1beta1
kind: ConfigValues
metadata:
  creationTimestamp: null
  name: arthur
spec:
  values:
    ###############################################################################
    # Install privileges.
    # Change to "namespace_scope" for restricted permissions.
    ###############################################################################
    # Values: namespace_scope, cluster_scope
    rbac_privileges:
      value: cluster_scope
    ###############################################################################
    # Ingress
    ###############################################################################
    ingress_hostname:
      value: arthur.mlops.company.com
    ingress_nginx_additional_hostname:
      value: "a1788baaec5c4473aa4ec3bf4ef81bb5.XXXXXXXXXX.us-east-1.elb.amazonaws.com"
    ingress_class:
      # Values: "nginx", "ambassador"
      value: nginx
    ingress_ambassador_enabled:
      value: "false"
    ingress_namespace_label_key:
      value: name
    ingress_namespace_label_value:
      value: ingress-system
    disable_ssl_redirect_on_ingress:
      value: "0"
    # Ingress for new UI
    beta_ui:
      value: "1"
    beta_ui_alternate_site:
      value: "1"
    beta_ui_hostname:
      value: "arthur.mlops.company.com"
    ###############################################################################
    # Installation Type
    ###############################################################################
    # The `single` configuration is a minimal deployment suitable for non-production environments.
    # For production deployment, select `ha`.
    single_or_ha:
      value: ha
    # The `fixed` mode is recommended for clusters with a fixed number of nodes. The `autoscale` mode is used for
    # clusters that can autoscale and automatically expand their node count.
    # 'autoscale' will assume a minimum of 6 nodes, do not set for 'autoscale' for clusters with < 6 nodes
    fixed_or_autoscale:
      value: fixed
    # Only Relevant for "fixed" cluster sizes.  Enter the number of nodes in the cluster. This number
    # cannot be decreased from the current value unless it's greater than `6`.
    cluster_nodes:
      value: "3"
    # Provide Kubernetes StorageClass profile. Use 'gp2' or 'gp3' for Amazon EKS, 'default' if you're using
    # embedded Kubernetes provided by the installer
    k8_storageclass:
      value: gp3
    # Network Policy
    network_policy_enabled:
      value: "0"
    ###############################################################################
    # Security and Authentication
    ###############################################################################
    run_as_root:
      value: "0"
    arthur_user_id:
      value: "1000"
    # Single Sigh On
    # Values: "none", "oidc", "saml"
    global_identity_provider:
      value: none
    oidc_identity_provider_config_yaml: {}
    oidc_identity_provider_config_yaml_user: {}
    saml_identity_provider_config_yaml: {}
    saml_identity_provider_config_yaml_user: {}
    # IAM Integration - Values: "access_keys", "IRSA", "IAM Node Roles"
    IAM_permission_type:
      value: "IRSA"
    irsa_annotations:
      value: |
        eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/arthur-eks-role
    irsa_annotations_user:
      value: |
        eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/arthur-eks-role
    # SSL / Token Signature
    show_token_signing_and_validation_options:
      value: "0"
    signing_cert: {}
    signing_cert_user: {}
    signing_private_key: {}
    signing_private_key_user: {}
    # token_signing_primary_key:
    #   value: YSDFzjg5I83KMBJ+wHQmU/ejDQ7tTthIpaDcCRM+iqcDTofiul7DZzTblFkb0e2U0+UJ74TuIx28oGnxPM+pkmKlc1yx2uvj
    # secondary_token_validation_key:
    #   value: Aj3ziCI/YcnTT3QR3WAtMNDNEzzqTa8W9iJCoHjNFMteiO6lrcnUKw==
    # api_token_ttl:
    #   value: "24"
    ###############################################################################
    # S3 Integration
    ###############################################################################
    # Select "Yes" if and only if you are supplying your own S3 compatible storage,
    # otherwise select "No" to use the embedded blob storage.
    use_external_blob_storage:
      value: "yes"
    s3_access_key_id: {}
    s3_access_key_id_user: {}
    s3_secret_access_key: {}
    s3_secret_access_key_user: {}
    s3_url: {}
    s3_url_user: {}
    s3_bucket:
      value: arthur-s3-eks
    s3_bucket_user:
      value: arthur-s3-eks
    s3_region:
      value: us-east-1
    s3_region_user:
      value: us-east-1
    ###############################################################################
    # Superadmin Configuration
    ###############################################################################
    superadmin_email:
      value: [email protected]
    superadmin_firstname:
      value: Super
    superadmin_lastname:
      value: Admin
    superadmin_password:
      value: Password1234
    superadmin_username:
      value: superadmin
    ###############################################################################
    # SMTP Configuration
    ###############################################################################
    # Values: "ses", "smtp", "none"
    email_selection:
      value: none
    use_smtp:
      value: "0"
    # Provide the email address to send alerts from (e.g. [email protected])
    smtp_from: {}
    # Provide the address of the SMTP server (e.g. smtp.arthur.ai)
    smtp_host: {}
    smtp_password:
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    smtp_port: {}
    smtp_user: {}
    # SES Configuration
    ses_region: {}
    ses_role: {}
    ###############################################################################
    # Prometheus Integration
    ###############################################################################
    # Leave the default configuration if you're using the embedded K8s.
    # Provide your Prometheus hostname if you're running your own K8s.
    prometheus_host:
      value: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local
    # If your prometheus installation requires labels to identify ServiceMonitors and PrometheusRules,
    # add them here. They should be in yaml format just as you would specify inside the "metadata.labels" block.
    # Do not indent.
    prometheus_labels:
      value: |
        prometheus: monitor
        app: prometheus
    prometheus_namespace:
      value: monitoring
    # Leave the default configuration if you're using the embedded K8s.
    # Provide your Prometheus hostname if you're running your own K8s.
    prometheus_port:
      value: "9090"
    ###############################################################################
    # Private Python Registry
    ###############################################################################
    use_raw_python_repository_configs:
      # The PyPi registry section is only relevant when using the explainability enrichment
      # (https://docs.arthur.ai/user-guide/enrichments.html#explainability).
      # Provide your private PyPi registry if you have an airgapped enrivonment or your model requirements file
      # includes packages only hosted in a private repository.
      # Leaving this section blank will cause the public PyPi to be used. If the public PyPi is inaccessible from the
      # cluster, the explainability feature will not work.
      value: "no"
    # This is set as a channel in the '.condarc' file. Do not include 'https://' prefix
    # (e.g. repository.arthur.ai/repository/conda-proxy/main).
    pypi_registry_conda: {}
    pypi_registry_conda_user: {}
    # This maps to the 'index key' in the 'pip.conf' file. Do not include 'https://' prefix
    # (e.g repository.arthur.ai/repository/pypi-virtual/pypi).
    pypi_registry_index: {}
    # This maps to the 'index-url' key in the 'pip.conf' file. Do not include 'https://' prefix
    # (e.g. repository.arthur.ai/repository/pypi-virtual/simple).
    pypi_registry_index_url: {}
    pypi_registry_index_url_user: {}
    pypi_registry_index_user: {}
    pypi_registry_password:
      value: password1234
    pypi_registry_password_user:
      value: password1234
    pypi_registry_username: {}
    pypi_registry_username_user: {}
    raw_anaconda_config: {}
    raw_anaconda_config_user: {}
    raw_pypi_config: {}
    raw_pypi_config_user: {}
    # Relevant if you are using Explainability and your organization is behind a proxy server.
    # If PIP and/or Conda need to route through the proxy server to pull down public packages this will set
    # the environment variable NO_PROXY to the supplied value. Ex. localhost,127.0.0.1,.my-company.com
    no_proxy: {}
    no_proxy_user: {}
    # Relevant if you are using Explainability and your organization is behind a proxy server.
    # If PIP and/or Conda need to route through the proxy server to pull down public packages this will
    # set the environment variable HTTP_PROXY to the supplied value. Ex. http://sysproxy.my-company.com:port
    http_proxy: {}
    http_proxy_user: {}
    https_proxy: {}
    https_proxy_user: {}
    ###############################################################################
    # Postgres Integration
    ###############################################################################
    use_external_postgres:
      value: "yes"
    database_admin_password:
      value: password_for_RDS_admin_user
    database_hostname:
      # Leave the default configuration to use the embedded database. If you would like to use an external
      # Postgres instance, provide the hostname here and follow this guide:
      # https://docs.arthur.ai/platform-management/installation/externalize_postgres.html.
      value: arthur-db.cluster-xptowtzabcd.us-east-1.rds.amazonaws.com
    database_username:
      value: arthurai
    database_password:
      value: password_for_RDS_arthurai_user
    database_port:
      value: "5432"
    database_ssl_mode:
      # This option allows you to enable SSL communication between services and the postgres database.
      # See https://www.postgresql.org/docs/10/libpq-ssl.html for full descriptions of each option.
      # By default, the postgres database has ssl disabled.
      value: disable
    existing_database_primary_pvc: {}
#    meta_replicas:
#      value: "0"
    ###############################################################################
    # OLAP DB Settings
    ###############################################################################
    # OLAP Password
    olap_database_operator_password:
      # The OLAP database is installed along with a Kubernetes Operator to manage it.
      # This operator needs credentials to access the database.  We recommend overwriting the default password below.
      value: gntnboTNbQpxmzx4GuPCRnjqSNwTpOT6FwgQ9q4iY7CHiQLeFQ3snnZgxYnFt4gSyInce3KhYiMR7eebBtGbe5sIuY
    olap_database_user_password:
      # Password used internally in our application to query the olap database,
      # currently only supports alpha-numeric characters.
      value: gntnboTNbQpxmzx4GuPCRnjqSNwTpOT6FwgQ9q4iY7CHiQLeFQ3snnZgxYnFt4gSyInce3KhYiMR7eebBtGbe5sIuY
    # enable_password_rotation_olap:
    #   value: "0"
    # password_rotation_cron_schedule:
    #   value: 0 0 1 */6 *
    # # OLAP Backup
    # enable_olap_backup:
    #   value: '"0"'
    # enable_olap_backup_user:
    #   value: "0"
    # number_of_olap_backups_to_keep:
    #   value: "7"
    # olap_backup_s3_bucket:
    #   value: denisd-s3-eks
    # olap_backup_s3_bucket_region:
    #   value: us-east-1
    # olap_backup_s3_endpoint:
    #   value: s3.us-east-1.amazonaws.com
    # olap_backup_s3_path:
    #   value: olap_backups
    # olap_backup_service_account:
    #   value: arthurai-arthurai
    # # OLAP Optimization
    # advanced_olap_options:
    #   value: "0"
    # olap_cpu_limits: {}
    # olap_cpu_limits_not_validate: {}
    # olap_cpu_requests:
    #   value: 1000m
    # olap_cpu_requests_not_validate: {}
    # olap_memory_limits: {}
    # olap_memory_limits_not_validate: {}
    # olap_memory_requests:
    #   value: 1Gi
    # olap_memory_requests_not_validate: {}
    # olap_node_label_key: {}
    # olap_node_label_value: {}
    # olap_replicas:
    #   value: "1"
    # olap_zookeeper_cpu_limits: {}
    # olap_zookeeper_cpu_limits_not_validate: {}
    # olap_zookeeper_cpu_requests:
    #   value: 500m
    # olap_zookeeper_cpu_requests_not_validate: {}
    # olap_zookeeper_heap_options:
    #   value: -Xms4G -Xmx4G
    # olap_zookeeper_memory_limits: {}
    # olap_zookeeper_memory_limits_not_validate: {}
    # olap_zookeeper_memory_requests:
    #   value: 1Gi
    # olap_zookeeper_memory_requests_not_validate: {}
    ###############################################################################
    # Cache Settings
    ###############################################################################
    cache_password:
      value: VwC3tnE9cpzObSxIhTx9U/34Ky+mA6p8veb9bCk+iqcAEaOarGzGEFf7ozoGxO3m05QY5YTuIx3ezMI694TUX0gj7RHSyHoK
    # cache_replicas:
    #   value: "0"
    # advanced_cache_options:
    #   value: "0"
    # enable_password_rotation_cache:
    #   value: "0"
    # # Cache Optimization
    # cache_cpu_limits: {}
    # cache_cpu_limits_not_validate: {}
    # cache_cpu_requests: {}
    # cache_cpu_requests_not_validate: {}
    # cache_memory_limits: {}
    # cache_memory_limits_not_validate: {}
    # cache_memory_requests: {}
    # cache_memory_requests_not_validate: {}
    ###############################################################################
    # Kafka Optimization Settings
    ###############################################################################
    # default_messaging_partition_count:
    #   value: "1"
    # max_messaging_partition_count:
    #   value: "3"
    # messaging_replicas:
    #   value: "3"
    # kafka_ecosystem_common_replication_calc:
    #   value: "1"
    # messaging_cpu_limit:
    #   value: "1"
    # advanced_messaging_connect_cpu_limits:
    #   value: "2"
    # advanced_messaging_connect_cpu_limits_not_validate: {}
    # advanced_messaging_connect_cpu_requests:
    #   value: "1"
    # advanced_messaging_connect_cpu_requests_not_validate: {}
    # messaging_heap:
    #   value: -Xmx2G -Xms1G
    # messaging_memory_limit_and_request:
    #   value: 2560Mi
    # advanced_messaging_connect_heap_options:
    #   value: -Xms1g -Xmx3g
    # advanced_messaging_connect_memory_limits:
    #   value: 4Gi
    # advanced_messaging_connect_memory_limits_not_validate: {}
    # advanced_messaging_connect_memory_requests:
    #   value: 2Gi
    # advanced_messaging_connect_memory_requests_not_validate: {}
    # messaging_rack_aware_enabled:
    #   value: "0"
    # messaging_rack_label:
    #   value: topology.kubernetes.io/zone
    # messaging_sa_create:
    #   value: "0"
    # messaging_sa_fullnameoverride: {}
    # messaging_zookeeper_timeout:
    #   value: "20000"
    ###############################################################################
    # Audit Log Settings
    ###############################################################################
    # enable_audit_log:
    #   value: "0"
    # audit_log_event_bridge_bus_name: {}
    # audit_log_event_bridge_bus_region: {}
    # audit_log_event_bridge_detail_type:
    #   value: events.arthur.ai
    # audit_log_event_bridge_source:
    #   value: arthur-audit-log
    # audit_log_sink_destination:
    #   value: none
    ###############################################################################
    # Admin Console Settings
    ###############################################################################
    # advanced_other:
    #   value: "1"
    # show_advanced_arthur_microservice_options:
    #   value: "0"
    # show_advanced_messaging:
    #   value: "1"
    # show_hidden_variables:
    #   value: "0"
    # config_job_and_workflow_retention:
    #   value: "0"
    ###############################################################################
    # Backend Performance Optimization Settings
    ###############################################################################
    # Limits
    # global_model_limit_Count:
    #   value: "500"
    # global_model_limits:
    #   value: "0"
    # global_workflow_parallelism:
    #   value: "150"
    # # Job Limits
    # batch_workflow_parallelism:
    #   value: "120"
    # bootstrap_job_backoff_limit:
    #   value: "100"
    # bootstrap_job_ttl:
    #   value: "86400"
    # pending_batch_workflows_limit:
    #   value: "100"
    # workflow_ttl_seconds:
    #   value: "3600"
    # workflow_ttl_seconds_after_success:
    #   value: "60"
    # # Ingestion Service Optimizations
    # ingestion_service_cpu_limits: {}
    # ingestion_service_cpu_limits_not_validate: {}
    # ingestion_service_cpu_requests: {}
    # ingestion_service_cpu_requests_not_validate: {}
    # ingestion_service_memory_limits: {}
    # ingestion_service_memory_limits_not_validate: {}
    # ingestion_service_memory_requests: {}
    # ingestion_service_memory_requests_not_validate: {}
    # # Explainability Optimizations
    # model_servers_always_on:
    #   # For use with what-if and on-demand explainability. See https://docs.arthur.ai/user-guide/explainability.html
    #   # If set to "true", then on-demand and what-if explanations are available, but uses additional cluster
    #   # resources, 1 CPU and 1 GB memory per model with explainability enabled. If set to "false", on-demand
    #   # and what-if explanations are unavailable, but less cluster usage when there is no data being sent.
    #   # Regardless of the setting here, streaming explainability will be available if enabled.
    #   # This only effects what-if and on-demand explanations.
    #   value: "true"
    # max_model_server_replicas:
    #   value: "2"
    # metric_service_update_default_metrics:
    #   value: "0"
    # alert_service_update_rule_metrics:
    #   value: "0"
    ###############################################################################
    # Internal Arthur Use
    ###############################################################################
    # cicd_credentials:
    #   value: "0"
    # existing_or_vm:
    #   value: existing_cluster
    # full_name_override:
    #   value: arthurai
    # min_arthur_replicas:
    #   value: "1"
    # max_arthur_replicas:
    #   value: "1"
status: {}

PS: This template assumes integration with S3 and RDS database, using IRSA (IAM Roles for Service Accounts) configured.

Most of these settings can be modified in the Admin Console UI. The Config screen will include fields for all the settings in the template:

Some of the settings in this template can cause an installation to fail, if they are not correctly set. Some of the critical parameters are:

    k8_storageclass:
      value: gp3

This parameter defines the storage class that will be used to create the Persistent Volumes for the cluster. Having the wrong storage class defined here will cause the installer to fail to provision storage, which will compromise the installation. Make sure to have the correct value set before running the installer.

    ingress_hostname:
      value: arthur.mlops.company.com
    ingress_nginx_additional_hostname:
      value: "a1788baaec5c4473aa4ec3bf4ef81bb5.XXXXXXXXXX.us-east-1.elb.amazonaws.com"

These parameters will configure which ingress addresses Arthur will accept. By definition, Arthur will reject requests sent to addresses that are not in this list, even if they are correct (for instance, accessing Arthur through https://localhost does not work). If these hostname parameters do not match existing load balancer addresses, Arthur will be inaccessible, even once the instance is successfully installed. This can be reconfigured after installation, though it is recommended to ensure the proper value at installation time.