UtilityServiceGroup custom resource manifest
Use
UtilityServiceGroup to manage number of deployments, replica counts, thread
counts and more, for the utility service resources.
To create an
UtilityServiceGroup, you can use any of the following methods:- Method 1: Specify the
nameproperty, which is the environment to which you want to deploy your service group. The service properties such asappServers,backendServers,logstashServers, and other properties, are automatically populated when the service group is created. You can customize it by configuring as needed. For more information, see Configuring UtilityServiceGroup custom resource (independent mode). - Method 2: Copy and paste an already tested
UtilityServiceGroupschema from one environment to another. This method saves you time from creating a service group from scratch.
You can run the following YAML to populate the spec based on the
kind and
name of the environment. The value of <name> can be
dev or production. apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
name: <name>
namespace: <sip_installation_namespace>
spec: {}
The following examples illustrates schemas to create a UtilityServiceGroup in a development and production modes.
apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
name: dev
namespace: <sip_installation_namespace>
spec:
active:
image:
repository:
search:
tag:
rules:
tag:
logstash:
tag:
catalog:
tag:
carrier:
tag:
audit:
tag:
auditService:
active: true
appServers:
- active: true
groupName: appserver
names:
- apisipaudit
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: elasticsearch-onboarding
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
logstashServers:
- active: true
groupName: logstash
names:
- logstash
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
carrierService:
active: true
appServers:
- active: true
groupName: appserver
names:
- cas-server
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: cassandra-onboarding
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
catalogService:
active: true
appServers:
- active: true
groupName: appserver
names:
- apicatalog
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
backendServers:
- active: true
groupName: backend
names:
- 'UpdateCategory:1'
- 'UpdateItem:1'
- 'UpdateAttribute:1'
- 'UpdateClassification:1'
- 'FullSync:1'
- 'IngestItem:1'
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: elasticsearch-onboarding
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
rulesService:
active: true
appServers:
- active: true
groupName: appserver
names:
- apirules
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
backendServers:
- active: true
groupName: backend
names:
- shipNode
- dataReplication
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: elasticsearch-onboarding
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
searchService:
maxAllowedNumberOfItemIds: 50
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
active: true
appServers:
- active: true
groupName: appserver
names:
- apidemandssearch
- apisuppliessearch
- apireservationsearch
- apiinventorytagsearch
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
maxAllowedNumberOfShipNodes: 200
jobs:
- name: elasticsearch-onboarding
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
distributionShipNodesCacheDurationMinutes: 10
logstashServers:
- active: true
groupName: logstash
names:
- logstash-supply
- logstash-demand
- logstash-reservation
- logstash-inventorytag
replicaCount: 1
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
removeSortingForSingleItemId: true
apiVersion: apps.sip.ibm.com/v1beta1
kind: UtilityServiceGroup
metadata:
name: production
namespace: <sip_installation_namespace>
spec:
active:
image:
repository:
filex:
tag:
search:
tag:
rules:
tag:
logstash:
tag:
catalog:
tag:
carrier:
tag:
audit:
tag:
auditService:
active: true
appServers:
- active: true
names:
- apisipaudit
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultReplicas: 1
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
logstashServers:
- active: true
names:
- logstash
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
carrierService:
active: true
appServers:
- active: true
names:
- cas-server
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
catalogService:
active: true
appServers:
- active: true
names:
- apicatalog
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
backendServers:
- active: true
names:
- 'UpdateClassification:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'FullSync:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'IngestItem:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'UpdateCategory:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'UpdateItem:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'UpdateAttribute:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
filexService:
active: false
appServers:
- active: true
names:
- api-server
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- ticker-server
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
backendServers:
- active: true
names:
- 'e2f-publish-promise:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-supply:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-inventory-availability:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-catalog-item-ingest-failure-handler:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-order:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-sourcing-plan:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-sourcing-plan:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'f2e-job-server:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'f2e-exchange-server:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-catalog-upserted:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-supply:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-inventory-availability-snapshot:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-catalog-item-ingest-failure-handler:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-failure-handler:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-catalog-upserted:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-supply-snapshot:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-publish-supply-snapshot:5'
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- 'e2f-process-inventory-availability-snapshot:5'
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
replicaCount: 2
- active: true
names:
- 'e2f-process-order:5'
replicaCount: 2
- active: true
names:
- 'e2f-process-promise:5'
replicaCount: 2
- active: true
names:
- 'e2f-process-inventory-availability:5'
replicaCount: 2
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
rulesService:
active: true
appServers:
- active: true
names:
- apirules
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
backendServers:
- active: true
names:
- shipNode
replicaCount: 2
- active: true
names:
- dataReplication
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
searchService:
maxAllowedNumberOfItemIds: 50
defaultresources:
limits:
cpu: '1'
memory: 1536Mi
requests:
cpu: 100m
memory: 1Gi
active: true
appServers:
- active: true
names:
- apiinventorytagsearch
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- apidemandssearch
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- apisuppliessearch
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- apireservationsearch
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
maxAllowedNumberOfShipNodes: 200
jobs:
- name: onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
- name: tenant-onboarding-job
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
distributionShipNodesCacheDurationMinutes: 10
logstashServers:
- active: true
names:
- logstash-supply
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- logstash-demand
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- logstash-reservation
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
- active: true
names:
- logstash-inventorytag
replicaCount: 2
resources:
topology:
-
property:
pod:
podAnnotations:
podLabels:
logLevel:
horizontalPodAutoscaler:
affinityAndTolerations:
image:
tag:
removeSortingForSingleItemId: true
status: {}