67 Commits

Author SHA1 Message Date
Jean-Philippe Evrard
bf069b2311 Revert "Update OSH Author copyrights to OSF"
This reverts commit 178aa271a44956e86f4e962bf815fa827d93c9af.

Change-Id: I38a52d866527dfff2689b618e055f439bc248c13
2018-08-28 17:25:54 +00:00
Matt McEuen
178aa271a4 Update OSH Author copyrights to OSF
This PS updates the "Openstack-Helm Authors" copyright attribution
to be the "OpenStack Foundation", as decided in the 2018-03-20
team meeting:
http://eavesdrop.openstack.org/meetings/openstack_helm/2018/openstack_helm.2018-03-20-15.00.log.html

No other copyright attributions were changed.

Change-Id: I1137dee2ae5728771835f4b33fcaff60fcc22ca9
2018-08-26 17:17:06 -05:00
Steve Wilkerson
d5dc97a431 Prometheus: Remove block duration flags, update cadvisor job
This removes the min_block_duration and max_block_duration flags
from the Prometheus chart, as the suggested best practice is to
use the defaults (2h min, 10% of retention time as max).

This also updates the scrape target configuration for cadvisor to
match the upstream example endpoint for kubernetes versions 1.7.3
and later

Change-Id: I200969d6c4da9d17d0a7d3a34a114ccc5f5ee70f
2018-08-20 13:26:40 -05:00
Steve Wilkerson
faef231b0b Prometheus: Update version to 2.3.2
This updates the Prometheus version to 2.3.2, which includes a fix
for memory leak issues with the kubernetes client and also adds a
dashboard for evaluating prometheus rule evaluation performance

Change-Id: I7b9e7bee114fa149db3733c0dacfefae36be7fa8
2018-08-16 16:48:27 +00:00
Steve Wilkerson
8652e14acb Add auth for prometheus
This adds authentication to Prometheus with an apache reverse
proxy, similar to elasticsearch, kibana and nagios. This adds an
admin user and password via htpasswd along with adding ldap
support.

This required modifying the grafana chart to configure the
prometheus datasource's basic auth credentials in the data sources
provisioning configuration file by checking whether basic auth is
enabled and injecting the username/password defined in the
corresponding endpoint definition.

This also modifies the nagios chart to use the authenticated
endpoint for prometheus, which is required for nagios to
successfully query the prometheus endpoint for its service
checking mechanism

Change-Id: Ia4ccc3c44a89b2c56594be1f4cc28ac07169bf8c
2018-08-08 18:49:45 +00:00
Seungkyu Ahn
a430533e6a Quoting node_select_value in Ingress Controller
In most cases, the ingress controller's nodeSelector key and value
are "node-role.kubernetes.io/ingress" and "true".
Using quote to treat the nodeSelector value as a string.

Change-Id: Ie1745629b90795e4d888d85f35565e6d6350e09b
2018-08-01 02:39:05 +00:00
Steve Wilkerson
a861c27a34 Prometheus: Update command line flags
This updates the default command line flags for Prometheus. It
explicitly sets the HTTP administrative settings to false and
gives a brief explanation of the security concerns associated
with enabling them

This also removes the honor_labels setting where set to false, as
false is the default setting for honor_labels

Change-Id: I69acdbce604864882d642e44c09a5f0b9c454a61
2018-07-27 16:33:37 -05:00
Steve Wilkerson
dc16a897d7 Add missing labels to helm test pods
This adds missing labels to the helm test pods in osh-infra

Change-Id: I618d9089bfde2d847411f5f876f0ff6afd9cce7f
2018-07-10 08:55:40 -05:00
Steve Wilkerson
c26a1b53f6 Update TLS secret templates, remove nagios readiness probe
This updates the TLS secret templates to include the backend
service in the dict supplied to the manifest template, as it is
required for the TLS secret to render correctly.

This also removes the readiness probe from the nagios container in
the deployment for the nagios chart, as it wasn't functioning as
intended due to the port not being available for the probe

Change-Id: Iabcfd40c74938e0497d08ffeeebc98ab722fa660
2018-06-27 18:56:45 -05:00
Steve Wilkerson
b823954787 Ingress: Add initial TLS Support for osh-infra public endpoints
Adds support for TLS on overriden fqdns for public endpoints for
the services that have them in openstack-helm-infra. Currently this
implementation is limited, in that it does not provide support for
dynamically loading CAs into the containers, or specifying them manually
via configuration. As a result only well known or CA's added manually
to containers will be recognised.

Change-Id: I4ab4bbe24b6544b64cd365467e8efb2a421ac3f4
2018-06-26 14:47:19 -05:00
Pete Birley
abb00e97fd Gotpl: remove quote and trunc to suppress output
This PS removes the use of the `quote and truncate` approach to
suppress output from gotpl actions in templates and replaces it
with the recommended practice of defining `$_` instead.

Change-Id: I5fedc3471dcbecef37d2fe1302bf9760b3163467
Signed-off-by: Pete Birley <pete@port.direct>
2018-06-16 16:37:08 -05:00
Zuul
e718d4d39b Merge "Prometheus: update function to live in correct location" 2018-06-14 00:50:59 +00:00
Zuul
01d196e761 Merge "Use current kubernetes API version" 2018-06-13 13:00:58 +00:00
Pete Birley
b6a51fb57f Use current kubernetes API version
This PS moves to use the current API version for kubernetes rcs'
that were previously using `apps/v1beta1`.

Story: 2002205
Task: 21735

Change-Id: Icb4e7aa2392da6867427a58926be2da6f424bd56
Signed-off-by: Pete Birley <pete@port.direct>
2018-06-12 17:35:13 -05:00
Steve Wilkerson
561780f347 PVC monitoring: Add alerting rules and service check for PVCs
This adds a basic check for capacity utilization for persistent
volume claims. To accomplish this, it adds a basic alerting rule
to prometheus that triggers after a persistent volume's usage
exceeds 80%, and triggers 5 minutes after that state has been
reached.  In addition, there is a service check added to the
nagios chart that will query Prometheus to check if the alarm
for that threshhold is firing for any of the volume claims.

Change-Id: I862c860ac479a715733202f679bb151885d7aa7c
2018-06-12 14:28:24 +00:00
Pete Birley
8c7dcd3a91 Prometheus: update function to live in correct location
This PS simply moved the prometheus command line flag function
to its correct location.

Change-Id: I1eef52a645b4a466d2c2ac773d9e9d512ef313fd
2018-06-11 22:07:05 -05:00
Zuul
c037e88071 Merge "Charts: Tidy up openstack-helm-infra charts" 2018-05-24 19:41:14 +00:00
Steve Wilkerson
de9c46bcfa Charts: Tidy up openstack-helm-infra charts
This moves the charts in openstack-helm-infra closer towards a
standard structure. It addresses multiple deviations, including:
missing resources for init containers, incorrect indents for
disabled resources in some charts, incorrect indents for volumes
and volumemounts added via values, missing resources for some
helm test templates, missing helm-toolkit image functions, and
moving the resource template declarations to be under the image
template declarations

Change-Id: I4834a5d476ef7fc69c5583caacc0229050f20a76
2018-05-21 12:58:22 -07:00
Rakesh Patnaik
52c980b10c Prometheus alerts, nagios defn - rabbitmq,mariadb,ES
Change-Id: I71bc9f42aebc268ad2383a5a36a3405fc47c6c9e
2018-05-20 15:16:57 +00:00
Steve Wilkerson
fae7f98c01 Update prometheus service discovery for openstack-exporter
This updates the prometheus service discovery configuration
to define the openstack-exporter service discovery separate from
the other services. This allows for relabeling the instance label
for the openstack-exporter service, removing the potential for
multiple data series being returned by the single stat panels in
the Grafana dashboards for the openstack services. As the other
services perform as expected when exporter pods restart, they
remain configured the same as before.

Change-Id: Iad4c56d31fb553a9629f5a6fd1eac5464207add4
Signed-off-by: Steve Wilkerson <wilkers.steve@gmail.com>
2018-05-15 14:39:43 -05:00
Steve Wilkerson
1c01274207 Update prometheus rule for terminated containers in pods
This updates the prometheus rule for checking for terminated
containers in pods. The previous rule checked for any terminations,
which raised alarms due to completed containers in jobs
being included, which isn't desired behavior. This changes the
expression to check for any containers that have terminated with
a status other than completed

Change-Id: I88e533a56f81f81bd1a81420ecfb7d43ac9e2d0b
2018-05-14 17:27:48 -05:00
Steve Wilkerson
bf314daad5 Prometheus: Remove namespace selector for alertmanager discovery
This ps removes the namespace selector for discovering alertmanager
instances, as it's not required

Change-Id: Ie4dc40f761096d497293d6d98b2bbb906d382101
2018-05-08 00:24:04 +00:00
Sean Eagan
f402171e42 Move to v0.3.1 of kubernetes-entrypoint
Move to v0.3.1 of kubernetes-entrypoint which has 2 breaking changes to
pod dependencies, and also adds support for depending on jobs via
labels.

Change-Id: I2bafc2153ddd46b3833b253a2e7950bccbccf8ed
2018-04-25 12:38:44 -05:00
Zuul
68ad0da16b Merge "Prometheus: Update Alertmanager discovery, fix rules entry" 2018-04-20 14:58:59 +00:00
Zuul
d669b35be7 Merge "Alert rules in prometheus to support nagios based monitoring via alert metric queries" 2018-04-20 14:54:57 +00:00
Steve Wilkerson
e0c4469fdf Prometheus: Update Alertmanager discovery, fix rules entry
Updates the service discovery mechanism used by Prometheus to
identify Alertmanager instances to push alerts to. It moves to
use the 'application' label to identify Alertmanager pods instead of
searching for pods by the label 'name', as the previous definition
was resulting in empty results for Alertmanager targets

This also fixes the name of the prometheus label used to track
alerts for kube-controller-manager, as it was defined incorrect
previously

Change-Id: I1fb194550baf803435722e3a01892e49b44259d1
2018-04-19 21:10:29 +00:00
Steve Wilkerson
e166432a98 Add manifest for image_repo_sync job
This ps proposes adding a common template for the image_repo_sync
jobs for consumption by the charts

Change-Id: I48476d1e4fd94bd1b08b13b46983e3d999f8d8ca
2018-04-19 14:10:08 +00:00
Zuul
49e9084679 Merge "OSH-Infra: Update labels for chart components" 2018-04-18 18:47:08 +00:00
Zuul
626b94e0c8 Merge "Helm-Toolkit: Kubernetes Entrypoint, simplify image dependencies" 2018-04-17 15:11:00 +00:00
Rakesh Patnaik
e8da761ccc Alert rules in prometheus to support nagios based monitoring via alert metric queries
Change-Id: I425dbc1b33d7dcb1aa20a7b2a22bd6b5adfbfa5a
2018-04-17 01:17:33 +00:00
Zuul
8eae6d8509 Merge "OSH-infra: move charts to use ingress manifest in htk" 2018-04-13 22:54:42 +00:00
Zuul
033ed35cb1 Merge "Prometheus: Generate command line flags dynamically" 2018-04-13 21:49:26 +00:00
Steve Wilkerson
7757400edc OSH-infra: move charts to use ingress manifest in htk
This moves all relevant charts in osh-infra to use the htk manifest
template for ingresses, bringing them in line with the charts in
openstack-helm

Change-Id: Ic9c3cc6f0051fa66b6f88ec2b2725698b36ce824
2018-04-13 15:41:12 -05:00
Steve Wilkerson
aaffc4caf0 OSH-Infra: Update labels for chart components
This ps adds more granular node selectors for the charts in osh
infra to match what is currently done in osh

Change-Id: I8957a95053b9fb3ea329fd37ff049cd223a7695d
2018-04-13 08:44:33 -05:00
Pete Birley
b9336ca613 Helm-Toolkit: Kubernetes Entrypoint, simplify image dependencies
This PS simplify the logic for dyanmicly merging the image management
depenencies into pod deps when active.

Change-Id: I0cf6c93173bc5fbce697ac15be8697d3b1326d0a
2018-04-13 08:42:37 -05:00
Zuul
713c9184c0 Merge "Support pod dependencies" 2018-03-30 05:24:05 +00:00
Steve Wilkerson
9bf5fedead Prometheus: Generate command line flags dynamically
This proposes a means for generating the command line flags for
configuring the Prometheus service via the values file instead of
templating out the command line flags used for the service. This
allows flexibility in choosing which flags and values to use when
deploying Prometheus, without needing to modify the chart itself

Change-Id: I74845b96e213403ad743724137a82ce2c78fcd1f
2018-03-26 09:42:59 -05:00
Steve Wilkerson
616c351fa7 Dynamically generate list of rules files for prometheus
This enables the dynamic generation of the list of rules files for
prometheus, driven by the rules added in the appropriate tree under
.Values.conf.prometheus.rules. This removes the necessity of adding
the file name manually in addition to defining the rules in the
rules tree, which should reduce overhead associated with adding
new rules for prometheus to evaluate

Change-Id: Ib768a252c5ea4f2d099df534c3ffcfb2949d7481
2018-03-24 12:25:11 -05:00
Sean Eagan
db15b5e30b Support pod dependencies
Adds support for a new feature of kubernetes-entrypoint, pod
dependencies, that was added in v0.3.0.

Change-Id: I78d9e0545ca3b837cd2386783386a253f7f5a2d6
2018-03-20 10:53:53 -05:00
Zuul
eb3cbf0f95 Merge "yaml cleanup: trim multiline strings" 2018-03-10 07:01:35 +00:00
Chris Wedgwood
3a8c00764c yaml cleanup: trim multiline strings
Change-Id: I7e8f423be2efb84f3116258beca805265ca388f7
2018-03-08 20:18:53 +00:00
Steve Wilkerson
083f8fd8d6 Prometheus: use endpoints section and lookups to set port
This PS moves prometheus to use the endpoints section and lookups
to set the port it serves on.

Change-Id: Ifae665e21128dd566da5a68b9904a94a68df4018
2018-03-08 20:01:01 +00:00
Pete Birley
3c101a6324 dependencies: move dynamic common deps under a 'dynamic.common' key
This PS moves existing dynamic common dependencies under a
'dynamic.common' key to simplify the yaml tree.

Change-Id: I4332bcfdf11197488e7bd5d8cf4c25565ea1c7b6
2018-02-24 17:42:10 -05:00
Pete Birley
e0c688d7ee dependencies: move static dependencies under a 'static' key
This PS moves static dependencies unser a 'static' key to allow
expansion to cover dynamic dependencies.

Change-Id: Ia0e853564955e0fbbe5a9e91a8b8924c703b1b02
2018-02-24 17:39:55 -05:00
Steve Wilkerson
77503d150c Fix prometheus clusterrole name
The clusterrole name for prometheus wasn't referenced correctly in
the clusterrolebinding, resulting in issues with prometheus
operating correctly

Change-Id: I5b843d8a2b6829356098d71503ffce4a66d3198a
2018-02-21 07:51:39 -06:00
Steve Wilkerson
9244fae2bc Remove pvc: key in prometheus chart's manifest tree
The pvc: key was added back to the prometheus chart as part of the
rbac tidy change. This removes it again

Change-Id: I572a4054d53ce5cb382f8b6608397d4f8a7eabd0
2018-02-19 17:10:40 -06:00
Zuul
09b48986de Merge "RBAC: Include release name in cluster roles to prevent collision" 2018-02-19 22:49:54 +00:00
portdirect
515494ca98 RBAC: Include release name in cluster roles to prevent collision
This PS includes the release name in the cluster role to prevent
colision if the chart is deployed multiple times in the same
cluster.

Change-Id: I7166e5ee25b3d4c89879393c5f84c869585a2681
2018-02-19 13:13:56 -06:00
Steve Wilkerson
a153f5474f Add rules files to prometheus dynamically
This dynamically adds the rules files for prometheus to the
prometheus-etc configmap, and also dynamically adds volume mounts
to the prometheus statefulset for each rules file

This also removes the empty rules file trees in the prometheus
values.yaml file

Change-Id: I9acbbe57d71a23f69e9e172b2f3ad66985e99574
2018-02-19 17:55:10 +00:00
Sean Eagan
641c79c902 Add deep merge utility to helm-toolkit
Adds "helm-toolkit.utils.merge" which is a replacement for the
upstream sprig "merge" function which didn't quite do what we
wanted, specifically it didn't merge slices, it just overrode
one with the other.  This PS also updates existing callsites
of the sprig merge with "helm-toolkit.utils.merge".

Change-Id: I456349558d4cf941d1bcb07fc76d0688b0a10782
2018-02-13 10:08:50 -06:00