General

General questions on configuration

What is the directory layout?

To understand the directory layout see this document and the file reference

How do I add an Environment

With v3 everything is done via GitOps - so if in doubt the answer is to modify git.

You can create new environments by adding to the environments: section of jx-requirements.yml

How do I change promotion for my app?

Usually when you import a repository or create a quickstart they inherit the default environments for promotion. It is common to share the same environments across all of your microservices.

If you want to change that on a per repository/microservice basis you can configure custom environments for a repository

How do I specify DOCKER_REGISTRY_ORG?

If you need to you can override in a specific repository (via a .jx/settings.yaml in your repository) but usually its common to all repos and is inherited from your jx-requirements.yml in your development environment repository

See the file reference

How do I configure Kaniko flags?

If you want to globally define a kaniko flag for all pipelines you can add the flags to your jx-requirements.yml file:

e.g. add something like this:

apiVersion: core.jenkins-x.io/v4beta1
kind: Requirements
spec:
  autoUpdate:
    autoMerge: true
    enabled: true
    schedule: 0 0 * * *
  cluster:
    kanikoFlags: "--snapshotMode=redo"     

If I add a file to config-root it gets deleted, why?

The config-root directory is regenerated on every boot job - basically every time you promote an application or merge a change into the main branch of your git dev cluster git repository. For background see the dev git repository layout docs)

To add a new chart add to the helmfiles/mynamespace/helmfile.yaml file follow the add chart guide.

To add a new kubernetes resource follow the add resources guide.

How do I add a user to my Jenkins X installation?

There are a number of different levels of access you may wish to grant:

git

When developers are developing software that has its CI/CD automated by Jenkins X then usually letting the developer access git is enough.

dashboard

Though being able to see the logs of pipelines is useful so you probably want to either share the basic auth user/password for the Dashboard or to configure full Auth0/OAuth single sign on access to the Dashboard. Then developers will be able to browse the Dashboard or click on Pull Request and Release links on your git website.

kubernetes

If you want to give full access to Jenkins X so that developers can access kubernetes resources via kubectl, can use the jx cli or can use the Octant console then you need to grant Cloud IAM roles to the developer using your cloud infrastructure.

If the developer does not have access to the kubernetes cluster we need to setup their ~/.kube/config file so that they can access it.

If you are using Google’s GKE then you can browse the GKE Console to view all the clusters and click on the Connect button next to your development cluster and then that lets you copy/paste the command to connect to the cluster.

For other types of clusters please review the Kubernetes documentation for how to grant access to your cluster via your cloud providers CLI / web console.

testing kubernetes access

Once your user has access to the kubernetes cluster:

If Jenkins X was installed in the namespace jx then the following should switch your context to the jx namespace:

jx ns jx

To view the environments try:

kubectl get environments

To view the SourceRepositories:

kubectl get sr

To use the jx cli try:

jx pipeline grid

(and hit Ctrl-c or q to quit)