Commit Graph
594 Commits
Author SHA1 Message Date
Hao Liu fcbf394272 Fix "external_hostname" should not be required while using Route ingress (#1807)
Fix "external_hostname" required on OCP
2024-04-03 16:16:16 +00:00
Christian Adams 7bf49c207a Remove the ability to customize the postgres_data_dir (#1798)
* in the sclorg Postgresql 15 image, the PGDATA directory is hardcoded
* if users were to modify this directory, they would only change the
  directory the pvc is mounted to, not the directory PostgreSQL uses.
  This would result in loss of data.
* switch from /var/lib/pgsql/data/pgdata to /var/lib/pgsql/data/userdata
2024-03-31 21:58:33 -04:00
Dimitri Savineau 80a9e8c156 postgresql: Cast sorted_old_postgres_pods as list (#1791)
With ansible 2.9.27 (operator-sdk v1.27.0) then the reverse filter
returns an iterator so we need to cast it to list.
The behavior doesn't exist when using a more recent operator-sdk
version like v1.34.0 (ansible-core 2.15.8) but using the list
filter on that version works too (even if not needed)

"sorted_old_postgres_pods": "<list_reverseiterator object at 0x7f539eaa5610>"

Signed-off-by: Dimitri Savineau <[email protected]>
2024-03-27 14:31:53 -04:00
kurokobo 07b8120788 fix: add retries to find running web pod (#1787) 2024-03-27 14:25:10 -04:00
kurokobo a6e7a1bec3 fix: correct readinessProbe for web pod (#1786)
fix: correct readinesProbe for web pod
2024-03-27 14:21:23 -04:00
aknochow c6fe038fe4 Adding support for ansible metrics-utility (#1754)
- Adding metadata, storage_class, and pullsecret for metrics-utility
- Updating crd, csv and defaults
- Adding metrics-utility cronjob
2024-03-20 11:05:13 -04:00
Hao Liu 0dbf3ddff8 Add ServiceAccount and ImagePullSecet to migration job (#1763)
CI / molecule (--skip-tags=replicas) (push) Failing after 2m32s
CI / molecule (-t replicas) (push) Failing after 1m56s
CI / helm (push) Failing after 4m3s
CI / no-log (push) Successful in 12s
Add ServiceAccount and ImagePullSecet to migration pod
2024-03-13 20:56:56 +00:00
Seth FosterandHao Liu 154b801cfc Change default value for postgres_data_path (#1766)
* Change default value for postgres_data_path

/var/lib/postgresql/data/pgdata
to
/var/lib/pgsql/data/pgdata

postgres 15 uses a different location for
postgres data directory.

Fixes issue were database was not being written
to the mounted in volume, and if the postgres
container restarted, data would be lost.

Signed-off-by: Seth Foster <[email protected]>
---------

Signed-off-by: Seth Foster <[email protected]>
Co-authored-by: Hao Liu <[email protected]>
2024-03-13 16:17:49 -04:00
Hao Liu a8acae4af5 Don't delete old postgres 13 volume automatically (#1767)
Leave old postgres-13 volume alone in case of unforseen upgrade failure for restore purposes

User can manually delete old PVC after verifying upgrade is completed
2024-03-13 15:23:10 -04:00
Hao Liu 6e31feaa20 Add command when specifying args for postgres (#1765)
When using args the container defaults to the entrypoint instead of command

causing postgres to be in a crashloop
2024-03-13 15:16:05 -04:00
Christian Adams ed6ac1a11a Create a new postgres configuration secret when restoring a new instance (#1733)
- This will avoid the operator changing the host value of the original
  deployments postgres_configuration_secret. As it was, restores broke
  the original deployment if it was still around before this change.

Signed-off-by: Christian M. Adams <[email protected]>
2024-03-11 16:34:43 -04:00
Hao LiuandSeth Foster b5d81b8e5d Fix awx_kube_devel (#1759)
* Fix awx_kube_devel
* Sanitize version name for kube_dev

When in development mode, awx version may look
like 23.9.1.dev18+gee9eac15dc.d20240311

k8s job to the migration can only have
a name with alphanumeric, and '.', '-'

so we can just drop off the +

Signed-off-by: Seth Foster <[email protected]>

---------

Signed-off-by: Seth Foster <[email protected]>
Co-authored-by: Seth Foster <[email protected]>
2024-03-11 19:01:00 +00:00
bartowlandHao Liu 3abeec518a Bind EE images version with DEFAULT_AWX_VERSION (#1740)
* bind ee_images, control_plane_ee_image and init_container_image with DEFAULT_AWX_VERSION instead of "latest"

* fix when condition on init_container_image_version check

* Use DEFAULT_AWX_VERSION for AWXMeshIngress

* Add back AWX EE latest for backward compatibility

---------

Co-authored-by: Hao Liu <[email protected]>
2024-03-11 14:12:10 -04:00
Christian Adams d2c4b9c8a4 The pg service label_selector now uses the deployment_type variable (#1755) 2024-03-08 09:02:31 -05:00
Christian Adams 2ad1d25120 Update PostgreSQL docs about finding default version (#1747) 2024-03-07 21:47:18 -05:00
Hao Liu 26e72b4e1d Fix undefined external_hostname when using Route (#1753) 2024-03-07 22:53:48 +00:00
Hao Liu 3434cbef96 AWXMeshIngress route respect external_hostname (#1752)
* AwxMeshIngress route respect external_hostname
* Set host in AWXMeshIngress route if external_hostname is defined
2024-03-07 15:43:06 -05:00
David Hageman 256d84a42a Add imagePullSecrets option to Mesh Ingress (#1750) 2024-03-07 13:17:39 -05:00
kurokobo 03cfe14c07 fix: extend expiration date for the certs for receptor nodes to 10 years (#1744) 2024-03-06 19:52:04 +00:00
Tyler Muir 82c7dd2f44 add support for defining loadbalancer class (#1746) 2024-03-06 14:35:16 -05:00
David Hageman ffba1b4712 Add -ness checks and refactor migrations (#1674) 2024-03-05 19:54:22 -05:00
kurokobo dba934daa0 fix: revert type of status.upgradedPostgresVersion to string (#1745) 2024-03-04 15:55:16 -05:00
aknochow d0827ba426 Fixing postgres upgrade conditional (#1741) 2024-03-01 17:09:15 -05:00
kurokobo 16b2f2a34f fix: correct unsafe conditional (#1737) 2024-03-01 20:54:40 +00:00
607a7ca58c Upgrading to PostgreSQL 15 and moving to sclorg images (#1486)
* Upgrading to postgres:15
* Changing image from postgres to sclorg
* Handle scenario where upgrade status is not defined & correct pg tag
* Rework the upgrade logic to be more resiliant for multiple upgrades

---------

Co-authored-by: john-westcott-iv <[email protected]>
Co-authored-by: Christian M. Adams <[email protected]>
2024-02-29 17:02:11 -05:00
Hao Liu 630a5ee1f3 Fix bug where uppercase Route fails (#1731)
CI / molecule (--skip-tags=replicas) (push) Failing after 2m21s
CI / molecule (-t replicas) (push) Failing after 2m5s
CI / helm (push) Failing after 5m1s
CI / no-log (push) Successful in 11s
2024-02-26 17:17:37 +00:00
kurokobo 3981e6ba5e fix: correct indentation for annotations for awxmeshingress (#1723)
fix: correct indentation for annotations
2024-02-21 19:46:34 +00:00
kurokobo a9cee5f4da fix: revert removal trim symbol before endif (#1715) 2024-02-15 17:02:48 +00:00
Chris Meyers 5f3d9ed96f More locked down websocket path
* Previously, the nginx location would match on /foo/websocket... or
  /foo/api/websocket... Now, we require these two paths to start at the
  root i.e. <host>/websocket/... /api/websocket/...
* Note: We now also require an ending / and do NOT support
  <host>/websocket_foobar but DO support <host>/websocket/foobar. This
  was always the intended behavior. We want to keep
  <host>/api/websocket/... "open" and routing to daphne in case we want
  to add more websocket urls in the future.
2024-02-13 15:53:34 -05:00
Chris Meyers 1eb8501430 Allow connecting to websockets via api/websocket/
CI / molecule (--skip-tags=replicas) (push) Failing after 2m38s
CI / molecule (-t replicas) (push) Failing after 2m27s
CI / helm (push) Failing after 3m30s
CI / no-log (push) Successful in 11s
* Before, we just allowed websockets on <host>/websocket/. With this
  change, they can now come from <host>/api/websocket/
2024-02-13 10:20:50 -05:00
Hao Liu 0ca3f1a7c4 Update awx-manage commands for mesh ingress
and fix linting

Signed-off-by: Seth Foster <[email protected]>

Set correct protocol for external mesh ingress address

and fix linting error
2024-01-18 15:38:18 -05:00
Hao Liu 69474557eb Default ingress_type to route when on OpenShift
also rename route.yml.j2 to ingress.yml.j2 since we cover more than just route now
2024-01-18 15:38:18 -05:00
kurokobo da7e227f71 Add ingress and ingressroutetcp for awxmeshingress (#1646)
* fix: correct port number for internal receptor address
* feat: add support for ingress for awxmeshingress cr
* feat: add support for ingressroutetcp (for traefik) for awxmeshingress cr
2024-01-18 15:38:18 -05:00
Hao Liu cb5db01406 Add finalizer to deprovision ingress instance 2024-01-18 15:38:18 -05:00
Hao Liu 494384c1d7 Fix receptor port when going through route 2024-01-18 15:38:18 -05:00
Hao Liu 34c2e48e0a Fix bug where external_ipaddress is required
external_ipaddress is optional and we should be able to deal with missing external_ipaddress with no error
2024-01-18 15:38:18 -05:00
Hao Liu 122995fda7 Add owner ref on AWXMeshIngress to AWX
This way when AWX is deleted associated AWXMeshIngress will all be deleted as well
2024-01-18 15:38:18 -05:00
Seth Foster 9761c78fe9 Update add_receptor_address command
- add --is_internal and --peers_from_control_nodes
to indicate the address is internal

Signed-off-by: Seth Foster <[email protected]>
2024-01-18 15:38:18 -05:00
Seth Foster 062c7153c6 Use deployment instead of statefulset
When pod loses connection with k8s api server,
a statefulset can take a while (5 minutes) before
it is rescheduled. Deployments quicker turnaround
in this situation, which should help mesh
stability.

Signed-off-by: Seth Foster <[email protected]>
2024-01-18 15:38:18 -05:00
Seth Foster 6ef4aed024 Provision instance and add receptor address
The mesh role now calls
1. awx-manage provision instance to register the hop
node to the database
2. awx-manage add_receptor_address to register the
internal address
3. awx-manage add_receptor_address to register the
external address (to be used by remote nodes)

CRD expanded to include external_ipaddress and
external_hostname

external_ipaddress is added as ipaddress in the
hop node certificate

external_hostname is added as dnsname in the
hop node certificate

the mesh role now checks for is_openshift and
only creates a Route if true. Otherwise it
will use external_hostname set in the spec
file in place of Route name.

Signed-off-by: Seth Foster <[email protected]>
2024-01-18 15:38:18 -05:00
Hao Liu 3fe42ed4b9 Removing sample awxmeshingress to fix CI
sample are used in CI for validation test

in current implementation we only support openshift route this will not work on kind clusters correctly and having the sample is causing CI failure
2024-01-18 15:38:18 -05:00
Hao Liu d3934d9e08 Able to deploy mesh ingress node
TODO: register instance after creation

dependent on API/CLI change
2024-01-18 15:38:18 -05:00
Hao Liu 66f03c3c16 Adopt LISTENER_DATABASES setting (#1687)
Related to https://github.com/ansible/awx/pull/14755

move TCP keepalive to pg_listener specific db setting
2024-01-17 13:47:35 -05:00
07427be0b7 Allow multiple ingress hosts to be defined when using ingress (#1377)
* Replace api version for deployment kind to apps/v1

* Add new multiple ingress spec and deprecate hostname and ingress_tls_secret

* Manage new ingress_hosts.tls_secret backup separately

* Fix ci molecule lint warnings and error

* Fix documentation

* Fix ingress_hosts tls_secret key being optional

* Remove fieldDependency:ingress_type:Ingress for Ingress Hosts

* Fix scenario when neither hostname or ingress_hosts is defined

---------

Co-authored-by: Guillaume Lefevre <[email protected]>
Co-authored-by: Seth Foster <[email protected]>
Co-authored-by: Christian Adams <[email protected]>
2024-01-05 10:15:04 -05:00
Christian Adams 582701d949 Refactor to resolve the linter warnings on PRs (#1668)
CI / molecule (--skip-tags=replicas) (push) Failing after 5m3s
CI / molecule (-t replicas) (push) Failing after 4m8s
CI / helm (push) Failing after 6m26s
CI / no-log (push) Successful in 11s
2023-12-14 09:29:35 -05:00
Hao Liu 25a6c3c48a Remove unnessary chmod and chown for db dump (#1667)
Based on https://github.com/ansible/awx-operator/pull/1602

Fixes https://github.com/ansible/awx-operator/issues/1590
2023-12-13 19:28:23 +00:00
Christian Adams d0c7f343b2 Fix PG Restore Force Drop DB flag (#1665)
- Previously, if the flag was set to true, the bash conditional failed
  because the boolean was not correctly interpreted.
- Use pg_restore return code to determine if the task should be marked as failed

Signed-off-by: Christian M. Adams <[email protected]>
2023-12-08 16:38:47 -05:00
David Gries ef17865f12 Update deprecated collections path variable (#1648)
CI / molecule (--skip-tags=replicas) (push) Failing after 2m19s
CI / molecule (-t replicas) (push) Failing after 4m10s
CI / helm (push) Failing after 6m48s
CI / no-log (push) Successful in 22s
remove deprecated 'ANSIBLE_COLLECTIONS_PATHS' variable
2023-12-06 19:29:39 +00:00
Christian Adams a61ed18147 Always check and wait for a restore pg_restore to finish (#1652) 2023-12-01 16:18:23 -05:00
Hao Liu 0f0ff32bf6 Add option to force drop database before restore (#1639) 2023-11-27 18:52:07 +00:00