BundleBee command executable from Maven environment.

Goals

  • add-alveolus: adds a service to the alveoli available in the defined folder. It is a skaffolding command.

  • apply: apply/deploy a set of descriptors from a root one.

  • build: build a project.

  • check-update: check if a new version is available. IMPORTANT: this command only works for amd64 linux machines.

  • cipher: enables to cipher a value using AES/CBC/PKCS5Padding algorithm with a master password. It can then be used as a placeholder with the syntax {{bundlebee-decipher:{{my.master.password}},$cipheredValue}}.

  • cipher-password: cipher a password to put it in ~/.m2/settings.xml servers (useful for deploy command for example).

  • completion: execute bash completion. Should be setup in your ~/.bashrc or ~/.profile file to be active. The result will be the list of proposal you can inject into COMPREPLY array. To set it up you can add this snippet to your .bashrc (assumes you uses the bundlebee linux binary and it is in your $PATH otherwise replace bundlebee by your own launching script): [source,bash] ---- complete -o default -o nospace -C "bundlebee completion" bundlebee ----

  • create-master-password: generate a master password if none exist (in ~/.m2/settings-security.xml)

  • decipher: enables to decipher a value using AES/CBC/PKCS5Padding algorithm with a master password.

  • delete: delete an alveolus deployment by deleting all related descriptors. bundlebee.delete.propagationPolicy can be set in descriptor(s) metadata to force default CLI behavior for this descriptor.

  • deploy: build and deploy a project. It inherits from most configuration of build command and adds remote repository settings.

  • diff: diff an alveolus against a running cluster. The logic behind is to visit the configured alveolus and for each of its descriptor, query the cluster state and do a JSON-Diff between both. To avoid false positives, you will likely want to tune the ignored pointers which enable to drop dynamic data (managed by Kubernetes server). The diff output has two types of diff:

    • JSON-Patch: a JSON-Patch which, once applied on the actual state will bring up the state to the expected one,

    • JSON: means the Kubernetes server misses an alveolus descriptor and the expected one is fully printed The diff line syntax is: diff --$alveolusName a/$expectedLocalDescriptor b/$remoteDescriptor.

  • http: execute a HTTP request over Kubernetes client. This is mainly for not yet existing commands and to reuse all the client auto-configuration.

  • inspect: inspect an alveolus, i.e. list the descriptors to apply.

  • lint: do common validations on descriptors. As of today mainly cpu/memory resources definition. include::content/_partials/generated/documentation/lint.checks.adoc[leveloffset=+1]

  • list-alveoli: lists all found alveoli

  • list-lint-rules: list available linting rules (ease exclusions for ex).

  • new: creates a new project.

  • placeholder-extract: extracts placeholders from an alveolus (often for documentation).

  • process: process all descriptors - as in an apply command - from a root descriptor. If output is set, it dumps the descriptors in this directory. Don’t forget to set --kubeconfig explicit to ignore kube setup.

  • rollback: rollback an alveolus deployment. The strategy is the following one:

    • Load current alveolus (recursively) to list all descriptors in "current" version

    • Find previous version if not explicit (by choosing the first previous on in the list of available version on maven repository)

    • Run delete command for current version

    • Run apply command for previous version IMPORTANT: this command only uses releases when it guesses the versions, it does not handles SNAPSHOTs. If you want to rollback to a snapshot, ensure to configure previous* properties. TIP: this is equivalent to apply and delete commands successfully. For now it is recommended to do both manually.

  • version: shows the application version.

  • versions: list versions for an artifact to know which ones are available.

  • yaml2json: convert yaml files of a directory to json. This command is useful to transform Kubernetes yaml files to json to write Bundlebee descriptors.