blob: 8485bb74332ad599df3e215b715402f6a3992f68 [file] [log] [blame]
Pamela Dragosh5fc2fdb2019-05-17 09:42:27 -04001.. This work is licensed under a
2.. Creative Commons Attribution 4.0 International License.
3.. http://creativecommons.org/licenses/by/4.0
4
5
6Policy OOM Installation
7-----------------------
8
9.. contents::
10 :depth: 2
11
Pamela Dragosh0c56e112019-07-02 15:01:40 -040012Policy OOM Charts
13*****************
14The policy K8S charts are located in the `OOM repository <https://gerrit.onap.org/r/gitweb?p=oom.git;a=tree;f=kubernetes/policy;h=78576c7a0d30cb87054e9776326cdde20986e6e3;hb=refs/heads/master>`_.
Pamela Dragosh5fc2fdb2019-05-17 09:42:27 -040015
Pamela Dragosh0c56e112019-07-02 15:01:40 -040016Please refer to the OOM documentation on how to install and deploy ONAP.
Pamela Dragosh5fc2fdb2019-05-17 09:42:27 -040017
Pamela Dragosh0c56e112019-07-02 15:01:40 -040018Policy Pods
19***********
20To get a listing of the Policy Pods, run the following command:
Pamela Dragosh5fc2fdb2019-05-17 09:42:27 -040021
Pamela Dragosh0c56e112019-07-02 15:01:40 -040022.. code-block:: bash
23
ramagpa0fa1532020-10-17 17:53:25 +000024 kubectl get pods -n onap | grep dev-policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -040025
ramagpa0fa1532020-10-17 17:53:25 +000026 dev-policy-59684c7b9c-5gd6r 2/2 Running 0 8m41s
27 dev-policy-apex-pdp-0 1/1 Running 0 8m41s
28 dev-policy-api-56f55f59c5-nl5cg 1/1 Running 0 8m41s
29 dev-policy-distribution-54cc59b8bd-jkg5d 1/1 Running 0 8m41s
30 dev-policy-mariadb-0 1/1 Running 0 8m41s
31 dev-policy-xacml-pdp-765c7d58b5-l6pr7 1/1 Running 0 8m41s
Pamela Dragosh0c56e112019-07-02 15:01:40 -040032
ramagpa0fa1532020-10-17 17:53:25 +000033.. note::
34 To get a listing of the Policy services, run this command:
35 kubectl get svc -n onap | grep policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -040036
37Accessing Policy Containers
38***************************
39Accessing the policy docker containers is the same as for any kubernetes container. Here is an example:
40
41.. code-block:: bash
42
43 kubectl -n onap exec -it dev-policy-policy-xacml-pdp-584844b8cf-9zptx bash
44
jhh383db682019-11-20 20:34:12 -060045Installing or Upgrading Policy
46******************************
Pamela Dragosh0c56e112019-07-02 15:01:40 -040047The assumption is you have cloned the charts from the OOM repository into a local directory.
48
49**Step 1** Go into local copy of OOM charts
50
51From your local copy, edit any of the values.yaml files in the policy tree to make desired changes.
52
53**Step 2** Build the charts
54
55.. code-block:: bash
56
57 make policy
ramagpa0fa1532020-10-17 17:53:25 +000058 make SKIP_LINT=TRUE onap
59
60.. note::
61 SKIP_LINT is only to reduce the "make" time
Pamela Dragosh0c56e112019-07-02 15:01:40 -040062
63**Step 3** Undeploy Policy
64After undeploying policy, loop on monitoring the policy pods until they go away.
65
66.. code-block:: bash
67
68 helm del --purge dev-policy
ramagpa0fa1532020-10-17 17:53:25 +000069 kubectl get pods -n onap | grep dev-policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -040070
71**Step 4** Delete NFS persisted data for Policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -040072
73.. code-block:: bash
74
ramagpa0fa1532020-10-17 17:53:25 +000075 rm -fr /dockerdata-nfs/dev/policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -040076
jhh4efa6f42020-06-09 11:28:08 -050077**Step 5** Make sure there is no orphan policy database persistent volume or claim.
78
79First, find if there is an orphan database PV or PVC with the following commands:
80
81.. code-block:: bash
82
83 kubectl get pvc -n onap | grep policy
84 kubectl get pv -n onap | grep policy
85
86If there are any orphan resources, delete them with
87
88.. code-block:: bash
89
90 kubectl delete pvc <orphan-policy-mariadb-resource>
91 kubectl delete pv <orphan-policy-mariadb-resource>
92
93**Step 6** Re-Deploy Policy pods
94
Pamela Dragosh0c56e112019-07-02 15:01:40 -040095After deploying policy, loop on monitoring the policy pods until they come up.
96
97.. code-block:: bash
98
jhh518b8232019-09-10 17:40:13 -050099 helm deploy dev-policy local/onap --namespace onap
ramagpa0fa1532020-10-17 17:53:25 +0000100 kubectl get pods -n onap | grep dev-policy
Pamela Dragosh0c56e112019-07-02 15:01:40 -0400101
jhh383db682019-11-20 20:34:12 -0600102Restarting a faulty component
103*****************************
104Each policy component can be restarted independently by issuing the following command:
105
jhh4efa6f42020-06-09 11:28:08 -0500106.. code-block:: bash
107
108 kubectl delete pod <policy-pod> -n onap
jhh383db682019-11-20 20:34:12 -0600109
Pamela Dragosh0c56e112019-07-02 15:01:40 -0400110Exposing ports
111**************
112For security reasons, the ports for the policy containers are configured as ClusterIP and thus not exposed. If you find you need those ports in a development environment, then the following will expose them.
113
114.. code-block:: bash
115
116 kubectl -n onap expose service policy-api --port=7171 --target-port=6969 --name=api-public --type=NodePort
Pamela Dragosh5fc2fdb2019-05-17 09:42:27 -0400117
jhh383db682019-11-20 20:34:12 -0600118Overriding certificate stores
119*******************************
jhh09887c22020-05-19 13:00:13 -0500120Policy components package default key and trust stores that support https based communication with other
121AAF-enabled ONAP components. Each store can be overridden at installation.
jhh383db682019-11-20 20:34:12 -0600122
123To override a default keystore, the new certificate store (policy-keystore) file should be placed at the
124appropriate helm chart locations below:
125
jhh09887c22020-05-19 13:00:13 -0500126* oom/kubernetes/policy/charts/drools/resources/secrets/policy-keystore drools pdp keystore override.
127* oom/kubernetes/policy/charts/policy-apex-pdp/resources/config/policy-keystore apex pdp keystore override.
128* oom/kubernetes/policy/charts/policy-api/resources/config/policy-keystore api keystore override.
129* oom/kubernetes/policy/charts/policy-distribution/resources/config/policy-keystore distribution keystore override.
130* oom/kubernetes/policy/charts/policy-pap/resources/config/policy-keystore pap keystore override.
131* oom/kubernetes/policy/charts/policy-xacml-pdp/resources/config/policy-keystore xacml pdp keystore override.
jhh383db682019-11-20 20:34:12 -0600132
133In the event that the truststore (policy-truststore) needs to be overriden as well, place it at the appropriate
134location below:
135
jhh09887c22020-05-19 13:00:13 -0500136* oom/kubernetes/policy/charts/drools/resources/configmaps/policy-truststore drools pdp truststore override.
137* oom/kubernetes/policy/charts/policy-apex-pdp/resources/config/policy-truststore apex pdp truststore override.
138* oom/kubernetes/policy/charts/policy-api/resources/config/policy-truststore api truststore override.
139* oom/kubernetes/policy/charts/policy-distribution/resources/config/policy-truststore distribution truststore override.
140* oom/kubernetes/policy/charts/policy-pap/resources/config/policy-truststore pap truststore override.
141* oom/kubernetes/policy/charts/policy-xacml-pdp/resources/config/policy-truststore xacml pdp truststore override.
142
143When the keystore passwords are changed, the corresponding component configuration ([1]_) should also change:
144
145* oom/kubernetes/policy/charts/drools/values.yaml
146* oom/kubernetes/policy-apex-pdp/resources/config/config.json
147* oom/kubernetes/policy-distribution/resources/config/config.json
148
149This procedure is applicable to an installation that requires either AAF or non-AAF derived certificates.
150The reader is refered to the AAF documentation when new AAF-compliant keystores are desired:
151
ramagp8e43c2b2020-10-15 05:47:38 +0000152* `AAF automated configuration and Certificates <https://docs.onap.org/projects/onap-aaf-authz/en/latest/sections/configuration/AAF_4.1_config.html#typical-onap-entity-info-in-aaf>`_.
jhh09887c22020-05-19 13:00:13 -0500153* `AAF Certificate Management for Dummies <https://wiki.onap.org/display/DW/AAF+Certificate+Management+for+Dummies>`_.
154* `Instructional Videos <https://wiki.onap.org/display/DW/Instructional+Videos>`_.
jhh383db682019-11-20 20:34:12 -0600155
156After these changes, follow the procedures in the :ref:`Installing or Upgrading Policy` section to make usage of
157the new stores effective.
158
159Additional PDP-D Customizations
jhh518b8232019-09-10 17:40:13 -0500160*******************************
161
162Credentials and other configuration parameters can be set as values
163when deploying the policy (drools) subchart. Please refer to
ramagpa4ca8c22020-10-19 15:55:47 +0000164`PDP-D Default Values <https://git.onap.org/oom/tree/kubernetes/policy/components/policy-drools-pdp/values.yaml>`_
jhh518b8232019-09-10 17:40:13 -0500165for the current default values. It is strongly recommended that sensitive
166information is secured appropriately before using in production.
167
168Additional customization can be applied to the PDP-D. Custom configuration goes under the
169"resources" directory of the drools subchart (oom/kubernetes/policy/charts/drools/resources).
170This requires rebuilding the policy subchart
uj426b4d7388b2020-05-14 14:23:56 -0400171(see section :ref:`Installing or Upgrading Policy`).
jhh518b8232019-09-10 17:40:13 -0500172
173Configuration is done by adding or modifying configmaps and/or secrets.
174Configmaps are placed under "drools/resources/configmaps", and
175secrets under "drools/resources/secrets".
176
177Custom configuration supportes these types of files:
178
179* **\*.conf** files to support additional environment configuration.
180* **features\*.zip** to add additional custom features.
181* **\*.pre.sh** scripts to be executed before starting the PDP-D process.
182* **\*.post.sh** scripts to be executed after starting the PDP-D process.
183* **policy-keystore** to override the PDP-D policy-keystore.
184* **policy-truststore** to override the PDP-D policy-truststore.
185* **aaf-cadi.keyfile** to override the PDP-D AAF key.
186* **\*.properties** to override or add properties files.
jhh09887c22020-05-19 13:00:13 -0500187* **\*.xml** to override or add xml configuration files.
188* **\*.json** to override json configuration files.
189* **\*settings.xml** to override maven repositories configuration .
jhh518b8232019-09-10 17:40:13 -0500190
191Examples
192^^^^^^^^
193
194To *disable AAF*, simply override the "aaf.enabled" value when deploying the helm chart
195(see the OOM installation instructions mentioned above).
196
197To *override the PDP-D keystore or trustore*, add a suitable replacement(s) under
198"drools/resources/secrets". Modify the drools chart values.yaml with
199new credentials, and follow the procedures described at
uj426b4d7388b2020-05-14 14:23:56 -0400200:ref:`Installing or Upgrading Policy` to redeploy the chart.
jhh518b8232019-09-10 17:40:13 -0500201
202To *disable https* for the DMaaP configuration topic, add a copy of
203`engine.properties <https://git.onap.org/policy/drools-pdp/tree/policy-management/src/main/server/config/engine.properties>`_
204with "dmaap.source.topics.PDPD-CONFIGURATION.https" set to "false", or alternatively
205create a ".pre.sh" script (see above) that edits this file before the PDP-D is
206started.
jhh09887c22020-05-19 13:00:13 -0500207
208To use *noop topics* for standalone testing, add a "noop.pre.sh" script under
209oom/kubernetes/policy/charts/drools/resources/configmaps/:
210
211.. code-block:: bash
212
213 #!/bin/bash
214 sed -i "s/^dmaap/noop/g" $POLICY_HOME/config/*.properties
215
216
217.. rubric:: Footnotes
218
219.. [1] There is a limitation that store passwords are not configurable for policy-api, policy-pap, and policy-xacml-pdp.