Git Product home page Git Product logo

snap-keystone's Introduction

Keystone Snap

This repository contains the source code of the snap for the OpenStack Identity service, Keystone.

Installing this snap

The keystone snap can be installed directly from the snap store:

sudo snap install --edge --classic keystone

The keystone snap is working towards publication across tracks for OpenStack releases. The edge channel for each track will contain the tip of the OpenStack project's master or stable branch, with the beta, candidate, and stable channels being reserved for released versions. The same version will be published progressively to beta, then candidate, and then stable once CI validation completes for the channel. This should result in an experience such as:

sudo snap install --classic --channel=ocata/stable keystone
sudo snap install --classic --channel=pike/edge keystone

Configuring keystone

The keystone snap gets its default configuration from the following $SNAP and $SNAP_COMMON locations:

/snap/keystone/current/etc/
└── keystone
    ├── keystone.conf
    └── ...

/var/snap/keystone/common/etc/
├── keystone
│   └── conf.d
│       └── keystone-snap.conf
├── nginx
│   ├── snap
│   │   ├── nginx.conf
│   │   └── sites-enabled
│   │       └── keystone.conf
└── uwsgi
    └── snap
        └── keystone.ini

The keystone snap supports configuration updates via its $SNAP_COMMON writable area. The default keystone configuration can be overridden as follows:

/var/snap/keystone/common/etc/
├── keystone
│   ├── conf.d
│   │   ├── keystone-snap.conf
│   │   ├── database.conf
│   │   └── rabbitmq.conf
│   └── keystone.conf
├── nginx
│   ├── snap
│   │   ├── nginx.conf
│   │   └── sites-enabled
│   │       └── keystone.conf
│   ├── nginx.conf
│   ├── sites-enabled
│   │   └── keystone.conf
└── uwsgi
    ├── snap
    │   └── keystone.ini
    └── keystone.ini

The keystone configuration can be overridden or augmented by writing configuration snippets to files in the conf.d directory.

Alternatively, keystone configuration can be overridden by adding a full keystone.conf file to the keystone/ directory. If overriding in this way, you'll need to either point this config file at additional config files located in $SNAP, or add those to $SNAP_COMMON as well.

The keystone nginx configuration can be overridden by adding an nginx/nginx.conf and new site config files to the nginx/sites-enabled directory. In this case the nginx/nginx.conf file would include that sites-enabled directory. If nginx/nginx.conf exists, nginx/snap/nginx.conf will no longer be used.

The keystone uwsgi configuration can be overridden similarly by adding a uwsgi/keystone.ini file. If uwsgi/keystone.ini exists, uwsgi/snap/keystone.ini will no longer be used.

Logging keystone

The services for the keystone snap will log to its $SNAP_COMMON writable area: /var/snap/keystone/common/log.

Managing keystone

The keystone snap will drop privileges to run daemons and commands under a regular user named snap-keystone. Additionally, permissions and ownership of files and directories in /var/snap/keystone/common/ are modified to restrict access from other users.

The keystone snap has alias support that enables use of the well-known keystone-manage command. To enable the alias, run the following prior to using the command:

sudo snap alias keystone.manage keystone-manage

Restarting keystone services

To restart all keystone services:

sudo systemctl restart snap.keystone.*

or an individual service can be restarted by dropping the wildcard and specifying the full service name.

Building the keystone snap

Simply clone this repository and then install and run snapcraft:

git clone https://github.com/openstack/snap-keystone
sudo apt install snapcraft
cd snap-keystone
snapcraft

Support

Please report any bugs related to this snap at: Launchpad.

Alternatively you can find the OpenStack Snap team in #openstack-snaps on Freenode IRC.

snap-keystone's People

Contributors

javacruft avatar

Watchers

James Cloos avatar Corey Bryant avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.