Difference between revisions of "Draft: PEC-REP/Current/RAAPEGuide/Planning"

From Genesys Documentation
Jump to: navigation, search
Line 10: Line 10:
  
 
JDBC driver can be overridden by copying driver file to '''lib\jdbc_driver_<RDBMS>''' (or by making link) in a work dir. See for [https://docs.genesys.com/Documentation/RAA/9.0.0/Dep/PostInstall#JDBCDriverForRAA JDBC driver for RAA] for details.
 
JDBC driver can be overridden by copying driver file to '''lib\jdbc_driver_<RDBMS>''' (or by making link) in a work dir. See for [https://docs.genesys.com/Documentation/RAA/9.0.0/Dep/PostInstall#JDBCDriverForRAA JDBC driver for RAA] for details.
|HelmText=Order<div style="background-color: aliceblue; font-style: italic;">List the containers and the <service_names> they include. Provide any specific information about the container and its Helm charts. Link to the "suite-level" doc for common information about how to download the Helm charts in Jfrog Edge: {{SuiteLevelLink|helmchart}}</div>
+
|HelmText=
 +
==Init containers==
 +
RAA helm chart includes couple of explicit init containers.
 +
 
 +
===configDelivery init container===
 +
configDelivery init container delivers required xml configuration and *.ss files to RAA work dir. Those files should be specified as gzip archive encoded as base64. The archive should be passed via --set-file raa.deployment.configTar=config.tar.gz.b64 option of helm install/update.
 +
 
 +
Default conf.xml and user-data-map.ss are supplied with chart. They are copied to work dir by init container when such files are absent and archive above is not specified. The container is optional and disabled by default since RAA configuration files can be created right in mounted config volume. configDelivery init container makes sense for cloud environments mostly because access to mounted work dir can be restricted here by security reason or due to usage of ephemeral storage for config volume or by other reasons.
 +
 
 +
A container name value should be specified to enable configDelivery container.
 +
 
 +
'''myvalues.yaml'''
 +
raa:
 +
  <source lang="bash">...
 +
  statefulset:
 +
  ...
 +
    containers:
 +
    ...
 +
      configDelivery:
 +
        name: "{{ $.Chart.Name }}-conf-delivery"</source>
 +
===testRun init container===
 +
testRun - executes all the aggregations on an empty time range. Such the step allows to detect configuration and customisation mistakes before staring the real aggregations because SQL execution (even on empty data) checks the presence of involved tables and columns. This init container is optional and enabled by default. Set testRun empty (nothing after colon) in container section of your values.yaml to disable it.
 +
 
 +
'''myvalues.yaml'''
 +
raa:
 +
  <source lang="bash">...
 +
  statefulset:
 +
  ...
 +
    containers:
 +
    ...
 +
      testRun:
 +
        name: "{{ $.Chart.Name }}-test-run"</source>
 +
==Pod containers==
 +
RAA has a couple of execution containers:
 +
 
 +
===aggregation container===
 +
aggregation is a required container which does the aggregation work. Only container name is specified in values.yaml.
 +
 
 +
'''myvalues.yaml
 +
'''raa:
 +
  <source lang="bash">...
 +
  statefulset:
 +
  ...
 +
    containers:
 +
      aggregation:
 +
        name: "{{ $.Chart.Name }}"
 +
      ...</source>
 +
===monitor container===
 +
monitor is an optional sidecar container which allows execution of RAA tool from file with parameters placed in a work dir (see  GCXI-4052 - Add an ability to execute RAA tools in azure without kubectl exec CLOSED ). The function makes sense when kubeclt exec is not allowed by security or other reasons. The container also exposes two ports for scraping of aggregation metrics and health metric by Prometheus or other monitoring tool. Monitor container is optional and disabled by default.
 +
 
 +
'''myvalues.yaml'''
 +
raa:
 +
  <source lang="bash">...
 +
  statefulset:
 +
  ...
 +
    containers:
 +
    ...
 +
      monitor:
 +
        name: "{{ $.Chart.Name }}-monitor"
 +
 +
        toolcmd:
 +
          # interval of checking for a new file with command
 +
          intervalSec: "20"
 +
 +
        metrics:
 +
          portName: "metrics"
 +
          containerPort: "9100"
 +
 +
        health:
 +
          portName: "health"
 +
          containerPort: "9101"
 +
      ...</source>
 +
==Test containers==
 +
There is a couple of test containers for helm test command. They are listed below according to execution order:
 +
 
 +
===testRunCheck container===
 +
testRunCheck waits for execution of testRun init container (if it is still running) and returns a result of test execution. The test is optional and enabled by default. It should be enabled with  testRun init container only. Set testRunCheck empty (nothing after colon) in testPod section of your values.yaml to disable it.
 +
 
 +
'''myvalues.yaml
 +
'''raa:
 +
  <source lang="bash">...
 +
  testPods:
 +
 +
    testRunCheck:
 +
 +
      name: "{{ tpl .Values.raa.serviceName . }}-test-run-check"
 +
 +
      container:
 +
        name: "{{ $.Chart.Name }}-test-run-check"
 +
 +
      labels: {}
 +
 +
      annotations:
 +
        "helm.sh/hook-weight": "100"
 +
        "helm.sh/hook": "test-success"
 +
        "helm.sh/hook-delete-policy": "before-hook-creation"
 +
      ...</source>
 +
===healthChek test container===
 +
healthCheck executes and returns status of healthCheck. It also prints the content of current configuration files and health files to standard output. The test is optional and enabled by default. Set healthCheck empty (nothing after colon) in testPod section of your values.yaml to disable it.
 +
 
 +
'''myvalues.yaml'''
 +
raa:
 +
  <source lang="bash">...
 +
  testPods:
 +
    ...
 +
    healthCheck:
 +
      name: "{{ tpl .Values.raa.serviceName . }}-health-check"
 +
 +
      container:
 +
        name: "{{ $.Chart.Name }}-health-check"
 +
 +
      labels: {}
 +
 +
      annotations:
 +
        "helm.sh/hook-weight": "200"
 +
        "helm.sh/hook": "test-success"
 +
        "helm.sh/hook-delete-policy": "before-hook-creation"
 +
      ...</source>
 
|ThirdPartyText=<div style="background-color: aliceblue; font-style: italic;">List any third-party services that are required (both common across Genesys Engage cloud private edition and specific to <service_name>).</div>
 
|ThirdPartyText=<div style="background-color: aliceblue; font-style: italic;">List any third-party services that are required (both common across Genesys Engage cloud private edition and specific to <service_name>).</div>
 
|SectionThirdPartyItem={{SectionThirdPartyItem
 
|SectionThirdPartyItem={{SectionThirdPartyItem
Line 22: Line 139:
  
 
'''gimsecret.yaml'''
 
'''gimsecret.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">apiVersion: v1
{{!}} class="code"{{!}}<code class="yml variable">apiVersion:</code> <code class="yml plain">v1</code>
+
kind: Secret
 
+
metadata:
<code class="yml variable">kind:</code> <code class="yml plain">Secret</code>
+
  namespace: gcxi
 
+
  name: gim-secret
<code class="yml variable">metadata:</code>
+
type: kubernetes.io/service-account-token
 
+
data:
<code class="yml spaces"> </code><code class="yml variable">namespace:</code> <code class="yml plain">gcxi</code>
+
  json_credentials: eyJqZGJjX3VybCI6ImpkYmM6cG9zdGdyZXNxbDovLzxob3N0Pjo1NDMyLzxnaW1fZGF0YWJhc2U+IiwgImRiX3VzZXJuYW1lIjoiPHVzZXI+IiwgImRiX3Bhc3N3b3JkIjoiPHBhc3N3b3JkPiJ9Cg==
 
+
</source>
<code class="yml spaces"> </code><code class="yml variable">name:</code> <code class="yml plain">gim-secret</code>
 
 
 
<code class="yml variable">type:</code> <code class="yml plain">kubernetes.io/service-account-token</code>
 
 
 
<code class="yml variable">data:</code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">json_credentials:</code> <code class="yml plain">eyJqZGJjX3VybCI6ImpkYmM6cG9zdGdyZXNxbDovLzxob3N0Pjo1NDMyLzxnaW1fZGF0YWJhc2U+IiwgImRiX3VzZXJuYW1lIjoiPHVzZXI+IiwgImRiX3Bhc3N3b3JkIjoiPHBhc3N3b3JkPiJ9Cg==</code>
 
{{!}}}
 
 
and reference in values.yaml
 
and reference in values.yaml
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">raa
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
+
  ...
 
+
  volumes:
<code class="yml spaces"> </code><code class="yml plain">...</code>
+
    ...
 
+
    gimSecret:
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
+
      name: "gim-secret-volume"
 
+
      secretName: "gim-secret"
<code class="yml spaces">   </code><code class="yml plain">...</code>
+
      jsonFile: "json_credentials"
 
+
  ...</source>
<code class="yml spaces">   </code><code class="yml variable">gimSecret:</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">name:</code> <code class="yml string">"gim-secret-volume"</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">secretName:</code> <code class="yml string">"gim-secret"</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">jsonFile:</code> <code class="yml string">"json_credentials"</code>
 
 
 
<code class="yml spaces"> </code> <code class="yml plain">...</code>
 
{{!}}}
 
 
CSI secret can be mounted via secretProviderClass alternatively
 
CSI secret can be mounted via secretProviderClass alternatively
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
 
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
 
 
<code class="yml spaces"> </code><code class="yml plain">...</code>
 
 
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
 
 
<code class="yml spaces">   </code><code class="yml plain">...</code>
 
 
<code class="yml spaces">   </code><code class="yml variable">gimSecret:</code>
 
 
<code class="yml spaces">     </code><code class="yml variable">name:</code> <code class="yml string">"gim-secret-volume"</code>
 
 
<code class="yml spaces">     </code><code class="yml variable">secretProviderClass:</code> <code class="yml string">"gim-secret-class"</code>
 
 
<code class="yml spaces">     </code><code class="yml variable">jsonFile:</code> <code class="yml string">"json_credentials"</code>
 
  
<code class="yml spaces"> </code> <code class="yml plain">...</code>
+
<source lang="bash">raa
{{!}}}
+
  ...
 +
  volumes:
 +
    ...
 +
    gimSecret:
 +
      name: "gim-secret-volume"
 +
      secretProviderClass: "gim-secret-class"
 +
      jsonFile: "json_credentials"
 +
  ...</source>
  
 
===Config volume===
 
===Config volume===
Line 96: Line 186:
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">raa
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
+
  ...
 
+
  volumes:
<code class="yml spaces"> </code><code class="yml plain">...</code>
+
    ...
 
+
    config:
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
+
      capacity: 50Mi
 
+
      storageClassName: "<vendor storage class>"
<code class="yml spaces">   </code><code class="yml plain">...</code>
+
    ...</source>
 
 
<code class="yml spaces">   </code><code class="yml variable">config:</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">capacity:</code> <code class="yml plain">50Mi</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">storageClassName:</code> <code class="yml string">"<vendor storage class>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml plain">...</code>
 
{{!}}}
 
 
RAA helm chart creates Persistent Volume Claim. It can also optionally create a Persistent Volume (when <code class="yml variable">raa.volumes.config.pv</code> is specified). See how Persistent Volume declared in helm chart:
 
RAA helm chart creates Persistent Volume Claim. It can also optionally create a Persistent Volume (when <code class="yml variable">raa.volumes.config.pv</code> is specified). See how Persistent Volume declared in helm chart:
  
 
'''raa-config-volume.yaml'''
 
'''raa-config-volume.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">{{- with .Values.raa.volumes.config.pv }}
{{!}} class="code"{{!}}<code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .Values.raa.volumes.config.pv</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
apiVersion: v1
 
+
kind: PersistentVolume
<code class="yml variable">apiVersion:</code> <code class="yml plain">v1</code>
+
metadata:
 
+
  name: "{{ tpl .name $ }}"
<code class="yml variable">kind:</code> <code class="yml plain">PersistentVolume</code>
+
  {{- if or ($.Values.raa.labels) (.labels) }}
 
+
  labels:
<code class="yml variable">metadata:</code>
+
  {{- with $.Values.raa.labels }}
 
+
    {{- range $key, $value := . }}
<code class="yml spaces"> </code><code class="yml variable">name:</code> <code class="yml string">"<nowiki>{{ tpl .name $ }}</nowiki>"</code>
+
    {{ $key }}: "{{ tpl $value $ }}"
 
+
    {{- end }}
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- if or ($.Values.raa.labels) (.labels)</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
  {{- with .labels }}
<code class="yml spaces"> </code><code class="yml variable">labels:</code>
+
    {{- range $key, $value := . }}
 
+
    {{ $key }}: "{{ tpl $value $ }}"
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.labels</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- end }}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
  {{- if or ($.Values.raa.annotations) (.annotations) }}
 
+
  annotations:
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- with $.Values.raa.annotations }}
 
+
    {{- range $key, $value := . }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{ $key }}: "{{ tpl $value $ }}"
 
+
    {{- end }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .labels</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
  {{- with .annotations }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- range $key, $value := . }}
 
+
    {{ $key }}: "{{ tpl $value $ }}"
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
    {{- end }}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
spec:
 
+
  accessModes:
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    - ReadWriteMany
 
+
  {{- with $.Values.raa.volumes.config }}
 
+
  capacity:
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- if or ($.Values.raa.annotations) (.annotations)</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    storage: "{{ .capacity }}"
 
+
    {{- with .storageClassName }}
<code class="yml spaces"> </code><code class="yml variable">annotations:</code>
+
  storageClassName: "{{ . }}"
 
+
    {{- end }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.annotations</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- with .pv.vendorSpec}}
 
+
  {{- toYaml . | nindent 2 }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- end}}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
{{- end }}</source>
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .annotations</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
 
 
<code class="yml variable">spec:</code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">accessModes:</code>
 
 
 
<code class="yml spaces">   </code><code class="yml string bold">-</code> <code class="yml plain">ReadWriteMany</code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.volumes.config</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">capacity:</code>
 
 
 
<code class="yml spaces">   </code><code class="yml variable">storage:</code> <code class="yml string">"<nowiki>{{ .capacity }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .storageClassName</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">storageClassName:</code> <code class="yml string">"<nowiki>{{ . }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .pv.vendorSpec</code><code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- toYaml . | nindent 2</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code><code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
{{!}}}
 
 
It is enough to define <code class="yml variable">Values.raa.volumes.config.storageClassName</code> and a vendor specific part of Persistent Volume (<code class="yml variable">raa.volumes.config.pv.vendorSpec)</code> in values file:
 
It is enough to define <code class="yml variable">Values.raa.volumes.config.storageClassName</code> and a vendor specific part of Persistent Volume (<code class="yml variable">raa.volumes.config.pv.vendorSpec)</code> in values file:
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">raa
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
+
  ...
 
+
  volumes:
<code class="yml spaces"> </code><code class="yml plain">...</code>
+
    ...
 
+
    config:
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
+
      storageClassName: "hostpath"
 
+
      pv:
<code class="yml spaces">   </code><code class="yml plain">...</code>
+
        vendorSpec:
 
+
          hostPath:
<code class="yml spaces">   </code><code class="yml variable">config:</code>
+
            type: Directory
 
+
            # path for conf.xml, *.ss files and JDBC driver when default is not suitable
<code class="yml spaces">     </code><code class="yml variable">storageClassName:</code> <code class="yml string">"hostpath"</code>
+
            path: "/usr/local/genesys/RAA/config/"    
 
+
      ...</source>
<code class="yml spaces">     </code><code class="yml variable">pv:</code>
 
 
 
<code class="yml spaces">       </code><code class="yml variable">vendorSpec:</code>
 
 
 
<code class="yml spaces">         </code><code class="yml variable">hostPath:</code>
 
 
 
<code class="yml spaces">           </code><code class="yml variable">type:</code> <code class="yml plain">Directory</code>
 
 
 
<code class="yml spaces">           </code><code class="yml comments"># path for conf.xml, *.ss files and JDBC driver when default is not suitable</code>
 
 
 
<code class="yml spaces">           </code><code class="yml variable">path:</code> <code class="yml string">"/usr/local/genesys/RAA/config/"</code>    
 
 
 
<code class="yml spaces">     </code><code class="yml plain">...</code>
 
{{!}}}
 
 
Alternatively Persistent Volume can be defined separately. Its name should be specified in values.yaml via <code class="yml variable">raa.volumes.config.pvc.volumeName</code> for binding to Persistent Volume Claim:
 
Alternatively Persistent Volume can be defined separately. Its name should be specified in values.yaml via <code class="yml variable">raa.volumes.config.pvc.volumeName</code> for binding to Persistent Volume Claim:
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">raa
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
+
  ...
 
+
  volumes:
<code class="yml spaces"> </code><code class="yml plain">...</code>
+
    ...
 
+
    config:
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
+
      pv: {}
 
+
      pvc:
<code class="yml spaces">   </code><code class="yml plain">...</code>
+
        volumeName: "my_raa_config_volume"
 
+
    ...</source>
<code class="yml spaces">   </code><code class="yml variable">config:</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">pv:</code> <code class="yml constants">{}</code>
 
 
 
<code class="yml spaces">     </code><code class="yml variable">pvc:</code>
 
 
 
<code class="yml spaces">       </code><code class="yml variable">volumeName:</code> <code class="yml string">"my_raa_config_volume"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml plain">...</code>
 
{{!}}}
 
 
An ephemeral storage could be also mapped.  
 
An ephemeral storage could be also mapped.  
  
Line 273: Line 284:
  
 
'''myvalues.yaml'''
 
'''myvalues.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
 
{{!}} class="code"{{!}}<code class="yml plain">raa</code>
 
 
<code class="yml spaces"> </code><code class="yml plain">...</code>
 
 
<code class="yml spaces"> </code><code class="yml variable">volumes:</code>
 
 
<code class="yml spaces">   </code><code class="yml plain">...</code>
 
  
<code class="yml spaces">   </code><code class="yml variable">health:</code>
+
<source lang="bash">raa
 
+
  ...
<code class="yml spaces">     </code><code class="yml variable">capacity:</code> <code class="yml plain">50Mi</code>
+
  volumes:
 
+
    ...
<code class="yml spaces">     </code><code class="yml variable">storageClassName:</code> <code class="yml string">"<vendor storage class>"</code>
+
    health:
 
+
      capacity: 50Mi
<code class="yml spaces"> </code> <code class="yml plain">...</code>
+
      storageClassName: "<vendor storage class>"
{{!}}}
+
  ...</source>
 
RAA helm chart creates Persistent Volume Claim. It can also optionally create a Persistent Volume (when <code class="yml variable">raa.volumes.health.pv</code> is specified). See how Persistent Volume declared in helm chart:
 
RAA helm chart creates Persistent Volume Claim. It can also optionally create a Persistent Volume (when <code class="yml variable">raa.volumes.health.pv</code> is specified). See how Persistent Volume declared in helm chart:
  
 
'''raa-config-volume.yaml'''
 
'''raa-config-volume.yaml'''
{{{!}} class="wikitable" border="0" cellpadding="0" cellspacing="0"
+
<source lang="bash">{{- with .Values.raa.volumes.health.pv }}
{{!}} class="code"{{!}}<code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .Values.raa.volumes.health.pv</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
apiVersion: v1
 
+
kind: PersistentVolume
<code class="yml variable">apiVersion:</code> <code class="yml plain">v1</code>
+
metadata:
 
+
  name: "{{ tpl .name $ }}"
<code class="yml variable">kind:</code> <code class="yml plain">PersistentVolume</code>
+
  {{- if or ($.Values.raa.labels) (.labels) }}
 
+
  labels:
<code class="yml variable">metadata:</code>
+
  {{- with $.Values.raa.labels }}
 
+
    {{- range $key, $value := . }}
<code class="yml spaces"> </code><code class="yml variable">name:</code> <code class="yml string">"<nowiki>{{ tpl .name $ }}</nowiki>"</code>
+
    {{ $key }}: "{{ tpl $value $ }}"
 
+
    {{- end }}
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- if or ($.Values.raa.labels) (.labels)</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
  {{- with .labels }}
<code class="yml spaces"> </code><code class="yml variable">labels:</code>
+
    {{- range $key, $value := . }}
 
+
    {{ $key }}: "{{ tpl $value $ }}"
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.labels</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- end }}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
  {{- if or ($.Values.raa.annotations) (.annotations) }}
 
+
  annotations:
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- with $.Values.raa.annotations }}
 
+
    {{- range $key, $value := . }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{ $key }}: "{{ tpl $value $ }}"
 
+
    {{- end }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .labels</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
  {{- with .annotations }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- range $key, $value := . }}
 
+
    {{ $key }}: "{{ tpl $value $ }}"
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
    {{- end }}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
  {{- end }}
 
+
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
spec:
 
+
  accessModes:
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    - ReadWriteMany
 
+
  {{- with $.Values.raa.volumes.health }}
 
+
  capacity:
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- if or ($.Values.raa.annotations) (.annotations)</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    storage: "{{ .capacity }}"
 
+
    {{- with .storageClassName }}
<code class="yml spaces"> </code><code class="yml variable">annotations:</code>
+
  storageClassName: "{{ . }}"
 
+
    {{- end }}
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.annotations</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- with .pv.vendorSpec}}
 
+
  {{- toYaml . | nindent 2 }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
+
    {{- end}}
 
+
  {{- end }}
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
+
{{- end }}</source>
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .annotations</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- range $key</code><code class="yml constants">,</code> <code class="yml plain">$value</code> <code class="yml constants">:</code><code class="yml plain">= .</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code> <code class="yml plain">$key</code> <code class="yml constants"><nowiki>}}:</nowiki></code> <code class="yml string">"<nowiki>{{ tpl $value $ }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code> <code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
 
 
<code class="yml variable">spec:</code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">accessModes:</code>
 
 
 
<code class="yml spaces">   </code><code class="yml string bold">-</code> <code class="yml plain">ReadWriteMany</code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with $.Values.raa.volumes.health</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">capacity:</code>
 
 
 
<code class="yml spaces">   </code><code class="yml variable">storage:</code> <code class="yml string">"<nowiki>{{ .capacity }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .storageClassName</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml variable">storageClassName:</code> <code class="yml string">"<nowiki>{{ . }}</nowiki>"</code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- with .pv.vendorSpec</code><code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- toYaml . | nindent 2</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces">   </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code><code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml spaces"> </code><code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
 
 
<code class="yml constants"><nowiki>{{</nowiki></code><code class="yml plain">- end</code> <code class="yml constants"><nowiki>}}</nowiki></code>
 
{{!}}}
 
 
It is enough to define <code class="yml variable">Values.raa.volumes.health.storageClassName</code> and a vendor specific part of Persistent Volume (<code class="yml variable">raa.volumes.health.pv.vendorSpec)</code> in values file:
 
It is enough to define <code class="yml variable">Values.raa.volumes.health.storageClassName</code> and a vendor specific part of Persistent Volume (<code class="yml variable">raa.volumes.health.pv.vendorSpec)</code> in values file:
  

Revision as of 19:37, June 10, 2021

This is a draft page; it has not yet been published.


Find out what to do before deploying Reporting and Analytics Aggregates (RAA).

Related documentation: