51 Commits

Author SHA1 Message Date
Takashi Kajinami
95df1344e7 Use LOG.warning instead of deprecated LOG.warn
The LOG.warn method is deprecated[1] and the LOG.warning method should
be used instead.

[1] https://docs.python.org/3/library/logging.html#logging.warning

Change-Id: I455bb6662b3ccc36b856e923e7220e357e8ef48f
2022-07-20 17:14:30 -04:00
songwenping
5d33d80371 Remove usage of six
Six is not used anymore for python3

Change-Id: I2734efe490014d164b53caa164ac491c53c8e09c
2022-04-20 10:07:51 +08:00
ericxiett
c5105fd9da Add missing slash
The default of 'domain_config_dir' in keystone is '/etc/keystone/domains'.
This patch adds the missing slash.

Change-Id: I30523ec3fd3144811a76b9078e915eff4ffa2b66
2021-09-21 09:44:59 +08:00
Tin
26afeb4cb2 fix(pep8): makes python script pep8 compliant
Fixes keystone python script so it is pep8 compliant.

Change-Id: Ib94707996441f35e6ffb32a6d63ab6adbd17a87d
Signed-off-by: Tin <tin@irrational.io>
2021-05-19 22:55:35 +00:00
Zuul
4f1e1329ad Merge "Do no recreate fernet tokens on setup" 2020-08-07 19:21:17 +00:00
Gupta, Sangeet (sg774j)
c12ada7224 feat(tls): keystone domain manage script to pass cert
This patch add capability to pass certificate in request method.

Change-Id: I2e431bf3a34f40f58254e4f2b61554453471e0de
2020-07-29 13:21:48 +00:00
sgupta
702c17eb78 feat(tls): Make openstack services compatible with mariadb with TLS
Depends-on: https://review.opendev.org/#/c/741037/
Change-Id: I21f4ede3bd18c0af8da1eba60cd0b7b932a31410
2020-07-14 23:32:03 +00:00
Tin Lam
918a307427 feat(tls): add tls support to openstack services
This patch set enables TLS for the following OpenStack services: keystone,
horizon, glance, cinder, heat, nova, placement and neutron for s- (stein)
and t- (train) release. This serves as a consolidation and clean up patch
for the following patches:

[0] https://review.opendev.org/#/c/733291
[1] https://review.opendev.org/#/c/735202
[2] https://review.opendev.org/#/c/733962
[3] https://review.opendev.org/#/c/733404
[4] https://review.opendev.org/#/c/734896

This also addresses comments mentioned in previous patches.

Co-authored-by: Gage Hugo <gagehugo@gmail.com>
Co-authored-by: sgupta <sg774j@att.com>

Depends-on: https://review.opendev.org/#/c/737194/

Change-Id: Id34ace54298660b4b151522916e929a29f5731be
Signed-off-by: Tin Lam <tin@irrational.io>
2020-07-10 09:36:31 -05:00
Gage Hugo
db79e79788 Remove OSH Authors copyright
The current copyright refers to a non-existent group
"openstack helm authors" with often out-of-date references that
are confusing when adding a new file to the repo.

This change removes all references to this copyright by the
non-existent group and any blank lines underneath.

Change-Id: Ia035037e000f1bf95202fc07b8cd1ad0fc019094
2020-04-03 20:53:32 +00:00
Tin Lam
45e22e45a5 [Keystone] Fix status code logic
This patch set fixes an issue with where the keystone chart's
domain-manage job/pod always restart once due to a calculation
logic error.

Change-Id: I801d04559a526d3a7339cd5102f2e738af9f72e0
Signed-off-by: Tin Lam <tin@irrational.io>
2020-01-31 14:29:46 -06:00
Andrey Volkov
8957bacb4a Do no recreate fernet tokens on setup
In case of keystone-fernet-setup job rerun (delete and create),
fernet tokens are recreated. Which leads to ongoing openstack request
fail.

keystone-manage fernet_setup is idempotent, let's make the
keystone-fernet-setup job idempotent as well.

Change-Id: I62e741fe5192b7a0018bc84ccdac1ea5311a1e03
2019-12-06 13:44:33 +03:00
Tin Lam
938a1deb03 Ensure python scripts are py3 compatible
This patch set is one of many to migrate existing code/script to be
python-3 compatible as python-2 is sunsetting in January of 2020.

Change-Id: I337069203a3273e9aba6a37294ee3c25e5b4870a
Signed-off-by: Tin Lam <tin@irrational.io>
2019-10-10 23:10:03 +00:00
Andrii Ostapenko
3468ae43c9 Add strict False param for Config parser
Py3 RawConfigParser does not allow options duplication.

Change-Id: I251fe9c2028fed2f55dee0ef92a3cda89da8a9f6
2019-09-27 15:26:52 -05:00
Ivan Kolodyazhny
7b30ea5d3f Fix keystone-credential-cleanup job with Python 3
Python 3 renamed ConfigParser module to configparser.
This patch fixes compatibility with Python 3 for the
keystone-credential-cleanup job.

Change-Id: I6e34ba995d7a02f94b12162f0e5f8f326dfa8108
2019-09-03 15:30:21 +03:00
Gage Hugo
3b14e77d2a Skip cred-key setup when keys already exist
This change adds a conditional to the _fernet_setup to avoid
overwriting credential-keys when keystone-manage credential-setup
is ran and there are already existing credential keys. This will
mitigate issues where encrypted credential blobs in keystone were
becoming un-decryptable when the credential keys were being
overridden or lost upon upgrading.

Change-Id: Iac2b080d5d44bdf07534126419a1d5dd86055d6b
2019-04-26 18:31:07 +00:00
Gage Hugo
3d6f3088a3 Add credential delete hook to keystone chart
This change creates a pre-delete hook to clean out all entries
in the credential table of the keystone database when the
keystone service is deleted. Note that these are not
the typical username/password.[0]

This fixes the issue of leftover credential blobs being saved
in the database that are unable to be decrypted since the
original encryption keys are removed upon deletion of the
keystone service

[0] https://specs.openstack.org/openstack/keystone-specs/specs/keystone/newton/credential-encryption.html

Change-Id: I8adf0878af2f3b880e9194a6cb8d97b58d6895a5
2019-04-17 20:10:48 +00:00
Itxaka
229db2f155 Allow more generic overrides for keystone
With this patch we allow for a more easy way of overriding some
of the values that may be used in other distros while maintainting
the default values if those values are not overriden.

The following values are introduced to be overriden:
conf:
  security:
  software:
    apache2:
      conf_dir:
      site_dir:
      mods_dir:
      binary:
      start_flags:
      a2enmod:
      a2dismod:

On which:
 * conf_dir: directory where to drop the config files
 * site_dir: directory where to drop the enabled virtualhosts
 * mods_dir: directory where to drop any mod configuration
 * binary: the binary to use for launching apache
 * start_flags: any flags that will be passed to the apache binary call
 * a2enmod: mods to enable
 * a2dismod: mods to disable
 * security: security configuration for apache

Notice that if there is no overrides given, it should not affect anything
and the templates will not be changed as the default values are set to what
they used to be as to not disrupt existing deployments.

Change-Id: I7622325cf23e5afb26a5f5e887458fd58af2fab8
2019-04-12 04:16:48 +00:00
Itxaka
e136b0d822 Fix py3 issue on fernet-manage and update-endpoint
fernet-manage:
 - filter used to return a list on python2 but on python3 it returns
 an iterator which has no len method
 - Coherce the keys var into a list so we can run len on it on both
 versions

update-endpoint:
 - ConfigParser is called configparser on python3
 - try/catch and import the proper configparser

Change-Id: I8296074f4d20e47afe0c7aea41bf21999685aecd
2019-03-14 21:24:47 +00:00
Zuul
326200bf93 Merge "Scan templated python files with bandit" 2019-01-31 13:53:16 +00:00
Pete Birley
a5162ad6d7 Keystone: remove stale pids on startup if present
This PS removes stale pids on startup if present.

Change-Id: Iff136f16f8d15a08e8ce8c51d058b55288f97a2e
Signed-off-by: Pete Birley <pete@port.direct>
2019-01-29 16:30:36 -06:00
Gage Hugo
482dbcac29 Scan templated python files with bandit
This change adds a zuul check job to export any templated python
contained in the helm charts and scan it with bandit for any
potential security flaws.

This also adds two nosec comments on the instances of subprocess
used as they currently do not appear to be malicious, as well
as changing the endpoint_update python code to prevent sql
injection, which satisfies bandit code B608.

Change-Id: I2212d26514c3510353d16a4592893dd2e85cb369
2019-01-22 20:53:52 +00:00
Jean-Philippe Evrard
05d0e2b4b8 Revert "Update OSH Author copyrights to OSF"
This reverts commit b1755c399341388627a668ab9fd6f43b7416f65a.

Change-Id: I215a172f2ff4220340292b95f5323847944baeb7
2018-08-28 17:25:13 +00:00
Matt McEuen
b1755c3993 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: I167ceedab8fadee28c19514fad6f125d0a521caf
2018-08-26 17:17:41 -05:00
Pete Birley
5f349ae653 Keystone: Disable v2 api
This PS disables the v2 keystone API, and finishes the migration to
full v3 support.

Change-Id: I3021ebe0bee668db9f28e7fb18e2d4b26172f209
Signed-off-by: Pete Birley <pete@port.direct>
2018-08-03 14:50:45 +00:00
Pete Birley
1925a6e61b Keystone: enable service catalog endpoint updates
This PS adds a script to update the keystone catalog endpoints
for keystone itself, as the keystone-bootstrap will not update
these once created.

Change-Id: Ie48c71bbdc9bbd14cebcee46285b3bf51bd28065
Signed-off-by: Pete Birley <pete@port.direct>
2018-07-26 21:24:57 +00:00
Tin Lam
172178343e Add validation to domain logic
This patch set addresses the comments left in [0] by fixing the header
information in the python template file and adding logic to query the
domain specific logic.

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

Change-Id: I656d7ac8158f9b40246ac739e4dc4fc88e1e43da
Signed-off-by: Tin Lam <tin@irrational.io>
2018-04-11 01:20:39 +00:00
Tin Lam
2873435274 Add robust ldap domain-specific config
This patch set provides PATCH capability for ldap-backed domain config,
and prevents silent failure if the configuration contains erroneous
setting.  This also moves from loading .conf files into DB directly,
and uses the API endpoints.

Change-Id: I17a19046fa96e0f3e8fb029c156ba79c924a0097
Signed-off-by: Tin Lam <tin@irrational.io>
2018-04-06 12:08:01 -05:00
portdirect
cf34a995ac Keystone: break domain management out of generic bootstrap
This PS breaks domain management out of the generic bootstrap
job.

Change-Id: I9d26b58cffee0cd13f75113b2dbdf4eac16a6cf7
2018-02-17 20:01:07 +00:00
Tin Lam
9173fc7f75 Add domain specific driver support
This patch set allows for domain specific driver (ldap and sql)
for keystone.

Change-Id: Iad8e07fdfdb0e4abc96a7e8100467959ed275dfb
2018-01-23 18:10:19 -06: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
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
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
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
98bb2e0a7e Merge "Keystone Bootstrapping" 2017-06-12 21:11:49 +00:00
Pete Birley
af493beb04 Keystone Bootstrapping
This PS adds a bootstrapping option to the Keystone Chart.

Partially implements: blueprint service-bootstrap

See: https://blueprints.launchpad.net/openstack-helm/+spec/service-bootstrap

Change-Id: I01432967d2ad71249e90d4beda3380125b210a7f
2017-06-12 15:11:41 -05:00
Pete Birley
9b8f6aef88 Image-Agnostic: Keystone
This PS helps improve the Image agnosticism of the Keystone chart.

This is achieved by removing the presumed locations of the Keystone
WSGI scripts, enabling support for images that either do not use a venv
or the same venv location that Kolla uses.

Change-Id: Id04f5e485d6a421b6ac7464cbb14f0e3819b778d
2017-06-11 23:03:39 +00:00
Pete Birley
0df7427dc4 Refactor start scripts, to support graceful termination
This PS add Barbican support, and moves all potentially container
specific logic into the service start script from the api manifests.

Also fixes a permissions issue with the nova-api, which incorrectly
had the NET_ADMIN capability.

Change-Id: I18fc1ea5d7aa70ea7dabb829361a3da57e905100
2017-06-05 17:37:22 -05:00
Pete Birley
8c29949c0d Helm-Toolkit: Update naming to be explict and remove old functions.
This PS updates the way helm-toolkit functions are named to
reference the full path they are loacted at. This should make
development and debugging easier. Addtionally unused functions
have been pruned as well.

Change-Id: I03c553f1d01bccc70c86768b416b147c90d9b2f0
2017-05-31 19:52:02 +00:00
Pete Birley
2a2ae0dc4a PyMySQL Keystone Jobs 2017-04-04 11:33:42 -05:00
Alan Meadows
236be51343 Configuration Management Overrides for Keystone
This commit introduces several new paradigms:

* .Values driven mounts in service containers as well as jobs.
These can be overriden at runtime by manipulating .Values.mounts.*

* Authenticated Endpoint Resolution methods in helm-toolkit
to allow the database and rabbit type endpoints to be moved
under the endpoints section.  Now endpoint lookup functions exist
for openstack endpoints as well as infrastructure elements such as
the database, rabbitmq, and memcache.

* Importing of upstream "out of the box" policy.json
and keystone-paste.ini files for better or worse.

* A rendering of the keystone.conf oslo generated config
using a new helm based Values generator. This provides "known"
paths to all configuration elements in the form of
"<section>.<oslo_namespace>.<element>" so that any of these can
be targeted for override via --set or values.yaml files loaded at
run time.

* Support for appending arbitrary string data to the policy.json,
keystone-paste.ini, or keystone.conf files via --set conf.keystone.append="#
some comment", or --set conf.policy.append="\"identity:list_projects\":
\"role:fake\""

* Support for complete verbatim overrides of these three
files via --set conf.keystone.override="full file contents",
or --set conf.policy.override="full file contents" for example
2017-03-09 12:06:06 -08:00
Pete Birley
fe7a1cf62d Rename Keystone Endpoint type functions 2017-03-02 02:11:59 +00:00
Pete Birley
01028991c3 Move Keystone to endpoint type lookups 2017-03-02 00:51:18 +00:00
Brandon B. Jozsa
f0c7128ae1 add license headers to keystone 2017-02-17 12:13:19 -05:00
Pete Birley
116931bb51 Rename common chart, and update all references to functions within it. (#167)
* Rename common chart to helm-toolkit

* Update useage of helpers to include reference to chart they come from.

* Update helm-toolkit function naming

Also catches several functions missed in previous PS

* Update remaining requirements.yaml to use helm-toolbox

* Dep Check container fix for common -> helm-toolbox renaming
2017-02-14 16:52:38 -08:00
Pete Birley
afa0ecd1df Keystone Load Complete Configs
This PS loads all the required keystone configuration files into a container for an apache based deployment.

It allows OpenStack-Helm to be image agnosic, meaning operators can use any Apache based Keystone image they want.
2017-01-15 22:59:11 +00:00
Alan Meadows
bcf23c7399 Endpoint lookup fixes for consistent keystone catalog endpoints
This introduces changes across several charts, for consistent
endpoint lookup routines.  Today, only the internal endpoints
are defined (and copied to admin and public).  This can later
be expanded to handle unique public and admin endpoints.

This ensures the catalog is populated with consistent URLs
for all services.
2017-01-03 12:20:26 -08:00
Alan Meadows
385a8a099e Keystone chart bugfixes
* start.sh was added back, which had requiring sourcing

* the naming convention for charts is finalized with this example
landing on configmap-*.yaml to satisfy those of us with OCD

* imagePullPolicies added for init-containers, required by
helm 2.1.0 which does not supply them by default
2016-12-16 15:26:57 -08:00
DTadrzak
3581d443a4 Keystone trivial fix
Fixed: mount path for mp-event.conf and wsgi-keystone.conf
Deleted: unnecessary start.sh file

Signed-off-by: DTadrzak <daniel.tadrzak@intel.com>
2016-12-14 15:12:13 +01:00
Alan Meadows
8edab86ff4 Cleanup from PR#19 2016-12-12 12:25:57 -08:00