140 Commits

Author SHA1 Message Date
portdirect
f73200e4d1 readiness: test apache APIs provide http response to request
This PS updates the readiness probes to test for an http response
to requests.

Change-Id: If102b4f247cc8524ceb02e6b2d22cd854a8fb9d2
2018-01-07 02:15:10 +00:00
Zuul
5d91148986 Merge "Oslo-messaging: remove unused admin credentials from values.yaml" 2018-01-06 18:49:55 +00:00
portdirect
4b9c2c7922 Oslo-messaging: remove unused admin credentials from values.yaml
This PS remove the admin credentials from the values.yaml, which
have never been leveraged.

Change-Id: Ifb1cdefd1c52b8a2a2fb3a627393d305823e74ec
2018-01-05 10:22:53 -05:00
portdirect
5a2f71ebdf Ingress: Allow annotations to be dyanmicly driven
This PS allows the ingress rules to be dynamicly driven from the
values.yaml, permitting the ingress cotnroller to ba changed and
custom rules to be applied: eg whitelisting of clients.

Change-Id: Ica6b4692ff9b6b77d1efe6bae212a1227e56ca66
2018-01-05 00:29:05 -05:00
portdirect
9944b0d84f RBAC: add rules to all remaing helm test pods
This PS adds RBAC rules for all remaining helm test pods
in OpenStack-Helm.

Change-Id: Ib44d5fdc8c147f2cbecec51cc4767116f3adb6b2
2017-12-29 14:09:43 -05:00
portdirect
fa2620d54b RBAC for OSH
This PS applys RBAC rules to OSH, based off the work
done in https://review.openstack.org/#/c/526464/

Change-Id: I541b0ac1a3972566ef2b66571ae32744dab70c17
2017-12-26 10:24:19 -05:00
Steve Wilkerson
5bc7ded909 Update names of helm test pods for openstack services
This updates the names of the helm test pods to give all services
in OSH-infra/OSH a uniform '{{ .Release.Name }}-test' name, which
allows for easier gathering of test results across all deployed
services

Change-Id: I24df7a18d32b99d1ffaad19647ef724316e2fe20
2017-12-14 14:03:12 +00:00
portdirect
a4fa122e43 Images: Keystone service specific explicit image names
This PS makes the service-specific images for Keystone have
explicit names, allowing simple over-riding of images for an
entire site.

Change-Id: I0b50d07fc0c2e00ab7803dd4c986c8a26e25ea49
2017-11-28 23:24:55 -05:00
Hyunsun Moon
0808cf5198 Add option to set external policy to local for openstack services
External traffic policy "local" would be preffered when openstack
service is accessed from external via node port. This option has an
effect only when service node port is enabled.

Change-Id: Ic68cfc59dc39dc842d4790deffa70efe433dd7a6
2017-11-02 15:07:21 +09:00
intlabs
fe6107cf76 Images: Update values to allow simple parse of images being used
This PS updates the values file layout for images to allow simple
parsing of the images in use by charts, allowing them to be queried
and modified much more simply. By moving the image tags to a 'tags'
key, we can extend the options used simply to accomodate extra
options simply (eg prefixing the tag for use with an internal
registry) or pre-pulling the images to reduce chart deploy failure.

Change-Id: I9ec1dbb00d997ab6cb021bf0b698f7aae740e95d
2017-10-23 10:05:20 -05:00
Jenkins
a19dba192a Merge "Logging: Direct transfer and custom logs for apache to stdout" 2017-10-12 19:55:29 +00:00
Steve Wilkerson
ea14357eeb Logging: Direct transfer and custom logs for apache to stdout
Directs transferlogs in apache to stdout to align with the other
services in openstack-helm

Change-Id: If9e203ee19e125b390e10c0ee18f39e8df43b7db
2017-10-11 03:21:07 +00:00
Grzegorz Grasza (xek)
1fe3ca34c9 Change entrypoint version
New kubernetes-entrypoint version was released. K8s-entrypoint
authors maintain images at Quay. The image uses CoreOS, which
is more lightweight than the current Ubuntu image, so it
should lessen the burden on the infrastructure.

Change-Id: Id8c2a4d065550ffbd64476377247cccf213b58e1
Partial-Implements: blueprint entrypoint-namespaces
2017-10-10 15:59:08 +02:00
Sean Larimore
d1e775547c Adding database drop jobs
Implemented Kubernetes jobs to drop a database for an OpenStack service
on deletion of Helm chart. This job is configurable to be enabled or
disabled in the values.yaml file for each chart.

Change-Id: Ia1a0834cb43c7e883aaf507a7c7683fa1cf4e838
2017-09-27 09:44:28 -06:00
Pete Birley
5e8be5c339 Remove hacked OSLO genconfig tool
This PS removes the pregenerated config templates producing using
the hacked oslo-genconfig tool. This results in both a much smaller
codebase and also more readable configuration by removing the
requirement to specify settings via oslo namespaced references.

This initial PS applies only to Keystone, A follow up will extend to
all remaining services.

Partially implements: blueprint remove-pregenerated-config-templates
See: https://blueprints.launchpad.net/openstack-helm/+spec/remove-pregenerated-config-templates

Change-Id: I3ced7ad02c703c767925a17b1a18f6158a878e83
2017-09-19 21:51:26 -05:00
lukepatrick
0f858411a1 Fix keystone-credential-rotate CrashLoopBackOff
Keystone Credential Rotate bug has a string
 where a number is expected in fernet-manage.py

Change-Id: I8a5099777a6c16c6b3d56dbf387a3281a4d4a6aa
2017-09-06 19:09:56 -06:00
Pete Birley
b120667031 Endpoint lookups: fix typo in overrides
This PS fixes a typo in the endpoint lookup function and input.

Change-Id: I6ff6d68bf82e1e1f70438a7017f4e1a6df7f59a7
2017-09-06 11:15:54 -05:00
Pete Birley
bede94c835 Endpoint lookup namespace and fqdn support
This PS adds namespace and fqdn support to endpoint lookup functions,
it also permits over-riding of the puplic endpoint for ingress.

Change-Id: Ib61c5c00a214d75fe85fbffe9080c2ae88bd8cb9
2017-08-31 19:06:33 +00:00
Pete Birley
ceb30e8cc7 Jobs: Consoloate on heat-engine for admin jobs where possible.
This ps moves to use a container sultaible for use as the heat engine
for all possible admin jobs - it is lighter than the kolla-toolbox image
and makes it easy to swap out to other image sets. This is as the heat
engine container should contain the openstack client (with all required
libs for the cloud) and the oslo_db supporting libs required by the db
management jobs, as well as the oslo_messaging libs required for future
rabbitmq management expansion.

Change-Id: I5451c15c8fb49c85b4f254cc60156420bee2efea
2017-08-29 04:34:26 +00:00
Pete Birley
4458e2c9b9 Keystone: Fix limits and requests for resources
There were some erros in the limit and requests for resources in
some of the keystone pods. This PS resolves the issue.

Change-Id: I5f8eed1a22a42621654198ab9b844914ba0aade8
2017-08-28 10:41:36 -05:00
Pete Birley
7cfd182929 Security: Make policy fully configurable via helm values
This PS moves the policy.json to be fully driven by gotpl,
allowing full configuration without editing the template.

Nova and Cinder are addressed in the seperate patchsets:
 * https://review.openstack.org/#/c/498215/
 * https://review.openstack.org/#/c/498216/

Change-Id: Ia2be5fb4e460d41034fdadbbefc1e48d0869e023
2017-08-26 17:50:22 -05:00
Mateusz Blaszkowski
fc9677f718 Fix for appending custom volumes
Before this change, there was no ability to append custom volume for
any of the services. The reason was a missing new line character, so
the templates were formatted like this:
- name: pod-shared
  mountPath: /tmp/pod-shared - mountPath: /tmp/test2
  name: test2

Apart from that, for some of the services (mostly job-bootstrap) invalid
indentation for custom volumes (and their mounts) was set.

Closes-Bug: 1712745
Change-Id: Ib57c76a34c0e28ad9e67ea47d1fc250b17711a42
Signed-off-by: Mateusz Blaszkowski <mateusz.blaszkowski@intel.com>
2017-08-24 06:24:47 -04:00
Pete Birley
1fd7f66783 Helm-Toolkit: Configmap templater
This PS adds a configmap teplater helper to helm-toolkit. It makes it
simpler to write consistent charts that supports over-riding of all
values.

Change-Id: I9a587999859ea02802485eb25a3f0ebec8c712a8
2017-08-23 08:06:38 -05:00
Dae Seong Kim
aacd11e361 Add Tempest script in helm test framework
Now, openstack-helm support "helm test" function, and It execute rally
container.
Rally also can test Tempest itself, so this fix will be add tempest
test in rally container.

Change-Id: I2c2f684f6583f2a3d9c7279a3d85cb242934e90e
Implements: blueprint add-tempest-in-helm-test
2017-08-16 16:56:10 +09:00
Jenkins
a95845062f Merge "Add a default mode to all charts missing it" 2017-08-11 20:05:52 +00:00
Darla Ahlert
afeb03879b Add a default mode to all charts missing it
This ps adds missing defaultMode to any chart missing it
on the configmap for volumes

Change-Id: If996d137fe1f4f5547dcbf43d9883924f192db57
2017-08-11 13:18:55 -05:00
Pete Birley
53966ecbe1 Bug: Fixs nodeport indentation in keystone and barbican
This PS fixes the nodeport indentation in keystone and barbican.

Change-Id: I3903fcf3b1a3309b6b5e6324053682e7418cb0bc
2017-08-11 09:19:49 -05:00
Pete Birley
ff8744a9b9 Licence: Remove licence header from rendered files
This PS removes the licence header from rendered output from tiller,
significantly reducing the configmap size of charts deployed to the
cluster.

Change-Id: I5d1b246f2068f3b83bf59ba79fe8b88bbc9a6161
2017-08-07 17:16:13 -05:00
Pete Birley
35601e2bd3 Charts: make manifests optional for all OpenStack elements
This PS allows the rendering of manifests to be controlled. It enables
both increased control over deployment when required but also makes
development of a feature easier to target.

Change-Id: I1716e8ee23fe5c53f935bd739ea283bc4a2a9963
2017-08-07 14:59:48 -05:00
Pete Birley
8f8a80019a Jobs: Add labels to all jobs
This PS adds labels to all jobs in OpenStack-Helm, allowing them to be
found by label searches. This makes management of large clusters using
tools like Armada easier.

Change-Id: I49b2cb7a94fab96958f187ca11e2c2a0c80ff843
2017-08-05 20:17:12 +00:00
Michał Dulko
cfab320f26 Add setup and rotate job for credential keys
Keystone is using keys to encrypt credentials saved into the database.
The mechanism is very similar to fernet tokens. This commit implements a
job setting key repository up and rotate job for those keys. All is
based on implementation of fernet tokens.

Change-Id: I88faf1d02d2b317563e8603cebba542f8b133c6a
Closes-Bug: 1693807
2017-08-02 13:22:05 +02:00
Michał Dulko
03543a3d53 Add support for Keystone's fernet tokens
Keystone supports (and that's a default setting since Ocata) using
non-persistent fernet tokens instead of UUID tokens written into the DB.
This setting is in some cases better in terms of performance and
manageability (no more tokens DB table cleanups). OpenStack-Helm should
be able to support it.

General issue with fernet tokens is that keys used to encrypt them need
to be persistent and shared accross the cluster. Moreover "rotate"
operation generates a new key, so key repository will change over time.

This commit implements fernet tokens support by:
* A 'keystone-fernet-keys' secret is created to serve as keys repository.
* New fernet-setup Job will populate secret with initial keys.
* New fernet-rotate CronJob will be run periodically (weekly by default)
  and perform key rotation operation and update the secret.
* Secret is attached to keystone-api pods in /etc/keystone/fernet-tokens
  directory.

Turns out k8s is updating secrets attached to pods automatically, so
because of Keystone's fernet tokens implementation, we don't need to
worry about synchronization of the key repository. Everything should be
fine unless fernet-rotate job will run before all of the pods will
notice the change in the secret. As in real-world scenario you would
rotate your keys no more often than once an hour, this should be totally
fine.

Implements: blueprint keystone-fernet-tokens
Change-Id: Ifc84b8c97e1a85d30eb46260582d9c58220fbf0a
2017-08-02 13:22:05 +02:00
Pete Birley
f30cbcf108 Update pod affinity to allow customisation
This PS updates the pod affinity function to allow customisation by
operators at the point of deployment.

Change-Id: I8b7b2f584e990e068051d9a6d5cc7b1e1adb5aa5
2017-07-28 15:02:47 +00:00
Pete Birley
cbae720d1d Values: Move mounts to pod key
This PS moves the mounts key to be under the pod key in the values.
It brings further consolation of related configuration params to be
nested under common keys across all charts.

Change-Id: If9963e4f8b438847e2fcad3bdd8c0d71ca9ecdd8
2017-07-14 10:44:35 -05:00
Pete Birley
4d066332a7 Values: Move replicas to pod key
This PS move s the replicas key to be under the pod key in the values.
It brings further consolation of related configuration params to be
nested under common keys across all charts.

Change-Id: I420b06debd0a62ba5d83497be43ff6c49c49d339
2017-07-13 23:08:08 -05:00
Pete Birley
20527cb57c Move k8s pod params under common key
This PS moves K8s pod params under a common key.

Change-Id: Ib4e72e82a4f1540fa800c39d0dcc91b286d96c93
2017-07-11 23:28:47 +00:00
Pete Birley
37b9c2c7b5 Keystone: Chart cleanup
This PS cleans up the values file, and renames some manifests to better
reflect their function.

Change-Id: Ia48db0b583b2236d554e2f12532601413fb1a01e
2017-07-09 14:38:28 -05:00
Tin Lam
670a78bcbe Fix file permission and readOnly flag
This patchset enforces stricter file permission on *-etc configmap and
sets readOnly flag to true in a number of charts.

Change-Id: I233689a5d56dd1352e0d81997a94b4cdd6bed5d2
Signed-off-by: Tin Lam <tin@irrational.io>
2017-07-08 13:24:14 -05:00
Pete Birley
ac06f49849 Unify and normalise K8s Resources and Upgrade Strategy
This PS unifies and normalises Kubernetes resource allocation and
update strategy across all OpenStack-Helm elements.

Change-Id: Ia41fc453cb5191fa447ca6e1aa0f5b431c939dc8
2017-07-06 17:48:16 +00:00
Pete Birley
c221fa5248 Secret and endpoint standardisation.
This PS moves keystone credentials to the endpoints section within
the values.yaml, and also adds a 'secrets' key, allowing standardiation
of secrets and credential management across OpenStack-Helm.

Change-Id: I86a21e625afd822379ac11351603b2c606a3769f
2017-07-05 12:22:04 -05:00
Jenkins
2d7fe938c0 Merge "Fix MultiOpt options in gen-oslo-openstack-helm" 2017-07-05 13:46:14 +00:00
Michał Dulko
9eaa08678c Fix MultiOpt options in gen-oslo-openstack-helm
gen-oslo-openstack-helm generated configuration file templates in
incorrect form, causing setting mulitple values in Values.yaml to
produce something like:

  foo=barfoo=baz

This commit fixes this in the generator and updates config file
templates to generate configs correctly:

  foo=bar
  foo=baz

Change-Id: Iea661dcf1710987b2e111d7141ba888f01c44a50
Closes-Bug: 1699581
2017-07-04 17:26:06 +02:00
Pete Birley
c5bbc97ab7 Soft pod anti-affinity for all pods
This PS adds soft anti-affinity to all pods in OS-H. By doing so
resiliancy is improved by attempting to ensure that pods are created
on seperate nodes.

Change-Id: I0c1092498f7a1e44218ef785ca3f73fa9f49819c
2017-07-03 14:15:40 -05:00
Pete Birley
c0cf2337a2 Ingress controller for public endpoints
This PS provides the framework for Ingress controller based access to
public APIs.

Services covered:
 * Barbican
 * Cinder
 * Glance
 * Heat
 * Horizon
 * Keystone
 * Magnum
 * Mistral
 * Neutron
 * Nova
 * Senlin

Change-Id: I82d55f6ca41859ebed3312ec7d95b353df09e772
Implements: blueprint api-ingress
External-Tracking-Id: OSH-58, OSH-62
2017-06-28 17:37:10 -05:00
Pete Birley
198ce69e71 Keystone: Member role fixes
This PS makes the initial Keystone Admin and Service account users
members of the projects that they are in.

Change-Id: I2de081a216b7e7b99d301ab605c84d882cdb5840
2017-06-24 16:28:56 +00:00
Jenkins
359827ef4a Merge "Remove admin_token_auth" 2017-06-22 01:13:34 +00:00
Pete Birley
a7503a7d3f Kubernetes Entrypoint: Lookup service names for dependency checks
The existing entrypoint logic used static names to reolve dependencies.
This prevented the service names, and thus the hostnames of services
being altered. This PS resolves that issue by looking up the service name
from the endpoints specified in the values for a chart.

Partial-Implements: blueprint enhance-entrypoint-dependency-checking
External-Tracking-Id: OSH-21
Change-Id: Ib49490f332f8cd88e98c50d9335dfd314a170936
2017-06-20 08:51:36 -05:00
Tin Lam
57d7c852dd Remove admin_token_auth
The admin_token_auth in keystone paste posts a security issue, and has
been deprecated in the M release, and removed in O release.  Operators
should be using ``keystone-manage bootstrap`` to bootstrap the "admin"
user.  This patch set removes the filter and its usage in the various
pipelines from the paste.ini file.

Implements: bp keystone-admin-token-disable
External-Tracking-Id: OSH-102

[0] https://blueprints.launchpad.net/openstack-helm/+spec/keystone-admin-token-disable

Change-Id: I5ae29cad4f7daa4bc8fa117b6f5ed998c2ec6cad
2017-06-19 10:13:59 -05:00
Tin Lam
9b6e57aa6b Fix cpu and memory limits for keystone
Currently, the memory and cpu limits are identical to the requests.
This patch set ups the limits to be similar to other services
such as nova and neutron.

Change-Id: I16985e622bdca95d88585d2f1e5bbb09e7dc766b
2017-06-18 01:14:54 -05:00
Pete Birley
5aaf6ec121 Keystone: Add memcached as required dep.
Memcached is required by keystone to work optimally, this PS adds
it as a requirement. It could be argued that RabbitMQ should be
added as well, but this is only required when using Ceilometer AFAIK.

Change-Id: If2eec45455e05972c0fbb534262e5b1b69cef3b3
2017-06-16 07:46:22 -05:00