Table of Contents

Configuration

This part is about the shared configuration, i.e. the configuration any command can use.

It is taken either from the environment variables (CEZANNE_ prefix), the command line (--xxx) or cezanne section of cezanne.json configuration file (it uses Microsoft configuration extension under the hood).

The two main configuration are related to:

  • Kubernetes client (sections cezanne>kubernetes in cezanne.json)
  • Maven repositories (sections cezanne>maven in cezanne.json)
  • NuGet repositories (sections cezanne>nuget in cezanne.json)
Tip

Because we use Microsoft configuration binder, the separator between section/properties in the environment names are not _ but __, ex: CEZANNE__KUBERNETES__KUBECONFIG. Similarly, the integration with the command line arguments does not use - as separator but :, ex: --cezanne:kubernetes:KubeConfig=...

Kubernetes

Base

Kubernetes HTTP API base url. It is auto-discovered from within a cluster.

Default value: https://localhost:443.

Environment variable name: CEZANNE__KUBERNETES__BASE.

Command line: --cezanne:kubernetes:Base=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Base": "<value>"
    }
  }
}
Certificates

Kubernetes HTTP client certificates.

Default value: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt.

Environment variable name: CEZANNE__KUBERNETES__CERTIFICATES.

Command line: --cezanne:kubernetes:Certificates=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Certificates": "<value>"
    }
  }
}
DryRun

Should API calls be skipped and mocked with a HTTP 200.

Default value: False.

Environment variable name: CEZANNE__KUBERNETES__DRYRUN.

Command line: --cezanne:kubernetes:DryRun=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "DryRun": "<value>"
    }
  }
}
ImplicitlyDroppedAttributes

JSON-Pointers of dropped JSON nodes from the descriptors (enables to inject documentation for example or schema for completion).

Default value: <>z__ReadOnlyArray1[System.String]`.

Environment variable name: CEZANNE__KUBERNETES__IMPLICITLYDROPPEDATTRIBUTES.

Command line: --cezanne:kubernetes:ImplicitlyDroppedAttributes=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "ImplicitlyDroppedAttributes": "<value>"
    }
  }
}
Kubeconfig

Location or inline kubeconfig (default context being the one used).

Environment variable name: CEZANNE__KUBERNETES__KUBECONFIG.

Command line: --cezanne:kubernetes:Kubeconfig=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Kubeconfig": "<value>"
    }
  }
}
PrivateKey

Kubernetes HTTP client private key (for mTLS when token is not set).

Environment variable name: CEZANNE__KUBERNETES__PRIVATEKEY.

Command line: --cezanne:kubernetes:PrivateKey=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "PrivateKey": "<value>"
    }
  }
}
PrivateKeyCertificate

Kubernetes HTTP client private key certificate (for mTLS).

Environment variable name: CEZANNE__KUBERNETES__PRIVATEKEYCERTIFICATE.

Command line: --cezanne:kubernetes:PrivateKeyCertificate=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "PrivateKeyCertificate": "<value>"
    }
  }
}
SkipTls

Should TLS check be ignored.

Default value: False.

Environment variable name: CEZANNE__KUBERNETES__SKIPTLS.

Command line: --cezanne:kubernetes:SkipTls=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "SkipTls": "<value>"
    }
  }
}
Timeout

Kubernetes HTTP client timeout in milliseconds.

Default value: 60000.

Environment variable name: CEZANNE__KUBERNETES__TIMEOUT.

Command line: --cezanne:kubernetes:Timeout=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Timeout": "<value>"
    }
  }
}
Token

Kubernetes HTTP client token file location.

Default value: /var/run/secrets/kubernetes.io/serviceaccount/token.

Environment variable name: CEZANNE__KUBERNETES__TOKEN.

Command line: --cezanne:kubernetes:Token=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Token": "<value>"
    }
  }
}
Verbose

Should API calls be logged.

Default value: False.

Environment variable name: CEZANNE__KUBERNETES__VERBOSE.

Command line: --cezanne:kubernetes:Verbose=<value>.

cezanne.json sample:

{
  "cezanne": {
    "kubernetes": {
      "Verbose": "<value>"
    }
  }
}

Maven

EnableDownload

Is remote downloading of transitive recipes enabled.

Default value: False.

Environment variable name: CEZANNE__MAVEN__ENABLEDOWNLOAD.

Command line: --cezanne:maven:EnableDownload=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "EnableDownload": "<value>"
    }
  }
}
ForceCustomSettingsXml

If true we only use cache value and never fallback on default maven settings.xml location.

Default value: False.

Environment variable name: CEZANNE__MAVEN__FORCECUSTOMSETTINGSXML.

Command line: --cezanne:maven:ForceCustomSettingsXml=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "ForceCustomSettingsXml": "<value>"
    }
  }
}
HttpHeaders

Properties to define the headers to set per repository, syntax is host1=headerName headerValue and it supports as much lines as used repositories. Note that you can use maven ~/.m2/settings.xml servers (potentially ciphered) username/password pairs. In this last case the server id must be bundlebee.<server host>. Still in settings.xml case, if the username is null the password value is used as raw Authorization header else username/password is encoded as a basic header.

Environment variable name: CEZANNE__MAVEN__HTTPHEADERS.

Command line: --cezanne:maven:HttpHeaders=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "HttpHeaders": "<value>"
    }
  }
}
LocalRepository

Where to cache maven dependencies. If set to auto, tries to read the system property maven.repo.local then the settings.xml localRepository and finally it would fallback on $HOME/.m2/repository.

Default value: auto.

Environment variable name: CEZANNE__MAVEN__LOCALREPOSITORY.

Command line: --cezanne:maven:LocalRepository=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "LocalRepository": "<value>"
    }
  }
}
PreferLocalSettingsXml

If false we first try to read settings.xml file(s) in cache location before the default one.

Default value: True.

Environment variable name: CEZANNE__MAVEN__PREFERLOCALSETTINGSXML.

Command line: --cezanne:maven:PreferLocalSettingsXml=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "PreferLocalSettingsXml": "<value>"
    }
  }
}
ReleaseRepository

Default remote release repository.

Default value: https://repo.maven.apache.org/maven2/.

Environment variable name: CEZANNE__MAVEN__RELEASEREPOSITORY.

Command line: --cezanne:maven:ReleaseRepository=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "ReleaseRepository": "<value>"
    }
  }
}
SnapshotRepository

Default remote snapshot repository (if set).

Default value: https://repo.maven.apache.org/maven2/.

Environment variable name: CEZANNE__MAVEN__SNAPSHOTREPOSITORY.

Command line: --cezanne:maven:SnapshotRepository=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "SnapshotRepository": "<value>"
    }
  }
}
Timeout

HTTP timeout.

Default value: 30000.

Environment variable name: CEZANNE__MAVEN__TIMEOUT.

Command line: --cezanne:maven:Timeout=<value>.

cezanne.json sample:

{
  "cezanne": {
    "maven": {
      "Timeout": "<value>"
    }
  }
}

Nuget

EnableDownload

Is remote downloading of transitive recipes enabled.

Default value: False.

Environment variable name: CEZANNE__NUGET__ENABLEDOWNLOAD.

Command line: --cezanne:nuget:EnableDownload=<value>.

cezanne.json sample:

{
  "cezanne": {
    "nuget": {
      "EnableDownload": "<value>"
    }
  }
}
HttpHeaders

Properties to define the headers to set per repository, syntax is host1=headerName headerValue and it supports as much lines as used repositories. Generally used to set API token if needed.

Environment variable name: CEZANNE__NUGET__HTTPHEADERS.

Command line: --cezanne:nuget:HttpHeaders=<value>.

cezanne.json sample:

{
  "cezanne": {
    "nuget": {
      "HttpHeaders": "<value>"
    }
  }
}
LocalRepository

Where to lookup NuGet packages locally before going remotely.

Default value: auto.

Environment variable name: CEZANNE__NUGET__LOCALREPOSITORY.

Command line: --cezanne:nuget:LocalRepository=<value>.

cezanne.json sample:

{
  "cezanne": {
    "nuget": {
      "LocalRepository": "<value>"
    }
  }
}
Repository

Default remote release repository, it is the seed index.json URL - flat container url being dediced from this one.

Default value: https://api.nuget.org/v3/index.json.

Environment variable name: CEZANNE__NUGET__REPOSITORY.

Command line: --cezanne:nuget:Repository=<value>.

cezanne.json sample:

{
  "cezanne": {
    "nuget": {
      "Repository": "<value>"
    }
  }
}
Timeout

HTTP timeout.

Default value: 30000.

Environment variable name: CEZANNE__NUGET__TIMEOUT.

Command line: --cezanne:nuget:Timeout=<value>.

cezanne.json sample:

{
  "cezanne": {
    "nuget": {
      "Timeout": "<value>"
    }
  }
}