SIPEnvironment custom resource manifest

SIPEnvironment is a primary custom resource that manages all the other custom resources that are created through the IBM® Sterling Intelligent Promising Operator.
Note: Do not modify the annotations that are prefixed internal.

SIPEnvironment full custom resource with default values

The following YAML file is a schema with all the parameters and default values supported by SIPEnvironment custom resource.

Note: The commented parameters are optional for creating SIPEnvironment.
apiVersion: apps.sip.ibm.com/v1beta1
kind: SIPEnvironment
metadata:
  name: ""
  namespace: ""
  # Annotation to skip check for ibm-entitlement-key secret:
    apps.sip.ibm.com/skip-ibm-entitlement-key-check: 'yes' 
  # Annotation to check connectivity of external services:
    apps.sip.ibm.com/validate-external-services-connections: 'true'
  # Annotation to skip check for connectivity of external services:
    apps.sip.ibm.com/skip-external-services-connection-validation: 'true'     
spec:
  license:
    accept: true
  environment: ""
  multiDCEnabled: false  
  secret: ""
  # serviceAccount: default
  # upgradeStrategy: RollingUpdate
  # tenantId: default
  # UsePublicImageRegistry: true
 
  storage:
    name: ""
    # accessMode: ReadWriteMany
    # capacity: 10Gi
    # storageClassName: default
    # securityContext:
      # fsGroup: 
      # supplementalGroups: []
  # affinityAndTolerations:
  # - name: ""
  #   affinity:
  #     <kubernetes-affinity-spec>
  #   tolerations:
  #   - <kubernetes-toleration-spec>
  # security:
  #   ssl:
  #     trust:
  #       storeLocation: ""
  #       storeType: JKS
  #       trustJavaCACerts: true
  #       trustedCertDir:""
  # additionalMounts:
  #   secrets:
  #     - defaultMode: 420
  #       mountPath: ""
  #       name: ""
  # log: 
  #   logChannels: CONSOLE
  #   logTopic: ""
  #   logLevel: INFO
  image:
    repository: ""
    imagePullSecrets:
    - name: ibm-entitlement-key
    - name: my-private-registry-key1 
    - name: my-private-registry-key2 
    tag: ""
    # pullPolicy: IfNotPresent
    # omsGateway:
      # tag: ""
      # repository: ""
      # pullPolicy: ""
      # imageName: oms-gateway
    # ivService:
      # tag: ""
      # repository: ""
      # pullPolicy: ""
      # appImageName: sip-iv-appserver
      # backendImageName: sip-iv-backend
      # onboardImageName: sip-iv-onboard
    # promisingService:
      # imageName: sip-promising
      # pullPolicy: ""
      # tag: ""
      # repository: 
    # utilityService:
      # repository: ""
      # pullPolicy: ""
      # catalog:
        # tag: ""
        # imageName: sip-catalog
        # onboardImageName: sip-catalog-onboard
        # pullPolicy: ""
      # rules:
        # tag: ""
        # imageName: sip-rules
        # onboardImageName: sip-rules-onboard
        # pullPolicy: ""
      # carrier:
        # tag: ""
        # onboardImageName: sip-carrier-onboard
        # imageName: sip-carrier
        # pullPolicy: ""
      # audit:
        # tag: ""
        # imageName: sip-iv-audit
        # onboardImageName: sip-iv-audit-onboard
        # pullPolicy: ""
      # search:
        # tag: ""
        # imageName: sip-search
        # onboardImageName: sip-search-onboard 
        # pullPolicy: ""
      # logstash:
        # tag: ""
        # imageName: sip-logstash
        # pullPolicy: ""
    # apiDocsService:
      # tag: ""
      # imageName: sip-api-docs
      # repository: ""
      # pullPolicy: ""

    # sipUtils:
      # tag: ""
      # imageName: sip-utils
      # repository: ""
      # pullPolicy: ""    

  common:
    ingress:
      host: ""
      # annotations: {}
      # labels: {}
      # className: ""
      # skipDefaultAnnotations: false
      # ssl:
        # enabled: true
        # identitySecretName: ""
      # customDomains: 
      # - host: ""
      #   annotations: {}
      #   labels: {}
      #   className: ""
      #   skipDefaultAnnotations: false
      #   ssl:
      #     enabled: true
      #     identitySecretName: ""
      # - host: ""
      #   annotations: {}
      #   labels: {}
      #   className: ""
      #   skipDefaultAnnotations: false
      #   ssl:
      #     enabled: true
      #     identitySecretName: ""
    # pod:
      # podLabels: {}
      # podAnnotations: {}

  networkPolicy:
    <kubernetes-network-policy-spec>
  
  externalServices:
    cassandra:
       keyspace: ""
      # contactPoints: ""
      # createDevInstance:
        # resources:
          # limits:
            # cpu: '2'
            # memory:9Gi
          # requests:
            # cpu: '1'
            # memory: 3Gi        
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []                
        # affinityAndTolerations: ""   
    kafka:
      # contactPoints: ""
      # topicPrefix: "sip"
      # mirrorTopicPrefix: ""
      # crossDCTopicPrefix: ""      
      # zookeeperContactPoints: ""
      # loggingContactPoints: ""
      # createDevInstance:
        # resources:
          # limits:
            # cpu: '1'
            # memory: 1Gi
          # requests:
            # cpu: '0.1'
            # memory: 1.5Gi
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []
        # affinityAndTolerations: ""  
    elasticSearch:
      # contactPoints: ""
      # replicationEnabled: false
      # createDevInstance:
        # resources:
          # limits:
            # cpu: '1'
            # memory: 1Gi
          # requests:
            # cpu: '0.1'
            # memory: 1.5Gi
        # affinityAndTolerations: ""
        # storage:
          # name: ""
          # accessMode: ReadWriteMany
          # capacity: 10Gi
          # storageClassName: default
          # securityContext:
            # fsGroup: 
            # supplementalGroups: []
  
    # configuration:
      # ssl_cassandra_disable: ""
      # ssl_elasticsearch_disable: ""
      # ssl_kafka_disable: ""  
      # ssl_Logging_kafka_disable: ""
    
    # mongoDB:
      # createDevInstance:
      #   resources:
      #     limits:
      #       cpu: '3'
      #       memory: 10000Mi
      #     requests:
      #       cpu: '1'
      #       memory: 3000Mi
      #   storage:
      #     name: ""
      #     accessMode: ReadWriteMany
      #     capacity: 10Gi
      #     storageClassName: default
      #     securityContext:
      #       fsGroup: 
      #       supplementalGroups: []
      #   affinityAndTolerations: ""
      # replicationEnabled: false

  # utilityService:
  #   serviceGroup: ""
  # promisingService: 
  #   serviceGroup: ""
  # ivService:
  #   serviceGroup: ""  
  # optimizerService:
  #   serviceGroup: "" 
  # ​apiDocsService: {}

  # serverProperties:
  #   envVars:
  #   - groupName: ""
  #     propertyList: {}
  #     propertyRef:
  #     - name: ""
  #       valueFrom:
  #         configMapKeyRef:
  #           key: ""
  #           name: ""
  #           optional: 
  #         fieldRef:
  #           apiVersion: ""
  #           fieldPath: ""
  #         resourceFieldRef:
  #           containerName: ""
  #           divisor: "1"
  #           resource: ""
  #         secretKeyRef:
  #           key: ""
  #           name: ""
  #           optional: 
  #     propertyFrom:
  #       - prefix: ""
  #         configMapRef:
  #           name: ""
  #           optional: ""
  #       - prefix: ""
  #         secretRef:
  #           name: ""
  #           optional: "" 
  #     derivatives: []
  #   jvmArgs:
  #   - groupName: ""
  #     propertyList: 
  #     - ""
  #     derivatives: []
  omsGateway:
    # issuerSecret: ""
    # skipAuthentication: false
    # workerPoolSize: 100
    # sslEnabled: true
    # identitySecretName: <TLS_certificate_name>
    # logLevel: INFO
    # replicas: ""
    # resources:
      # limits:
        # cpu: '2'
        # memory:500Mi
      # requests:
        # cpu: '1'
        # memory: 3000Mi 
    # webClient:
      # connectTimeout: 30000
      # keepAlive: true
      # keepAliveTimeout: 60
      # logActivity: false
      # maxPoolSize: 10
      # requestTimeout: 30000
      # trustAll: false
      # verifyHost: true 
    # cors:
      # enabled: true
      # allowedOrigins: '*'
      # deltaHeaders: ''
      # deltaMethods: ''
      # exposedHeaders: ''
      # allowCredentials: true 
    # affinityAndTolerations: ""

SIPEnvironment custom resource with mandatory parameters

The following YAML file is a schema with all the mandatory parameters and sample values.
Note: The values in the YAML are provided for demonstration purpose only and it must me updated as needed. Ensure to replace <sip-namespace> , <sip-secret>, <sip-oms-gateway-issuer-secret>, <comma separated list of https://domain:port>, <public-domain.mycluster.com>, <ingress-cert>, <container_registry> with valid values.
apiVersion: apps.sip.ibm.com/v1beta1
kind: SIPEnvironment
metadata:
  name: sip
  namespace: <sip_installation_namespace>
  annotations:
  # Use the following annotation to skip the check for ibm-entitlement-key secret. 
    apps.sip.ibm.com/skip-ibm-entitlement-key-check: 'yes'    
spec:
  license:
    accept: true
  secret: <sip-secret>
  serviceAccount: default
  upgradeStrategy: RollingUpdate
  UsePublicImageRegistry: true

  # This networkPolicy is most open and hence least secure. You have been warned!
  networkPolicy:
    podSelector:
      matchLabels:
        none: none
    policyTypes:
      - Ingress
  ivService:
    serviceGroup: dev
  promisingService:
    serviceGroup: dev
  utilityService:
    serviceGroup: dev
  apiDocsService: {}    
  omsGateway:
    issuerSecret: <sip-oms-gateway-issuer-secret>
    replicas: 1
    cors:
      allowedOrigins: <comma separated list of https://domain:port>
  externalServices:
    cassandra:
      createDevInstance:
        resources:
          limits:
            cpu: '3'
            memory: 8000Mi
          requests:
            cpu: '1'
            memory: 5000Mi
      keyspace: inventory_visibility_ks
    elasticSearch:
      createDevInstance: {}
    kafka:
      createDevInstance: {}
  common:
    ingress:
      host: <public-domain.mycluster.com>
      ssl:
       enabled: true
       identitySecretName: <ingress-cert>
  image:
    imagePullSecrets:
    - name: ibm-entitlement-key
    - name: <my-private-registry-key1>
    repository: <container_registry>
    tag: <release_tag>
  # The given YAML is an example to create a PV. Hence, do not use it as is. To create your own PV, see Persistent Volumes in Kubernetes documentation.
  storage:
    accessMode: ReadWriteMany
    capacity: 40Gi
    name: sip-storage
    storageClassName: default
Note: For more information about the parameters, see SIPEnvironment custom resource parameters.