72 Commits

Author SHA1 Message Date
Steve Wilkerson
6116e84416 Remove unneeded context in prometheus service annotation
Removes an unused context declaration from the prometheus service
annotation template in helm-toolkit

Change-Id: I118b352d2b5a80fc43f27d7f3f154b61e5406f8c
2018-01-11 18:03:55 -06:00
Steve Wilkerson
2c436f1231 Add prometheus annotations to helm-toolkit
This adds the prometheus pod and service annotations to helm
toolkit, which allows for using prometheus's kubernetes service
discovery mechanisms for osh pods and service metrics as needed

Change-Id: I0e080d960553381014c4fd4f2bb6c83652241b0b
2018-01-11 11:58:50 -06:00
Zuul
a78e638897 Merge "Add support for node-level conf overrides" 2018-01-09 15:38:29 +00:00
Craig Anderson
b73bb03e5b Add support for node-level conf overrides
Add override functionality to helm-toolkit and enable in compute daemonset.

Change-Id: Ia85abbbea89c12d0b6f21ecf2413cd3ae7b9552e
2018-01-08 22:35:36 +00:00
portdirect
dade748dcf Libvirt: move configuration to be generated directly from values
This PS moves the configuration files used by libvirt to be
generated directly from the values, rather than being templated.

Change-Id: I8ab2783c9d1d5d815cc02eccafa21058ff3acead
2018-01-04 18:24:08 -05:00
Tin Lam
943a400b9a RBAC: Fix issue with inclusion of empty jobs or daemonsets
Currently, the rbac logic would allow for ``jobs`` or ``daemonsets``
if it is specified in the dependencies, even if they may just be empty
or null.  This patch set addresses this by checking the jobs or
daemonsets map in the value.yaml is non-empty before including it
in the Role.

This mirrors the fix in OSH-infra in [0].

[0] https://review.openstack.org/#/c/530337/1

Change-Id: I37e8d8c1a0d587410811c544e049bbafed73cba8
Signed-off-by: Tin Lam <tin@irrational.io>
2017-12-28 22:05:34 -06: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
Vlad Naboichenko
090d2656cf Add congress chart
This chart provides a policy framework for the cloud.
It consist of 3 services. Api, policy engine, datasource.

helm install --name=congress local/congress --namespace=openstack

Change-Id: I5fabf91893bc006470469af397994b13fe86223b
2017-11-20 11:19:50 -08:00
Grzegorz Grasza (xek)
538e630774 Support services in different namespaces
Pass the service namespace to kubernetes-entrypoint in
order to support dependencies between namespaces.
Add documentation about endpoint/service namespaces.

Change-Id: I208c3240e9f2c8900323595f7b0e488bef5cb1fc
Implements: blueprint entrypoint-namespaces
2017-11-02 01:22:12 +00: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
intlabs
e4f04bb5a6 Charts: Make names consistent across all charts
This PS makes the naming style across all charts in OSH consistent.

Change-Id: Iaecd9e434f6c31b847e5cbd57c6ecf6a0d0d0b56
2017-10-11 13:59:21 +00: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
Huamin Chen
2a75376c1c Ceph: parameterize kubectl param
Not to use hard coded labels in kubectl command

Change-Id: Ia53b4bd00071b08d1064349bad596c978814a719
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-09-22 08:10:19 -04: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
Pete Birley
0ac69b88ab Kubernetes-Entrypoint: Define entrypoint explicitly
This PS defines the container entrypoint to kubernetes entrypoint,
allowing images that do not have it defined as the entrypoint to be
used.

Change-Id: I8f2d57bb933ee7990f75d82e9cc1b47afd99f1c6
2017-09-10 03:20:24 -05:00
Pete Birley
7c37157fb1 Ceph: RadosGW
This PS implements the ceph radosgw and also provides keystone
intergration, allowing ceph to provide a swift like service if
desired for object storage.

In addtion it updates the endpoint lookups to use valid yaml when
dealing with keystone services with a '-' in their name.

Change-Id: I9162ad657df2f77c1bc1afa93a8b999894b1b470
2017-09-06 23:35:47 -05: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
Grzegorz Grasza (xek)
80c6e725bc Remove spurious sys.exits
This removes sys.exits which are never called and moves one try-except
block to the lines in which the exception is actually raised.

Change-Id: Idb5bde84136208dc39d877b4b66b39a433d85375
2017-09-01 10:43:04 +00: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
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
Jenkins
6c90f49858 Merge "Fix issues with [trustee] section of heat.conf" 2017-08-22 15:55:47 +00:00
Michał Dulko
da137ac70d Fix issues with [trustee] section of heat.conf
There are serveral issues with default settings of [trustee] section in
heat.conf:

1. Keystone trust isn't added for admin user (heat-trust should be
   admin's user trustee to make it possible for admin to create stacks).
2. Keystone is adding role "admin" in domain "heat". This blocks
   creation of correct trust in Keystone as role names are duplicated.
   Please note that adding this role is not necessary for Heat to work
   correctly.

This commit solves the issues by:

1. Creating a job that will add a Keystone trust between admin and
   heat-trust users. This allows admin to create Heat stacks.
2. Removes adding a new role in a domain in _ks-domain-user.sh.tpl
   script.

Additionally, as _ks-domain-user.sh.tpl is only really used by Heat
chart, this commit also removes it from configmap-bin in Barbican,
Magnum, Mistral and Senlin charts. Those charts must have been
copy-pasted from Heat chart and don't need to include this file.

Also I fix a bug introduced by I86a21e625afd822379ac11351603b2c606a3769f
that renamded heat-domain user to heat-trust and created two users with
the same name.

Change-Id: I303d9bc2aa1796f21bedc6ecdc85a4b3f6c68504
Closes-Bug: 1696462
2017-08-21 20:10:11 +00: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
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
45ffd6290b Keystone user job: create domains if required
This PS creates the user and project domain during the keystone-user
jobs if reqired.

Change-Id: Ib885a3629ab32a9c60725495b50dc712948848fd
2017-08-05 09:41:06 -05:00
Pete Birley
04e05fcea4 Fix joinListWithComma rendering when invoked with CLI values
This PS fises a rendering erros in the joinListWithComma function
when used with values from the helm --set cli command.

From Kolla-Kubernetes: https://review.openstack.org/#/c/488513/
All Credit to: Serguei Bezverkhi

Change-Id: I013a37f5e6dec43232c6ee300be8f918f9ef554a
2017-08-02 08:38:14 -05:00
Siri Kim
b5b7bdadb8 Fix openstack endpoint option at _ks-endpoint.sh
This PS fix openstack endpoint show option at _ks-endpoint.sh
as job-ks-endpoint fails when endpoint needs updated.

Change-Id: I8aa05f3d40e7825410eace3ad7b44d36e3bb6434
2017-08-01 18:59:37 +09:00
Jenkins
a51ac55fbd Merge "Update pod affinity to allow customisation" 2017-07-28 16:21:24 +00:00
Pete Birley
4734cf53c8 Keystone: always update service account passwords on chart deploy
This PS allows an operator to change the service account password
though the values fed into a chart.

Change-Id: If3a859f0db84237c71303ef329573c7d6aafdae7
2017-07-28 10:21:34 -05: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
Artur Korzeniewski
7e532bdb11 Helm-toolkit: Fixed upgrade daemonset snippet
The issue was with type of upgrade strategy, which was rendered as empty.
It was due to wrong access to the pod_replacement_strategy, which was
out of modified scope:

      daemonsets:
        pod_replacement_strategy: RollingUpdate
        dhcp_agent:
          enabled: false
          min_ready_seconds: 0
          max_unavailable: 1

and the snippet was modifying the scope to daemonset.dhcp_agent, then
trying to access daemonsets.dhcpagent.pod_replacement_strategy, which was
not there:

{{- $upgradeMap := index $envAll.Values.pod.lifecycle.upgrades.daemonsets $component }}
updateStrategy:
  type: {{ .pod_replacement_strategy }}

The fix is to evaluate the common variable before entering the scope
modification.

{{- $pod_replacement_strategy := $envAll.Values.pod.lifecycle.upgrades.daemonsets.pod_replacement_strategy -}}
type: {{ $pod_replacement_strategy }}

Change-Id: I78937b1bf1e0d50ca372de095582c71105d76331
Closes-Bug: 1705662
2017-07-21 11:09:36 +02: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
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
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
8ff8e7aeb2 Mariadb: Update to use endpoint values layout and lookups
This PS adjusts the MariaDB chart to use the same endpoint values
layout as used in other openstack-helm components. It also removes
credentials and params from the configmaps and moves them to secrets
and env vars as appropriate.

Change-Id: I9116be7c46cdd16c743ca2784878f3de65665f8c
2017-07-03 13:17:48 +00: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
8ef5d94674 Refactor Ceph secret generation
This PS refactors the ceph chart and secret generation process.
The updated chart replaces the existing "bootstrap" chart.
Additionally, Ceph manifests and deployment guides were modified
accordingly.

Change-Id: I6f5bb88fc0f40cfee8865d9dab83859d765e7537
Co-Authored-By: Larry Rensing <lr699s@att.com>
2017-06-27 13:42:03 -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
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
Jenkins
d73f81c9fa Merge "Move init containers from annotation to official object" 2017-06-09 22:09:54 +00:00
Steve Wilkerson
161170bf96 Move init containers from annotation to official object
With 1.6, init containers are officially part of the kubernetes
API.  This changes the format of the helm template for the
entrypoint container from json to yaml, and updates the
charts accordingly.

Co-Authored-By: Pete Birley <pete@port.direct>

Change-Id: I569566ce4b031d107af2d38483040a26210bec45
2017-06-09 16:31:53 -05:00
Chris Wedgwood
192f02d100 [Ceph] Update default cluster network
The current default network for ceph works for very few people by
default.  Update it to match what most people seem to be using.

Change-Id: Icd5f87189b067865721203065e8caf33772d56ba
2017-06-09 20:29:01 +00:00
Pete Birley
afc2243f85 Fix the to_ini function name
The to_ini fucntion was missed in the refactor of function names
this ps fixes that.

Change-Id: I2726aada96bdef451284ee993517fcb6908408ec
2017-06-07 16:03:29 -05:00
Pete Birley
97f781d6c3 Helm Test: Framework & Keystone
This PS introduces 'helm test' functionaility to keystone and
provides the basic framwork for charts to use.

Change-Id: Ie84a6ca0ed007fb55e10d503d1c3e49788908eec
Partial-Implements: blueprint implement-helm-test-for-charts
2017-06-06 16:52:34 -05:00
Jenkins
4cc1621d5f Merge "Remove executable flag from Chart.yaml" 2017-06-06 19:44:01 +00:00
Tin Lam
5fcb0e3d10 Remove executable flag from Chart.yaml
TrivialFix: Some Chart.yaml's have permission 755; this patchset changes
that to 644 and be consistent with other yaml files.

Change-Id: I6453f91f0cd22330259bf24be9d4c331f2769ec2
2017-06-06 11:43:25 -05:00
Jenkins
8bf8282f6d Merge "Configuration Management Overrides for Cinder" 2017-06-05 14:31:45 +00:00
Michał Dulko
f0b92663d5 Configuration Management Overrides for Cinder
This commit is based on how Nova got its configuration overrides
implemented.

An important thing here is support for setting multiple Cinder backends
(e.g. Ceph cluster + NFS) in the values.yaml. This was required as Cinder
accepts backend configurations only in [<backend_id>] sections in the
cinder.conf.

Please note that autogeneration of ceph.conf and
ceph.client.<rbd_user>.keyring works only for a backend named "rbd1".
In case you want to add another RBD backend, you need to mount those
files by yourself. Commit ehancing this is planned to follow shortly.

Change-Id: Ifb58a85300bbfbb9e63d6b3bfc2ad19a99d2c9d4
2017-06-05 12:41:38 +02:00