Anomaly uses Python for all of their server side requirements. This lab providers a containerized version of the Python server that mocks the presence of a server and simply outputs a static page with a list of key value pairs that it obtains from the container's environment.
The purpose of this application is to test the fact that the container has access to the secrets passed into it via the Kubernetes secrets mechanism. This application serves as the test Python server for Anomaly's Terraform lab for Linode.
This application should never be used in production.
The application serves a single root
entry point and can be configured in src/lab_mock/__init__.py
which has a Python dictionary that resembles
_ENV_LIST = [
{
"name": "PostgreSQL",
"description": "Postgres database credentials",
"vars": [
"POSTGRES_USER",
"POSTGRES_PASSWORD",
"POSTGRES_HOST",
"POSTGRES_PORT",
"POSTGRES_DB",
]
},
]
Each object of the array is contains:
name
: The name of the environment variable groupdescription
: A description of the environment variable groupvars
: An array of environment variable names that are part of the group
The entry point will fetch the value of each environment variable and output it as a key value pair, outputting None
if a value is not found.
Please ensure this list is kept in sync with the Terraform lab, unless of course you are using it for other purposes.
The application is built using the Flask framework and uses Jinja2 for templating.
It uses asgiref
to create an ASGI
wrapper for the Flask application.
To make things look nice, we use Tailwind CSS, delivered via their CDN.
- Deploying FastAPI apps with HTTPS powered by Traefik by Sebastián Ramírez
- How to Inspect a Docker Image’s Content Without Starting a Container by James Walker
- Poetry sub packages, an open issue to support sub packages in Poetry, which will be handy in splitting up our code base further.
- Using find namespaces or find namespace package
Contents of this repository are licensed under the Apache 2.0 license.