Compare commits
6 Commits
developmen
...
feature/CL
Author | SHA1 | Date |
---|---|---|
Nicolas Humbert | 55ebf6e2bb | |
Alexander Chan | e50cc03fa9 | |
Alexander Chan | 81dac16e5e | |
Alexander Chan | 7a03ef7803 | |
Thomas Carmet | 846fac9c35 | |
Thomas Carmet | 6aee075cdb |
|
@ -0,0 +1,3 @@
|
||||||
|
.git
|
||||||
|
.github
|
||||||
|
node_modules
|
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
name: "Setup Artifacts"
|
||||||
|
description: "Setup artifacts directory"
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: composite
|
||||||
|
steps:
|
||||||
|
- name: Setup job artifacts directory
|
||||||
|
shell: bash
|
||||||
|
run: |-
|
||||||
|
set -exu;
|
||||||
|
mkdir -p /tmp/artifacts/${{ github.job }}/;
|
|
@ -0,0 +1,37 @@
|
||||||
|
azurebackend_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackend_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackend_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackend2_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ENDPOINT
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ENDPOINT
|
||||||
|
azuretest_AZURE_BLOB_ENDPOINT
|
||||||
|
b2backend_B2_ACCOUNT_ID
|
||||||
|
b2backend_B2_STORAGE_ACCESS_KEY
|
||||||
|
GOOGLE_SERVICE_EMAIL
|
||||||
|
GOOGLE_SERVICE_KEY
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY_2
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY_2
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY_2
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY_2
|
||||||
|
b2backend_B2_STORAGE_ENDPOINT
|
||||||
|
gcpbackend2_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackend2_GCP_SERVICE_KEY
|
||||||
|
gcpbackend2_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackend_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackend_GCP_SERVICE_KEY
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_EMAIL
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEY
|
||||||
|
gcpbackend_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendnoproxy_GCP_SERVICE_KEYFILE
|
||||||
|
gcpbackendproxy_GCP_SERVICE_KEYFILE
|
|
@ -0,0 +1,53 @@
|
||||||
|
services:
|
||||||
|
cloudserver:
|
||||||
|
image: ${CLOUDSERVER_IMAGE}
|
||||||
|
command: sh -c "yarn start > /artifacts/${JOB_NAME}/s3.log"
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
- "9990:9990"
|
||||||
|
- "9991:9991"
|
||||||
|
volumes:
|
||||||
|
- /tmp/ssl:/tmp/ # TODO find proper path
|
||||||
|
- ${HOME}/.aws/credentials:/root/.aws/credentials
|
||||||
|
- /tmp/artifacts:/artifacts
|
||||||
|
environment:
|
||||||
|
- CI=true
|
||||||
|
- ENABLE_LOCAL_CACHE=true
|
||||||
|
- REDIS_HOST=redis
|
||||||
|
- REDIS_PORT=6379
|
||||||
|
- REPORT_TOKEN=report-token-1
|
||||||
|
- REMOTE_MANAGEMENT_DISABLE=1
|
||||||
|
- HEALTHCHECKS_ALLOWFROM=0.0.0.0/0
|
||||||
|
- DATA_HOST=0.0.0.0
|
||||||
|
- METADATA_HOST=0.0.0.0
|
||||||
|
- S3BACKEND
|
||||||
|
- S3DATA
|
||||||
|
- MPU_TESTING
|
||||||
|
- S3VAULT
|
||||||
|
- S3_LOCATION_FILE # TODO: set accordingly on action
|
||||||
|
env_file:
|
||||||
|
- creds.env
|
||||||
|
links:
|
||||||
|
- redis
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
extra_hosts:
|
||||||
|
- "bucketwebsitetester.s3-website-us-east-1.amazonaws.com:127.0.0.1"
|
||||||
|
redis:
|
||||||
|
image: redis:alpine
|
||||||
|
squid:
|
||||||
|
profiles: ['ci-proxy']
|
||||||
|
image: scality/ci-squid
|
||||||
|
command: >-
|
||||||
|
sh -c 'mkdir -p /ssl &&
|
||||||
|
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 \
|
||||||
|
-subj "/C=US/ST=Country/L=City/O=Organization/CN=CN=scality-proxy" \
|
||||||
|
-keyout /ssl/myca.pem -out /ssl/myca.pem &&
|
||||||
|
cp /ssl/myca.pem /ssl/CA.pem &&
|
||||||
|
squid -f /etc/squid/squid.conf -N -z &&
|
||||||
|
squid -f /etc/squid/squid.conf -NYCd 1'
|
||||||
|
volumes:
|
||||||
|
- /tmp/ssl:/ssl
|
||||||
|
# volumes:
|
||||||
|
# logvolume01: {}
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
set -x #echo on
|
set -x #echo on
|
||||||
set -e #exit at the first error
|
set -e #exit at the first error
|
||||||
|
|
||||||
mkdir -p ~/.aws
|
mkdir -p $HOME/.aws
|
||||||
|
|
||||||
cat >>/root/.aws/credentials <<EOF
|
cat >>$HOME/.aws/credentials <<EOF
|
||||||
[default]
|
[default]
|
||||||
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY
|
aws_access_key_id = $AWS_S3_BACKEND_ACCESS_KEY
|
||||||
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY
|
aws_secret_access_key = $AWS_S3_BACKEND_SECRET_KEY
|
|
@ -0,0 +1,255 @@
|
||||||
|
---
|
||||||
|
name: tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches-ignore:
|
||||||
|
- 'development/**'
|
||||||
|
- 'q/*/**'
|
||||||
|
|
||||||
|
env:
|
||||||
|
# Secrets
|
||||||
|
azurebackend_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurebackend_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurebackend_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY_2 }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME_2 }}
|
||||||
|
azurebackend2_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT_2 }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurebackendmismatch_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCESS_KEY }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ACCOUNT_NAME }}
|
||||||
|
azurenonexistcontainer_AZURE_STORAGE_ENDPOINT: >-
|
||||||
|
${{ secrets.AZURE_STORAGE_ENDPOINT }}
|
||||||
|
azuretest_AZURE_BLOB_ENDPOINT: "${{ secrets.AZURE_STORAGE_ENDPOINT }}"
|
||||||
|
b2backend_B2_ACCOUNT_ID: "${{ secrets.B2BACKEND_B2_ACCOUNT_ID }}"
|
||||||
|
b2backend_B2_STORAGE_ACCESS_KEY: >-
|
||||||
|
${{ secrets.B2BACKEND_B2_STORAGE_ACCESS_KEY }}
|
||||||
|
GOOGLE_SERVICE_EMAIL: "${{ secrets.GCP_SERVICE_EMAIL }}"
|
||||||
|
GOOGLE_SERVICE_KEY: "${{ secrets.GCP_SERVICE_KEY }}"
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY: "${{ secrets.AWS_S3_BACKEND_ACCESS_KEY }}"
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY: "${{ secrets.AWS_S3_BACKEND_SECRET_KEY }}"
|
||||||
|
AWS_S3_BACKEND_ACCESS_KEY_2: "${{ secrets.AWS_S3_BACKEND_ACCESS_KEY_2 }}"
|
||||||
|
AWS_S3_BACKEND_SECRET_KEY_2: "${{ secrets.AWS_S3_BACKEND_SECRET_KEY_2 }}"
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY: "${{ secrets.AWS_GCP_BACKEND_ACCESS_KEY }}"
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY: "${{ secrets.AWS_GCP_BACKEND_SECRET_KEY }}"
|
||||||
|
AWS_GCP_BACKEND_ACCESS_KEY_2: "${{ secrets.AWS_GCP_BACKEND_ACCESS_KEY_2 }}"
|
||||||
|
AWS_GCP_BACKEND_SECRET_KEY_2: "${{ secrets.AWS_GCP_BACKEND_SECRET_KEY_2 }}"
|
||||||
|
b2backend_B2_STORAGE_ENDPOINT: "${{ secrets.B2BACKEND_B2_STORAGE_ENDPOINT }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_EMAIL: "${{ secrets.GCP2_SERVICE_EMAIL }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_KEY: "${{ secrets.GCP2_SERVICE_KEY }}"
|
||||||
|
gcpbackend2_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackend_GCP_SERVICE_EMAIL: "${{ secrets.GCP_SERVICE_EMAIL }}"
|
||||||
|
gcpbackend_GCP_SERVICE_KEY: "${{ secrets.GCP_SERVICE_KEY }}"
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_EMAIL: >-
|
||||||
|
${{ secrets.GCPBACKENDMISMATCH_GCP_SERVICE_EMAIL }}
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEY: >-
|
||||||
|
${{ secrets.GCPBACKENDMISMATCH_GCP_SERVICE_KEY }}
|
||||||
|
gcpbackend_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendmismatch_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendnoproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
gcpbackendproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
||||||
|
# Configs
|
||||||
|
ENABLE_LOCAL_CACHE: "true"
|
||||||
|
REPORT_TOKEN: "report-token-1"
|
||||||
|
REMOTE_MANAGEMENT_DISABLE: "1"
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
linting-coverage:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: yarn
|
||||||
|
- name: install dependencies
|
||||||
|
run: yarn install --frozen-lockfile --network-concurrency 1
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
- name: Install python deps
|
||||||
|
run: pip install flake8
|
||||||
|
- name: Lint Javascript
|
||||||
|
run: yarn run --silent lint -- --max-warnings 0
|
||||||
|
- name: Lint Markdown
|
||||||
|
run: yarn run --silent lint_md
|
||||||
|
- name: Lint python
|
||||||
|
run: flake8 $(git ls-files "*.py")
|
||||||
|
- name: Lint Yaml
|
||||||
|
run: yamllint -c yamllint.yml $(git ls-files "*.yml")
|
||||||
|
- name: Unit Coverage
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
mkdir -p $CIRCLE_TEST_REPORTS/unit
|
||||||
|
yarn test
|
||||||
|
yarn run test_legacy_location
|
||||||
|
env:
|
||||||
|
S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
||||||
|
CIRCLE_TEST_REPORTS: /tmp
|
||||||
|
CIRCLE_ARTIFACTS: /tmp
|
||||||
|
CI_REPORTS: /tmp
|
||||||
|
- name: Unit Coverage logs
|
||||||
|
run: find /tmp/unit -exec cat {} \;
|
||||||
|
- name: preparing junit files for upload
|
||||||
|
run: |
|
||||||
|
mkdir -p artifacts/junit
|
||||||
|
find . -name "*junit*.xml" -exec cp {} artifacts/junit/ ";"
|
||||||
|
if: always()
|
||||||
|
- name: Upload files to artifacts
|
||||||
|
uses: scality/action-artifacts@v2
|
||||||
|
with:
|
||||||
|
method: upload
|
||||||
|
url: https://artifacts.scality.net
|
||||||
|
user: ${{ secrets.ARTIFACTS_USER }}
|
||||||
|
password: ${{ secrets.ARTIFACTS_PASSWORD }}
|
||||||
|
source: artifacts
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v1.6.0
|
||||||
|
- name: Login to GitHub Registry
|
||||||
|
uses: docker/login-action@v1.10.0
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Login to Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: registry.scality.com
|
||||||
|
username: ${{ secrets.REGISTRY_LOGIN }}
|
||||||
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
||||||
|
- name: Build and push cloudserver image
|
||||||
|
uses: docker/build-push-action@v2.7.0
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: .
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
registry.scality.com/cloudserver-dev/cloudserver:${{ github.sha }}
|
||||||
|
cache-from: type=gha,scope=cloudserver
|
||||||
|
cache-to: type=gha,mode=max,scope=cloudserver
|
||||||
|
|
||||||
|
# multiple-backend:
|
||||||
|
# runs-on: ubuntu-latest
|
||||||
|
# needs: build
|
||||||
|
# env:
|
||||||
|
# CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
# S3BACKEND: mem
|
||||||
|
# S3_LOCATION_FILE: /usr/src/app/tests/locationConfig/locationConfigTests.json
|
||||||
|
# S3DATA: multiple
|
||||||
|
# JOB_NAME: ${{ github.job }}
|
||||||
|
# steps:
|
||||||
|
# - name: Checkout
|
||||||
|
# uses: actions/checkout@v2
|
||||||
|
# - name: Setup etc/hosts
|
||||||
|
# run: sudo echo "127.0.0.1 bucketwebsitetester.s3-website-us-east-1.amazonaws.com" | sudo tee -a /etc/hosts
|
||||||
|
# - name: Setup Credentials
|
||||||
|
# run: bash .github/scripts/credentials.bash
|
||||||
|
# - name: Setup artifacts
|
||||||
|
# uses: ./.github/actions/setup-artifacts
|
||||||
|
# - uses: actions/setup-node@v2
|
||||||
|
# with:
|
||||||
|
# node-version: '16'
|
||||||
|
# cache: 'yarn'
|
||||||
|
# - uses: actions/setup-python@v2
|
||||||
|
# with:
|
||||||
|
# python-version: '3.9'
|
||||||
|
# - name: install dependencies
|
||||||
|
# run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1
|
||||||
|
# - uses: actions/cache@v2
|
||||||
|
# with:
|
||||||
|
# path: ~/.cache/pip
|
||||||
|
# key: ${{ runner.os }}-pip
|
||||||
|
# - name: Install python deps
|
||||||
|
# run: pip install docker-compose
|
||||||
|
# - name: Setup CI services
|
||||||
|
# run: docker-compose up -d
|
||||||
|
# working-directory: .github/docker
|
||||||
|
# - name: Run multiple backend test
|
||||||
|
# run: |-
|
||||||
|
# set -o pipefail;
|
||||||
|
# yarn run multiple_backend_test | tee /tmp/artifacts/${{ github.job }}/tests.log
|
||||||
|
# env:
|
||||||
|
# S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
||||||
|
# - name: Upload logs to artifacts
|
||||||
|
# uses: scality/action-artifacts@v3
|
||||||
|
# with:
|
||||||
|
# method: upload
|
||||||
|
# url: https://artifacts.scality.net
|
||||||
|
# user: ${{ secrets.ARTIFACTS_USER }}
|
||||||
|
# password: ${{ secrets.ARTIFACTS_PASSWORD }}
|
||||||
|
# source: /tmp/artifacts
|
||||||
|
# if: always()
|
||||||
|
|
||||||
|
file-ft-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
S3BACKEND: file
|
||||||
|
S3VAULT: mem
|
||||||
|
CLOUDSERVER_IMAGE: ghcr.io/${{ github.repository }}/cloudserver:${{ github.sha }}
|
||||||
|
MPU_TESTING: "yes"
|
||||||
|
JOB_NAME: ${{ github.job }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup etc/hosts
|
||||||
|
run: sudo echo "127.0.0.1 bucketwebsitetester.s3-website-us-east-1.amazonaws.com" | sudo tee -a /etc/hosts
|
||||||
|
- name: Setup Credentials
|
||||||
|
run: bash .github/scripts/credentials.bash
|
||||||
|
- name: Setup artifacts
|
||||||
|
uses: ./.github/actions/setup-artifacts
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '16'
|
||||||
|
cache: 'yarn'
|
||||||
|
- name: install dependencies
|
||||||
|
run: yarn install --ignore-engines --frozen-lockfile --network-concurrency 1
|
||||||
|
- uses: actions/cache@v2
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip
|
||||||
|
- name: Install python deps
|
||||||
|
run: pip install docker-compose
|
||||||
|
- name: Setup CI services
|
||||||
|
run: docker-compose up -d
|
||||||
|
working-directory: .github/docker
|
||||||
|
- name: service check
|
||||||
|
run: bash wait_for_local_port.bash 8000 40
|
||||||
|
- name: Run file ft tests
|
||||||
|
run: |-
|
||||||
|
set -o pipefail;
|
||||||
|
yarn run ft_test | tee /tmp/artifacts/${{ github.job }}/tests.log
|
||||||
|
- name: Upload logs to artifacts
|
||||||
|
uses: scality/action-artifacts@v3
|
||||||
|
with:
|
||||||
|
method: upload
|
||||||
|
url: https://artifacts.scality.net
|
||||||
|
user: ${{ secrets.ARTIFACTS_USER }}
|
||||||
|
password: ${{ secrets.ARTIFACTS_PASSWORD }}
|
||||||
|
source: /tmp/artifacts
|
||||||
|
if: always()
|
371
eve/main.yml
371
eve/main.yml
|
@ -1,371 +0,0 @@
|
||||||
---
|
|
||||||
version: 0.2
|
|
||||||
|
|
||||||
branches:
|
|
||||||
feature/*, improvement/*, bugfix/*, w/*, q/*, hotfix/*, dependabot/*:
|
|
||||||
stage: pre-merge
|
|
||||||
development/*:
|
|
||||||
stage: post-merge
|
|
||||||
|
|
||||||
models:
|
|
||||||
- env: &global-env
|
|
||||||
azurebackend_AZURE_STORAGE_ACCESS_KEY: >-
|
|
||||||
%(secret:azure_storage_access_key)s
|
|
||||||
azurebackend_AZURE_STORAGE_ACCOUNT_NAME: >-
|
|
||||||
%(secret:azure_storage_account_name)s
|
|
||||||
azurebackend_AZURE_STORAGE_ENDPOINT: >-
|
|
||||||
%(secret:azure_storage_endpoint)s
|
|
||||||
azurebackend2_AZURE_STORAGE_ACCESS_KEY: >-
|
|
||||||
%(secret:azure_storage_access_key_2)s
|
|
||||||
azurebackend2_AZURE_STORAGE_ACCOUNT_NAME: >-
|
|
||||||
%(secret:azure_storage_account_name_2)s
|
|
||||||
azurebackend2_AZURE_STORAGE_ENDPOINT: >-
|
|
||||||
%(secret:azure_storage_endpoint_2)s
|
|
||||||
azurebackendmismatch_AZURE_STORAGE_ACCESS_KEY: >-
|
|
||||||
%(secret:azure_storage_access_key)s
|
|
||||||
azurebackendmismatch_AZURE_STORAGE_ACCOUNT_NAME: >-
|
|
||||||
%(secret:azure_storage_account_name)s
|
|
||||||
azurebackendmismatch_AZURE_STORAGE_ENDPOINT: >-
|
|
||||||
%(secret:azure_storage_endpoint)s
|
|
||||||
azurenonexistcontainer_AZURE_STORAGE_ACCESS_KEY: >-
|
|
||||||
%(secret:azure_storage_access_key)s
|
|
||||||
azurenonexistcontainer_AZURE_STORAGE_ACCOUNT_NAME: >-
|
|
||||||
%(secret:azure_storage_account_name)s
|
|
||||||
azurenonexistcontainer_AZURE_STORAGE_ENDPOINT: >-
|
|
||||||
%(secret:azure_storage_endpoint)s
|
|
||||||
azuretest_AZURE_BLOB_ENDPOINT: "%(secret:azure_storage_endpoint)s"
|
|
||||||
b2backend_B2_ACCOUNT_ID: "%(secret:b2backend_b2_account_id)s"
|
|
||||||
b2backend_B2_STORAGE_ACCESS_KEY: >-
|
|
||||||
%(secret:b2backend_b2_storage_access_key)s
|
|
||||||
GOOGLE_SERVICE_EMAIL: "%(secret:gcp_service_email)s"
|
|
||||||
GOOGLE_SERVICE_KEY: "%(secret:gcp_service_key)s"
|
|
||||||
AWS_S3_BACKEND_ACCESS_KEY: "%(secret:aws_s3_backend_access_key)s"
|
|
||||||
AWS_S3_BACKEND_SECRET_KEY: "%(secret:aws_s3_backend_secret_key)s"
|
|
||||||
AWS_S3_BACKEND_ACCESS_KEY_2: "%(secret:aws_s3_backend_access_key_2)s"
|
|
||||||
AWS_S3_BACKEND_SECRET_KEY_2: "%(secret:aws_s3_backend_secret_key_2)s"
|
|
||||||
AWS_GCP_BACKEND_ACCESS_KEY: "%(secret:aws_gcp_backend_access_key)s"
|
|
||||||
AWS_GCP_BACKEND_SECRET_KEY: "%(secret:aws_gcp_backend_secret_key)s"
|
|
||||||
AWS_GCP_BACKEND_ACCESS_KEY_2: "%(secret:aws_gcp_backend_access_key_2)s"
|
|
||||||
AWS_GCP_BACKEND_SECRET_KEY_2: "%(secret:aws_gcp_backend_secret_key_2)s"
|
|
||||||
b2backend_B2_STORAGE_ENDPOINT: "%(secret:b2backend_b2_storage_endpoint)s"
|
|
||||||
gcpbackend2_GCP_SERVICE_EMAIL: "%(secret:gcp2_service_email)s"
|
|
||||||
gcpbackend2_GCP_SERVICE_KEY: "%(secret:gcp2_service_key)s"
|
|
||||||
gcpbackend2_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
|
||||||
gcpbackend_GCP_SERVICE_EMAIL: "%(secret:gcp_service_email)s"
|
|
||||||
gcpbackend_GCP_SERVICE_KEY: "%(secret:gcp_service_key)s"
|
|
||||||
gcpbackendmismatch_GCP_SERVICE_EMAIL: >-
|
|
||||||
%(secret:gcpbackendmismatch_gcp_service_email)s
|
|
||||||
gcpbackendmismatch_GCP_SERVICE_KEY: >-
|
|
||||||
%(secret:gcpbackendmismatch_gcp_service_key)s
|
|
||||||
gcpbackend_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
|
||||||
gcpbackendmismatch_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
|
||||||
gcpbackendnoproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
|
||||||
gcpbackendproxy_GCP_SERVICE_KEYFILE: /root/.gcp/servicekey
|
|
||||||
- env: &multiple-backend-vars
|
|
||||||
S3BACKEND: "mem"
|
|
||||||
S3DATA: "multiple"
|
|
||||||
- env: &file-mem-mpu
|
|
||||||
S3BACKEND: "file"
|
|
||||||
S3VAULT: "mem"
|
|
||||||
MPU_TESTING: "yes"
|
|
||||||
- Git: &clone
|
|
||||||
name: Pull repo
|
|
||||||
repourl: '%(prop:git_reference)s'
|
|
||||||
shallow: true
|
|
||||||
retryFetch: true
|
|
||||||
haltOnFailure: true
|
|
||||||
- ShellCommand: &credentials
|
|
||||||
name: Setup Credentials
|
|
||||||
command: bash eve/workers/build/credentials.bash
|
|
||||||
haltOnFailure: true
|
|
||||||
env: *global-env
|
|
||||||
- ShellCommand: &node_version
|
|
||||||
name: get node version
|
|
||||||
command: node -v
|
|
||||||
- ShellCommand: &yarn-install
|
|
||||||
name: install modules
|
|
||||||
command: yarn install --ignore-engines --frozen-lockfile --network-concurrency=1
|
|
||||||
haltOnFailure: true
|
|
||||||
- ShellCommand: &check-s3-action-logs
|
|
||||||
name: Check s3 action logs
|
|
||||||
command: |
|
|
||||||
LOGS=`cat /artifacts/s3.log | grep 'No actionLog'`
|
|
||||||
test `echo -n ${LOGS} | wc -l` -eq 0 || (echo $LOGS && false)
|
|
||||||
- Upload: &upload-artifacts
|
|
||||||
source: /artifacts
|
|
||||||
urls:
|
|
||||||
- "*"
|
|
||||||
- ShellCommand: &follow-s3-log
|
|
||||||
logfiles:
|
|
||||||
s3:
|
|
||||||
filename: /artifacts/s3.log
|
|
||||||
follow: true
|
|
||||||
- ShellCommand: &setup-junit-upload
|
|
||||||
name: preparing junit files for upload
|
|
||||||
command: |
|
|
||||||
mkdir -p artifacts/junit
|
|
||||||
find . -name "*junit*.xml" -exec cp {} artifacts/junit/ ";"
|
|
||||||
alwaysRun: true
|
|
||||||
- Upload: &upload-junits
|
|
||||||
source: artifacts
|
|
||||||
urls:
|
|
||||||
- "*"
|
|
||||||
alwaysRun: true
|
|
||||||
- ShellCommand: &setup-github-ssh
|
|
||||||
name: setup ssh with github
|
|
||||||
command: |
|
|
||||||
mkdir -p ~/.ssh
|
|
||||||
ssh-keyscan -H github.com > ~/.ssh/ssh_known_hosts
|
|
||||||
|
|
||||||
stages:
|
|
||||||
pre-merge:
|
|
||||||
worker:
|
|
||||||
type: local
|
|
||||||
steps:
|
|
||||||
- TriggerStages:
|
|
||||||
name: Launch all workers
|
|
||||||
stage_names:
|
|
||||||
- linting-coverage
|
|
||||||
- file-ft-tests
|
|
||||||
- multiple-backend-test
|
|
||||||
- kmip-ft-tests
|
|
||||||
- utapi-v2-tests
|
|
||||||
waitForFinish: true
|
|
||||||
haltOnFailure: true
|
|
||||||
|
|
||||||
linting-coverage:
|
|
||||||
worker:
|
|
||||||
type: docker
|
|
||||||
path: eve/workers/build
|
|
||||||
volumes: &default_volumes
|
|
||||||
- '/home/eve/workspace'
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: *setup-github-ssh
|
|
||||||
- ShellCommand: *yarn-install
|
|
||||||
- ShellCommand: *credentials
|
|
||||||
- ShellCommand:
|
|
||||||
name: Linting
|
|
||||||
command: |
|
|
||||||
set -ex
|
|
||||||
yarn run --silent lint -- --max-warnings 0
|
|
||||||
yarn run --silent lint_md
|
|
||||||
flake8 $(git ls-files "*.py")
|
|
||||||
yamllint -c yamllint.yml $(git ls-files "*.yml")
|
|
||||||
- ShellCommand:
|
|
||||||
name: Unit Coverage
|
|
||||||
command: |
|
|
||||||
set -ex
|
|
||||||
mkdir -p $CIRCLE_TEST_REPORTS/unit
|
|
||||||
yarn test
|
|
||||||
yarn run test_versionid_base62
|
|
||||||
yarn run test_legacy_location
|
|
||||||
env: &shared-vars
|
|
||||||
<<: *global-env
|
|
||||||
S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
|
||||||
CIRCLE_TEST_REPORTS: /tmp
|
|
||||||
CIRCLE_ARTIFACTS: /tmp
|
|
||||||
CI_REPORTS: /tmp
|
|
||||||
- ShellCommand:
|
|
||||||
name: Unit Coverage logs
|
|
||||||
command: find /tmp/unit -exec cat {} \;
|
|
||||||
- ShellCommand: *setup-junit-upload
|
|
||||||
- Upload: *upload-junits
|
|
||||||
|
|
||||||
multiple-backend-test:
|
|
||||||
worker:
|
|
||||||
type: kube_pod
|
|
||||||
path: eve/workers/pod.yaml
|
|
||||||
images:
|
|
||||||
aggressor: eve/workers/build
|
|
||||||
s3: "."
|
|
||||||
vars:
|
|
||||||
aggressorMem: "2560Mi"
|
|
||||||
s3Mem: "2560Mi"
|
|
||||||
env:
|
|
||||||
<<: *multiple-backend-vars
|
|
||||||
<<: *global-env
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: *setup-github-ssh
|
|
||||||
- ShellCommand: *credentials
|
|
||||||
- ShellCommand: *yarn-install
|
|
||||||
- ShellCommand:
|
|
||||||
command: |
|
|
||||||
bash -c "
|
|
||||||
source /root/.aws/exports &> /dev/null
|
|
||||||
set -ex
|
|
||||||
bash wait_for_local_port.bash 8000 40
|
|
||||||
yarn run multiple_backend_test"
|
|
||||||
<<: *follow-s3-log
|
|
||||||
env:
|
|
||||||
<<: *multiple-backend-vars
|
|
||||||
<<: *global-env
|
|
||||||
S3_LOCATION_FILE: tests/locationConfig/locationConfigTests.json
|
|
||||||
- ShellCommand:
|
|
||||||
command: mvn test
|
|
||||||
workdir: build/tests/functional/jaws
|
|
||||||
<<: *follow-s3-log
|
|
||||||
env:
|
|
||||||
<<: *multiple-backend-vars
|
|
||||||
- ShellCommand:
|
|
||||||
command: rspec tests.rb
|
|
||||||
workdir: build/tests/functional/fog
|
|
||||||
<<: *follow-s3-log
|
|
||||||
env:
|
|
||||||
<<: *multiple-backend-vars
|
|
||||||
- ShellCommand: *check-s3-action-logs
|
|
||||||
- ShellCommand: *setup-junit-upload
|
|
||||||
- Upload: *upload-artifacts
|
|
||||||
- Upload: *upload-junits
|
|
||||||
|
|
||||||
file-ft-tests:
|
|
||||||
worker:
|
|
||||||
type: kube_pod
|
|
||||||
path: eve/workers/pod.yaml
|
|
||||||
images:
|
|
||||||
aggressor: eve/workers/build
|
|
||||||
s3: "."
|
|
||||||
vars:
|
|
||||||
aggressorMem: "2560Mi"
|
|
||||||
s3Mem: "2Gi"
|
|
||||||
redis: enabled
|
|
||||||
env:
|
|
||||||
<<: *file-mem-mpu
|
|
||||||
<<: *global-env
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: *setup-github-ssh
|
|
||||||
- ShellCommand: *credentials
|
|
||||||
- ShellCommand: *yarn-install
|
|
||||||
- ShellCommand:
|
|
||||||
command: |
|
|
||||||
set -ex
|
|
||||||
bash wait_for_local_port.bash 8000 40
|
|
||||||
yarn run ft_test
|
|
||||||
<<: *follow-s3-log
|
|
||||||
env:
|
|
||||||
<<: *file-mem-mpu
|
|
||||||
<<: *global-env
|
|
||||||
- ShellCommand: *check-s3-action-logs
|
|
||||||
- ShellCommand: *setup-junit-upload
|
|
||||||
- Upload: *upload-artifacts
|
|
||||||
- Upload: *upload-junits
|
|
||||||
|
|
||||||
kmip-ft-tests:
|
|
||||||
worker:
|
|
||||||
type: kube_pod
|
|
||||||
path: eve/workers/pod.yaml
|
|
||||||
images:
|
|
||||||
aggressor: eve/workers/build
|
|
||||||
s3: "."
|
|
||||||
pykmip: eve/workers/pykmip
|
|
||||||
vars:
|
|
||||||
aggressorMem: "2560Mi"
|
|
||||||
s3Mem: "1664Mi"
|
|
||||||
redis: enabled
|
|
||||||
pykmip: enabled
|
|
||||||
env:
|
|
||||||
<<: *file-mem-mpu
|
|
||||||
<<: *global-env
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: *credentials
|
|
||||||
- ShellCommand: *yarn-install
|
|
||||||
- ShellCommand:
|
|
||||||
command: |
|
|
||||||
set -ex
|
|
||||||
bash wait_for_local_port.bash 8000 40
|
|
||||||
bash wait_for_local_port.bash 5696 40
|
|
||||||
yarn run ft_kmip
|
|
||||||
logfiles:
|
|
||||||
pykmip:
|
|
||||||
filename: /artifacts/pykmip.log
|
|
||||||
follow: true
|
|
||||||
s3:
|
|
||||||
filename: /artifacts/s3.log
|
|
||||||
follow: true
|
|
||||||
env:
|
|
||||||
<<: *file-mem-mpu
|
|
||||||
<<: *global-env
|
|
||||||
- ShellCommand: *setup-junit-upload
|
|
||||||
- Upload: *upload-artifacts
|
|
||||||
- Upload: *upload-junits
|
|
||||||
|
|
||||||
utapi-v2-tests:
|
|
||||||
worker:
|
|
||||||
type: kube_pod
|
|
||||||
path: eve/workers/pod.yaml
|
|
||||||
images:
|
|
||||||
aggressor: eve/workers/build
|
|
||||||
s3: "."
|
|
||||||
vars:
|
|
||||||
aggressorMem: "2560Mi"
|
|
||||||
s3Mem: "2Gi"
|
|
||||||
env:
|
|
||||||
ENABLE_UTAPI_V2: t
|
|
||||||
S3BACKEND: mem
|
|
||||||
BUCKET_DENY_FILTER: utapi-event-filter-deny-bucket
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: *setup-github-ssh
|
|
||||||
- ShellCommand: *credentials
|
|
||||||
- ShellCommand: *yarn-install
|
|
||||||
- ShellCommand:
|
|
||||||
command: |
|
|
||||||
bash -c "
|
|
||||||
source /root/.aws/exports &> /dev/null
|
|
||||||
set -ex
|
|
||||||
bash wait_for_local_port.bash 8000 40
|
|
||||||
yarn run test_utapi_v2"
|
|
||||||
<<: *follow-s3-log
|
|
||||||
env:
|
|
||||||
ENABLE_UTAPI_V2: t
|
|
||||||
S3BACKEND: mem
|
|
||||||
- ShellCommand: *check-s3-action-logs
|
|
||||||
- ShellCommand: *setup-junit-upload
|
|
||||||
- Upload: *upload-artifacts
|
|
||||||
- Upload: *upload-junits
|
|
||||||
|
|
||||||
post-merge:
|
|
||||||
worker:
|
|
||||||
type: local
|
|
||||||
steps:
|
|
||||||
- Git: *clone
|
|
||||||
- ShellCommand: &docker_login
|
|
||||||
name: Private Registry Login
|
|
||||||
command: >
|
|
||||||
docker login
|
|
||||||
-u '%(secret:private_registry_username)s'
|
|
||||||
-p '%(secret:private_registry_password)s'
|
|
||||||
'%(secret:private_registry_url)s'
|
|
||||||
- ShellCommand:
|
|
||||||
name: Dockerhub Login
|
|
||||||
command: >
|
|
||||||
docker login
|
|
||||||
-u '%(secret:dockerhub_ro_user)s'
|
|
||||||
-p '%(secret:dockerhub_ro_password)s'
|
|
||||||
- SetProperty: &docker_image_name
|
|
||||||
name: Set docker image name property
|
|
||||||
property: docker_image_name
|
|
||||||
value:
|
|
||||||
"%(secret:private_registry_url)s/zenko/cloudserver:\
|
|
||||||
%(prop:commit_short_revision)s"
|
|
||||||
- ShellCommand:
|
|
||||||
name: Build docker image
|
|
||||||
command: >-
|
|
||||||
docker build
|
|
||||||
--no-cache
|
|
||||||
-t %(prop:docker_image_name)s
|
|
||||||
.
|
|
||||||
- ShellCommand:
|
|
||||||
name: Tag images
|
|
||||||
command: |
|
|
||||||
docker tag %(prop:docker_image_name)s zenko/cloudserver:$TAG
|
|
||||||
env:
|
|
||||||
TAG: "latest-%(prop:product_version)s"
|
|
||||||
- ShellCommand:
|
|
||||||
name: Push image
|
|
||||||
command: |
|
|
||||||
docker push %(prop:docker_image_name)s
|
|
||||||
docker push zenko/cloudserver:latest-%(prop:product_version)s
|
|
|
@ -1,59 +0,0 @@
|
||||||
FROM buildpack-deps:bionic-curl
|
|
||||||
|
|
||||||
#
|
|
||||||
# Install packages needed by the buildchain
|
|
||||||
#
|
|
||||||
ENV LANG C.UTF-8
|
|
||||||
COPY ./s3_packages.list ./buildbot_worker_packages.list /tmp/
|
|
||||||
RUN curl -sS http://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \
|
|
||||||
&& echo "deb http://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \
|
|
||||||
&& apt-get update \
|
|
||||||
&& cat /tmp/*packages.list | xargs apt-get install -y \
|
|
||||||
&& update-ca-certificates \
|
|
||||||
&& git clone https://github.com/tj/n.git \
|
|
||||||
&& make -C ./n \
|
|
||||||
&& n 16.13.2 \
|
|
||||||
&& pip install pip==9.0.1 \
|
|
||||||
&& rm -rf ./n \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* \
|
|
||||||
&& rm -f /tmp/packages.list
|
|
||||||
|
|
||||||
#
|
|
||||||
# Add user eve
|
|
||||||
#
|
|
||||||
|
|
||||||
RUN adduser -u 1042 --home /home/eve --disabled-password --gecos "" eve \
|
|
||||||
&& adduser eve sudo \
|
|
||||||
&& sed -ri 's/(%sudo.*)ALL$/\1NOPASSWD:ALL/' /etc/sudoers
|
|
||||||
#
|
|
||||||
# Install Dependencies
|
|
||||||
#
|
|
||||||
|
|
||||||
# Install RVM and gems
|
|
||||||
ENV RUBY_VERSION="2.4.1"
|
|
||||||
RUN gem update --system
|
|
||||||
COPY ./gems.list /tmp/
|
|
||||||
RUN cat /tmp/gems.list | xargs gem install
|
|
||||||
#RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
|
||||||
# && curl -sSL https://get.rvm.io | bash -s stable --ruby=$RUBY_VERSION \
|
|
||||||
# && usermod -a -G rvm eve
|
|
||||||
#RUN /bin/bash -l -c "\
|
|
||||||
# source /usr/local/rvm/scripts/rvm \
|
|
||||||
# && cat /tmp/gems.list | xargs gem install \
|
|
||||||
# && rm /tmp/gems.list"
|
|
||||||
|
|
||||||
# Install Pip packages
|
|
||||||
COPY ./pip_packages.list /tmp/
|
|
||||||
RUN cat /tmp/pip_packages.list | xargs pip install \
|
|
||||||
&& rm -f /tmp/pip_packages.list \
|
|
||||||
&& mkdir /home/eve/.aws \
|
|
||||||
&& chown eve /home/eve/.aws
|
|
||||||
|
|
||||||
#
|
|
||||||
# Run buildbot-worker on startup
|
|
||||||
#
|
|
||||||
|
|
||||||
ARG BUILDBOT_VERSION
|
|
||||||
RUN pip install buildbot-worker==$BUILDBOT_VERSION
|
|
||||||
|
|
||||||
CMD ["/bin/bash", "-l", "-c", "buildbot-worker create-worker . $BUILDMASTER:$BUILDMASTER_PORT $WORKERNAME $WORKERPASS && buildbot-worker start --nodaemon"]
|
|
|
@ -1,14 +0,0 @@
|
||||||
ca-certificates
|
|
||||||
git
|
|
||||||
git-lfs
|
|
||||||
gnupg
|
|
||||||
libffi-dev
|
|
||||||
libssl-dev
|
|
||||||
python-pip
|
|
||||||
python2.7
|
|
||||||
python2.7-dev
|
|
||||||
software-properties-common
|
|
||||||
sudo
|
|
||||||
tcl
|
|
||||||
wget
|
|
||||||
procps
|
|
|
@ -1,4 +0,0 @@
|
||||||
fog-aws:1.3.0
|
|
||||||
json
|
|
||||||
mime-types:3.1
|
|
||||||
rspec:3.5
|
|
|
@ -1,3 +0,0 @@
|
||||||
flake8
|
|
||||||
s3cmd==1.6.1
|
|
||||||
yamllint
|
|
|
@ -1,14 +0,0 @@
|
||||||
build-essential
|
|
||||||
ca-certificates
|
|
||||||
curl
|
|
||||||
default-jdk
|
|
||||||
gnupg2
|
|
||||||
libdigest-hmac-perl
|
|
||||||
lsof
|
|
||||||
maven
|
|
||||||
netcat
|
|
||||||
redis-server
|
|
||||||
ruby-full
|
|
||||||
yarn
|
|
||||||
zlib1g-dev
|
|
||||||
openssl
|
|
|
@ -1,196 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
name: "proxy-ci-test-pod"
|
|
||||||
spec:
|
|
||||||
restartPolicy: Never
|
|
||||||
terminationGracePeriodSeconds: 10
|
|
||||||
hostAliases:
|
|
||||||
- ip: "127.0.0.1"
|
|
||||||
hostnames:
|
|
||||||
- "bucketwebsitetester.s3-website-us-east-1.amazonaws.com"
|
|
||||||
- "pykmip.local"
|
|
||||||
{% if vars.pykmip is defined and vars.pykmip == 'enabled' -%}
|
|
||||||
initContainers:
|
|
||||||
- name: kmip-certs-installer
|
|
||||||
image: {{ images.pykmip }}
|
|
||||||
command: [ 'sh', '-c', 'cp /ssl/* /ssl-kmip/']
|
|
||||||
volumeMounts:
|
|
||||||
- name: kmip-certs
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /ssl-kmip
|
|
||||||
{%- endif %}
|
|
||||||
containers:
|
|
||||||
- name: aggressor
|
|
||||||
image: {{ images.aggressor }}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "1"
|
|
||||||
memory: {{ vars.aggressorMem }}
|
|
||||||
limits:
|
|
||||||
cpu: "1"
|
|
||||||
memory: {{ vars.aggressorMem }}
|
|
||||||
volumeMounts:
|
|
||||||
- name: creds
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /root/.aws
|
|
||||||
- name: artifacts
|
|
||||||
readOnly: true
|
|
||||||
mountPath: /artifacts
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -lc
|
|
||||||
- |
|
|
||||||
buildbot-worker create-worker . $BUILDMASTER:$BUILDMASTER_PORT $WORKERNAME $WORKERPASS
|
|
||||||
buildbot-worker start --nodaemon
|
|
||||||
env:
|
|
||||||
- name: CI
|
|
||||||
value: "true"
|
|
||||||
- name: ENABLE_LOCAL_CACHE
|
|
||||||
value: "true"
|
|
||||||
- name: REPORT_TOKEN
|
|
||||||
value: "report-token-1"
|
|
||||||
- name: REMOTE_MANAGEMENT_DISABLE
|
|
||||||
value: "1"
|
|
||||||
{% for key, value in vars.env.items() %}
|
|
||||||
- name: {{ key }}
|
|
||||||
value: "{{ value }}"
|
|
||||||
{% endfor %}
|
|
||||||
- name: s3
|
|
||||||
image: {{ images.s3 }}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: "2"
|
|
||||||
memory: {{ vars.s3Mem }}
|
|
||||||
limits:
|
|
||||||
cpu: "2"
|
|
||||||
memory: {{ vars.s3Mem }}
|
|
||||||
volumeMounts:
|
|
||||||
- name: creds
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /root/.aws
|
|
||||||
- name: certs
|
|
||||||
readOnly: true
|
|
||||||
mountPath: /tmp
|
|
||||||
- name: artifacts
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /artifacts
|
|
||||||
- name: kmip-certs
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /ssl-kmip
|
|
||||||
command:
|
|
||||||
- bash
|
|
||||||
- -ec
|
|
||||||
- |
|
|
||||||
sleep 10 # wait for
|
|
||||||
/usr/src/app/docker-entrypoint.sh npm start | tee -a /artifacts/s3.log
|
|
||||||
env:
|
|
||||||
{% if vars.env.S3DATA is defined and vars.env.S3DATA == "multiple" -%}
|
|
||||||
- name: S3_LOCATION_FILE
|
|
||||||
value: "/usr/src/app/tests/locationConfig/locationConfigTests.json"
|
|
||||||
{%- endif %}
|
|
||||||
{% if vars.pykmip is defined and vars.pykmip == 'enabled' -%}
|
|
||||||
- name: S3KMS
|
|
||||||
value: kmip
|
|
||||||
- name: S3KMIP_PORT
|
|
||||||
value: "5696"
|
|
||||||
- name: S3KMIP_HOSTS
|
|
||||||
value: "pykmip.local"
|
|
||||||
- name: S3KMIP_COMPOUND_CREATE
|
|
||||||
value: "false"
|
|
||||||
- name: S3KMIP_BUCKET_ATTRIBUTE_NAME
|
|
||||||
value: ''
|
|
||||||
- name: S3KMIP_PIPELINE_DEPTH
|
|
||||||
value: "8"
|
|
||||||
- name: S3KMIP_KEY
|
|
||||||
value: /ssl-kmip/kmip-client-key.pem
|
|
||||||
- name: S3KMIP_CERT
|
|
||||||
value: /ssl-kmip/kmip-client-cert.pem
|
|
||||||
- name: S3KMIP_CA
|
|
||||||
value: /ssl-kmip/kmip-ca.pem
|
|
||||||
{%- endif %}
|
|
||||||
- name: CI
|
|
||||||
value: "true"
|
|
||||||
- name: ENABLE_LOCAL_CACHE
|
|
||||||
value: "true"
|
|
||||||
- name: REDIS_HOST
|
|
||||||
value: "localhost"
|
|
||||||
- name: REDIS_PORT
|
|
||||||
value: "6379"
|
|
||||||
- name: REPORT_TOKEN
|
|
||||||
value: "report-token-1"
|
|
||||||
- name: REMOTE_MANAGEMENT_DISABLE
|
|
||||||
value: "1"
|
|
||||||
- name: HEALTHCHECKS_ALLOWFROM
|
|
||||||
value: "0.0.0.0/0"
|
|
||||||
{% for key, value in vars.env.items() %}
|
|
||||||
- name: {{ key }}
|
|
||||||
value: "{{ value }}"
|
|
||||||
{% endfor %}
|
|
||||||
{% if vars.redis is defined and vars.redis == "enabled" -%}
|
|
||||||
- name: redis
|
|
||||||
image: redis:alpine
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
cpu: 200m
|
|
||||||
memory: 128Mi
|
|
||||||
{%- endif %}
|
|
||||||
{% if vars.env.CI_PROXY is defined and vars.env.CI_PROXY == "true" -%}
|
|
||||||
- name: squid
|
|
||||||
image: scality/ci-squid
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 250m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
cpu: 250m
|
|
||||||
memory: 128Mi
|
|
||||||
volumeMounts:
|
|
||||||
- name: certs
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /ssl
|
|
||||||
command:
|
|
||||||
- sh
|
|
||||||
- -exc
|
|
||||||
- |
|
|
||||||
mkdir -p /ssl
|
|
||||||
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 \
|
|
||||||
-subj "/C=US/ST=Country/L=City/O=Organization/CN=CN=scality-proxy" \
|
|
||||||
-keyout /ssl/myca.pem -out /ssl/myca.pem
|
|
||||||
cp /ssl/myca.pem /ssl/CA.pem
|
|
||||||
squid -f /etc/squid/squid.conf -N -z
|
|
||||||
squid -f /etc/squid/squid.conf -NYCd 1
|
|
||||||
{%- endif %}
|
|
||||||
{% if vars.pykmip is defined and vars.pykmip == 'enabled' -%}
|
|
||||||
- name: pykmip
|
|
||||||
image: {{ images.pykmip }}
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
volumeMounts:
|
|
||||||
- name: artifacts
|
|
||||||
readOnly: false
|
|
||||||
mountPath: /artifacts
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 128Mi
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 128Mi
|
|
||||||
{%- endif %}
|
|
||||||
volumes:
|
|
||||||
- name: creds
|
|
||||||
emptyDir: {}
|
|
||||||
- name: certs
|
|
||||||
emptyDir: {}
|
|
||||||
- name: artifacts
|
|
||||||
emptyDir: {}
|
|
||||||
- name: kmip-certs
|
|
||||||
emptyDir: {}
|
|
|
@ -1,29 +0,0 @@
|
||||||
FROM python:3.10-alpine
|
|
||||||
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
libressl && \
|
|
||||||
apk add --no-cache --virtual .build-deps \
|
|
||||||
python3-dev \
|
|
||||||
libffi-dev \
|
|
||||||
libressl-dev \
|
|
||||||
sqlite-dev \
|
|
||||||
build-base \
|
|
||||||
curl
|
|
||||||
|
|
||||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
|
||||||
ENV PATH="/root/.cargo/bin:${PATH}"
|
|
||||||
|
|
||||||
RUN pip3 install -U pip && \
|
|
||||||
pip3 install pykmip requests && \
|
|
||||||
apk del .build-deps && \
|
|
||||||
mkdir /pykmip
|
|
||||||
|
|
||||||
|
|
||||||
ADD ./bin /usr/local/bin
|
|
||||||
ADD ./certs /ssl
|
|
||||||
ADD policy.json /etc/pykmip/policies/policy.json
|
|
||||||
ADD server.conf /etc/pykmip/server.conf
|
|
||||||
ADD docker-entrypoint.sh /
|
|
||||||
RUN chmod +x /docker-entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
|
|
@ -1,156 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
from cryptography import x509
|
|
||||||
from cryptography.hazmat import backends
|
|
||||||
from cryptography.hazmat.primitives import hashes
|
|
||||||
from cryptography.hazmat.primitives import serialization
|
|
||||||
from cryptography.hazmat.primitives.asymmetric import rsa
|
|
||||||
|
|
||||||
import datetime
|
|
||||||
import argparse
|
|
||||||
import sys
|
|
||||||
|
|
||||||
|
|
||||||
def get_args():
|
|
||||||
parser = argparse.ArgumentParser(
|
|
||||||
prog=sys.argv[0],
|
|
||||||
description='Tool to generate a x509 CA root, server and client certs')
|
|
||||||
parser.add_argument('-c', '--common-name', action='store',
|
|
||||||
default='localhost',
|
|
||||||
help='Set the common name for the server-side cert')
|
|
||||||
return parser.parse_args()
|
|
||||||
|
|
||||||
|
|
||||||
def create_rsa_private_key(key_size=2048, public_exponent=65537):
|
|
||||||
private_key = rsa.generate_private_key(
|
|
||||||
public_exponent=public_exponent,
|
|
||||||
key_size=key_size,
|
|
||||||
backend=backends.default_backend()
|
|
||||||
)
|
|
||||||
return private_key
|
|
||||||
|
|
||||||
|
|
||||||
def create_self_signed_certificate(subject_name,
|
|
||||||
private_key,
|
|
||||||
days_valid=36500):
|
|
||||||
subject = x509.Name([
|
|
||||||
x509.NameAttribute(x509.NameOID.ORGANIZATION_NAME, u"Scality"),
|
|
||||||
x509.NameAttribute(x509.NameOID.COMMON_NAME, subject_name)
|
|
||||||
])
|
|
||||||
certificate = x509.CertificateBuilder().subject_name(
|
|
||||||
subject
|
|
||||||
).issuer_name(
|
|
||||||
subject
|
|
||||||
).public_key(
|
|
||||||
private_key.public_key()
|
|
||||||
).serial_number(
|
|
||||||
x509.random_serial_number()
|
|
||||||
).not_valid_before(
|
|
||||||
datetime.datetime.utcnow()
|
|
||||||
).not_valid_after(
|
|
||||||
datetime.datetime.utcnow() + datetime.timedelta(days=days_valid)
|
|
||||||
).add_extension(
|
|
||||||
x509.BasicConstraints(True, None),
|
|
||||||
critical=True
|
|
||||||
).sign(private_key, hashes.SHA256(), backends.default_backend())
|
|
||||||
|
|
||||||
return certificate
|
|
||||||
|
|
||||||
|
|
||||||
def create_certificate(subject_name,
|
|
||||||
private_key,
|
|
||||||
signing_certificate,
|
|
||||||
signing_key,
|
|
||||||
days_valid=36500,
|
|
||||||
client_auth=False):
|
|
||||||
subject = x509.Name([
|
|
||||||
x509.NameAttribute(x509.NameOID.ORGANIZATION_NAME, u"Scality"),
|
|
||||||
x509.NameAttribute(x509.NameOID.COMMON_NAME, subject_name)
|
|
||||||
])
|
|
||||||
builder = x509.CertificateBuilder().subject_name(
|
|
||||||
subject
|
|
||||||
).issuer_name(
|
|
||||||
signing_certificate.subject
|
|
||||||
).public_key(
|
|
||||||
private_key.public_key()
|
|
||||||
).serial_number(
|
|
||||||
x509.random_serial_number()
|
|
||||||
).not_valid_before(
|
|
||||||
datetime.datetime.utcnow()
|
|
||||||
).not_valid_after(
|
|
||||||
datetime.datetime.utcnow() + datetime.timedelta(days=days_valid)
|
|
||||||
)
|
|
||||||
|
|
||||||
if client_auth:
|
|
||||||
builder = builder.add_extension(
|
|
||||||
x509.ExtendedKeyUsage([x509.ExtendedKeyUsageOID.CLIENT_AUTH]),
|
|
||||||
critical=True
|
|
||||||
)
|
|
||||||
|
|
||||||
certificate = builder.sign(
|
|
||||||
signing_key,
|
|
||||||
hashes.SHA256(),
|
|
||||||
backends.default_backend()
|
|
||||||
)
|
|
||||||
return certificate
|
|
||||||
|
|
||||||
|
|
||||||
def main(common_name):
|
|
||||||
root_key = create_rsa_private_key()
|
|
||||||
root_certificate = create_self_signed_certificate(
|
|
||||||
u"Root CA",
|
|
||||||
root_key
|
|
||||||
)
|
|
||||||
|
|
||||||
server_key = create_rsa_private_key()
|
|
||||||
server_certificate = create_certificate(
|
|
||||||
common_name,
|
|
||||||
server_key,
|
|
||||||
root_certificate,
|
|
||||||
root_key
|
|
||||||
)
|
|
||||||
|
|
||||||
john_doe_client_key = create_rsa_private_key()
|
|
||||||
john_doe_client_certificate = create_certificate(
|
|
||||||
u"John Doe",
|
|
||||||
john_doe_client_key,
|
|
||||||
root_certificate,
|
|
||||||
root_key,
|
|
||||||
client_auth=True
|
|
||||||
)
|
|
||||||
|
|
||||||
with open("certs/kmip-ca.pem", "wb") as f:
|
|
||||||
f.write(
|
|
||||||
root_certificate.public_bytes(
|
|
||||||
serialization.Encoding.PEM
|
|
||||||
)
|
|
||||||
)
|
|
||||||
with open("certs/kmip-key.pem", "wb") as f:
|
|
||||||
f.write(server_key.private_bytes(
|
|
||||||
encoding=serialization.Encoding.PEM,
|
|
||||||
format=serialization.PrivateFormat.PKCS8,
|
|
||||||
encryption_algorithm=serialization.NoEncryption()
|
|
||||||
))
|
|
||||||
with open("certs/kmip-cert.pem", "wb") as f:
|
|
||||||
f.write(
|
|
||||||
server_certificate.public_bytes(
|
|
||||||
serialization.Encoding.PEM
|
|
||||||
)
|
|
||||||
)
|
|
||||||
with open("certs/kmip-client-key.pem", "wb") as f:
|
|
||||||
f.write(john_doe_client_key.private_bytes(
|
|
||||||
encoding=serialization.Encoding.PEM,
|
|
||||||
format=serialization.PrivateFormat.PKCS8,
|
|
||||||
encryption_algorithm=serialization.NoEncryption()
|
|
||||||
))
|
|
||||||
with open("certs/kmip-client-cert.pem", "wb") as f:
|
|
||||||
f.write(
|
|
||||||
john_doe_client_certificate.public_bytes(
|
|
||||||
serialization.Encoding.PEM
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
args = get_args()
|
|
||||||
main(args.common_name)
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
# Copyright (c) 2016 The Johns Hopkins University/Applied Physics Laboratory
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
# not use this file except in compliance with the License. You may obtain
|
|
||||||
# a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
# License for the specific language governing permissions and limitations
|
|
||||||
# under the License.
|
|
||||||
|
|
||||||
import logging # noqa: E402
|
|
||||||
|
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
|
||||||
|
|
||||||
from kmip.services.server import server # noqa: E402
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
print('Starting PyKMIP server on 0.0.0.0:5696')
|
|
||||||
server.main()
|
|
|
@ -1,18 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC6zCCAdOgAwIBAgIUPIpMY95b4HjKAk+FyydZApAEFskwDQYJKoZIhvcNAQEL
|
|
||||||
BQAwJDEQMA4GA1UECgwHU2NhbGl0eTEQMA4GA1UEAwwHUm9vdCBDQTAgFw0yMTA0
|
|
||||||
MDkwMDI4MTFaGA8yMTIxMDMxNjAwMjgxMVowJDEQMA4GA1UECgwHU2NhbGl0eTEQ
|
|
||||||
MA4GA1UEAwwHUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
|
|
||||||
AKqLFEsWtfRTxnoZrQe63tq+rQnVgninHMahRmXkzyjK/uNhoKnIh8bXdTC/eCZ6
|
|
||||||
FBROqBYNL0TJb0HDv1FzcZS1UCUldRqTlvr6wZb0pfrp40fvztsqQgAh1t/Blg5i
|
|
||||||
Zv5+ESSlNs5rWbFTxtq+FbMW/ERYTrVfnMkBiLg4Gq0HwID9a5jvJatzrrno2s1m
|
|
||||||
OfZCT3HaE3tMZ6vvYuoamvLNdvdH+9KeTmBCursfNejt0rSGjIqfi6DvFJSayydQ
|
|
||||||
is5DMSTbCLGdKQmA85VfEQmlQ8v0232WDSd6gVfp2tthDEDHnCbgWkEd1vsTyS85
|
|
||||||
ubdt5v4CWGOWV+mu3bf8xM0CAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
|
|
||||||
hkiG9w0BAQsFAAOCAQEARTjc2zV/ol1/LsSzZy6l1R0uFBmR2KumH+Se1Yq2vKpY
|
|
||||||
Dv6xmrvmjOUr5RBO77nRhIgdcQA+LyAg8ii2Dfzc8r1RTD+j1bYOxESXctBOBcXM
|
|
||||||
Chy6FEBydR6m7S8qQyL+caJWO1WZWp2tapcm6sUG1oRVznWtK1/SHKIzOBwsmJ07
|
|
||||||
79KsCJ6wf9tzD05EDTI2QhAObE9/thy+zc8l8cmv9A6p3jKkx9rwXUttSUqTn0CW
|
|
||||||
w45bgKg6+DDcrhZ+MATbzuTfhuA4NFUTzK7KeX9sMuOV03Zs8SA3VhAOXmu063M3
|
|
||||||
0f9X7P/0RmGTTp7GGCqEINcZdbLh3k7CpFb2Ox998Q==
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,18 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC2zCCAcOgAwIBAgIUIlE8UAkqQ+6mbJDtrt9kkmi8aJYwDQYJKoZIhvcNAQEL
|
|
||||||
BQAwJDEQMA4GA1UECgwHU2NhbGl0eTEQMA4GA1UEAwwHUm9vdCBDQTAgFw0yMTA0
|
|
||||||
MDkwMDI4MTFaGA8yMTIxMDMxNjAwMjgxMVowKTEQMA4GA1UECgwHU2NhbGl0eTEV
|
|
||||||
MBMGA1UEAwwMcHlrbWlwLmxvY2FsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
|
|
||||||
CgKCAQEAtxr7pq/lnzVeZz4z52Yc3DeaPqjNfRSyW5cPUlT7ABXFb7+tja7K2C7u
|
|
||||||
DYVK+Q+2yJCQwYJY47aKJB++ewam9t2V8Xy0Z8S+0I2ImCwuyeihaD/f6uJZRzms
|
|
||||||
ycdECH22BA6tCPlQLnlboRiZzI6rcIvXAbUMvLvFm3nyYIs9qidExRnfyMjISknM
|
|
||||||
V+83LT5QW4IcHgKYqzdz2ZmOnk+f4wmMmitcivTdIZCL8Z0cxr7BJlOh5JZ/V5uj
|
|
||||||
WUXeNa+ttW0RKKBlg9T+wj0JvwoJBPZTmsMAy3tI9tjLg3DwGYKsflbFeU2tebXI
|
|
||||||
gncGFZ/dFxj331GGtq3kz1PzAUYf2wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQB1
|
|
||||||
8HgJ0fu6/pCrDxAm90eESFjmaTFyTN8q00zhq4Cb3zAT9KMWzAygkZ9n4ZFgELPo
|
|
||||||
7kBE2H6RcDdoBmjVYd8HnBloDdYzYbncKgt5YBvxRaMSF4/l65BM8wjatyXErqnH
|
|
||||||
QLLTRe5AuF0/F0KtPeDQ2JFVu8dZ35W3fyKGPRsEdVOSCTHROmqpGhZCpscyUP4W
|
|
||||||
Hb0dBTESQ9mQHw14OCaaahARd0X5WdcA/E+m0fpGqj1rQCXS+PrRcSLe1E1hqPlK
|
|
||||||
q/hXSXD5nybwipktELvJCbB7l4HmJr2pIpldeR5+ef68Cs8hqs6DRlsJX9sK2ng+
|
|
||||||
TFe5v6SCarqZ9kFvr6Yp
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,18 +0,0 @@
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIIC8zCCAdugAwIBAgIUBs6nVXQXhrFbClub3aSLg72/DiYwDQYJKoZIhvcNAQEL
|
|
||||||
BQAwJDEQMA4GA1UECgwHU2NhbGl0eTEQMA4GA1UEAwwHUm9vdCBDQTAgFw0yMTA0
|
|
||||||
MDkwMDI4MTFaGA8yMTIxMDMxNjAwMjgxMVowJTEQMA4GA1UECgwHU2NhbGl0eTER
|
|
||||||
MA8GA1UEAwwISm9obiBEb2UwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
|
|
||||||
AQC6neSYoBoWh/i2mBpduJnTlXacpJ0iQqLezvcGy8qR0s/48mtfV2IRGTNVsq4L
|
|
||||||
jLLRsPGt9KkJlUhHGWhG00cBGEsIiJiBUr+WrEsO04ME/Sk76kX8wk/t9Oljl7jt
|
|
||||||
UDnQUwshj+hRFe0iKAyE65JIutu5EiiNtOqMzbVgPNfNniAaGlrgwByJaS9arzsH
|
|
||||||
PVju9yZBYzYhwAMyYFcXUGrgvHRCHKmxBi4QmV7DX4TeN4l9TrCyEmqDev4PRFip
|
|
||||||
yR2Fh3WGSwWh45HgMT+Jp6Uv6yI4wMXWJAcNkHdx1OhjBoUQrkavvdeVEnCwjQ+p
|
|
||||||
SMLm0T4iNxedQWBtDM7ts4EjAgMBAAGjGjAYMBYGA1UdJQEB/wQMMAoGCCsGAQUF
|
|
||||||
BwMCMA0GCSqGSIb3DQEBCwUAA4IBAQCMi9HEhZc5jHJMj18Wq00fZy4O9XtjCe0J
|
|
||||||
nntW9tzi3rTQcQWKA7i9uVdDoCg+gMFVxWMvV7luFEUc/VYV1v8hFfbIFygzFsZY
|
|
||||||
xwv4GQaIwbsgzD+oziia53w0FSuNL0uE0MeKvrt3yzHxCxylHyl+TQd/UdAtAo+k
|
|
||||||
RL1sI0mBZx5qo6d1J7ZMCxzAGaT7KjnJvziFr/UbfSNnwDsxsUwGaI1ZeAxJN8DI
|
|
||||||
zTrg3f3lrrmHcauEgKnuQwIqaMZR6veG6RkjtcYSlJYID1irkE6njs7+wivOAkzt
|
|
||||||
fBt/0PD76FmAI0VArgU/zDB8dGyYzrq39W749LuEfm1TPmlnUtDr
|
|
||||||
-----END CERTIFICATE-----
|
|
|
@ -1,28 +0,0 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC6neSYoBoWh/i2
|
|
||||||
mBpduJnTlXacpJ0iQqLezvcGy8qR0s/48mtfV2IRGTNVsq4LjLLRsPGt9KkJlUhH
|
|
||||||
GWhG00cBGEsIiJiBUr+WrEsO04ME/Sk76kX8wk/t9Oljl7jtUDnQUwshj+hRFe0i
|
|
||||||
KAyE65JIutu5EiiNtOqMzbVgPNfNniAaGlrgwByJaS9arzsHPVju9yZBYzYhwAMy
|
|
||||||
YFcXUGrgvHRCHKmxBi4QmV7DX4TeN4l9TrCyEmqDev4PRFipyR2Fh3WGSwWh45Hg
|
|
||||||
MT+Jp6Uv6yI4wMXWJAcNkHdx1OhjBoUQrkavvdeVEnCwjQ+pSMLm0T4iNxedQWBt
|
|
||||||
DM7ts4EjAgMBAAECggEANNXdUeUKXdSzcycPV/ea/c+0XFcy8e9B46lfQTpTqQOx
|
|
||||||
xD8GbWD1L/gdk6baJgT43+ukEWdSsJbmdtLXti29Ta8OF2VtIDhIbCVtvs3dq3zt
|
|
||||||
vrvugsiVDr8nkP306qOrKrNIVIFE+igmEmSaXsu/h/33ladxeeV9/s2DC7NOOjWN
|
|
||||||
Mu4KYr5BBbu3qAavdzbrcz7Sch+GzsYqK/pBounCTQu3o9E4TSUcmcsasWmtHN3u
|
|
||||||
e6G2UjObdzEW7J0wWvvtJ0wHQUVRueHfqwqKf0dymcZ3xOlx3ZPhKPz5n4F1UGUt
|
|
||||||
RQaNazqs5SzZpUgDuPw4k8h/aCHK21Yexw/l4+O9KQKBgQD1WZSRK54zFoExBQgt
|
|
||||||
OZSBNZW3Ibti5lSiF0M0g+66yNZSWfPuABEH0tu5CXopdPDXo4kW8NLGEqQStWTX
|
|
||||||
RGK0DE9buEL3eebOfjIdS2IZ3t3dX3lMypplVCj4HzAgITlweSH1LLTyAtaaOpwa
|
|
||||||
jksqfcn5Zw+XGkyc6GBBVaZetQKBgQDCt6Xf/g26+zjvHscjdzsfBhnYvTOrr6+F
|
|
||||||
xqFFxOEOocGr+mL7UTAs+a9m/6lOWhlagk+m+TIZNL8o3IN7KFTYxPYPxTiewgVE
|
|
||||||
rIm3JBmPxRiPn01P3HrtjaqfzsXF30j3ele7ix5OxieZq4vsW7ZXP3GZE34a08Ov
|
|
||||||
12sE1DlvdwKBgQDzpYQOLhyqazzcqzyVfMrnDYmiFVN7QXTmiudobWRUBUIhAcdl
|
|
||||||
oJdJB7K/rJOuO704x+RJ7dnCbZyWH6EGzZifaGIemXuXO21jvpqR0NyZCGOXhUp2
|
|
||||||
YfS1j8AntwEZxyS9du2sBjui4gKvomiHTquChOxgSmKHEcznPTTpbN8MyQKBgF5F
|
|
||||||
LVCZniolkLXsL7tS8VOez4qoZ0i6wP7CYLf3joJX+/z4N023S9yqcaorItvlMRsp
|
|
||||||
tciAIyoi6F2vDRTmPNXJ3dtav4PVKVnLMs1w89MwOCjoljSQ6Q7zpGTEZenbpWbz
|
|
||||||
W2BYBS9cLjXu4MpoyInLFINo9YeleLs8TvrCiKAXAoGBANsduqLnlUW/f5zDb5Fe
|
|
||||||
SB51+KhBjsVIeYmU+8xtur9Z7IxZXK28wpoEsm7LmX7Va5dERjI+tItBiJ5+Unu1
|
|
||||||
Xs2ljDg35ARKHs0dWBJGpbnZg4dbT6xpIL4YMPXm1Zu++PgRpxPIMn646xqd8GlH
|
|
||||||
bavm6Km/fXNG58xus+EeLpV5
|
|
||||||
-----END PRIVATE KEY-----
|
|
|
@ -1,28 +0,0 @@
|
||||||
-----BEGIN PRIVATE KEY-----
|
|
||||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC3Gvumr+WfNV5n
|
|
||||||
PjPnZhzcN5o+qM19FLJblw9SVPsAFcVvv62NrsrYLu4NhUr5D7bIkJDBgljjtook
|
|
||||||
H757Bqb23ZXxfLRnxL7QjYiYLC7J6KFoP9/q4llHOazJx0QIfbYEDq0I+VAueVuh
|
|
||||||
GJnMjqtwi9cBtQy8u8WbefJgiz2qJ0TFGd/IyMhKScxX7zctPlBbghweApirN3PZ
|
|
||||||
mY6eT5/jCYyaK1yK9N0hkIvxnRzGvsEmU6Hkln9Xm6NZRd41r621bREooGWD1P7C
|
|
||||||
PQm/CgkE9lOawwDLe0j22MuDcPAZgqx+VsV5Ta15tciCdwYVn90XGPffUYa2reTP
|
|
||||||
U/MBRh/bAgMBAAECggEABCvcMcbuDztzBB0Zp5re63Fk1SqZS9Et4wJE+hYvhaf5
|
|
||||||
UHtoY8LoohYnnC0+MQBXpKgOdCoZBk8BRKNofnr/UL5pjQ/POFH2GuAujXDsO/NN
|
|
||||||
wgc6fapcaE/7DLm6ZgsfG2aOMJclaXmgScI6trtFUpIM+t/6A06vyMP1bpeddwPW
|
|
||||||
Fqu7NvpDiEcTRUGd+z1JooYgUhGgC7peYUx5+9zqFrwoDBKxnUOnz3BkDsXBy3qm
|
|
||||||
65Vu0BSjuJzf6vVMpNGUHY6JXjopVNWku+JAX0wD+iikOd5sziNVdIj1fnZ+IHIf
|
|
||||||
7G5h5owHpvSGzJFQ18/g5VHtJdCm+4WQSnbSJRsCAQKBgQDu4IH8yspyeH44fhoS
|
|
||||||
PAp/OtILqSP+Da0zAp2LbhrOgyzyuSTdEAYyptqjqHS6QkB1Bu1H44FS0BYUxRXc
|
|
||||||
iu2e9AndiLVCGngsE7TpA/ZVLN1B0LEZEHjM6p4d6zZM6iveKVnPAOkTWTBAgzCt
|
|
||||||
b31nj4jL8PdlPKQil1AMrOlRAQKBgQDEOwshzIdr2Iy6B/n4CuBViEtwnbAd5f/c
|
|
||||||
atA9bcfF8kCahokJsI4eCCLgBwDZpYKD+v0AwOBlacF6t6TX+vdlJsi5EP7uxZ22
|
|
||||||
ILsuWqVm/0H77PACuckc5/qLZoGGC81l0DhnpoeMEb6r/TKOo5xAK1gxdlwNNrq+
|
|
||||||
nP1zdZnU2wKBgBAS92xFUR4m0YeHpMV5WNN658t1FEDyNqdqE6PgQtmGpi2nG73s
|
|
||||||
aB5cb/X3TfOCpce6MZlWy8sAyZuYL4Jprte1YDySCHBsS43bvZ64b4kHvdPB8UjY
|
|
||||||
fOh9GSq2Oy8tysnmSm7NhuGQbNjKeyoQiIXBeNkQW/VqATl6qR5RPFoBAoGACNqV
|
|
||||||
JQBCd/Y8W0Ry3eM3vgQ5SyqCQMcY5UwYez0Rz3efvJknY72InAhH8o2+VxOlsOjJ
|
|
||||||
M5iAR3MfHLdeg7Q6J2E5m0gOCJ34ALi3WV8TqXMI+iH1rlnNnjVFU7bbTz4HFXnw
|
|
||||||
oZSc9w/x53a0KkVtjmOmRg0OGDaI9ILG2MfMmhMCgYB8ZqJtX8qZ2TqKU3XdLZ4z
|
|
||||||
T2N7xMFuKohWP420r5jKm3Xw85IC+y1SUTB9XGcL79r2eJzmzmdKQ3A3sf3oyUH3
|
|
||||||
RdYWxtKcZ5PAE8hVRtn1ETZqUgxASGOUn/6w0npkYSOXPU5bc0W6RSLkjES0i+c3
|
|
||||||
fv3OMNI8qpmQhEjpHHQS1g==
|
|
||||||
-----END PRIVATE KEY-----
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
python3 /usr/local/bin/run_server.py 2>&1 | tee -a /artifacts/pykmip.log
|
|
|
@ -1,168 +0,0 @@
|
||||||
{
|
|
||||||
"example": {
|
|
||||||
"preset": {
|
|
||||||
"CERTIFICATE": {
|
|
||||||
"LOCATE": "ALLOW_ALL",
|
|
||||||
"CHECK": "ALLOW_ALL",
|
|
||||||
"GET": "ALLOW_ALL",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_ALL",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_ALL",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_ALL",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"SYMMETRIC_KEY": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"PUBLIC_KEY": {
|
|
||||||
"LOCATE": "ALLOW_ALL",
|
|
||||||
"CHECK": "ALLOW_ALL",
|
|
||||||
"GET": "ALLOW_ALL",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_ALL",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_ALL",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_ALL",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"PRIVATE_KEY": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"SPLIT_KEY": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"TEMPLATE": {
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"SECRET_DATA": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"OPAQUE_DATA": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
},
|
|
||||||
"PGP_KEY": {
|
|
||||||
"REKEY": "ALLOW_OWNER",
|
|
||||||
"REKEY_KEY_PAIR": "ALLOW_OWNER",
|
|
||||||
"DERIVE_KEY": "ALLOW_OWNER",
|
|
||||||
"LOCATE": "ALLOW_OWNER",
|
|
||||||
"CHECK": "ALLOW_OWNER",
|
|
||||||
"GET": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTES": "ALLOW_OWNER",
|
|
||||||
"GET_ATTRIBUTE_LIST": "ALLOW_OWNER",
|
|
||||||
"ADD_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"MODIFY_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"DELETE_ATTRIBUTE": "ALLOW_OWNER",
|
|
||||||
"OBTAIN_LEASE": "ALLOW_OWNER",
|
|
||||||
"GET_USAGE_ALLOCATION": "ALLOW_OWNER",
|
|
||||||
"ACTIVATE": "ALLOW_OWNER",
|
|
||||||
"REVOKE": "ALLOW_OWNER",
|
|
||||||
"DESTROY": "ALLOW_OWNER",
|
|
||||||
"ARCHIVE": "ALLOW_OWNER",
|
|
||||||
"RECOVER": "ALLOW_OWNER"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
[server]
|
|
||||||
hostname=0.0.0.0
|
|
||||||
port=5696
|
|
||||||
certificate_path=/ssl/kmip-cert.pem
|
|
||||||
key_path=/ssl/kmip-key.pem
|
|
||||||
ca_path=/ssl/kmip-ca.pem
|
|
||||||
auth_suite=TLS1.2
|
|
||||||
policy_path=/etc/pykmip/policies
|
|
||||||
enable_tls_client_auth=True
|
|
||||||
database_path=/pykmip/pykmip.db
|
|
||||||
tls_cipher_suites=
|
|
||||||
TLS_RSA_WITH_AES_128_CBC_SHA256
|
|
||||||
TLS_RSA_WITH_AES_256_CBC_SHA256
|
|
||||||
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
|
|
||||||
logging_level=DEBUG
|
|
Loading…
Reference in New Issue