$ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
Profiles allow a cluster administrator to create reusable configurations that users may extend with their own customizations. Profiles may also inherit from other profiles. As an example, if there are two teams with different control planes, say an accounting team and a website team with a development and production configuration, then there could be a profile called development and one called production. Individual profile would be created for the accounting and development teams that extend these two configurations with their own customizations. Individual deployments can further customize these configurations. For additional extensibility, multiple profiles can be inherited in a single profile.
Profiles follow the same configuration as a ServiceMeshControlPlane
so if you get a ServiceMeshControlPlane
working, you can then
include it as a profiles. To add custom profiles, create a ConfigMap
called smcp-templates
in the openshift-operators
project.
This ConfigMap
will contain a collection of profiles to use. The ConfigMap
must then be mounted in the operator at
/usr/local/share/istio-operator/templates/
.
To create the ConfigMap
, execute the following as a cluster administrator, substituting <profiles-directory> for a directory containing a
collection of ServiceMeshControlPlane
files to use as profiles. The name of the profiles will match the name of the file. Templates will
inherit from other profiles until a profile is reached which has an empty profile field. Using a profile name of default
will override the
default profile for all control planes when no profile is specified in a control plane.
To create a profile, save a ServiceMeshControlPlane
in a directory referred to as <profiles-directory>
.
Follow the instructions below to create and configure a ConfigMap
containing this new
profile. Additional profiles can be added to the ConfigMap
as desired.
$ oc create configmap --from-file=<profiles-directory> smcp-templates -n openshift-operators
Next, find the Maistra operator ClusterServiceVersion
name.
$ oc get clusterserviceversion -n openshift-operators | grep 'Service Mesh' maistra.v2.0.0.1 Red Hat OpenShift Service Mesh 2.0.0-1 Succeeded
Edit the ClusterServiceVersion
to instruct the operator to use the smcp-templates
ConfigMap
.
$ oc edit clusterserviceversion -n openshift-operators servicemeshoperator.v2.0.0.1
In the editor, add a volume mount and volume to the deployments as shown below.
deployments:
- name: istio-operator
spec:
template:
spec:
containers:
volumeMounts:
- name: smcp-templates
mountPath: /usr/local/share/istio-operator/templates/
volumes:
- name: smcp-templates
configMap:
name: smcp-templates
...
You can now use profiles in your ServiceMeshControlPlane
by adding a
profile
parameter to the ServiceMeshControlPlane
. In the example below,
we are including the default
profile, but you can use any profile from the
smcp-templates
ConfigMap
as well.
apiVersion: maistra.io/v2
kind: ServiceMeshControlPlane
metadata:
name: minimal-install
spec:
profiles:
- default