Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • JS7 JOC Cockpit can be configured to interface with Git repositories to store and to rollout its configuration objects such as workflows and jobs.
  • Configuration objects can be versioned (tagged) with Git and can be rolled out to different JS7 instances environments via Git. This allows to create and to test workflows in a development environment and to perform a rollout rollouts to a production environment by use of a Git repository.
  • A connection to a Git repository is considered an additional option to manage versions and rollouts of JS7 configuration objects.
  • Display feature availability
    StartingFromRelease2.2.0

...

JS7 configuration objects that should can be rolled out across environments include

...

The following configuration objects typically hold values that can be are specific for an individual rollout environment and therefore optionally usually are added to a separate branch. Such objects should not be rolled out across environments.

...

  • The JS7 - REST Web Service API executes a set of Git operations by use of the JGit implementation GitLab REST API.
  • Any operations to add configuration objects to a repository, to commit, push, pull and merge objects are available from the JS7 REST Web Service API.
  • The JOC Cockpit offers the user interface for respective Git operations.
  • Users are free to use additional tools such as Git Extensions to manage repositories and branches.

...

JS7 configuration objects are transparently managed in a Git repository via the JS7 REST Web Service API. In addition, tools such as Git Extensions and Git command line clients can be used for repository operations.

To this purpose JOC Cockpit holds a local repository per user in the JETTY_BASE/resources/joc/repo folder. For each user with Git access a sub-directory is created from the name of the user account that holds the local repository.

...

Rollout between different JS7 instances can be is performed by use of the Git functionality.

...

  • JS7 JOC Cockpit instance => Git repository
    • git-add
      • adds (new) configuration objects from the JOC Cockpit database to the local user repository
    • git-delete
      • removes an already added configuration object from the local user repository
    • git-commit
      • commits newly added, changed or removed configuration objects to a local user repository
    • git-push
      • pushes changes from the local user repository to the Git repository
  • Git repository => JS7 JOC Cockpit instance
    • git-checkout
      • checks out a specific branch or tag from the Git repository to the local user repository
    • git-clone
      • initially clones a Git repository to a local user repository
    • git-pull
      • pulls recent changes from the Git repository to the local user repository

...

...

titleNote

...

If merging of configuration objects between different Git repositories or between different branches of a single Git repository is required then additional tools such as Git Extensions can be used.

Use Cases

Single Client - Single Repository

...

  • Architecture
    • A single JOC Cockpit instance is used with a single Controller or optionally with separate Controllers and Agents for rollout environments such as dev, test, prod.
    • The Git repository is used per folder to hold a copy of JS7 configuration objects and to create branches of JS7 configuration objects such as dev,, test, prod in a single repository.
  • Users
    • All users act in the same JOC Cockpit instance that is a single client to the Git server.
    • Changes to the Git repository are performed by the users' individual accounts and are added to branches in a single directoryrepository.
  • Rollout
    • Deployments are performed from a single source (JOC Cockpit) to a number of Controllers and Agents (dev, test, prod).
    • The Git repository can be used to fallback (pull) to previous versions of configuration objects, however, only one version is available with JOC Cockpit at a given point in time.

Branches marked as "env" are specific for an environment and are excluded from rollout. Branches marked as "rollout" are environment-independent and are forwarded across scheduling environments.

...

Branches marked as "env" are specific for an environment and are excluded from rollout. Branches marked as "rollout" are environment-independent and are forwarded across scheduling environments.

...

Branches marked as "env" are specific for an environment and are excluded from rollout. Branches marked as "rollout" are environment-independent and are forwarded across scheduling environments.

...