All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Support for multiple JWT signature algorithms
- Added option to follow symbolic links in the
POST /utilities/compress
andPOST /storage/xfer-internal/compress
endpoints - Added new "general" section to status/parameters describing
FIRECREST_VERSION
andFIRECREST_BUILD
timestamp - Environment variable
F7T_HOME_ENABLED
to setFalse
if$HOME
is not mounted on systems executing FirecREST commands - Add support in the
GET /compute/jobs
endopint to poll for jobs of any user - Environment variable
F7T_LOG_KIBANA
to enable/disable the JSON format log reporting, detected and parsed by Kibana, and the related Helm chart's annotations.
- SLURM scheduler now uses
--export
option for passing environment variables to a job. - Variable
F7T_REALM_RSA_PUBLIC_KEYS
changed toF7T_AUTH_PUBLIC_KEYS
. - Variable
F7T_REALM_RSA_TYPE_
changed toF7T_AUTH_ALGORITHMS
. - Added default values on helm charts.
- Upgrade
requests
library to version2.32.0
. - System availability is tested using
whoami
instead ofls -l
on a filesystem. Filesystem failures reported instatus/systems/<SYSTEM>
do not affect the availability of a system. - Filesystem check is executed with the command
ls -1f
, skipping listing and sorting of entries.
- Fix parsing in
GET /utilities/ls
endpoint. - The job fields
job_data_out
andjob_file_err
fromGET /compute/jobs
will be empty for jobs that are still pending (so that there is no confusion with older output/error files). - Added retry on task creation workflow.
- Error message when
$HOME
is not mounted.
- Added the endpoints
/compute/nodes
and/compute/nodes/{nodeName}
to retrieve information about nodes in the scheduling queue. - Added endpoints
POST /utilities/compress
,POST /utilities/extract
,POST /storage/xfer-internal/compress
andPOST /storage/xfer-internal/extract
for file compression and extraction. - Added recurisive option to ls utilities command
&recursive=true
. - Added the endpoint
/compute/partitions
to retrieve information about partitions in the scheduling queue. - Added grep support for tail and head command.
&grep=pattern
. - Added
examples
directory for practical use cases of FirecREST.
-
Environment variable names:
-
Added:
F7T_CERTIFICATOR_HOST
,F7T_COMPUTE_HOST
,F7T_RESERVATION_HOST
,F7T_STATUS_HOST
,F7T_STORAGE_HOST
,F7T_TASKS_HOST
,F7T_UTILITIES_HOST
-
Replaced
F7T_SYSTEMS_PUBLIC
byF7T_SYSTEMS_PUBLIC_NAME
F7T_USE_SSL
byF7T_SSL_ENABLED
F7T_POLICY_PATH
byF7T_OPA_POLICY_PATH
F7T_PERSISTENCE_IP
byF7T_PERSIST_HOST
F7T_SSH_CERTIFICATE_WRAPPER
byF7T_SSH_CERTIFICATE_WRAPPER_ENABLED
F7T_STATUS_SYSTEMS
byF7T_SYSTEMS_INTERNAL_STATUS_ADDR
F7T_SECRET_KEY
byF7T_SWIFT_SECRET_KEY
F7T_USE_SPANK_PLUGIN
byF7T_SPANK_PLUGIN_ENABLED
-
Removed:
F7T_CERTIFICATOR_URL
,F7T_COMPUTE_URL
,F7T_RESERVATION_URL
,F7T_STATUS_URL
,F7T_STORAGE_URL
,F7T_TASKS_URL
,F7T_UTILITIES_URL
, andF7T_SWIFT_ACCOUNT
(it's using the same value thanF7T_OS_PROJECT_ID
)
-
-
On task response metadata, the
task_url
value is now relative to the/tasks
endpoint
- Fixed error on pipeline when releasing production version.
- Fixed response in task after timeout in one of the commands.
- Handle
ChunkedEncodingError
error in task creation to avoid crashing and returning 500 Error. - Fixed compute task error message on system not available.
- Add the endpoints
GET /status/filesystems
andGET /status/filesystems/<system>
, providing enhancement in terms of filesystem availability - The endpoint
/utilities/whoami
adds theboolean
parameter "groups
" which set ontrue
returns a dictionary withuid
,gid
, andgroups
- Added the parameter
WORKLOAD_MANAGER
inGET /status/parameters
to provide information on the resource and workload manager used for compute - Add
F7T_LOG_TYPE
to select logging to files or stdout. - Add
F7T_GUNICORN_LOG
for Gunicorn logs. - Add profiling middleware.
- Improved retrieval of tasks from persistence storage.
- Upgraded
kong
gateway to v3.6.0 - Upgraded
cryptography
package to v42.0.4 - Upgraded
paramiko
package to v3.4.0
- Fixed demo images dependency declarations preventing docker-compose to build successfully.
- Fixed check when submitted an empty batch file on
POST /compute/jobs/upload
. - Fixed error message when
GET /status/systems
encounters error in one filesystem. - Fixed SSH connection error catching.
- Fixed secured "ssh-keygen" command execution.
- Add constraint in xfer-internal job script when provided by the configuration. The associated environment variable is
F7T_XFER_CONSTRAINT
and can be empty, when no machine needs it. Otherwise, the different constraints should be separated by;
. - Support passing environment variables when submitting a job.
- Support listing directories without resolving UID/GID.
- Add description for each parameter in
GET /status/parameters
response. - Add support for Object Storage Tenants in S3v4 object storage. The associated environment variable is
F7T_S3_TENANT
and it can be empty or benull
ornone
when the tenant is not needed. Otherwise the tenant name has to be set. - The task that is returned from a successful
GET /jobs/acct
would returns the attributetime
, which iscputime
from slurm. The attribute will remain andcputime
andelapsed
will be also returned. Similarly,time_left
is actually the time of termination of the jobs.time_left
will remain for compatibility reasons, butelapsed
attribute will also be returned. - Added
F7T_AUTH_ISSUER
to specify the JWT token issuer to be checked by Kong GW. - Removed
F7T_AUTH_REALM
andF7T_AUTH_URL
which are no longer needed.
- CI/CD pipeline is now adapted to create helm charts images and push to a repository when TDS or Prod are tagged:
- Also secrets now can be managed from ExternalSecrets on K8s deployment.
- Deployment on TDS triggers ArgoCD deployment.
- Demo and k8s deployments have the Swagger UI API specification at unauthenticated
/docs
endpoint.
- Take into account
pageNumber
andpageSize
arguments inGET /compute/jobs
andGET /compute/acct
.
-
Tasks microservice now provides filtering by a subset of tasks with a
tasks
parameterGET /tasks?tasks=<taskid>,<taskid>,<taskid>
.
-
Tasks microservice now reports in task metadata the system for which the task was created.
-
For storage tasks, now the
source
andtarget
path are part of thedata
field on the response for all statuses. -
For certificator container sets up the environment variables
F7T_CA_KEY_PATH
andF7T_PUB_USER_KEY_PATH
as absolute paths in the container for the CA Private key (ca-key
) and the user key (user-key.pub
), respectively. If not set, the default directory will be root (ie,/ca-key
). -
For the rest of microservices, the value to set is
F7T_PRIV_USER_KEY_PATH
(user-key
). -
The
head
endpoint has a new argument:skip_ending
. The output will be the whole file, without the last NUM bytes/lines of each file. -
The
tail
endpoint has a new argument:skip_beginning
. The output will start with byte/line NUM of each file.
- Demo template UI client has been fixed in order to integrate latest changes.
- Fixed correct header when the result of an operation in the system is
Not a directory
toX-Not-A-Directory
. - Fixed the automatic change of the filename in uploaded files with empty spaces and other special characters.
- Fixed the issue with parsing
ls
when encountering filenames with the$
character and whitespace.
- Flask version upgraded to
2.3.2
. - Cryptography version upgraded to
39.0.2
. - Certificator now uses
f7t-base
as base image.
- More tests for
/storage/xfer-external/upload
endpoint.
- For
/storage/xfer-external/upload
now is possible for the form parametertargetPath
to be a file path or a directory path.
- Upgrade to
redis == 4.5.4
intasks
API.
- Automated process for extracting the version number and using it in K8s OpenAPI pod.
- Add github workflow for automatic releases.
- Add new endpoints for
head
andtail
commands. - Add endpoint for the
whoami
command. - Add
X-Size-Limit
to/utilities/download
and/utilities/view
endpoints API specification.
- Allow square brackets in user input.
/utilities/stat
endpoint now uses%f
to return file type and permissions inmode
field.
- Return the
X-Exists
header for existing folders in/utilities/mkdir
, instead ofX-A-Directory
. - Fix bug on view endpoint. Return normally the files that included error messages.