Service Mesh control plane configuration reference
You can customize your Red Hat OpenShift Service Mesh by modifying the default ServiceMeshControlPlane (SMCP) resource or by creating a completely custom SMCP resource. This reference section documents the configuration options available for the SMCP resource.
Service Mesh Control plane parameters
The following table lists the top-level parameters for the ServiceMeshControlPlane resource.
| Name | Description | Type |
|---|---|---|
|
APIVersion defines the versioned schema of this representation of an object. Servers convert recognized schemas to the latest internal value, and may reject unrecognized values. The value for the |
The value for |
|
Kind is a string value that represents the REST resource this object represents. |
|
|
Metadata about this |
string |
|
The specification of the desired state of this |
For more information, see Table 2. |
|
The current status of this |
For more information, see Table 3. |
The following table lists the specifications for the ServiceMeshControlPlane resource. Changing these parameters configures Red Hat OpenShift Service Mesh components.
| Name | Description | Configurable parameters |
|---|---|---|
|
The |
|
|
The |
|
|
You use the |
|
|
The |
|
|
You use the |
|
|
You select the |
|
|
You use the |
|
|
You use the |
|
|
The |
|
|
The |
N/A |
|
If |
|
|
You use the |
|
|
You use the |
string |
ControlPlaneStatus represents the current state of your service mesh.
| Name | Description | Type |
|---|---|---|
|
The |
Not configurable |
|
Represents the latest available observations of the object’s current state. |
string |
|
Shows the status of each deployed Service Mesh control plane component. |
string |
|
The resulting specification of the configuration options after all profiles have been applied. |
|
|
The resulting values.yaml used to generate the charts. |
|
|
The version of the charts that were last processed for this resource. |
string |
|
The generation observed by the controller during the most recent reconciliation. The information in the status pertains to this particular generation of the object. The |
integer |
|
The version of the operator that last processed this resource. |
string |
|
The readiness status of components & owned resources. |
string |
This example ServiceMeshControlPlane definition contains all of the supported parameters.
ServiceMeshControlPlane resourceapiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
version: v2.6
proxy:
runtime:
container:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 128Mi
tracing:
type: Jaeger
gateways:
ingress: # istio-ingressgateway
service:
type: ClusterIP
ports:
- name: status-port
port: 15020
- name: http2
port: 80
targetPort: 8080
- name: https
port: 443
targetPort: 8443
meshExpansionPorts: []
egress: # istio-egressgateway
service:
type: ClusterIP
ports:
- name: status-port
port: 15020
- name: http2
port: 80
targetPort: 8080
- name: https
port: 443
targetPort: 8443
additionalIngress:
some-other-ingress-gateway: {}
additionalEgress:
some-other-egress-gateway: {}
policy:
type: Mixer
mixer: # only applies if policy.type: Mixer
enableChecks: true
failOpen: false
telemetry:
type: Istiod # or Mixer
mixer: # only applies if telemetry.type: Mixer, for v1 telemetry
sessionAffinity: false
batching:
maxEntries: 100
maxTime: 1s
adapters:
kubernetesenv: true
stdio:
enabled: true
outputAsJSON: true
addons:
grafana:
enabled: true
install:
config:
env: {}
envSecrets: {}
persistence:
enabled: true
storageClassName: ""
accessMode: ReadWriteOnce
capacity:
requests:
storage: 5Gi
service:
ingress:
contextPath: /grafana
tls:
termination: reencrypt
kiali:
name: kiali
enabled: true
install: # install kiali CR if not present
dashboard:
viewOnly: false
enableGrafana: true
enableTracing: true
enablePrometheus: true
service:
ingress:
contextPath: /kiali
jaeger:
name: jaeger
install:
storage:
type: Elasticsearch # or Memory
memory:
maxTraces: 100000
elasticsearch:
nodeCount: 3
storage: {}
redundancyPolicy: SingleRedundancy
indexCleaner: {}
ingress: {} # jaeger ingress configuration
runtime:
components:
pilot:
deployment:
replicas: 2
pod:
affinity: {}
container:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 128Mi
grafana:
deployment: {}
pod: {}
kiali:
deployment: {}
pod: {}
spec parameters
general parameters
Here is an example that illustrates the spec.general parameters for the ServiceMeshControlPlane object and a description of the available parameters with appropriate values.
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
general:
logging:
componentLevels: {}
# misc: error
logAsJSON: false
validationMessages: true
| Parameter | Description | Values | Default value |
|---|---|---|---|
logging: |
Use to configure logging for the Service Mesh control plane components. |
N/A |
|
logging: componentLevels: |
Use to specify the component logging level. |
Possible values: |
N/A |
logging: logAsJSON: |
Use to enable or disable JSON logging. |
|
N/A |
validationMessages: |
Use to enable or disable validation messages to the status fields of istio.io resources. This can be useful for detecting configuration errors in resources. |
|
N/A |
profiles parameters
You can create reusable configurations with ServiceMeshControlPlane object profiles. If you do not configure the profile setting, Red Hat OpenShift Service Mesh uses the default profile.
Here is an example that illustrates the spec.profiles parameter for the ServiceMeshControlPlane object:
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
profiles:
- YourProfileName
For information about creating profiles, see the Creating control plane profiles.
For more detailed examples of security configuration, see Mutual Transport Layer Security (mTLS).
techPreview parameters
The spec.techPreview parameter enables early access to features that are in Technology Preview.
Important
Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production. These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process.
For more information about the support scope of Red Hat Technology Preview features, see Technology Preview Features Support Scope.
tracing parameters
The following example illustrates the spec.tracing parameters for the ServiceMeshControlPlane object, and a description of the available parameters with appropriate values.
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
version: v2.6
tracing:
sampling: 100
type: Jaeger
| Parameter | Description | Values | Default value |
|---|---|---|---|
tracing: sampling: |
The sampling rate determines how often the Envoy proxy generates a trace. You use the sampling rate to control what percentage of requests get reported to your tracing system. |
Integer values between 0 and 10000 representing increments of 0.01% (0 to 100%). For example, setting the value to |
|
tracing: type: |
Currently the only tracing type that is supported is |
|
|
version parameter
The Red Hat OpenShift Service Mesh Operator supports installation of different versions of the ServiceMeshControlPlane. You use the version parameter to specify what version of the Service Mesh control plane to install. If you do not specify a version parameter when creating your SMCP, the Operator sets the value to the latest version: (2.6). Existing ServiceMeshControlPlane objects keep their version setting during upgrades of the Operator.
3scale configuration
The following table explains the parameters for the 3scale Istio Adapter in the ServiceMeshControlPlane resource.
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: basic
spec:
addons:
3Scale:
enabled: false
PARAM_THREESCALE_LISTEN_ADDR: 3333
PARAM_THREESCALE_LOG_LEVEL: info
PARAM_THREESCALE_LOG_JSON: true
PARAM_THREESCALE_LOG_GRPC: false
PARAM_THREESCALE_REPORT_METRICS: true
PARAM_THREESCALE_METRICS_PORT: 8080
PARAM_THREESCALE_CACHE_TTL_SECONDS: 300
PARAM_THREESCALE_CACHE_REFRESH_SECONDS: 180
PARAM_THREESCALE_CACHE_ENTRIES_MAX: 1000
PARAM_THREESCALE_CACHE_REFRESH_RETRIES: 1
PARAM_THREESCALE_ALLOW_INSECURE_CONN: false
PARAM_THREESCALE_CLIENT_TIMEOUT_SECONDS: 10
PARAM_THREESCALE_GRPC_CONN_MAX_SECONDS: 60
PARAM_USE_CACHED_BACKEND: false
PARAM_BACKEND_CACHE_FLUSH_INTERVAL_SECONDS: 15
PARAM_BACKEND_CACHE_POLICY_FAIL_CLOSED: true
# ...
| Parameter | Description | Values | Default value |
|---|---|---|---|
|
Whether to use the 3scale adapter |
|
|
|
Sets the listen address for the gRPC server |
Valid port number |
|
|
Sets the minimum log output level. |
|
|
|
Controls whether the log is formatted as JSON |
|
|
|
Controls whether the log contains gRPC info |
|
|
|
Controls whether 3scale system and backend metrics are collected and reported to Prometheus |
|
|
|
Sets the port that the 3scale |
Valid port number |
|
|
Time period, in seconds, to wait before purging expired items from the cache |
Time period in seconds |
|
|
Time period before expiry when cache elements are attempted to be refreshed |
Time period in seconds |
|
|
Max number of items that can be stored in the cache at any time. Set to |
Valid number |
|
|
The number of times unreachable hosts are retried during a cache update loop |
Valid number |
|
|
Allow to skip certificate verification when calling |
|
|
|
Sets the number of seconds to wait before terminating requests to 3scale System and Backend |
Time period in seconds |
|
|
Sets the maximum amount of seconds (+/-10% jitter) a connection may exist before it is closed |
Time period in seconds |
60 |
|
If true, attempt to create an in-memory apisonator cache for authorization requests |
|
|
|
If the backend cache is enabled, this sets the interval in seconds for flushing the cache against 3scale |
Time period in seconds |
15 |
|
Whenever the backend cache cannot retrieve authorization data, whether to deny (closed) or allow (open) requests |
|
|
status parameter
The status parameter describes the current state of your service mesh. This information is generated by the Operator and is read-only.
| Name | Description | Type |
|---|---|---|
|
The generation observed by the controller during the most recent reconciliation. The information in the status pertains to this particular generation of the object. The |
integer |
|
The |
Not configurable |
|
The readiness status of components and owned resources. |
string |
|
The version of the Operator that last processed this resource. |
string |
|
Shows the status of each deployed Service Mesh control plane component. |
string |
|
The resulting specification of the configuration options after all profiles have been applied. |
|
|
Represents the latest available observations of the object’s current state. |
string |
|
The version of the charts that were last processed for this resource. |
string |
|
The resulting |
|
Additional resources
-
For more information about how to configure the features in the
ServiceMeshControlPlaneresource, see the following links: