Skip to content

Commit

Permalink
Merge pull request #180 from phracek/3.3
Browse files Browse the repository at this point in the history
Use 3.3-ubi9 as default. Add initialConter to rail-postgresql.json
  • Loading branch information
phracek authored Sep 24, 2024
2 parents ba8bd3b + eded5b5 commit 97cd71b
Show file tree
Hide file tree
Showing 6 changed files with 248 additions and 5 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/openshift-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
on:
issue_comment:
types:
- created
jobs:
openshift-tests:
# This job only runs for '[test] pull request comments by owner, member
name: "RHEL9 tests: imagestream ${{ matrix.version }}"
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
version: [ "2.5-ubi8", "3.1-ubi8", "3.0-ubi9", "3.1-ubi9", "3.3-ubi8", "3.3-ubi9" ]

if: |
github.event.issue.pull_request
&& contains(github.event.comment.body, '[test]')
&& contains(fromJson('["OWNER", "MEMBER"]'), github.event.comment.author_association)
steps:
- uses: sclorg/testing-farm-as-github-action@main
with:
api_key: ${{ secrets.TF_INTERNAL_API_KEY }}
compose: "RHEL-9.4.0-Nightly"
git_url: "https://gitlab.cee.redhat.com/platform-eng-core-services/sclorg-tmt-plans"
git_ref: "master"
tf_scope: "private"
tmt_plan_regex: "rhel9-openshift-pytest"
update_pull_request_status: true
pull_request_status_name: "RHEL9-OpenShift-4 - imagestream test ${{ matrix.version }}"
variables: "REPO_URL=${{ github.server_url }}/${{ github.repository }};REPO_NAME=${{ github.repository }};PR_NUMBER=${{ github.event.issue.number }};OS=rhel9;SINGLE_VERSION=${{ matrix.version }};TEST_NAME=test-openshift-pytest"
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.PHONY: test-openshift-pytest
test-openshift-pytest:
cd tests && PYTHONPATH=$(CURDIR) python3.12 -m pytest -s -rA --showlocals -vv test_*.py
4 changes: 2 additions & 2 deletions openshift/templates/rails-postgresql-persistent.json
Original file line number Diff line number Diff line change
Expand Up @@ -528,9 +528,9 @@
{
"name": "RUBY_VERSION",
"displayName": "Ruby Version",
"description": "Version of Ruby image to be used (3.0-ubi8 by default).",
"description": "Version of Ruby image to be used (3.3-ubi9 by default).",
"required": true,
"value": "3.0-ubi8"
"value": "3.3-ubi9"
},
{
"name": "POSTGRESQL_VERSION",
Expand Down
86 changes: 83 additions & 3 deletions openshift/templates/rails-postgresql.json
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@
"annotations": {
"description": "Defines how to deploy the application server",
"template.alpha.openshift.io/wait-for-ready": "true",
"image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${NAME}:latest\"},\"fieldPath\": \"spec.template.spec.containers[0].image\"}]"
"image.openshift.io/triggers": "[{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${NAME}:latest\"},\"fieldPath\": \"spec.template.spec.containers[0].image\"},{\"from\":{\"kind\":\"ImageStreamTag\",\"name\":\"${NAME}:latest\"},\"fieldPath\": \"spec.template.spec.initContainers[0].image\"}]"
}
},
"spec": {
Expand Down Expand Up @@ -179,6 +179,86 @@
}
},
"spec": {
"initContainers": [
{
"name": "ruby-init-container",
"image": " ",
"command": [
"./migrate-database.sh"
],
"env": [
{
"name": "DATABASE_SERVICE_NAME",
"value": "${DATABASE_SERVICE_NAME}"
},
{
"name": "POSTGRESQL_USER",
"valueFrom": {
"secretKeyRef": {
"name": "${NAME}",
"key": "database-user"
}
}
},
{
"name": "POSTGRESQL_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"name": "${NAME}",
"key": "database-password"
}
}
},
{
"name": "SECRET_KEY_BASE",
"valueFrom": {
"secretKeyRef": {
"name": "${NAME}",
"key": "keybase"
}
}
},
{
"name": "POSTGRESQL_DATABASE",
"value": "${DATABASE_NAME}"
},
{
"name": "POSTGRESQL_MAX_CONNECTIONS",
"value": "${POSTGRESQL_MAX_CONNECTIONS}"
},
{
"name": "POSTGRESQL_SHARED_BUFFERS",
"value": "${POSTGRESQL_SHARED_BUFFERS}"
},
{
"name": "APPLICATION_DOMAIN",
"value": "${APPLICATION_DOMAIN}"
},
{
"name": "APPLICATION_USER",
"valueFrom": {
"secretKeyRef": {
"name": "${NAME}",
"key": "application-user"
}
}
},
{
"name": "APPLICATION_PASSWORD",
"valueFrom": {
"secretKeyRef": {
"name": "${NAME}",
"key": "application-password"
}
}
},
{
"name": "RAILS_ENV",
"value": "${RAILS_ENV}"
}
]
}
],
"containers": [
{
"name": "${NAME}",
Expand Down Expand Up @@ -434,9 +514,9 @@
{
"name": "RUBY_VERSION",
"displayName": "Ruby Version",
"description": "Version of Ruby image to be used (3.0-ubi8 by default).",
"description": "Version of Ruby image to be used (3.3-ubi9 by default).",
"required": true,
"value": "3.0-ubi8"
"value": "3.3-ubi9"
},
{
"name": "MEMORY_LIMIT",
Expand Down
58 changes: 58 additions & 0 deletions tests/test_rails.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import os

import pytest

from pathlib import Path

from container_ci_suite.openshift import OpenShiftAPI

test_dir = Path(os.path.abspath(os.path.dirname(__file__)))

VERSION = os.getenv("SINGLE_VERSION")
if not VERSION:
VERSION = "3.1-ubi8"


class TestRailsAppExTemplate:

def setup_method(self):
self.oc_api = OpenShiftAPI(pod_name_prefix="rails-example")
json_raw_file = self.oc_api.get_raw_url_for_json(
container="s2i-ruby-container", dir="imagestreams", filename="ruby-rhel.json"
)
self.oc_api.import_is(path=json_raw_file, name="ruby")

def teardown_method(self):
self.oc_api.delete_project()

def test_template_inside_cluster(self):
if VERSION.startswith("3.3"):
branch_to_test = "3.3"
else:
branch_to_test = "master"
expected_output = "Welcome to your Rails application"
template_json = test_dir / "../openshift/templates" / "rails.json"
assert self.oc_api.deploy_template(
template=str(template_json), name_in_template="rails-example", expected_output=expected_output,
openshift_args=[f"SOURCE_REPOSITORY_REF={branch_to_test}", f"RUBY_VERSION={VERSION}", "NAME=rails-example"]
)
assert self.oc_api.template_deployed(name_in_template="rails-example")
assert self.oc_api.check_response_inside_cluster(
name_in_template="rails-example", expected_output=expected_output
)

def test_template_by_request(self):
if VERSION.startswith("3.3"):
branch_to_test = "3.3"
else:
branch_to_test = "master"
expected_output = "Welcome to your Rails application"
template_json = test_dir / "../openshift/templates" / "rails.json"
assert self.oc_api.deploy_template(
template=str(template_json), name_in_template="rails-example", expected_output=expected_output,
openshift_args=[f"SOURCE_REPOSITORY_REF={branch_to_test}", f"RUBY_VERSION={VERSION}", "NAME=rails-example"]
)
assert self.oc_api.template_deployed(name_in_template="rails-example")
assert self.oc_api.check_response_outside_cluster(
name_in_template="rails-example", expected_output=expected_output
)
72 changes: 72 additions & 0 deletions tests/test_rails_postgresql.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import os

import pytest

from pathlib import Path

from container_ci_suite.openshift import OpenShiftAPI

test_dir = Path(os.path.abspath(os.path.dirname(__file__)))

VERSION = os.getenv("SINGLE_VERSION")
if not VERSION:
VERSION = "3.1-ubi8"


class TestRailsAppWithPostgreSQLExTemplate:

def setup_method(self):
self.oc_api = OpenShiftAPI(pod_name_prefix="rails-example")
json_raw_file = self.oc_api.get_raw_url_for_json(
container="s2i-ruby-container", dir="imagestreams", filename="ruby-rhel.json"
)
self.oc_api.import_is(path=json_raw_file, name="ruby")
json_raw_file = self.oc_api.get_raw_url_for_json(
container="postgresql-container", dir="imagestreams", filename="postgresql-rhel.json"
)
self.oc_api.import_is(path=json_raw_file, name="postgresql")

def teardown_method(self):
self.oc_api.delete_project()

def test_template_inside_cluster(self):
if VERSION.startswith("3.3"):
branch_to_test = "3.3"
else:
branch_to_test = "master"
expected_output = "Welcome to your Rails application"
template_json = test_dir / "../openshift/templates" / "rails-postgresql-persistent.json"
assert self.oc_api.deploy_template(
template=str(template_json), name_in_template="rails-example", expected_output=expected_output,
openshift_args=[
f"SOURCE_REPOSITORY_REF={branch_to_test}",
f"RUBY_VERSION={VERSION}",
"NAME=rails-example",
"POSTGRESQL_VERSION=12-el8"
]
)
assert self.oc_api.template_deployed(name_in_template="rails-example")
assert self.oc_api.check_response_inside_cluster(
name_in_template="rails-example", expected_output=expected_output
)

def test_template_by_request(self):
if VERSION.startswith("3.3"):
branch_to_test = "3.3"
else:
branch_to_test = "master"
expected_output = "Welcome to your Rails application"
template_json = test_dir / "../openshift/templates" / "rails-postgresql-persistent.json"
assert self.oc_api.deploy_template(
template=str(template_json), name_in_template="rails-example", expected_output=expected_output,
openshift_args=[
f"SOURCE_REPOSITORY_REF={branch_to_test}",
f"RUBY_VERSION={VERSION}",
"NAME=rails-example",
"POSTGRESQL_VERSION=12-el8"
]
)
assert self.oc_api.template_deployed(name_in_template="rails-example")
assert self.oc_api.check_response_outside_cluster(
name_in_template="rails-example", expected_output=expected_output
)

0 comments on commit 97cd71b

Please sign in to comment.