Customize installation

The installation of Service Mesh Manager can be customized through its CRs. This page covers the most frequently used configuration options for Service Mesh Manager.

Configure container images

Service Mesh Manager images

The ControlPlane CR can be configured to set the following container images:

apiVersion: smm.cisco.com/v1alpha1
kind: ControlPlane
metadata:
  name: smm
spec:
  smm:
    als:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-als
        tag: v1.11.0
      log: {}
    application:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm
        tag: v1.11.0
      log: {}
    auth:
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-authentication
        tag: v1.11.0
      mode: impersonation
    certManager:
      enabled: true
    enabled: true
    federationGateway:
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-federation-gateway
        tag: v1.11.0
      enabled: true
      name: smm
      service:
        enabled: true
        name: smm-federation-gateway
        port: 80
    federationGatewayOperator:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-federation-gateway-operator
        tag: v1.11.0
    grafana:
      enabled: true
      image:
        repository: grafana/grafana
        tag: 7.5.11
      sidecar:
        image:
          repository: ghcr.io/banzaicloud/k8s-sidecar
          tag: v1.11.3-bzc
    health:
      enabled: true
      api:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-health-api
          tag: v1.11.0
      controller:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-health
          tag: v1.11.0
    impersonation:
      enabled: true
    istio:
      revision: cp-v115x.istio-system
    kubestatemetrics:
      enabled: true
      image:
        repository: k8s.gcr.io/kube-state-metrics/kube-state-metrics
        tag: v2.6.0
    leo:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-leo
        tag: v1.11.0
      log: {}
    log: {}
    namespace: smm-system
    prometheus:
      enabled: true
      replicas: 1
      image:
        repository: prom/prometheus
        tag: v2.39.1
      configReloader:
        image:
          repository: quay.io/prometheus-operator/prometheus-config-reloader
          tag: v0.60.1
      thanos:
        image:
          repository: quay.io/thanos/thanos
          tag: v0.28.1
    prometheusOperator:
      image:
        repository: quay.io/prometheus-operator/prometheus-operator
        tag: v0.60.1
      k8sproxy:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/k8s-proxy
          tag: v0.0.9
    releaseName: smm
    role: active
    sre:
      enabled: true
      alertExporter:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre-alert-exporter
          tag: v1.11.0
      api:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre-api
          tag: v1.11.0
      controller:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre
          tag: v1.11.0
    useIstioResources: true
    tracing:
      enabled: true
      jaeger:
        image:
          repository: jaegertracing/all-in-one
          tag: "1.28.0"
    web:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-web
        tag: v1.11.0
      downloads:
        enabled: true
        image:
            repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-cli
            tag: v1.11.0-nginx
    vmIntegration:
      enabled: true
      image:
        repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-vm-integration
        tag: v1.11.0
  certManager:
    enabled: true
    namespace: cert-manager
    manageNamespace: true
    image:
      repository: quay.io/jetstack/cert-manager-controller
      tag: v1.9.1
    cainjector:
      image:
        repository: quay.io/jetstack/cert-manager-cainjector
        tag: v1.9.1
    webhook:
      image:
        repository: quay.io/jetstack/cert-manager-webhook
        tag: v1.9.1
  clusterName: primary
  clusterRegistry:
    enabled: true
    namespace: cluster-registry
    image:
      repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/cluster-registry-controller
      tag: v0.2.4
  log: {}
  meshManager:
    enabled: true
    image:
      repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-mesh-manager
      tag: v1.11.0
    istio:
      istioCRRef:
        name: cp-v115x
        namespace: istio-system
      istioCROverrides: |
        spec:
          istiod:
            deployment:
              podDisruptionBudget:
                minAvailable: 0        
      sidecarInjector:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-sidecar-injector
          tag: v1.15.3-bzc.0
      initCNIConfiguration:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-install-cni
          tag: v1.15.3-bzc.0
      pilot:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-pilot
          tag: v1.15.3-bzc.0
      proxy:
        image:
          repository: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-proxyv2
          tag: v1.15.3-bzc.0
      operators:
        namespace: smm-system
        instances:
        - image:
            repository: ghcr.io/banzaicloud/istio-operator
            tag: v2.15.3
          name: v115x
          version: 1.15.3
        - image:
            repository: ghcr.io/banzaicloud/istio-operator
            tag: v2.13.5
          name: v113x
          version: 1.13.5
    namespace: smm-system
    prometheusMetrics:
      authProxy:
        image:
          repository: quay.io/brancz/kube-rbac-proxy
          tag: v0.11.0
  nodeExporter:
    enabled: true
    namespace: smm-system
    psp:
      enabled: false
    rbac:
      enabled: true
    image:
      repository: quay.io/prometheus/node-exporter
      tag: v1.2.2
  registryAccess:
    enabled: true
    imagePullSecretsController:
      image:
        repository: ghcr.io/banzaicloud/imagepullsecrets
        tag: v0.3.5
    namespace: smm-registry-access
    pullSecrets:
      - name: smm--033498657557.dkr.ecr.us-east-2.amazonaws.com-pull-secret-c17fa163
        namespace: smm-registry-access
      - name: smm--626007623524.dkr.ecr.us-east-2.amazonaws.com-pull-secret-72b452b5
        namespace: smm-registry-access
  role: active

The IstioOperator CR can be configured to set the istio-operator container image:

apiVersion: smm.cisco.com/v1alpha1
kind: IstioOperator
metadata:
  name: v115x
spec:
  enabled: true
  image:
    repository: ghcr.io/banzaicloud/istio-operator
    tag: v2.15.3
  version: 1.15.3

If you installed Service Mesh Manager in operator mode, the changes in these CRs should be reflected automatically on your cluster.

If you don’t have the Service Mesh Manager operator installed, run the following command so that the changes take effect:

smm operator reconcile

Istio images

The IstioControlPlane CR can be configured to set the following Istio container images:

apiVersion: servicemesh.cisco.com/v1alpha1
kind: IstioControlPlane
metadata:
  name: cp-v115x
spec:
  version: "1.15.3"
  mode: ACTIVE
  istiod:
    deployment:
      image: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-pilot:v1.15.3-bzc.0
  sidecarInjector:
    deployment:
      image: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-sidecar-injector:v1.15.3-bzc.0
  proxy:
    image: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-proxyv2:v1.15.3-bzc.0
  proxyInit:
    image: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-proxyv2:v1.15.3-bzc.0
    cni:
      daemonset:
        image: 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-install-cni:v1.15.3-bzc.0

These changes should be automatically reflected on your cluster after editing the CR.

List of configurable images

Based on the CRs above, you can configure the following components in Service Mesh Manager:

Images Repository Tag
smm-als 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-als v1.11.0
smm 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm v1.11.0
smm-auth 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-authentication v1.11.0
smm-grafana grafana/grafana 7.5.11
smm-federation-gateway 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-federation-gateway v1.11.0
smm-federation-gateway-operator 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-federation-gateway-operator v1.11.0
smm-health 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-health v1.11.0
smm-health-api 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-health-api v1.11.0
smm-kubestatemetrics k8s.gcr.io/kube-state-metrics/kube-state-metrics v2.6.0
smm-leo 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-leo v1.11.0
smm-prometheus prom/prometheus v2.39.1
smm-prometheus-config-reloader quay.io/prometheus-operator/prometheus-config-reloader v0.60.1
smm-thanos quay.io/thanos/thanos v0.28.1
smm-prometheus-operator quay.io/prometheus-operator/prometheus-operator v0.60.1
smm-k8s-proxy 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/k8s-proxy v0.0.9
smm-sre 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre v1.11.0
smm-sre-api 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre-api v1.11.0
smm-sre-alert-exporter 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-sre-alert-exporter v1.11.0
smm-tracing jaegertracing/all-in-one “1.28.0”
smm-web 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-web v1.11.0
smm-vm-integration 033498657557.dkr.ecr.us-east-2.amazonaws.com/smm-vm-integration v1.11.0
kube-rbac-proxy gcr.io/kubebuilder/kube-rbac-proxy v0.11.0
cert-manager quay.io/jetstack/cert-manager-controller v1.9.1
cert-manager-cainjector quay.io/jetstack/cert-manager-cainjector v1.9.1
cert-manager-webhook quay.io/jetstack/cert-manager-webhook v1.9.1
cluster-registry 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/cluster-registry-controller v0.2.4
imagepullsecrets-controller ghcr.io/banzaicloud/imagepullsecrets v0.3.5
istio-operator ghcr.io/banzaicloud/istio-operator v2.15.3(v115x)
istio-sidecarinjector 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-sidecar-injector v1.15.x-bzc.0
istio-pilot 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-pilot v1.15.x-bzc.0
istio-proxy 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-proxyv2 v1.15.x-bzc.0
istio-init-cni 033498657557.dkr.ecr.us-east-2.amazonaws.com/banzaicloud/istio-install-cni v1.15.x-bzc.0

(Updated as of November 11, 2022)

If there is a Service Mesh Manager related image that you’d like to change and that image is not listed here, contact us!

Customize IstioControlPlane CR

You can customize the ControlPlane CR to change the configuration of the IstioControlPlane CR. Set your custom values under the spec.meshManager.istio.istioCROverrides of the ControlPlane CR, and Service Mesh Manager merges them to the IstioControlPlane CR.

For example to enable basic DNS proxying, you can set the ISTIO_META_DNS_CAPTURE field using a similar configuration:

apiVersion: smm.cisco.com/v1alpha1
kind: ControlPlane
metadata:
 name: smm
spec:
...
    meshmanager:
      istio:
      ...
        istioCROverrides: |
          spec:
            meshConfig:
              defaultConfig:
                proxyMetadata:
                  # Enable basic DNS proxying
                  ISTIO_META_DNS_CAPTURE: "true"
                  # Enable automatic address allocation, optional
                  ISTIO_META_DNS_AUTO_ALLOCATE: "true"          

Customize Istio namespace

Istio is installed to the istio-system namespace by default. To configure this namespace during installation, use one of these methods:

  • Use the --istio-namespace CLI flag. For example:

    smm install -a --istio-namespace custom-istio-namespace
    
  • Create a YAML file that contains the istioCRRef.namespace field (see the following example), then use the --additional-cp-settings CLI flag.

    spec:
      meshManager:
        enabled: true
        istio:
          enabled: true
          istioCRRef:
            name: cp-test
            namespace: custom-istio-namespace
    

    An example of the command:

    smm install -a --additional-cp-settings /path/to/file.yaml
    

Note: The --istio-namespace CLI flag has the highest priority. If you specify both flags at the same time, the value from the --istio-namespace flag is used.