Deployment type: Make more fields dynamic based on that field

This commit is contained in:
Yanis Guenane
2021-04-28 12:02:19 +02:00
parent fb183f4eab
commit 4706aa9a1e
21 changed files with 91 additions and 48 deletions

View File

@@ -26,6 +26,15 @@ spec:
deployment_type: deployment_type:
description: Name of the deployment type description: Name of the deployment type
type: string type: string
default: awx
kind:
description: Kind of the deployment type
type: string
default: AWX
api_version:
description: apiVersion of the deployment type
type: string
default: awx.ansible.com/v1beta1
tower_task_privileged: tower_task_privileged:
description: If a privileged security context should be enabled description: If a privileged security context should be enabled
type: boolean type: boolean

View File

@@ -28,6 +28,15 @@ spec:
deployment_type: deployment_type:
description: Name of the deployment type description: Name of the deployment type
type: string type: string
default: awx
kind:
description: Kind of the deployment type
type: string
default: AWX
api_version:
description: apiVersion of the deployment type
type: string
default: awx.ansible.com/v1beta1
tower_task_privileged: tower_task_privileged:
description: If a privileged security context should be enabled description: If a privileged security context should be enabled
type: boolean type: boolean

View File

@@ -26,6 +26,15 @@ spec:
deployment_type: deployment_type:
description: Name of the deployment type description: Name of the deployment type
type: string type: string
default: awx
kind:
description: Kind of the deployment type
type: string
default: AWX
api_version:
description: apiVersion of the deployment type
type: string
default: awx.ansible.com/v1beta1
tower_task_privileged: tower_task_privileged:
description: If a privileged security context should be enabled description: If a privileged security context should be enabled
type: boolean type: boolean

View File

@@ -204,6 +204,16 @@ spec:
x-descriptors: x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced - urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden - urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Deployment Kind
path: kind
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Deployment apiVersion
path: api_version
x-descriptors:
- urn:alm:descriptor:com.tectonic.ui:advanced
- urn:alm:descriptor:com.tectonic.ui:hidden
- displayName: Tower Image - displayName: Tower Image
path: tower_image path: tower_image
x-descriptors: x-descriptors:

View File

@@ -25,6 +25,15 @@ spec:
deployment_type: deployment_type:
description: Name of the deployment type description: Name of the deployment type
type: string type: string
default: awx
kind:
description: Kind of the deployment type
type: string
default: AWX
api_version:
description: apiVersion of the deployment type
type: string
default: awx.ansible.com/v1beta1
development_mode: development_mode:
description: If the deployment should be done in development mode description: If the deployment should be done in development mode
type: boolean type: boolean

View File

@@ -1,5 +1,7 @@
--- ---
deployment_type: awx deployment_type: awx
kind: '{{ deployment_type | upper }}'
api_version: '{{ deployment_type }}.ansible.com/v1beta1'
database_name: "{{ deployment_type }}" database_name: "{{ deployment_type }}"
database_username: "{{ deployment_type }}" database_username: "{{ deployment_type }}"

View File

@@ -3,8 +3,8 @@
k8s: k8s:
state: present state: present
definition: definition:
apiVersion: awx.ansible.com/v1beta1 apiVersion: '{{ api_version }}'
kind: AWX kind: '{{ kind }}'
name: '{{ meta.name }}' name: '{{ meta.name }}'
namespace: '{{ meta.namespace }}' namespace: '{{ meta.namespace }}'
metadata: metadata:
@@ -13,8 +13,8 @@
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
- name: Include secret key configuration tasks - name: Include secret key configuration tasks
include_tasks: secret_key_configuration.yml include_tasks: secret_key_configuration.yml

View File

@@ -7,8 +7,8 @@
namespace: '{{ meta.namespace }}' namespace: '{{ meta.namespace }}'
label_selectors: label_selectors:
- "app.kubernetes.io/name={{ meta.name }}" - "app.kubernetes.io/name={{ meta.name }}"
- "app.kubernetes.io/managed-by=awx-operator" - "app.kubernetes.io/managed-by={{ deployment_type }}-operator"
- "app.kubernetes.io/component=awx" - "app.kubernetes.io/component={{ deployment_type }}"
field_selectors: field_selectors:
- status.phase=Running - status.phase=Running
register: tower_pods register: tower_pods
@@ -57,8 +57,8 @@
namespace: '{{ meta.namespace }}' namespace: '{{ meta.namespace }}'
label_selectors: label_selectors:
- "app.kubernetes.io/name={{ meta.name }}" - "app.kubernetes.io/name={{ meta.name }}"
- "app.kubernetes.io/managed-by=awx-operator" - "app.kubernetes.io/managed-by={{ deployment_type }}-operator"
- "app.kubernetes.io/component=awx" - "app.kubernetes.io/component={{ deployment_type }}"
field_selectors: field_selectors:
- status.phase=Running - status.phase=Running
register: _new_pod register: _new_pod

View File

@@ -1,9 +1,4 @@
--- ---
- name: Set apiVersion and kind variables
set_fact:
api_version: '{{ hostvars["localhost"]["inventory_file"].split("/")[4:6] | join("/") }}'
kind: '{{ hostvars["localhost"]["inventory_file"].split("/")[6] }}'
- name: Update admin password status - name: Update admin password status
operator_sdk.util.k8s_status: operator_sdk.util.k8s_status:
api_version: '{{ api_version }}' api_version: '{{ api_version }}'

View File

@@ -7,7 +7,7 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
stringData: stringData:
password: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}' password: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}'

View File

@@ -8,8 +8,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
data: data:
credentials.py: "{{ lookup('template', 'credentials.py.j2') | b64encode }}" credentials.py: "{{ lookup('template', 'credentials.py.j2') | b64encode }}"
ldap.py: "{{ lookup('template', 'ldap.py.j2') | b64encode }}" ldap.py: "{{ lookup('template', 'ldap.py.j2') | b64encode }}"

View File

@@ -7,7 +7,7 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
stringData: stringData:
secret: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}' secret: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}'

View File

@@ -8,8 +8,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
data: data:
environment: | environment: |
AWX_SKIP_MIGRATIONS=true AWX_SKIP_MIGRATIONS=true

View File

@@ -9,23 +9,23 @@ metadata:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/version: '{{ tower_image_version }}' app.kubernetes.io/version: '{{ tower_image_version }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
spec: spec:
replicas: {{ tower_replicas }} replicas: {{ tower_replicas }}
selector: selector:
matchLabels: matchLabels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
template: template:
metadata: metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/version: '{{ tower_image_version }}' app.kubernetes.io/version: '{{ tower_image_version }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
spec: spec:
serviceAccountName: '{{ meta.name }}' serviceAccountName: '{{ meta.name }}'
{% if tower_image_pull_secret %} {% if tower_image_pull_secret %}

View File

@@ -8,8 +8,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
{% if tower_ingress_annotations %} {% if tower_ingress_annotations %}
annotations: annotations:
{{ tower_ingress_annotations | indent(width=4) }} {{ tower_ingress_annotations | indent(width=4) }}
@@ -41,8 +41,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
spec: spec:
{% if tower_route_host != '' %} {% if tower_route_host != '' %}
host: {{ tower_route_host }} host: {{ tower_route_host }}

View File

@@ -7,8 +7,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
spec: spec:
accessModes: accessModes:
- {{ tower_projects_storage_access_mode }} - {{ tower_projects_storage_access_mode }}

View File

@@ -8,13 +8,13 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}-postgres' app.kubernetes.io/name: '{{ meta.name }}-postgres'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: database app.kubernetes.io/component: database
spec: spec:
selector: selector:
matchLabels: matchLabels:
app.kubernetes.io/name: '{{ meta.name }}-postgres' app.kubernetes.io/name: '{{ meta.name }}-postgres'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: database app.kubernetes.io/component: database
serviceName: '{{ meta.name }}' serviceName: '{{ meta.name }}'
replicas: 1 replicas: 1
@@ -25,7 +25,7 @@ spec:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}-postgres' app.kubernetes.io/name: '{{ meta.name }}-postgres'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: database app.kubernetes.io/component: database
spec: spec:
containers: containers:
@@ -90,7 +90,7 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}-postgres' app.kubernetes.io/name: '{{ meta.name }}-postgres'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: database app.kubernetes.io/component: database
spec: spec:
ports: ports:
@@ -98,5 +98,5 @@ spec:
clusterIP: None clusterIP: None
selector: selector:
app.kubernetes.io/name: '{{ meta.name }}-postgres' app.kubernetes.io/name: '{{ meta.name }}-postgres'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: database app.kubernetes.io/component: database

View File

@@ -8,8 +8,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
stringData: stringData:
password: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}' password: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}'
username: '{{ database_username }}' username: '{{ database_username }}'

View File

@@ -7,7 +7,7 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
stringData: stringData:
secret_key: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}' secret_key: '{{ lookup('password', '/dev/null length=32 chars=ascii_letters,digits') }}'

View File

@@ -7,8 +7,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
{% if tower_ingress_type | lower == 'loadbalancer' and tower_loadbalancer_annotations %} {% if tower_ingress_type | lower == 'loadbalancer' and tower_loadbalancer_annotations %}
annotations: annotations:
{{ tower_loadbalancer_annotations | indent(width=4) }} {{ tower_loadbalancer_annotations | indent(width=4) }}
@@ -40,8 +40,8 @@ spec:
{% endif %} {% endif %}
selector: selector:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
{% if tower_ingress_type | lower == "loadbalancer" %} {% if tower_ingress_type | lower == "loadbalancer" %}
type: LoadBalancer type: LoadBalancer
{% elif tower_ingress_type != "none" %} {% elif tower_ingress_type != "none" %}

View File

@@ -7,8 +7,8 @@ metadata:
labels: labels:
app.kubernetes.io/name: '{{ meta.name }}' app.kubernetes.io/name: '{{ meta.name }}'
app.kubernetes.io/part-of: '{{ meta.name }}' app.kubernetes.io/part-of: '{{ meta.name }}'
app.kubernetes.io/managed-by: awx-operator app.kubernetes.io/managed-by: '{{ deployment_type }}-operator'
app.kubernetes.io/component: awx app.kubernetes.io/component: '{{ deployment_type }}'
--- ---
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role