Skip to main content

ogc, a runner of things

Project description

Build Status

OGC, a runner of things

ogc - task runner with a focus on deployment/testing/reporting.

Description

OGC is powered by plugins that can be discovered on https://pypi.org with the prefix of ogc-plugins. With plugins installed different aspects of a run can be defined through a spec file, which is a yaml file setting up plugin configuration for the particular goal.

Usage

> pip install ogc
> ogc --spec jobs/validate/spec.yml --tag core

# Or with a ogc.yml file in same directory running ogc from
> ogc

Add plugins

To make OGC a bit more useful, install a few plugins:

> pip install ogc-plugins-juju

This will allow you to add functionality such as running scripts and preparing environment variables. Please see the plugins section of the docs for more information.

meta:
  name: Validate Charmed Kubernetes
  description: |
    Runs validation test suite against a vanilla deployment of Charmed Kubernetes
  mkdocs:
    destination: validations/ck/index.md

plan:
  - &BASE_JOB
    env:
      - SNAP_VERSION=1.16/edge
      - JUJU_DEPLOY_BUNDLE=cs:~containers/charmed-kubernetes
      - JUJU_DEPLOY_CHANNEL=edge
      - JUJU_CLOUD=aws/us-east-2
      - JUJU_CONTROLLER=validate-ck
      - JUJU_MODEL=validate-model
    install:
      - pip install -rrequirements.txt
      - pip install -rrequirements_test.txt
      - pip install git+https://github.com/juju/juju-crashdump.git
      - sudo apt install -qyf build-essential
      - sudo snap install charm --edge --classic
      - sudo snap install juju --classic
    before-script:
      - juju:
          cloud: $JUJU_CLOUD
          controller: $JUJU_CONTROLLER
          model: $JUJU_MODEL
          bootstrap:
            debug: no
            model-default:
              - test-mode=true
          deploy:
            reuse: no
            bundle: $JUJU_DEPLOY_BUNDLE
            overlay: |
              applications:
                kubernetes-master:
                  options:
                    channel: $SNAP_VERSION
                kubernetes-worker:
                  options:
                    channel: $SNAP_VERSION
            wait: yes
            channel: $JUJU_DEPLOY_CHANNEL
    script:
      - |
        #!/bin/bash
        set -eux
        pytest jobs/integration/validation.py \
             --cloud $JUJU_CLOUD \
             --controller $JUJU_CONTROLLER \
             --model $JUJU_MODEL
    after-script:
      - juju-crashdump -a debug-layer -a config -m $JUJU_CONTROLLER:$JUJU_MODEL
      - aws s3 sync *.log s3://jenkaas/$JUJU_DEPLOY_BUNDLE/$SNAP_VERSION
      - aws s3 sync juju-crashdump* s3://jenkaas/$JUJU_DEPLOY_BUNDLE/$SNAP_VERSION
      - juju destroy-controller -y --destroy-all-models --destroy-storage $JUJU_CONTROLLER
    tags: [core]
  - <<: *BASE_JOB
    env:
      - SNAP_VERSION=1.15/edge
      - JUJU_DEPLOY_BUNDLE=charmed-kubernetes
    tags: [core]
  - <<: *BASE_JOB
    env:
      - SNAP_VERSION=1.14/edge
      - JUJU_DEPLOY_BUNDLE=charmed-kubernetes
    tags: [core]
  - <<: *BASE_JOB
    env:
      - JUJU_DEPLOY_BUNDLE=charmed-kubernetes
      - SNAP_VERSION=1.13/edge
    tags: [core]
  - <<: *BASE_JOB
    env:
      - SNAP_VERSION=1.16/edge
      - JUJU_DEPLOY_BUNDLE=kubernetes-calico
    tags: [calico]
  - <<: *BASE_JOB
    env:
      - SNAP_VERSION=1.15/edge
      - JUJU_DEPLOY_BUNDLE=kubernetes-calico
    tags: [calico]
  - <<: *BASE_JOB
    env:
      - SNAP_VERSION=1.14/edge
      - JUJU_DEPLOY_BUNDLE=kubernetes-calico
    tags: [calico]
  - <<: *BASE_JOB
    env:
      - JUJU_DEPLOY_BUNDLE=kubernetes-calico
      - SNAP_VERSION=1.13/edge
    tags: [calico]

More information

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ogc, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size ogc-1.0.1-py3-none-any.whl (11.0 kB) File type Wheel Python version py3 Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page