[HV-VES-KAFKA] Add doc updates for hv-ves kafka
[dcaegen2.git] / docs / sections / services / ves-hv / deployment.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3
4 .. _deployment:
5
6 Deployment
7 ============
8
9 To run HV-VES Collector container you need to specify required command line options and environment variables.
10
11 Command line parameters can be specified either by using long form (--long-form) or short form (-s)
12 followed by an argument if needed (see `Arg` column in table below).
13 These parameters can be omitted if the corresponding environment variables are set.
14 These variables are named after the command line option name rewritten using `UPPER_SNAKE_CASE` and prepended
15 with `VESHV_` prefix, for example `VESHV_CONFIGURATION_FILE`.
16
17 Command line options have precedence over environment variables in cases when both are present.
18
19 Currently HV-VES requires single command line parameter which points to base configuration file.
20
21 .. csv-table::
22     :widths: auto
23     :delim: ;
24     :header: Long form , Short form , Arg , Env form , Description
25
26     configuration-file ; c ; yes ; VESHV_CONFIGURATION_FILE  ; Path to JSON file containing HV-VES configuration
27
28 Environment variables that are required by HV-VES are used by collector for provisioning of run-time configuration
29 and are provided by DCAE platform.
30
31 .. csv-table::
32     :widths: auto
33     :delim: ;
34     :header: Environment variable name , Description
35
36     CONSUL_HOST            ; Hostname under which Consul service is available
37     CONFIG_BINDING_SERVICE ; Hostname under which Config Binding Service is available
38     HOSTNAME               ; Configuration key of HV-VES as seen by CBS, usually *dcae-hv-ves-collector*
39
40 There is also optional command line parameter which configures container-internal port
41 for Healthcheck Server API (see :ref:`healthcheck_and_monitoring`).
42
43 .. csv-table::
44     :widths: auto
45     :delim: ;
46     :header: Long form , Short form , Arg , Env form , Description
47
48     health-check-api-port ; H ; yes ; VESHV_HEALTH_CHECK_API_PORT  ; Health check rest api listen port
49
50 .. _configuration_file:
51
52 Configuration file
53 ------------------
54
55 File must provide base configuration for HV-VES Collector in JSON format.
56
57 Some entries in configuration can also be obtained from Config Binding Service (see :ref:`run_time_configuration`).
58 **Every entry defined in configuration file will be OVERRIDEN if it is also present in run-time configuration.**
59
60 Following JSON shows every possible configuration option. Default file shipped with HV-VES container
61 can be found in the collector's repository (see :ref:`repositories`).
62
63 .. literalinclude:: resources/base-configuration.json
64     :language: json
65
66
67 The configuration is split into smaller sections.
68 Tables show restrictions on fields in file configuration and short description.
69
70 .. csv-table::
71     :widths: auto
72     :delim: ;
73     :header-rows: 2
74
75     Server
76     Key                         ; Value type ; Description
77     server.listenPort           ; number     ; Port on which HV-VES listens internally
78     server.idleTimeoutSec       ; number     ; Idle timeout for remote hosts. After given time without any data exchange, the connection is closed
79
80 .. csv-table::
81     :widths: auto
82     :delim: ;
83     :header-rows: 2
84
85     Config Binding Service
86     Key                      ; Value type ; Description
87     cbs.firstRequestDelaySec ; number     ; Delay of first request to Config Binding Service in seconds
88     cbs.requestIntervalSec   ; number     ; Interval of configuration requests in seconds
89
90 .. csv-table::
91     :widths: auto
92     :delim: ;
93     :header-rows: 2
94
95     Security
96     Key                                   ; Value type ; Description
97     security.sslDisable                   ; boolean    ; Disables SSL encryption
98     security.keys.keyStoreFile            ; String     ; Key store path used in HV-VES incoming connections
99     security.keys.keyStorePasswordFile    ; String     ; Key store password file used in HV-VES incoming connections
100     security.keys.trustStoreFile          ; String     ; Path to file with trusted certificates bundle used in HV-VES incoming connections
101     security.keys.trustStorePasswordFile  ; String     ; Trust store password file used in HV-VES incoming connections
102
103 All security entries are mandatory with `security.sslDisable` set to `false`.
104 Otherwise only `security.sslDisable` needs to be specified. If `security.sslDisable` flag is missing, then it is  interpreted as it was set to `false`.
105
106 .. csv-table::
107     :widths: auto
108     :delim: ;
109     :header-rows: 2
110
111     Uncategorized
112     Key                  ; Value type ; Description
113     logLevel             ; String     ; Log level on which HV-VES publishes all log messages. Valid argument values are (case insensitive): ERROR, WARN, INFO, DEBUG, TRACE.
114
115
116 Horizontal Scaling
117 ------------------
118
119 Kubernetes command line tool (`kubectl`) is recommended for manual horizontal scaling of HV-VES Collector.
120
121 To scale HV-VES deployment you need to determine its name and namespace in which it is deployed.
122 For default OOM deployment, HV-VES full deployment name is `deployment/dep-dcae-hv-ves-collector`
123 and it is installed under `onap` namespace.
124
125 1. If the namespace is unknown, execute the following command to determine possible namespaces.
126
127 .. code-block:: bash
128
129     kubectl get namespaces
130
131 2. Find desired deployment (in case of huge output you can try final call in combination with `grep hv-ves` command).
132 You can also see current replicas amount under a corresponding column.
133
134 .. code-block:: bash
135
136     ONAP_NAMESPACE=onap
137     kubectl get --namespace ${ONAP_NAMESPACE} deployment
138
139 3. To scale deployment, execute the following commands:
140
141 .. code-block:: bash
142
143     DEPLOYMENT_NAME=deployment/dep-dcae-hv-ves-collector
144     DESIRED_REPLICAS_AMOUNT=5
145     kubectl scale --namespace ${ONAP_NAMESPACE} ${DEPLOYMENT_NAME} --replicas=${DESIRED_REPLICAS_AMOUNT}
146
147 Result:
148
149 .. code-block:: bash
150
151     kubectl get pods --namespace ${ONAP_NAMESPACE} --selector app=dcae-hv-ves-collector