Compare commits

...

7 Commits
2.3.0 ... 2.4.0

19 changed files with 248 additions and 9 deletions

1
.gitignore vendored
View File

@@ -9,3 +9,4 @@ gh-pages/
/.cr-release-packages
.vscode/
__pycache__
/site

View File

@@ -716,23 +716,29 @@ spec:
requests:
cpu: 250m
memory: 2Gi
ephemeral-storage: 100M
limits:
cpu: 1000m
memory: 4Gi
ephemeral-storage: 500M
task_resource_requirements:
requests:
cpu: 250m
memory: 1Gi
ephemeral-storage: 100M
limits:
cpu: 2000m
memory: 2Gi
ephemeral-storage: 500M
ee_resource_requirements:
requests:
cpu: 250m
memory: 100Mi
ephemeral-storage: 100M
limits:
cpu: 500m
memory: 2Gi
ephemeral-storage: 500M
```
#### Priority Classes
@@ -998,6 +1004,7 @@ In a scenario where custom volumes and volume mounts are required to either over
| extra_volumes | Specify extra volumes to add to the application pod | '' |
| web_extra_volume_mounts | Specify volume mounts to be added to Web container | '' |
| task_extra_volume_mounts | Specify volume mounts to be added to Task container | '' |
| rsyslog_extra_volume_mounts | Specify volume mounts to be added to Rsyslog container | '' |
| ee_extra_volume_mounts | Specify volume mounts to be added to Execution container | '' |
| init_container_extra_volume_mounts | Specify volume mounts to be added to Init container | '' |
| init_container_extra_commands | Specify additional commands for Init container | '' |
@@ -1159,11 +1166,12 @@ type: kubernetes.io/dockerconfigjson
If you need to export custom environment variables to your containers.
| Name | Description | Default |
| -------------- | --------------------------------------------------- | ------- |
| task_extra_env | Environment variables to be added to Task container | '' |
| web_extra_env | Environment variables to be added to Web container | '' |
| ee_extra_env | Environment variables to be added to EE container | '' |
| Name | Description | Default |
| ----------------- | ------------------------------------------------------ | ------- |
| task_extra_env | Environment variables to be added to Task container | '' |
| web_extra_env | Environment variables to be added to Web container | '' |
| rsyslog_extra_env | Environment variables to be added to Rsyslog container | '' |
| ee_extra_env | Environment variables to be added to EE container | '' |
> :warning: The `ee_extra_env` will only take effect to the globally available Execution Environments. For custom `ee`, please [customize the Pod spec](https://docs.ansible.com/ansible-tower/latest/html/administration/external_execution_envs.html#customize-the-pod-spec).
@@ -1177,6 +1185,9 @@ Example configuration of environment variables
web_extra_env: |
- name: MYCUSTOMVAR
value: foo
rsyslog_extra_env: |
- name: MYCUSTOMVAR
value: foo
ee_extra_env: |
- name: MYCUSTOMVAR
value: foo

View File

@@ -90,6 +90,17 @@ spec:
postgres_image_version:
description: PostgreSQL container image version to use
type: string
image_pull_policy:
description: The image pull policy
type: string
default: IfNotPresent
enum:
- Always
- always
- Never
- never
- IfNotPresent
- ifnotpresent
db_management_pod_node_selector:
description: nodeSelector for the Postgres pods to backup
type: string

View File

@@ -94,6 +94,17 @@ spec:
postgres_image_version:
description: PostgreSQL container image version to use
type: string
image_pull_policy:
description: The image pull policy
type: string
default: IfNotPresent
enum:
- Always
- always
- Never
- never
- IfNotPresent
- ifnotpresent
db_management_pod_node_selector:
description: nodeSelector for the Postgres pods to backup
type: string

View File

@@ -1368,6 +1368,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1377,6 +1379,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
web_resource_requirements:
@@ -1390,6 +1394,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1399,6 +1405,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
ee_resource_requirements:
@@ -1412,6 +1420,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1421,6 +1431,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
postgres_init_container_resource_requirements:
@@ -1456,6 +1468,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1465,6 +1479,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
rsyslog_resource_requirements:
@@ -1478,6 +1494,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1487,6 +1505,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
init_container_resource_requirements:
@@ -1500,6 +1520,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
limits:
properties:
@@ -1509,6 +1531,8 @@ spec:
type: string
storage:
type: string
ephemeral-storage:
type: string
type: object
type: object
service_account_annotations:
@@ -1551,10 +1575,20 @@ spec:
type: array
items:
type: string
rsyslog_args:
type: array
items:
type: string
rsyslog_command:
type: array
items:
type: string
task_extra_env:
type: string
web_extra_env:
type: string
rsyslog_extra_env:
type: string
ee_extra_env:
type: string
ee_extra_volume_mounts:
@@ -1566,6 +1600,9 @@ spec:
web_extra_volume_mounts:
description: Specify volume mounts to be added to the Web container
type: string
rsyslog_extra_volume_mounts:
description: Specify volume mounts to be added to the Rsyslog container
type: string
redis_image:
description: Registry path to the redis container to use
type: string
@@ -1716,6 +1753,9 @@ spec:
session_cookie_secure:
description: Set session cookie secure mode for web
type: string
receptor_log_level:
description: Set log level of receptor service
type: string
extra_settings:
description: Extra settings to specify for the API
items:

View File

@@ -65,6 +65,11 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Image Pull Policy
path: image_pull_policy
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:imagePullPolicy
- displayName: No Log Configuration
path: no_log
x-descriptors:
@@ -135,6 +140,11 @@ spec:
path: postgres_image_version
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Image Pull Policy
path: image_pull_policy
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:imagePullPolicy
- displayName: Restore Management Pod Resource Requirements
path: restore_resource_requirements
x-descriptors:
@@ -648,6 +658,28 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Rsyslog Args
path: rsyslog_args
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Rsyslog Command
path: rsyslog_command
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- description: Environment variables to be added to Rsyslog container
displayName: Rsyslog Extra Env
path: rsyslog_extra_env
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- description: Specify volume mounts to be added to Rsyslog container
displayName: Rsyslog Extra Volume Mounts
path: rsyslog_extra_volume_mounts
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- description: Specify extra volumes to add to the application pod
displayName: Extra Volumes
path: extra_volumes
@@ -760,6 +792,11 @@ spec:
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Receptor Log Level
path: receptor_log_level
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: API Extra Settings
path: extra_settings
x-descriptors:

1
docs/index.md Normal file
View File

@@ -0,0 +1 @@
# Welcome to the documentation of ansible awx-operator

12
docs/requirements.txt Normal file
View File

@@ -0,0 +1,12 @@
cairosvg==2.7.0
markdown-exec>=1.6.0
mkdocs-ansible[lock]>=0.1.6
mkdocs-gen-files>=0.4.0
mkdocs-material-extensions>=1.1.1
mkdocs-material>=9.1.15
mkdocs==1.4.3
mkdocstrings-python>=1.1.0
mkdocstrings>=0.22.0
pillow==9.5.0
pipdeptree==2.7.1
pymdown-extensions==10.0.1

82
mkdocs.yml Normal file
View File

@@ -0,0 +1,82 @@
---
site_name: awx-operator
site_url: https://awx-operator.readthedocs.io/
repo_url: https://github.com/ansible/awx-operator
edit_uri: blob/devel/docs/
docs_dir: docs
strict: true
use_directory_urls: false
theme:
name: "material"
features:
- content.code.copy
- content.action.edit
- navigation.expand
- navigation.sections
- navigation.instant
- navigation.indexes
- navigation.tracking
- toc.integrate
palette:
- media: "(prefers-color-scheme: light)"
primary: teal
accent: blue
scheme: default
toggle:
icon: material/brightness-7
name: Switch to dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
primary: teal
accent: blue
toggle:
icon: material/brightness-4
name: Switch to light mode
nav:
- home: index.md
- debugging.md
- migration.md
plugins:
- autorefs
- markdown-exec
- search
- mkdocstrings:
handlers:
python:
paths: [src]
options:
# Sphinx is for historical reasons, but we could consider switching if needed
# https://mkdocstrings.github.io/griffe/docstrings/
docstring_style: sphinx
merge_init_into_class: yes
show_submodules: yes
import:
- url: https://docs.ansible.com/ansible/latest/objects.inv
domains: [py, std]
markdown_extensions:
- admonition
- def_list
- footnotes
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets:
check_paths: true
- pymdownx.superfences
- pymdownx.magiclink:
repo_url_shortener: true
repo_url_shorthand: true
social_url_shorthand: true
social_url_shortener: true
user: facelessuser
repo: pymdown-extensions
normalize_issue_symbols: true
- pymdownx.tabbed:
alternate_style: true
- toc:
toc_depth: 2
permalink: true

View File

@@ -82,6 +82,12 @@ It is also possible to tie the lifetime of the backup files to that of the AWXBa
clean_backup_on_delete: true
```
Variable to define Pull policy.You can pass other options like `Always`, `always`, `Never`, `never`, `IfNotPresent`, `ifnotpresent`.
```
image_pull_policy: 'IfNotPresent'
```
Variable to define resources limits and request for backup CR.
```
backup_resource_requirements:

View File

@@ -10,7 +10,7 @@ spec:
containers:
- name: {{ ansible_operator_meta.name }}-db-management
image: "{{ _postgres_image }}"
imagePullPolicy: Always
imagePullPolicy: "{{ image_pull_policy }}"
command: ["sleep", "infinity"]
volumeMounts:
- name: {{ ansible_operator_meta.name }}-backup

View File

@@ -5,3 +5,4 @@ _postgres_image_version: 13
backup_complete: false
database_type: "unmanaged"
supported_pg_version: 13
image_pull_policy: IfNotPresent

View File

@@ -335,6 +335,7 @@ init_container_resource_requirements:
# value: bing
task_extra_env: ''
web_extra_env: ''
rsyslog_extra_env: ''
ee_extra_env: ''
# Mount extra volumes on the AWX task/web containers. Specify as literal block.
@@ -344,6 +345,7 @@ ee_extra_env: ''
# mountPath: /some/path
task_extra_volume_mounts: ''
web_extra_volume_mounts: ''
rsyslog_extra_volume_mounts: ''
ee_extra_volume_mounts: ''
# Add a nodeSelector for the Postgres pods.
@@ -445,3 +447,5 @@ ipv6_disabled: false
# hostnames:
# - hostname
host_aliases: ''
receptor_log_level: info

View File

@@ -84,6 +84,9 @@ data:
BROADCAST_WEBSOCKET_PROTOCOL = 'http'
RECEPTOR_LOG_LEVEL = '{{ receptor_log_level }}'
{% for item in extra_settings | default([]) %}
{{ item.setting }} = {{ item.value }}
{% endfor %}
@@ -135,7 +138,7 @@ data:
server_name _;
# Redirect all HTTP links to the matching HTTPS page
return 301 https://$host$request_uri;
return 301 https://$host:8053$request_uri;
}
{% endif %}
@@ -236,7 +239,7 @@ data:
bind 127.0.0.1
receptor_conf: |
---
- log-level: info
- log-level: {{ receptor_log_level }}
- local-only: null
- node:
firewallrules:

View File

@@ -382,6 +382,9 @@ spec:
- name: awx-devel
mountPath: "/awx_devel"
{% endif %}
{% if rsyslog_extra_volume_mounts -%}
{{ rsyslog_extra_volume_mounts | indent(width=12, first=True) }}
{% endif %}
{% if termination_grace_period_seconds is defined %}
- name: pre-stop-data
mountPath: /var/lib/pre-stop
@@ -401,6 +404,9 @@ spec:
- name: AWX_KUBE_DEVEL
value: "1"
{% endif %}
{% if rsyslog_extra_env -%}
{{ rsyslog_extra_env | indent(width=12, first=True) }}
{% endif %}
{% if task_node_selector %}
nodeSelector:
{{ task_node_selector | indent(width=8) }}

View File

@@ -287,6 +287,9 @@ spec:
{% if development_mode | bool %}
- name: awx-devel
mountPath: "/awx_devel"
{% endif %}
{% if rsyslog_extra_volume_mounts -%}
{{ rsyslog_extra_volume_mounts | indent(width=12, first=True) }}
{% endif %}
env:
- name: SUPERVISOR_CONFIG_PATH
@@ -294,6 +297,9 @@ spec:
{% if development_mode | bool %}
- name: AWX_KUBE_DEVEL
value: "1"
{% endif %}
{% if rsyslog_extra_env -%}
{{ rsyslog_extra_env | indent(width=12, first=True) }}
{% endif %}
resources: {{ rsyslog_resource_requirements }}
{% if web_node_selector %}

View File

@@ -101,6 +101,12 @@ backup_pvc: myoldtower-backup-claim
backup_dir: /backups/tower-openshift-backup-2021-04-02-03:25:08
```
Variable to define Pull policy.You can pass other options like `Always`, `always`, `Never`, `never`, `IfNotPresent`, `ifnotpresent`.
```
image_pull_policy: 'IfNotPresent'
```
Variable to define resources limits and request for restore CR.
```

View File

@@ -10,7 +10,7 @@ spec:
containers:
- name: {{ ansible_operator_meta.name }}-db-management
image: "{{ _postgres_image }}"
imagePullPolicy: Always
imagePullPolicy: "{{ image_pull_policy }}"
command: ["sleep", "infinity"]
volumeMounts:
- name: {{ ansible_operator_meta.name }}-backup

View File

@@ -13,3 +13,4 @@ admin_password_secret: '{{ deployment_name }}-admin-password'
broadcast_websocket_secret: '{{ deployment_name }}-broadcast-websocket'
postgres_configuration_secret: '{{ deployment_name }}-postgres-configuration'
supported_pg_version: 13
image_pull_policy: IfNotPresent