mirror of
https://github.com/openshift/community.okd.git
synced 2026-07-29 02:44:32 +00:00
[backport/stable-4] Add ansible-lint to tox linters (#258) and Update tests for newer version of openshift (#254) (#259)
* Add ansible-lint to tox linters (#258) * Add ansible-lint to tox linters * Bump black * Black formatting * fix linting (cherry picked from commitf54297c2ac) * Update tests for newer version of openshift (#254) * Update tests for newer version of openshift More recent versions of ocp no longer automatically create tokens for service accounts. This updates the tests to manually create the tokens. * Update nginx template version The old image was EOL and the deployment was failing to deploy. * Fix nginx version for all tasks * Add missing var (cherry picked from commita3c3a69bbf) --------- Co-authored-by: Mike Graves <mgraves@redhat.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
# Want to make sure comments don't break it
|
# Want to make sure comments don't break it
|
||||||
export NAME=test123
|
export NAME=test123
|
||||||
NAMESPACE=openshift
|
NAMESPACE=openshift
|
||||||
|
NGINX_VERSION=1.22-ubi8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
- set_fact:
|
- set_fact:
|
||||||
test_sa: "clusterrole-sa"
|
test_sa: "clusterrole-sa"
|
||||||
test_ns: "clusterrole-ns"
|
test_ns: "clusterrole-ns"
|
||||||
|
test_tn: "clusterrole-tn"
|
||||||
|
|
||||||
- name: Ensure namespace
|
- name: Ensure namespace
|
||||||
kubernetes.core.k8s:
|
kubernetes.core.k8s:
|
||||||
@@ -26,34 +27,27 @@
|
|||||||
name: "{{ test_sa }}"
|
name: "{{ test_sa }}"
|
||||||
namespace: "{{ test_ns }}"
|
namespace: "{{ test_ns }}"
|
||||||
|
|
||||||
- name: Read Service Account
|
- name: Create SA token
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s:
|
||||||
kind: ServiceAccount
|
definition:
|
||||||
namespace: "{{ test_ns }}"
|
apiVersion: v1
|
||||||
name: "{{ test_sa }}"
|
kind: Secret
|
||||||
register: result
|
metadata:
|
||||||
|
name: "{{ test_tn }}"
|
||||||
- set_fact:
|
namespace: "{{ test_ns }}"
|
||||||
secret_token: "{{ result.resources[0]['secrets'][0]['name'] }}"
|
annotations:
|
||||||
|
kubernetes.io/service-account.name: "{{ test_sa }}"
|
||||||
|
type: kubernetes.io/service-account-token
|
||||||
|
|
||||||
- name: Get secret details
|
- name: Get secret details
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s_info:
|
||||||
kind: Secret
|
kind: Secret
|
||||||
namespace: '{{ test_ns }}'
|
namespace: "{{ test_ns }}"
|
||||||
name: '{{ secret_token }}'
|
name: "{{ test_tn }}"
|
||||||
register: _secret
|
register: _secret
|
||||||
retries: 10
|
|
||||||
delay: 10
|
|
||||||
until:
|
|
||||||
- ("'openshift.io/token-secret.value' in _secret.resources[0]['metadata']['annotations']") or ("'token' in _secret.resources[0]['data']")
|
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
api_token: "{{ _secret.resources[0]['metadata']['annotations']['openshift.io/token-secret.value'] }}"
|
|
||||||
when: "'openshift.io/token-secret.value' in _secret.resources[0]['metadata']['annotations']"
|
|
||||||
|
|
||||||
- set_fact:
|
- set_fact:
|
||||||
api_token: "{{ _secret.resources[0]['data']['token'] | b64decode }}"
|
api_token: "{{ _secret.resources[0]['data']['token'] | b64decode }}"
|
||||||
when: "'token' in _secret.resources[0]['data']"
|
|
||||||
|
|
||||||
- name: list Node should failed (forbidden user)
|
- name: list Node should failed (forbidden user)
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s_info:
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
test_ns: "prune-roles"
|
test_ns: "prune-roles"
|
||||||
sa_name: "roles-sa"
|
sa_name: "roles-sa"
|
||||||
pod_name: "pod-prune"
|
pod_name: "pod-prune"
|
||||||
|
tn_name: "roles-sa-token"
|
||||||
role_definition:
|
role_definition:
|
||||||
- name: pod-list
|
- name: pod-list
|
||||||
labels:
|
labels:
|
||||||
@@ -50,34 +51,27 @@
|
|||||||
name: '{{ sa_name }}'
|
name: '{{ sa_name }}'
|
||||||
namespace: '{{ test_ns }}'
|
namespace: '{{ test_ns }}'
|
||||||
|
|
||||||
- name: Read Service Account
|
- name: Create SA secret
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s:
|
||||||
kind: ServiceAccount
|
definition:
|
||||||
namespace: '{{ test_ns }}'
|
apiVersion: v1
|
||||||
name: '{{ sa_name }}'
|
kind: Secret
|
||||||
register: sa_out
|
metadata:
|
||||||
|
name: "{{ tn_name }}"
|
||||||
- set_fact:
|
namespace: "{{ test_ns }}"
|
||||||
secret_token: "{{ sa_out.resources[0]['secrets'][0]['name'] }}"
|
annotations:
|
||||||
|
kubernetes.io/service-account.name: "{{ sa_name }}"
|
||||||
|
type: kubernetes.io/service-account-token
|
||||||
|
|
||||||
- name: Get secret details
|
- name: Get secret details
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s_info:
|
||||||
kind: Secret
|
kind: Secret
|
||||||
namespace: '{{ test_ns }}'
|
namespace: '{{ test_ns }}'
|
||||||
name: '{{ secret_token }}'
|
name: '{{ tn_name }}'
|
||||||
register: r_secret
|
register: r_secret
|
||||||
retries: 10
|
|
||||||
delay: 10
|
|
||||||
until:
|
|
||||||
- ("'openshift.io/token-secret.value' in r_secret.resources[0]['metadata']['annotations']") or ("'token' in r_secret.resources[0]['data']")
|
|
||||||
|
|
||||||
- set_fact:
|
|
||||||
api_token: "{{ r_secret.resources[0]['metadata']['annotations']['openshift.io/token-secret.value'] }}"
|
|
||||||
when: "'openshift.io/token-secret.value' in r_secret.resources[0]['metadata']['annotations']"
|
|
||||||
|
|
||||||
- set_fact:
|
- set_fact:
|
||||||
api_token: "{{ r_secret.resources[0]['data']['token'] | b64decode }}"
|
api_token: "{{ r_secret.resources[0]['data']['token'] | b64decode }}"
|
||||||
when: "'token' in r_secret.resources[0]['data']"
|
|
||||||
|
|
||||||
- name: list resources using service account
|
- name: list resources using service account
|
||||||
kubernetes.core.k8s_info:
|
kubernetes.core.k8s_info:
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
parameters:
|
parameters:
|
||||||
NAMESPACE: openshift
|
NAMESPACE: openshift
|
||||||
NAME: test123
|
NAME: test123
|
||||||
|
NGINX_VERSION: "{{ nginx_version }}"
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Create the rendered resources
|
- name: Create the rendered resources
|
||||||
@@ -32,6 +33,7 @@
|
|||||||
parameters:
|
parameters:
|
||||||
NAMESPACE: openshift
|
NAMESPACE: openshift
|
||||||
NAME: test123
|
NAME: test123
|
||||||
|
NGINX_VERSION: "{{ nginx_version }}"
|
||||||
state: present
|
state: present
|
||||||
namespace_target: process-test
|
namespace_target: process-test
|
||||||
register: result
|
register: result
|
||||||
@@ -44,6 +46,7 @@
|
|||||||
NAMESPACE: openshift
|
NAMESPACE: openshift
|
||||||
NAME: test123
|
NAME: test123
|
||||||
MEMORY_LIMIT: 1Gi
|
MEMORY_LIMIT: 1Gi
|
||||||
|
NGINX_VERSION: "{{ nginx_version }}"
|
||||||
state: present
|
state: present
|
||||||
namespace_target: process-test
|
namespace_target: process-test
|
||||||
register: result
|
register: result
|
||||||
@@ -55,6 +58,7 @@
|
|||||||
parameters:
|
parameters:
|
||||||
NAMESPACE: openshift
|
NAMESPACE: openshift
|
||||||
NAME: test123
|
NAME: test123
|
||||||
|
NGINX_VERSION: "{{ nginx_version }}"
|
||||||
state: absent
|
state: absent
|
||||||
namespace_target: process-test
|
namespace_target: process-test
|
||||||
register: result
|
register: result
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
- import_tasks: tasks/openshift_process.yml
|
- import_tasks: tasks/openshift_process.yml
|
||||||
vars:
|
vars:
|
||||||
files_dir: '{{ playbook_dir }}/files'
|
files_dir: '{{ playbook_dir }}/files'
|
||||||
|
nginx_version: 1.22-ubi8
|
||||||
always:
|
always:
|
||||||
- name: Delete namespace
|
- name: Delete namespace
|
||||||
community.okd.k8s:
|
community.okd.k8s:
|
||||||
|
|||||||
@@ -295,9 +295,9 @@ class OpenShiftMigrateTemplateInstances(AnsibleOpenshiftModule):
|
|||||||
object_type in transforms.keys()
|
object_type in transforms.keys()
|
||||||
and obj["ref"].get("apiVersion") != transforms[object_type]
|
and obj["ref"].get("apiVersion") != transforms[object_type]
|
||||||
):
|
):
|
||||||
ti_elem["status"]["objects"][i]["ref"][
|
ti_elem["status"]["objects"][i]["ref"]["apiVersion"] = (
|
||||||
"apiVersion"
|
transforms[object_type]
|
||||||
] = transforms[object_type]
|
)
|
||||||
ti_to_be_migrated.append(ti_elem)
|
ti_to_be_migrated.append(ti_elem)
|
||||||
|
|
||||||
return ti_to_be_migrated
|
return ti_to_be_migrated
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ def get_oauthaccesstoken_objectname_from_token(token_name):
|
|||||||
|
|
||||||
sha256Prefix = "sha256~"
|
sha256Prefix = "sha256~"
|
||||||
if token_name.startswith(sha256Prefix):
|
if token_name.startswith(sha256Prefix):
|
||||||
content = token_name[len(sha256Prefix):]
|
content = token_name[len(sha256Prefix) :]
|
||||||
else:
|
else:
|
||||||
content = token_name
|
content = token_name
|
||||||
b64encoded = urlsafe_b64encode(hashlib.sha256(content.encode()).digest()).rstrip(
|
b64encoded = urlsafe_b64encode(hashlib.sha256(content.encode()).digest()).rstrip(
|
||||||
|
|||||||
@@ -421,9 +421,9 @@ class OpenShiftRoute(AnsibleOpenshiftModule):
|
|||||||
if tls_insecure_policy == "disallow":
|
if tls_insecure_policy == "disallow":
|
||||||
tls_insecure_policy = None
|
tls_insecure_policy = None
|
||||||
else:
|
else:
|
||||||
tls_ca_cert = (
|
tls_ca_cert = tls_cert = tls_dest_ca_cert = tls_key = (
|
||||||
tls_cert
|
tls_insecure_policy
|
||||||
) = tls_dest_ca_cert = tls_key = tls_insecure_policy = None
|
) = None
|
||||||
|
|
||||||
route = {
|
route = {
|
||||||
"apiVersion": "route.openshift.io/v1",
|
"apiVersion": "route.openshift.io/v1",
|
||||||
|
|||||||
3
tests/sanity/ignore-2.18.txt
Normal file
3
tests/sanity/ignore-2.18.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc
|
||||||
|
plugins/modules/k8s.py validate-modules:return-syntax-error
|
||||||
|
plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
|
||||||
3
tests/sanity/ignore-2.19.txt
Normal file
3
tests/sanity/ignore-2.19.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc
|
||||||
|
plugins/modules/k8s.py validate-modules:return-syntax-error
|
||||||
|
plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc
|
||||||
4
tox.ini
4
tox.ini
@@ -8,7 +8,7 @@ install_command = pip install {opts} {packages}
|
|||||||
|
|
||||||
[testenv:black]
|
[testenv:black]
|
||||||
deps =
|
deps =
|
||||||
black >= 23.0, < 24.0
|
black >= 25.0, < 26.0
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
black {toxinidir}/plugins {toxinidir}/tests
|
black {toxinidir}/plugins {toxinidir}/tests
|
||||||
@@ -24,10 +24,12 @@ commands =
|
|||||||
deps =
|
deps =
|
||||||
flake8
|
flake8
|
||||||
{[testenv:black]deps}
|
{[testenv:black]deps}
|
||||||
|
{[testenv:ansible-lint]deps}
|
||||||
|
|
||||||
commands =
|
commands =
|
||||||
black -v --check --diff {toxinidir}/plugins {toxinidir}/tests
|
black -v --check --diff {toxinidir}/plugins {toxinidir}/tests
|
||||||
flake8 {toxinidir}
|
flake8 {toxinidir}
|
||||||
|
ansible-lint
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
# E123, E125 skipped as they are invalid PEP-8.
|
# E123, E125 skipped as they are invalid PEP-8.
|
||||||
|
|||||||
Reference in New Issue
Block a user