232 Commits

Author SHA1 Message Date
Schubert Anselme
8d5ddc9035 Migrate CronJob resources to batch/v1 and PodDisruptionBudget resources to policy/v1
This change updates the following charts to migrate CronJob resources to the batch/v1 API version, available since v1.21. [0]
and to migrate PodDisruptionBudget to the policy/v1 API version, also available since v1.21. [1]

- aodh (CronJob & PodDisruptionBudget)
- barbican (PodDisruptionBudget)
- ceilometer (PodDisruptionBudget)
- cinder (CronJob & PodDisruptionBudget)
- cyborg (PodDisruptionBudget)
- designate (PodDisruptionBudget)
- glance (PodDisruptionBudget)
- heat (CronJob & PodDisruptionBudget)
- horizon (PodDisruptionBudget)
- Ironic (PodDisruptionBudget)
- Keystone (CronJob & PodDisruptionBudget)
- magnum (PodDisruptionBudget)
- masakari (PodDisruptionBudget)
- mistral (PodDisruptionBudget)
- neutron (PodDisruptionBudget)
- nova (CronJob & PodDisruptionBudget)
- octavia (PodDisruptionBudget)
- placement (PodDisruptionBudget)
- rally (PodDisruptionBudget)
- senlin (CronJob & PodDisruptionBudget)

0: https://kubernetes.io/docs/reference/using-api/deprecation-guide/#cronjob-v125
1: https://kubernetes.io/docs/reference/using-api/deprecation-guide/#poddisruptionbudget-v125

Change-Id: I2fc0692e1c8e2c4fa4d4ca1da96b5c6a832343fa
2022-05-19 10:08:18 -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
Graham Steffaniak
1157d95b71 Create Openstack common components umbrella chart
ADD openstack chart with values_overrides
    * rabbitmq
    * mariadb
    * memcached
    * keystone
    * heat
    * glance

    This adds umbrella chart that references other charts via
    symlink and include global values.

    Because chart valeus_overrides yaml apply to the main chart,
    the umbrella chart has a chart-scoped replacement

  ADD openstack.sh deploy script
    This script deploys all components with a single release.

  ADD corresponding release notes

  CHG wait-for-pods-sh to accept timeout arguement

  CHG get-values-overrides.sh to modify file path for subchart

Change-Id: I25cd9d6785c61540d6329657c0358f27299d3647
2022-04-05 09:47:06 -05:00
Thiago Brito
d8b1f217c8 Enable taint toleration for keystone
This changes use the helm-toolkit template for toleration
in openstack services

Signed-off-by: Lucas Cavalcante <lucasmedeiros.cavalcante@windriver.com>
Story: 2009276
Task: 43531
Depends-On: I168837f962465d1c89acc511b7bf4064ac4b546c
Change-Id: I30ca8050e02a5deeec52319d45025f4af7139059
2022-03-22 18:45:05 +00:00
Gage Hugo
537716e157 Revert "fix(log): reduces chattiness in keystone log"
This reverts commit 73531436e9.

Reason for revert: When the keys are rotated, the links become
broken and keystone only uses the 0 key.

Change-Id: Iffc4ab5d659b01babe7b4f9ee35b0a5789dac3ec
2022-02-01 23:19:56 -06:00
Tin Lam
73531436e9 fix(log): reduces chattiness in keystone log
Current implementation of Keystone prints a warning message if the
directory containing the fernet keys is world readable (o+r). As OSH
uses a volumeMount to handle fernet keys and is by default readonly,
there is no meaningful way to make the directory (not the keys) world
unreadable. Consequently, keystone just keep logging that warning,
adding no particular value besides flooding the log.

Rather than disabling the log message in keystone (as that warning is
meaningful from a security standpoint), this patch set changes the way
we deal with the secret volume so the directory is no longer world
readable, so keystone will stop issuing that warning message.

Signed-off-by: Tin Lam <t@lam.wtf>
Change-Id: Id29abe667f5ef0b61da3d3825b5bf795f2d98865
2021-10-20 09:21:50 -05:00
DeJaeger, Darren (dd118r)
7803000a54 Helm 3 - Fix Additional Job Labels
If labels are not specified on a Job, kubernetes defaults them
to include the labels of their underlying Pod template. Helm 3
injects metadata into all resources [0] including a
`app.kubernetes.io/managed-by: Helm` label. Thus when kubernetes
sees a Job's labels they are no longer empty and thus do not get
defaulted to the underlying Pod template's labels. This is a
problem since Job labels are depended on by
- Armada pre-upgrade delete hooks
- Armada wait logic configurations
- kubernetes-entrypoint dependencies

Thus, for Job templates previously missed, this adds labels matching
the underlying Pod template to retain the same labels that were
present with Helm 2.

[0]: https://github.com/helm/helm/pull/7649

Change-Id: Ie438b449a3d9853d786215d40a39c32d164e9950
2021-10-10 12:04:49 -05:00
Gage Hugo
1e651dc3c3 Helm 3 - Fix Job Labels
If labels are not specified on a Job, kubernetes defaults them
to include the labels of their underlying Pod template. Helm 3
injects metadata into all resources [0] including a
`app.kubernetes.io/managed-by: Helm` label. Thus when kubernetes
sees a Job's labels they are no longer empty and thus do not get
defaulted to the underlying Pod template's labels. This is a
problem since Job labels are depended on by
- Armada pre-upgrade delete hooks
- Armada wait logic configurations
- kubernetes-entrypoint dependencies

Thus for each Job template this adds labels matching the
underlying Pod template to retain the same labels that were
present with Helm 2.

[0]: https://github.com/helm/helm/pull/7649

Change-Id: Ib5a7eb494fb776d74e1edc767b9522b02453b19d
2021-10-06 13:54:58 -05: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
Gupta, Sangeet (sg774j)
2d248874dd keystone: Make internal TLS more robust
Keystone may communicate with other components that do not support TLS. This
patchset makes keystone more flexible and enable it to communicate successfully
with such components

Depends-on: https://review.opendev.org/c/openstack/openstack-helm-infra/+/800097

Change-Id: I5c697c1748b62a81b43e7b0d6c7f89d374a50d94
2021-08-04 05:28:14 +00:00
Gupta, Sangeet (sg774j)
5028aa8de1 Mount rabbitmq TLS secret
Mount rabbitmq TLS secret to openstack services which support internal
TLS. Once internal TLS support is added to other service, the TLSed 
rabbitmq support should be added.

Depends-on: https://review.opendev.org/c/openstack/openstack-helm-infra/+/795188

Change-Id: I9aa272e365f846746f2e06aa7b7010db730e17df
2021-06-10 14:12:57 +00:00
Thiago Brito
8ab6013409 Changing all policies to yaml format
In the Victoria cycle oslo.policy decided to change all default policies
to yaml format. Today on openstack-helm we have a mix of json and yaml
on projects and, after having a bad time debugging policies that should
have beeing mounted somewhere but was being mounted elsewhere, I'm
proposing this change so we can unify the delivery method for all
policies across components on yaml (that is supported for quite some
time). This will also avoid having problems in the future as the
services move from json to yaml.

[1] https://specs.openstack.org/openstack/oslo-specs/specs/victoria/policy-json-to-yaml.html

Signed-off-by: Thiago Brito <thiago.brito@windriver.com>
Change-Id: Id170bf184e44fd77cd53929d474582022a5b6d4f
2021-05-26 18:15:41 -03:00
Haider, Nafiz (nh532m)
c900712f30 feat(tls): Make openstack services compatible with rabbitmq TLS
Depends-on: https://review.opendev.org/c/openstack/openstack-helm-infra/+/770678

Co-authored-by: Sangeet Gupta <sg774j@att.com>

Change-Id: I11e9ad3f4079b0e12e498f9ed57e5b87ae9dc66a
2021-05-21 01:27:18 +00: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
Gage Hugo
17eff06bb3 Remove keystone paste ini file
With keystone moving to flask back in Stein, the paste pipeline
configuration and file are no longer needed. With OSH no longer
supporting those older releases, this change removes the paste ini
settings and file mounts since they are no longer used.

Change-Id: Idacd973f090562eaee28567d9422eb761951096f
2021-05-05 16:42:28 -05:00
Gage Hugo
a3d26068ad Update helm hook conditionals
Updated the db job annotation hooks to be wrapped with
conditionals for helm v2 support.

Change-Id: I069fe3572b837714e263252646e56471c81745d5
2021-04-28 21:36:03 +00:00
Gupta, Sangeet (sg774j)
f498f203cf Keystone: Fix error - wrong number of args for set
Change-Id: Ibc06d00f659c9ae7a1a14d1b2aa70607842b2f53
2021-04-22 13:19:46 +00:00
Gage Hugo
0f6f83dcdc Add conditional wrapper to helm hook
The pre-install hooks for several of the keystone templates
cause upgrade failures when using helm2. This change wraps them
in a conditional that can be toggled off for anyone still
using helm2.

Change-Id: I179583bd595bc8ed1e4c29eb7c2a744e3c6a5708
2021-04-19 20:29:22 +00:00
jinyuanliu
da9f28cefa Update rbac api version for keystone
When using a helm3 to deploy , it fails. Helm3 no more support rbac.authorization.k8s.io/v1beta1 , but v1 can support helm2 and helm3.

Change-Id: If37ec26443feb5328d49e6b3c419305832bdae9e
2021-03-02 23:57:51 +08:00
okozachenko
909f967920 Add helm.sh/hook related annotations in keystone chart
Same motivation with openstack/openstack-helm-infra/776466

Depends-On: https://review.opendev.org/openstack/openstack-helm-infra/777980
Change-Id: I4388eda429f3093fed214633e5cebf3105bcebd3
2021-03-01 15:06:01 +02:00
Gage Hugo
fc680cf8c4 Update typo in subPath for volume mount
When using a chart with the flux operator and helm3, it fails
when encountering a volumeMount "subpath" instead of "subPath".

This change corrects the typo to the right camelcase entry.

Change-Id: Id2d9ea25445d84f89b299c7f0b24da1cc5aaf264
2021-01-28 22:51:59 +00:00
Mohammed Naser
f5a757b106 [keystone] Fix fernet secret reset
This patch makes the fernet and credential secret something that gets
created only once when the deployment is first done, as when using Helm,
it's possible that it overrides it's values with an empty secret in the
runs afterwards.

By making it a hook, it will instead create it and leave an owner
reference in Helm 3 to delete it later if the release is deleted.  It
will not manage it afterwards as well.

Change-Id: I7c1c97f38877e0e54bea7fc09b37dd6f77c9dc8a
2020-10-21 16:12:56 -04:00
Gage Hugo
fe53b5e559 Add blank access_rules file
When starting the keystone-api pod, the service checks for a
access_rules file for application credentials during startup.
If the file does not exist, keystone emits a warning saying the
file is not found:

WARNING keystone.access_rules_config.backends.json [-] No config
file found for access rules, application credential access rules
will be unavailable.: FileNotFoundError: [Errno 2] No such file
or directory: '/etc/keystone/access_rules.json'

This change adds in a blank access_rules.json file to the
keystone etc directory in order to surpress this message.

Change-Id: I63ac153cc91ac45b3fd223f8a54b933b5cbffac4
2020-10-15 21:13:34 +00:00
Zuul
4f1e1329ad Merge "Do no recreate fernet tokens on setup" 2020-08-07 19:21:17 +00:00
PrateekDodda
fc5712909e Add missing security context to Keystone pods/containers
This updates the Keystone chart to include the pod
security context on the pod template.

This also adds the container security context to set
readOnlyRootFilesystem flag to true

Change-Id: I0e00571d4060cca914d1bdb4f36e736fa8501130
2020-08-05 13:37:33 -05: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
Gupta, Sangeet (sg774j)
74dfea1ce9 keystone: Fix indentation
Change-Id: If25cabc5e70897337dfef7e5401936a79878443b
2020-07-28 23:39:00 +00:00
Zuul
2036a98b6d Merge "feat(tls): add tls support to openstack services" 2020-07-27 18:00:51 +00:00
Gupta, Sangeet (sg774j)
b94340008e feat(tls): add tls support to openstack services
Mount tls certs to keystone-domain-manage job containers.

Change-Id: I44eed213cc9235266faf4a0119ed8700206cdad2
2020-07-27 14:52:52 +00:00
Gupta, Sangeet (sg774j)
7b720184e3 feat(tls): Make openstack services compatible with mariadb with TLS
Change database scerets.

Change-Id: I068dfcb23d596d4b9bcde1944fb4def010490452
2020-07-24 23:02:09 +00:00
DODDA, PRATEEK REDDY (pd2839)
46afde4c6d Add missing security context to Keystone pods/containers
This updates the Keystone chart to include the pod
security context on the pod template.

This also adds the container security context to set
readOnlyRootFilesystem flag to true

Change-Id: I655ef19a3c187e3462ff8ec1a54bc9691ca64d41
2020-07-21 17:33:15 +00:00
DODDA, PRATEEK REDDY (pd2839)
2eaa98ecf1 Add missing security context for Keystone rally tests
Change-Id: I29a432f28a4d8dd57341152d60b34c5a391e872f
2020-07-16 13:11:49 -05: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
Zuul
f9862e221e Merge "Add missing security context to Keystone pods/containers" 2020-07-13 18:57:52 +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
DODDA, PRATEEK REDDY
cba3deb94e Add missing security context to Keystone pods/containers
This updates the Keystone chart to include the pod
security context on the pod template.

This also adds the container security context to set
readOnlyRootFilesystem flag to true.

Change-Id: I2ac3a4efa6798e263de19f0db444f37c5236d121
2020-07-09 18:20:23 -05:00
diwakar thyagaraj
477602f2e7 Enable Apparmor to osh test Pods
Change-Id: I0a67f66cc4ed8a1e3a5c3c458b7c1521f9169160
Signed-off-by: diwakar thyagaraj <diwakar.chitoor.thyagaraj@att.com>
2020-06-01 18:32:51 +00: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
KAVVA, JAGAN MOHAN REDDY (jk330k)
e9700988dc Enable Docker default AppArmor profile to keystone
This adds default Apparmor profile to keystone.

Change-Id: Ief454ca936ea21a061562432b2aa1e8045cbc4e9
2020-02-12 22:26:40 +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
Evgeny L
91f87c21dc Add missing pod labels for CronJobs
Pods for some of the CronJobs do not have correct
application and component labels applied, they are
unable to start if Network Policies are enabled.

Change-Id: Ie4eed0e9829419b4b2e40e9b712b73a86d6fc3d2
2019-10-28 19:57:08 +00: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
Itxaka
b4eaa63548 Keystone: allow probes configuration
Probe configuration is now available for keystone for both liveness and
readiness checks.

Change-Id: I1f0e0a1ff9cd10c5acbec33af87aa9e59959b2d2
2019-09-25 12:17:43 +02:00
Itxaka
a6ccab5270 Use proper keystone path for probes
Using the direct / path for the keystone probes can lead to the
probes receiving an http 300. We want to have an http 200 so there
is no warning from the probes. Use the full v3 path so the probes
are stable

Change-Id: If8b45801bb053778bd2e1691ff8556aa73cb434d
2019-09-17 12:06:21 +02:00
Zuul
59f27040d5 Merge "Handle keystone cred cleanup hook fail" 2019-09-13 18:45:02 +00:00
Gage Hugo
56538d7c76 Handle keystone cred cleanup hook fail
In cases where mariadb is not accessable, either from being deleted
prior to deleting keystone, or some other reason, it is preferred
to fail and move on with the keystone-credential-cleanup.

This change adds hook-failed to the "hook-delete-policy" for the
keystone-credential-cleanup job. This is address cases where deleting
keystone would cause the delete task to hang while the cleanup hook
would fail to connect to mariadb, often due to mariadb being already
deleted.

Change-Id: Ice7187fe6329c8b12333f508351bd5f9e2cdc8e2
2019-09-03 13:15:28 -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
a57cd78439 Fix credential cleanup hook
The keystone-credential-cleanup hook was previously changed to
post-delete, this can cause issues where the serviceName is deleted
prior to running and will cause this to fail. This change reverts
the hook back to pre-delete to avoid this issue.

Change-Id: I45f3e73f8a957576ef82a733c1a7b7feaba7b679
2019-07-09 06:12:11 +00:00