Platform Manager
About the Platform Manager
Platform Manager is used to administer the Axual platform. It is used to perform tasks like:
-
Apply topic configuration
-
Allow producer/consumer to access a topic
-
Synchronize Instance
Available Docker Configurations
Name | Possible Values | Required | Description |
---|---|---|---|
|
A string of jdbc url |
Yes |
Specifies the JDBC URL used to connect to any database. |
|
A string defining the datasource name |
No |
This is typically used when you have multiple data sources in your application. It provides a name or identifier for the datasource. |
|
A string defining the datasource driverClassName |
No |
Specifies the fully-qualified class name of the JDBC driver that should be used for the database connection. |
|
A string defining the username |
Yes |
This sets the username used to authenticate with the database. |
|
A string defining the password |
Yes |
This sets the password for the database connection. |
|
org.hibernate.dialect.MariaDBDialect | org.hibernate.dialect.MySQLDialect |
Yes |
This is used to specify the SQL dialect that should be used by JPA and Hibernate when generating or interpreting SQL statements for a specific database. |
|
none | validate | update | create | create-drop |
No |
controls the behavior of database schema generation and modification during application startup. |
|
mysql/mariadb |
No |
This is used to specify the database vendor for which Flyway should generate or apply database migration scripts. |
|
A boolean value [true | false] |
Yes |
Controls supporting Vault for persisting application credentials. |
|
A valid uri |
Conditionally Yes |
Specifies the uri of the Vault. It is mandatory only if |
|
A valid RoleId |
Conditionally Yes |
Role ID is used to identify the specific AppRole configured in Vault that the application is using for authentication. It is mandatory only if |
|
A valid secretId |
Conditionally Yes |
The Secret ID is a secret token associated with a particular Role ID that proves the application’s identity and authorization to access secrets. It is mandatory only if |
|
A boolean value [true | false] |
No |
Controls supporting Azure Key Vault for governance. if it’s enabled, the |
|
A valid uri |
Conditionally Yes |
Specifies the URI or endpoint of the Azure Key Vault instance. It is mandatory only if |
|
A valid uri |
Conditionally Yes |
Specifies the URI for Azure AD login. It is mandatory only if |
|
The base URL for Azure Key Vault containing granted permissions |
Conditionally Yes |
Specifies the scope of the Azure Key Vault instance. It represents the specific resources and operations that our application is authorized to access within Azure Key Vault. It is mandatory only if |
|
A valid clientId |
Conditionally Yes |
Specifies the Azure AD client ID associated with this application. The client ID identifies this application when it interacts with Azure Key Vault. It is mandatory only if |
|
A valid clientKey |
Conditionally Yes |
Represents the client secret or client key associated with our application. It is mandatory only if |
|
A valid tenantId |
Conditionally Yes |
specifies the Azure AD tenant ID. It is mandatory only if |
|
A boolean value [true | false] |
No |
Is used in the configuration of a web server to enable or disable HTTP/2 support |
|
A boolean value [true | false] |
No |
Enables SSL/TLS support for secure communication |
|
A string of file path to the key-store |
Conditionally Yes |
Specifies the file path to the Java KeyStore (JKS) file that contains the server’s SSL certificate and private key, is mandatory only if |
|
A string defining the password |
Conditionally Yes |
Specifies the password needed to access the private key within the keystore, is mandatory only if |
|
A comma separated list of these values [TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3] |
Conditionally Yes |
Specifies the list of allowed SSL/TLS protocols, is mandatory only if |
|
A comma seperated list of String containing these items : SSL,SCRAM_SHA_256,SCRAM_SHA_512,PLAIN |
No |
Specifies the available authentication methods which can be used for applications to be authenticated while getting access to topics. |
|
A boolean value [true | false] |
No |
Specifies if the cluster is multi-tenant or not. In case it is set to |
|
A comma seperated List of strings containing default user roles. |
No |
Specifies the default roles which can be automatically granted to a user when a new user is created |
|
A valid number |
No |
Specifies the number of partitions per each topic. Must be at least 1 and at most 120000 |
|
A valid number |
Yes |
Specifies how many copies (replicas) of each partition of a Kafka topic should be maintained across different broker nodes. It’s a crucial factor for ensuring fault tolerance and high availability in Kafka clusters |
|
A valid number (time in milliseconds) |
No |
Controls the period of time after which Kafka will force the log to roll even if the segment file isn’t full to ensure that retention can delete or compact old data |
|
A valid number (time in milliseconds) |
No |
Controls the maximum time Kafka will retain a log before discarding old log segments to free up space if the retention policy is equal to “delete”. This represents an SLA on how soon consumers must read their data. If set to |
|
delete | compact | delete,compact | compact,delete |
No |
Specifies the cleanup policy for log segments in a topic. This property determines when log segments can be deleted to reclaim disk space.
delete: This is the default cleanup policy. When this policy is applied, Kafka will delete log segments as soon as they are no longer needed for any active consumers or replication. |
|
A string defining a hexadecimal color code |
No |
Specifies the default color of environment in UI |
|
A boolean value [true | false] |
No |
This is used to enable billing component |
|
A boolean value [true | false] |
No |
This is used for enabling Cross-Site Request Forgery (CSRF) protection |
|
A boolean value [true | false] |
No |
Allows Using one CERTIFICATE AUTHORITY (CA) on multiple tenants if it’s set to |
|
A boolean value [true | false] |
No |
Controls validation of a duplicate schema. If it’s set to |
|
A valid number [0, …] |
No |
Controls Disabling the StreamConfig resource creation for the specified time in minutes. |
|
A valid number |
No |
Specifies the maximum amount of time in milliseconds that a client will wait for a response from a server before considering the operation as timed out or failed |
|
A string defining the username |
No |
This sets the username used to authenticate with the docs |
|
A string defining the password |
No |
This sets the password used to authenticate with the docs |
|
A string of file path to the trust-store |
Yes |
Specifies the file path to the trust store |
|
A string defining the password |
Yes |
Specifies the password required to access and manipulate the trust store |
|
A boolean value [true | false] |
No |
Controls using OAuth2 mechanism for securing APIs. If it’s set to |
|
AUTH0 | KEYCLOAK |
Yes |
Specifies the IAM service provider. if |
|
The Issuer URL for Auth0 |
Conditionally Yes |
Is used to configure the Issuer URL for Auth0 when integrating Auth0 as an identity and authentication provider. It is required only |
|
AUTH0 | KEYCLOAK |
Conditionally Yes |
Specifies the "audience" or "audience identifier" to which authentication and authorization requests are directed. It is required only |
|
The URL of the Keycloak authentication server |
Conditionally Yes |
Represents the base URL of the Keycloak authentication server. The application would use this URL to interact with Keycloak’s authentication and authorization services. It is required only |
|
A boolean value [true | false] |
Conditionally Yes |
Controls the direct connection to Axual-Connect |
|
basic |
Conditionally Yes |
Specifies the type of authorization per tenant-instance, is mandatory if |
|
A string defining the username |
Conditionally Yes |
This sets the username per tenant-instance used to authenticate with the Axual-Connect, is mandatory if |
|
A string defining the password |
Conditionally Yes |
This sets the password per tenant-instance used to authenticate with the Axual-Connect, is mandatory if |
|
A string of fully-qualified class name of topicResolver |
No |
Specifies the fully-qualified class name of topicResolver which is used for resolving topics. |
|
A string of topic pattern ["{topic}" | "{environment}-{topic}" | {instance}-{environment}-{topic} | {tenant}-{instance}-{environment}-{topic} ] |
No |
Specifies the topic pattern for any kafka cluster owned by a Tenant and not having a defined topic pattern. |
|
A string of fully-qualified class name of groupIdResolver |
No |
Specifies the fully-qualified class name of groupIdResolver which is used for resolving groups. |
|
A string of groupId pattern ["{group}" | "{environment}-{group}" | {instance}-{environment}-{group} | {tenant}-{instance}-{environment}-{group} ] |
No |
Specifies the groupId pattern for any kafka cluster owned by a Tenant and not having a defined groupId pattern. |
|
A string of fully-qualified class name of transactionalIdResolver |
No |
Specifies the fully-qualified class name of transactionalIdResolver which is used for resolving transactions. |
|
A string of transactionalId pattern ["{transactional.id}" | "{environment}-{transactional.id}" | {instance}-{environment}-{transactional.id} | {tenant}-{instance}-{environment}-{transactional.id} ] |
No |
Specifies the transactionalId pattern for any kafka cluster owned by a Tenant and not having a defined transactionalId pattern. |
|
A string of multi-tenant topic pattern |
No |
Specifies the topic pattern for any kafka cluster not owned by a Tenant and not having a defined topic pattern. |
|
A string of multi-tenant groupId pattern Default value: "{tenant}-{instance}-{environment}-{group}" |
No |
Specifies the groupId pattern for any kafka cluster not owned by a Tenant and not having a defined groupId pattern. |
|
A string of multi-tenant transactionalId pattern Default value: "{tenant}-{instance}-{environment}-{transactional.id}" |
No |
Specifies the transactionalId pattern for any kafka cluster not owned by a Tenant and not having a defined transactionalId pattern. |
|
A boolean value [true | false] |
Conditionally Yes |
Controls supporting Hashicorp Key Vault for governance to persist application credentials. If it’s enabled, the |
|
A valid uri |
Conditionally Yes |
Specifies the URI or endpoint of the Hashicorp Vault instance. It is mandatory only if |
|
A valid RoleId |
Conditionally Yes |
Role ID is used to identify the specific AppRole configured in Hashicorp Vault that the application is using for authentication. It is mandatory only if |
|
A valid secretId |
Conditionally Yes |
The Secret ID is a secret token associated with a particular Role ID that proves the application’s identity and authorization to access secrets. It is mandatory only if |
|
A string defining path |
Conditionally Yes |
Defines the specific path within Vault’s storage hierarchy where the application expects to read or write secrets or other data. It is mandatory only if |
|
A string defining the namespace |
Conditionally Yes |
Specifies the Vault namespace to use. A Vault namespace allows you to create isolated environments within a Vault server, is mandatory if |
|
A string defining a cron expression |
No |
Specifies the schedule or frequency at which |
|
A string defining a cron expression |
No |
Specifies the schedule or frequency at which |
|
A boolean value [true | false] |
Conditionally Yes |
Controls supporting Vault for persisting connectors secrets per tenant-instance |
|
The URI of the vault |
Conditionally Yes |
Specifies the URI or endpoint of the Hashicorp Vault per tenant-instance, is mandatory if |
|
A valid RoleId |
Conditionally Yes |
Role ID is used to identify the specific AppRole per tenant-instance configured in Hashicorp Vault that the application is using for authentication, is mandatory if |
|
A valid secretId |
Conditionally Yes |
The Secret ID is a secret token associated with a particular Role ID per tenant-instance that proves the application’s identity and authorization to access secrets, is mandatory if |
|
A string defining the namespace |
Conditionally Yes |
Specifies the Vault namespace per tenant-instance to use. A Vault namespace allows you to create isolated environments within a Vault server, is mandatory if |
|
A string defining path |
Conditionally Yes |
Specifies a path within Vault per tenant-instance where connectors or secrets may be stored or managed, is mandatory if |
|
A string defining the privateKey name |
Conditionally Yes |
Specifies the name of a private key per tenant-instance within Vault, is mandatory if |
|
A string defining the certChainKey name |
Conditionally Yes |
Specifies the name of a certificate chain or certificate-related resource per tenant-instance within Vault per tenant-instance, is mandatory if |
Vault Namespace
In case you are using Hashicorp Vault Enterprise and you are using namespaces to organize your secrets, you need to update the Platform Manager deployment with a reference for namespace
.
Authentication Methods
The authentication methods provided by the platform can be configured through the configuration of Platform Manager. By default, only SSL is configured as supported authentication methods. Find out below how additional authentication methods (e.g. SASL_SCRAM_256) can be supported for applications connecting to the platform.
Enabling additional authentication methods
From |
Using Axual Helm Charts
Edit the values.yaml
for your management stack and add the following configuration
|
mgmt:
api:
axual:
availableAuthMethods: 'SSL, SCRAM_SHA_512, SCRAM_SHA_256, OAUTH_BEARER'
Connect Reconciliation Jobs
When Connect support has been enabled, the Platform Manager uses two jobs to keep plugins
and deployments
in sync.
The plugins
job retrieves the available plugins from an Axual Connect instance and updates the Self-Service.
The deployments
job retrieves the connector status in an Axual Connect instance and compares it with the application deployment status, if they do not match, it updates the application deployment status in the Self-Service.
Using Axual Helm Charts
Edit the values.yaml
for your management stack and add the following configuration to change the Quarts expressions.
mgmt:
api:
operationManager:
reconciliation:
connect:
# Define how often the plugins job will run
plugins:
cron: [YOUR_QUARTZ_CRON_EXPRESSION]
# Define how often the deployments job will run
deployments:
cron: [YOUR_QUARTZ_CRON_EXPRESSION]
Using TLS/SSL between Platform Manager and Remote DB
To use TLS/SSL between Remote DB and Platform Manager follow the steps below:
-
Change useSSL=true in platform/charts/mgmt/charts/api/values.yaml for Platform Manager
mgmt: api: spring: datasource: urlSuffix: useSsl: true
-
Add enabledTLSProtocols to urlSuffix as a comma-separated list, for example: enabledTLSProtocols=TLSv1.2,TLSv1.3
mgmt: api: spring: datasource: urlSuffix: enabledTLSProtocols: TLSv1.2,TLSv1.3
-
When enabling TLSv1.3 for DB connection, we need to be sure that TLSv1.3 is a valid client and https protocols in the jvmArguments"
mgmt: api: jvmArguments: "-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3 -Dhttps.protocols=TLSv1.2,TLSv1.3"