// Module included in the following assemblies: // // * service_mesh/v2x/customizing-installation-ossm.adoc :_mod-docs-content-type: REFERENCE [id="ossm-cr-example_{context}"] = {SMProductShortName} Control plane parameters The following table lists the top-level parameters for the `ServiceMeshControlPlane` resource. .`ServiceMeshControlPlane` resource parameters |=== |Name |Description |Type |`apiVersion` |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 `ServiceMeshControlPlane` version 2.0 is `maistra.io/v2`. |The value for `ServiceMeshControlPlane` version 2.0 is `maistra.io/v2`. |`kind` |Kind is a string value that represents the REST resource this object represents. |`ServiceMeshControlPlane` is the only valid value for a ServiceMeshControlPlane. |`metadata` |Metadata about this `ServiceMeshControlPlane` instance. You can provide a name for your {SMProductShortName} control plane installation to keep track of your work, for example, `basic`. |string |`spec` |The specification of the desired state of this `ServiceMeshControlPlane`. This includes the configuration options for all components that comprise the {SMProductShortName} control plane. |For more information, see Table 2. |`status` |The current status of this `ServiceMeshControlPlane` and the components that comprise the {SMProductShortName} control plane. |For more information, see Table 3. |=== The following table lists the specifications for the `ServiceMeshControlPlane` resource. Changing these parameters configures {SMProductName} components. .`ServiceMeshControlPlane` resource spec |=== |Name |Description |Configurable parameters |`addons` | The `addons` parameter configures additional features beyond core {SMProductShortName} control plane components, such as visualization, or metric storage. |`3scale`, `grafana`, `jaeger`, `kiali`, and `prometheus`. |`cluster` |The `cluster` parameter sets the general configuration of the cluster (cluster name, network name, multi-cluster, mesh expansion, etc.) |`meshExpansion`, `multiCluster`, `name`, and `network` |`gateways` | You use the `gateways` parameter to configure ingress and egress gateways for the mesh. |`enabled`, `additionalEgress`, `additionalIngress`, `egress`, `ingress`, and `openshiftRoute` |`general` |The `general` parameter represents general {SMProductShortName} control plane configuration that does not fit anywhere else. |`logging` and `validationMessages` |`policy` |You use the `policy` parameter to configure policy checking for the {SMProductShortName} control plane. Policy checking can be enabled by setting `spec.policy.enabled` to `true`. |`mixer` `remote`, or `type`. `type` can be set to `Istiod`, `Mixer` or `None`. |`profiles` |You select the `ServiceMeshControlPlane` profile to use for default values using the `profiles` parameter. |`default` |`proxy` | You use the `proxy` parameter to configure the default behavior for sidecars. |`accessLogging`, `adminPort`, `concurrency`, and `envoyMetricsService` |`runtime` | You use the `runtime` parameter to configure the {SMProductShortName} control plane components. |`components`, and `defaults` |`security` | The `security` parameter allows you to configure aspects of security for the {SMProductShortName} control plane. |`certificateAuthority`, `controlPlane`, `identity`, `dataPlane` and `trust` |`techPreview` |The `techPreview` parameter enables early access to features that are in technology preview. |N/A |`telemetry` |If `spec.mixer.telemetry.enabled` is set to `true`, telemetry is enabled. |`mixer`, `remote`, and `type`. `type` can be set to `Istiod`, `Mixer` or `None`. |`tracing` |You use the `tracing` parameter to enables distributed tracing for the mesh. |`sampling`, `type`. `type` can be set to `Jaeger` or `None`. |`version` |You use the `version` parameter to specify what Maistra version of the {SMProductShortName} control plane to install. When creating a `ServiceMeshControlPlane` with an empty version, the admission webhook sets the version to the current version. New `ServiceMeshControlPlanes` with an empty version are set to `v2.0`. Existing `ServiceMeshControlPlanes` with an empty version keep their setting. |string |=== `ControlPlaneStatus` represents the current state of your service mesh. .`ServiceMeshControlPlane` resource `ControlPlaneStatus` |=== |Name |Description |Type |`annotations` |The `annotations` parameter stores additional, usually redundant status information, such as the number of components deployed by the `ServiceMeshControlPlane`. These statuses are used by the command line tool, `oc`, which does not yet allow counting objects in JSONPath expressions. |Not configurable |`conditions` |Represents the latest available observations of the object's current state. `Reconciled` indicates whether the operator has finished reconciling the actual state of deployed components with the configuration in the `ServiceMeshControlPlane` resource. `Installed` indicates whether the {SMProductShortName} control plane has been installed. `Ready` indicates whether all {SMProductShortName} control plane components are ready. |string |`components` |Shows the status of each deployed {SMProductShortName} control plane component. |string |`appliedSpec` |The resulting specification of the configuration options after all profiles have been applied. |`ControlPlaneSpec` |`appliedValues` |The resulting values.yaml used to generate the charts. |`ControlPlaneSpec` |`chartVersion` |The version of the charts that were last processed for this resource. |string |`observedGeneration` |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 `status.conditions` are not up-to-date if the `status.observedGeneration` field does not match `metadata.generation`. |integer |`operatorVersion` |The version of the operator that last processed this resource. |string |`readiness` |The readiness status of components & owned resources. |string |=== This example `ServiceMeshControlPlane` definition contains all of the supported parameters. .Example `ServiceMeshControlPlane` resource [source,yaml, subs="attributes,verbatim"] ---- apiVersion: maistra.io/v2 kind: ServiceMeshControlPlane metadata: name: basic spec: version: v{MaistraVersion} 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: {} ----