diff --git a/app/Dockerfile b/app/Dockerfile index e192ea9bdadb9b8681053c478557ad5f76aac5f9..1bd09a4f0fec2c0ad1d7ede1df530cc5bef35361 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -6,6 +6,7 @@ FROM python:3.9-slim-buster ENV PYTHONDONTWRITEBYTECODE 1 # PYTHONUNBUFFERED - Prevents Python from buffering stdout and stderr (equivalent to python -u option) ENV PYTHONUNBUFFERED 1 +EXPOSE 8080/tcp WORKDIR /opt COPY ./app /opt diff --git a/build/Dockerfile b/build/Dockerfile index bbe8000982ca7266ad7476df8f120358ddd3848c..566b9cc057692e4f8c35c73344c9f18af11a03c0 100644 --- a/build/Dockerfile +++ b/build/Dockerfile @@ -1,10 +1,17 @@ -FROM python:3.7-slim-buster +# This Dockerfile assumes you used "make build" to convert the AdminUI to static files in frontend/adminui/dist/policyservice +FROM python:3.9-slim-buster -WORKDIR /opt - -COPY ./ /opt +# set environment variables +# PYTHONDONTWRITEBYTECODE - Prevents Python from writing pyc files to disc (equivalent to python -B option) +ENV PYTHONDONTWRITEBYTECODE 1 +# PYTHONUNBUFFERED - Prevents Python from buffering stdout and stderr (equivalent to python -u option) +ENV PYTHONUNBUFFERED 1 -RUN pip install -r requirements.txt +WORKDIR /opt +COPY ./app /opt +RUN pip install --no-cache-dir --upgrade -r /opt/requirements.txt -ENTRYPOINT python ./server.py +# Admin UI POC +#COPY ./frontend/adminui/dist/policyservice /opt/assets +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] diff --git a/build/aws/build-aws/Dockerfile b/build/aws/build-aws/Dockerfile index e1f85c5f2ee123edc10a110c7b372daa2ac3780d..566b9cc057692e4f8c35c73344c9f18af11a03c0 100644 --- a/build/aws/build-aws/Dockerfile +++ b/build/aws/build-aws/Dockerfile @@ -1,12 +1,17 @@ -FROM python:3.7-slim-buster -WORKDIR /opt +# This Dockerfile assumes you used "make build" to convert the AdminUI to static files in frontend/adminui/dist/policyservice +FROM python:3.9-slim-buster + +# set environment variables +# PYTHONDONTWRITEBYTECODE - Prevents Python from writing pyc files to disc (equivalent to python -B option) +ENV PYTHONDONTWRITEBYTECODE 1 +# PYTHONUNBUFFERED - Prevents Python from buffering stdout and stderr (equivalent to python -u option) +ENV PYTHONUNBUFFERED 1 -COPY ./ /opt +WORKDIR /opt +COPY ./app /opt +RUN pip install --no-cache-dir --upgrade -r /opt/requirements.txt +# Admin UI POC +#COPY ./frontend/adminui/dist/policyservice /opt/assets -RUN pip install -r requirements.txt -RUN apt-get update && apt-get install curl -y -RUN curl -L -o opa https://openpolicyagent.org/downloads/latest/opa_linux_amd64_static -RUN chmod 755 ./opa -RUN mkdir /policies -CMD python ./server.py \ No newline at end of file +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] diff --git a/build/azure/Dockerfile b/build/azure/Dockerfile index bbe8000982ca7266ad7476df8f120358ddd3848c..566b9cc057692e4f8c35c73344c9f18af11a03c0 100644 --- a/build/azure/Dockerfile +++ b/build/azure/Dockerfile @@ -1,10 +1,17 @@ -FROM python:3.7-slim-buster +# This Dockerfile assumes you used "make build" to convert the AdminUI to static files in frontend/adminui/dist/policyservice +FROM python:3.9-slim-buster -WORKDIR /opt - -COPY ./ /opt +# set environment variables +# PYTHONDONTWRITEBYTECODE - Prevents Python from writing pyc files to disc (equivalent to python -B option) +ENV PYTHONDONTWRITEBYTECODE 1 +# PYTHONUNBUFFERED - Prevents Python from buffering stdout and stderr (equivalent to python -u option) +ENV PYTHONUNBUFFERED 1 -RUN pip install -r requirements.txt +WORKDIR /opt +COPY ./app /opt +RUN pip install --no-cache-dir --upgrade -r /opt/requirements.txt -ENTRYPOINT python ./server.py +# Admin UI POC +#COPY ./frontend/adminui/dist/policyservice /opt/assets +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] diff --git a/build/gcp/Dockerfile b/build/gcp/Dockerfile index bbe8000982ca7266ad7476df8f120358ddd3848c..9b12dcb5fb2d75e12f5c2c10178f580023eb8d26 100644 --- a/build/gcp/Dockerfile +++ b/build/gcp/Dockerfile @@ -1,10 +1,18 @@ -FROM python:3.7-slim-buster +# This Dockerfile assumes you used "make build" to convert the AdminUI to static files in frontend/adminui/dist/policyservice +FROM python:3.9-slim-buster -WORKDIR /opt - -COPY ./ /opt +# set environment variables +# PYTHONDONTWRITEBYTECODE - Prevents Python from writing pyc files to disc (equivalent to python -B option) +ENV PYTHONDONTWRITEBYTECODE 1 +# PYTHONUNBUFFERED - Prevents Python from buffering stdout and stderr (equivalent to python -u option) +ENV PYTHONUNBUFFERED 1 +EXPOSE 8080/tcp -RUN pip install -r requirements.txt +WORKDIR /opt +COPY ./app /opt +RUN pip install --no-cache-dir --upgrade -r /opt/requirements.txt -ENTRYPOINT python ./server.py +# Admin UI POC +#COPY ./frontend/adminui/dist/policyservice /opt/assets +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"] diff --git a/deployment/service-policyservice.yaml b/deployment/service-policyservice.yaml index fe83fe1fed1305eea0376e3f0b209c2be6a0bc97..712b79e659ccd06b6139bdfaca99aff397b8944e 100644 --- a/deployment/service-policyservice.yaml +++ b/deployment/service-policyservice.yaml @@ -10,6 +10,6 @@ spec: ports: - protocol: TCP port: 80 - targetPort: 80 + targetPort: 8080 selector: - app: policy-service \ No newline at end of file + app: policy-service diff --git a/devops/gcp/deploy/templates/deployment.yaml b/devops/gcp/deploy/templates/deployment.yaml index f6b5203ff337b5c71ea978449f9e8e8587ccc654..bc308bdd861e931e1e3824fdaba6db85882fb20b 100644 --- a/devops/gcp/deploy/templates/deployment.yaml +++ b/devops/gcp/deploy/templates/deployment.yaml @@ -28,7 +28,7 @@ spec: allowPrivilegeEscalation: false runAsUser: 0 ports: - - containerPort: 80 + - containerPort: 8080 resources: requests: cpu: "{{ .Values.data.requestsCpu }}" diff --git a/devops/gcp/deploy/templates/service.yaml b/devops/gcp/deploy/templates/service.yaml index 38dba1e522b7a0af8cfd48871ac1627bcea02824..9a94a8db9001e6849f225a0c4dc59aed5cab6dd3 100644 --- a/devops/gcp/deploy/templates/service.yaml +++ b/devops/gcp/deploy/templates/service.yaml @@ -12,7 +12,7 @@ spec: ports: - protocol: TCP port: 80 - targetPort: 80 + targetPort: 8080 name: http selector: app: "{{ .Values.conf.appName }}" diff --git a/devops/gcp/pipeline/override-stages.yml b/devops/gcp/pipeline/override-stages.yml index 43c109d203727c23906698c0799e57074c960204..91879e81ae72bbe0822f28165288c7bea2679f2d 100644 --- a/devops/gcp/pipeline/override-stages.yml +++ b/devops/gcp/pipeline/override-stages.yml @@ -156,7 +156,7 @@ osdu-gcp-bootstrap: - !reference [.common_test_config, script] - > - pip install -r requirements_bootstrap.txt - - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego + - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego ./deployment/default-policies/search.rego - mkdir --parents ./policies ; mv bundle.tar.gz $_ - python3 devops/gcp/bootstrap-osdu-module/DataPartitionBundles.py - mv bundle-$DATA_PARTITION.tar.gz ./policies @@ -179,7 +179,7 @@ osdu-gcp-bootstrap-bundle: - !reference [.common_test_config, script] - > - pip install -r requirements_bootstrap.txt - - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego + - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego ./deployment/default-policies/search.rego - mkdir --parents ./policies ; mv bundle.tar.gz $_ - python3 devops/gcp/bootstrap-osdu-module/DataPartitionBundles.py - mv bundle-$DATA_PARTITION.tar.gz ./policies @@ -202,7 +202,7 @@ osdu-gcp-dev2-bootstrap-bundle: - !reference [.common_test_config, script] - > - pip install -r requirements_bootstrap.txt - - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego + - tar -czf bundle.tar.gz ./deployment/default-policies/.manifest ./deployment/default-policies/dataauthz.rego ./deployment/default-policies/entitlements.rego ./deployment/default-policies/legal.rego ./deployment/default-policies/search.rego - mkdir --parents ./policies ; mv bundle.tar.gz $_ - python3 devops/gcp/bootstrap-osdu-module/DataPartitionBundles.py - mv bundle-$DATA_PARTITION.tar.gz ./policies @@ -234,17 +234,31 @@ osdu-gcp-dev2-bootstrap: - if: '$OSDU_GCP == "1" && $CI_COMMIT_TAG' when: on_success +#FIXME there is no python 3.9 image with gcloud osdu-gcp-test-python: tags: ["osdu-small"] - image: gcr.io/google.com/cloudsdktool/cloud-sdk + image: ubuntu:20.04 needs: ["osdu-gcp-bootstrap"] script: - - !reference [.common_test_config, script] - > + - apt-get update && apt-get install -y apt-transport-https ca-certificates gnupg curl + - echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | tee -a /etc/apt/sources.list.d/google-cloud-sdk.list + - curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add - + - apt-get update && apt-get -y install google-cloud-cli + - export DEBIAN_FRONTEND=noninteractive + - apt -y install software-properties-common + - add-apt-repository -y ppa:deadsnakes/ppa + - apt -y install python3.9 python3.9-venv + - python3.9 -m venv env + - source env/bin/activate + - echo $OSDU_GCP_INTEGRATION_TESTER | base64 -d > OSDU_GCP_INTEGRATION_TESTER.json + - gcloud auth activate-service-account --key-file OSDU_GCP_INTEGRATION_TESTER.json + - gcloud config set project $OSDU_GCP_PROJECT - export BEARER_TOKEN=`gcloud auth print-access-token` - pip install -r requirements.txt - pip install -r requirements_dev.txt - - cd tests/integration + - cd app + - pip install -r requirements.txt - python3 -m pytest --token=$BEARER_TOKEN --service_url=$OSDU_GCP_POLICY_URL --data_partition=$DATA_PARTITION osdu-gcp-dev2-test-python: @@ -257,7 +271,8 @@ osdu-gcp-dev2-test-python: - export BEARER_TOKEN=`gcloud auth print-access-token` - pip install -r requirements.txt - pip install -r requirements_dev.txt - - cd tests/integration + - cd app + - pip install -r requirements.txt - python3 -m pytest --token=$BEARER_TOKEN --service_url=$OSDU_GCP_POLICY_URL --data_partition=$DATA_PARTITION osdu-gcp-containerize-bootstrap-gitlab: @@ -296,6 +311,7 @@ osdu-gcp-anthos-test: when: never osdu-gcp-anthos-test-python: + image: python:3.9 rules: - if: "$CI_COMMIT_BRANCH =~ /^release/" when: never