diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 4428fd41b..000000000 --- a/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# syntax=docker/dockerfile:1.3.1 -FROM ubuntu:20.04 as build-env -ARG GIT_COMMIT -ARG VERSION -ARG GO_VERSION -ARG ARCH -WORKDIR /usr/src/jimm -SHELL ["/bin/bash", "-c"] -COPY . . -RUN apt update && apt install wget gcc -y -RUN wget -L "https://golang.org/dl/go${GO_VERSION}.linux-${ARCH}.tar.gz" -RUN tar -C /usr/local -xzf "go${GO_VERSION}.linux-${ARCH}.tar.gz" -ENV PATH="${PATH}:/usr/local/go/bin" -RUN echo "${GIT_COMMIT}" | tee ./version/commit.txt -RUN echo "${VERSION}" | tee ./version/version.txt -RUN go build -tags version -o jimmsrv -v ./cmd/jimmsrv - -# Define a smaller single process image for deployment -FROM ${DOCKER_REGISTRY}ubuntu:20.04 AS deploy-env -LABEL org.opencontainers.image.source=https://github.com/canonical/jimm -LABEL org.opencontainers.image.description="JIMM server container image" -RUN apt-get -qq update && apt-get -qq install -y ca-certificates postgresql-client -COPY --from=build-env /usr/src/jimm/openfga/authorisation_model.json /root/openfga/ -COPY --from=build-env /usr/src/jimm/jimmsrv /usr/local/bin/ -COPY --from=build-env /usr/src/jimm/internal/dbmodel/sql /usr/local/bin/sql/ -ENTRYPOINT [ "/usr/local/bin/jimmsrv" ] diff --git a/asyncapi.yaml b/asyncapi.yaml deleted file mode 100644 index 1dad3ecc9..000000000 --- a/asyncapi.yaml +++ /dev/null @@ -1,697 +0,0 @@ -asyncapi: 2.6.0 -info: - title: Juju Intelligent Model Manager - version: '1.1.5' -servers: - private: - url: jimm.staging.jujucharms.com # Not actually correct... - protocol: wss - description: | - JIMM requires authentication and authorisation. - Once the socket is open you can subscribe to private-data channels by - sending an authenticated subscribe request message. - - This spec is written slightly differently than what was intended by the authors of - AsyncAPI, where we have channel identifiers under each "channels" block, instead - of an endpoint (like wss://.../my/endpoint) we have facade/method, as our calls, - despite being async, operate on a specific request/response mechanism. As such, - you can think of each channel as the facade endpoint. - - - To login, a message of the following must be sent: - ``` - { - "request-id": , - "type": "Admin", - "version": 3, - "request": "Login", - "params": { - "auth-tag": "", - "credentials": "", - "macaroons": [] - } - } - ``` - - Once logged in, the following facades (aka channels) will be available. -channels: - api/uuid: - publish: - summary: The primary channel to publish to the JIMM controller - operationId: publishToJIMM - tags: - - name: controllers - message: - oneOf: - - $ref: '#/components/messages/AddController' - - $ref: '#/components/messages/RemoveController' - - $ref: '#/components/messages/ListControllers' - - $ref: '#/components/messages/SetControllerDeprecated' - - $ref: '#/components/messages/AddCloudToController' - - $ref: '#/components/messages/RemoveCloudFromController' - - $ref: '#/components/messages/DisableControllerUUIDMasking' - - $ref: '#/components/messages/GrantAuditLogAccess' - - $ref: '#/components/messages/RevokeAuditLogAccess' - - $ref: '#/components/messages/FindAuditEvents' - - $ref: '#/components/messages/FullModelStatus' - - $ref: '#/components/messages/ImportModel' - - $ref: '#/components/messages/UpdateMigratedModel' - - $ref: '#/components/messages/AddGroup' - - $ref: '#/components/messages/RenameGroup' - - $ref: '#/components/messages/RemoveGroup' - - $ref: '#/components/messages/ListGroups' - - $ref: '#/components/messages/AddRelation' - - $ref: '#/components/messages/RemoveRelation' - - $ref: '#/components/messages/CheckRelation' - - $ref: '#/components/messages/ListRelationshipTuples' - - $ref: '#/components/messages/CrossModelQuery' - subscribe: - summary: Remove a controller from JIMM. - operationId: subscribeToJIMM - tags: - - name: controllers - message: - oneOf: - - $ref: '#/components/messages/AddControllerResponse' - - $ref: '#/components/messages/RemoveControllerResponse' - - $ref: '#/components/messages/ListControllersResponse' - - $ref: '#/components/messages/SetControllerDeprecatedResponse' - - $ref: '#/components/messages/AddCloudToControllerResponse' - - $ref: '#/components/messages/RemoveCloudFromControllerResponse' - - $ref: '#/components/messages/DisableControllerUUIDMaskingResponse' - - $ref: '#/components/messages/GrantAuditLogAccessResponse' - - $ref: '#/components/messages/RevokeAuditLogAccessResponse' - # - $ref: '#/components/messages/FindAuditEventsResponse' - - $ref: '#/components/messages/FullModelStatusResponse' - - $ref: '#/components/messages/ImportModelResponse' - - $ref: '#/components/messages/UpdateMigratedModelResponse' - - $ref: '#/components/messages/AddGroupResponse' - - $ref: '#/components/messages/RenameGroupResponse' - # - $ref: '#/components/messages/RemoveGroup' - - $ref: '#/components/messages/ListGroupsResponse' - - $ref: '#/components/messages/AddRelationResponse' - - $ref: '#/components/messages/RemoveRelationResponse' - - $ref: '#/components/messages/CheckRelationResponse' - - $ref: '#/components/messages/ListRelationshipTuplesResponse' - - $ref: '#/components/messages/CrossModelQueryResponse' - -components: - messages: - AddController: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/AddControllerRequestParams' - RemoveController: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RemoveControllerRequestParams' - ListControllers: - summary: TODO - description: TODO - SetControllerDeprecated: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/SetControllerDeprecatedRequestParams' - AddCloudToController: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/AddCloudToControllerRequestParams' - RemoveCloudFromController: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RemoveCloudFromControllerRequestParams' - DisableControllerUUIDMasking: - summary: TODO - description: TODO - GrantAuditLogAccess: - summary: TODO - description: TODO - RevokeAuditLogAccess: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RevokeAuditLogAccessRequestParams' - FindAuditEvents: - summary: TODO - description: TODO - FullModelStatus: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/FullModelStatusRequestParams' - ImportModel: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/ImportModelRequestParams' - UpdateMigratedModel: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/UpdateMigratedModelRequestParams' - AddGroup: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/AddGroupRequestParams' - RenameGroup: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RenameGroupRequestParams' - RemoveGroup: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RemoveGroupRequestParams' - ListGroups: - summary: TODO - description: TODO - AddRelation: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/AddRelationRequestParams' - RemoveRelation: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/RemoveRelationRequestParams' - CheckRelation: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/CheckRelationRequestParams' - ListRelationshipTuples: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/ListRelationshipTuplesRequestParams' - CrossModelQuery: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/CrossModelQueryRequestParams' - AddControllerResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/ControllerInfo' - - $ref: '#/components/schemas/JIMMError' - RemoveControllerResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/ControllerInfo' - - $ref: '#/components/schemas/JIMMError' - ListControllersResponse: - summary: TODO - description: TODO - payload: - oneOf: - - type: array - items: - $ref: '#/components/schemas/ControllerInfo' - - $ref: '#/components/schemas/JIMMError' - SetControllerDeprecatedResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/ControllerInfo' - - $ref: '#/components/schemas/JIMMError' - AddCloudToControllerResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - RemoveCloudFromControllerResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - DisableControllerUUIDMaskingResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - GrantAuditLogAccessResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - RevokeAuditLogAccessResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - # FindAuditEventsResponse: needs updating to be new way, @kian please do this. - FullModelStatusResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/JujuFullStatus' - - $ref: '#/components/schemas/JIMMError' - ImportModelResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - UpdateMigratedModelResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - AddGroupResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - RenameGroupResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - ListGroupsResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/JIMMError' - AddRelationResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - RemoveRelationResponse: - summary: TODO - description: TODO - payload: - $ref: '#/components/schemas/JIMMError' - CheckRelationResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/JIMMError' - ListRelationshipTuplesResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/JIMMError' - - type: object - properties: - tuples: - type: array - items: - $ref: '#/components/schemas/RelationshipTuple' - continuation: - type: string - description: A token to continue pagination. - CrossModelQueryResponse: - summary: TODO - description: TODO - payload: - oneOf: - - $ref: '#/components/schemas/JIMMError' - - type: object - properties: - results: - type: object - description: The query results in a map of [model uuid]:json status. - errors: - type: object - description: The query errors in a map of [model uuid]:errors. - schemas: - # Request - AddControllerRequestParams: - type: object - properties: - name: - type: string - description: The controller name. - public-address: - type: string - description: The public address of this controller. - api-addresses: - type: [string] - description: The currently known API addresses for this controller. - ca-certificate: - type: string - description: > - The CA certificate to use to validate the - connection to the controller. This is not needed if certificate is - signed by a public CA. - username: - type: string - description: The username that JIMM should use to connect to the controller. - password: - type: string - description: The password that JIMM should use to connect to the controller. - RemoveControllerRequestParams: - type: object - properties: - name: - type: string - description: The name of the controller to remove. - force: - type: boolean - description: Whether to forcefully remove the controller. - SetControllerDeprecatedRequestParams: - type: object - properties: - name: - type: string - description: The name of the controller to set deprecated. - deprecated: - type: boolean - descrption: Whether to set the controller deprecated. - AddCloudToControllerRequestParams: - type: object - properties: - controller-name: - type: string - description: The controller name to add the cloud to. - name: - type: string - description: The cloud name. - force: - type: boolean - description: TODO - cloud: - type: object - properties: - type: - type: string - description: The cloud type. - host-cloud-region: - type: string - description: The region of this cloud. - auth-types: - type: [string] - description: The authz/authn types of this cloud. - endpoint: - type: string - description: The endpoint for this cloud. - identity-endpoint: - type: string - description: The identity endpoint for this cloud. - storage-endpoint: - description: The storage endpoint for this cloud. - regions: - type: object - properties: - name: - type: string - description: The region name. - endpoint: - type: string - description: The endpoint for this region. - identity-endpoint: - type: string - description: The identity endpoint for this region. - storage-endpoint: - description: The storage endpoint for this region. - ca-certificates: - type: [string] - description: An array of certificates for this cloud. - skip-tls-verify: - type: boolean - description: Whether to skip TLS verification when connecting to this cloud. - config: - type: object - description: The config to pass on this cloud request. - region-config: - type: object - description: The config to pass on this region request. - is-controller-cloud: - type: boolean - description: Whether this is a cloud containing a controller. - RemoveCloudFromControllerRequestParams: - type: object - properties: - cloud-tag: - type: string - description: The tag of the cloud this controller is running in. - controller-name: - type: string - description: The name of the controller from which the cloud should be removed. - GrantAditLogAccessRequestParams: - type: object - properties: - user-tag: - type: string - description: User tag is the user who's audit-log access is being modified. - level: - type: string - description: The access level being granted, the only level is "read". - RevokeAuditLogAccessRequestParams: - type: object - properties: - user-tag: - type: string - description: User tag is the user who's audit-log access is being modified. - level: - type: string - description: The access level being granted, the only level is "read". - FindAuditEventsRequestParams: - type: object - properties: - after: - type: string - format: date-time - description: Get events after this time. - before: - type: string - format: date-time - description: Get events before this time. - user-tag: - type: string - description: Filter by specific user name. - model: - type: string - description: Filter by specific model name. - method: - type: string - description: Filter by specific facade method name. - offset: - type: integer - description: The offset to begin at when returning results. - limit: - type: integer - description: The maximum audit events to return. - FullModelStatusRequestParams: - type: object - properties: - ModelTag: - type: string - description: The model tag to get the status from. - Patterns: - type: string - description: TODO (also these fields have no go json tags) - ImportModelRequestParams: - type: object - properties: - controller: - type: string - description: The controller name where the model resides. - model-tag: - type: string - description: The model tag of the model to import. - UpdateMigratedModelRequestParams: - type: object - properties: - model-tag: - type: string - description: The model tag of the model that has been migrated. - target-controller: - type: string - description: The name of the controller the model has been migrated to. - AddGroupRequestParams: - type: object - properties: - name: - type: string - description: The name of the group to add. - RenameGroupRequestParams: - type: object - properties: - name: - type: string - description: The name of the group to rename. - new-name: - type: string - description: The new name for this group. - RemoveGroupRequestParams: - type: object - properties: - name: - type: string - description: The name of the group to remove. - AddRelationRequestParams: - type: array - items: - $ref: '#/components/schemas/RelationshipTuple' - RemoveRelationRequestParams: - type: array - items: - $ref: '#/components/schemas/RelationshipTuple' - CheckRelationRequestParams: - description: > - Contains the object, target object and relation - to be checked for reachability in OpenFGA. - $ref: '#/components/schemas/RelationshipTuple' - ListRelationshipTuplesRequestParams: - type: object - properties: - tuple: - $ref: '#/components/schemas/RelationshipTuple' - page_size: - type: integer - description: The page size when listing tuples. - continuation_token: - type: string - description: A token to continue reading from the previous paginated offset. - CrossModelQueryRequestParams: - type: object - properties: - type: - type: string - description: The type of query to perform. Currently only jq is supported. - query: - type: string - description: The query string. - # General schemas - ControllerInfo: - type: object - properties: - name: - type: string - description: The controller name. - uuid: - type: string - description: The controller UUID. - public-address: - type: string - description: The public address of the controller, normally a DNS name. - api-addresses: - type: array - items: - type: string - description: A currently know API address for the controller. - ca-certificate: - type: string - description: The certificate for this controller. - cloud-tag: - type: string - description: The tag of the cloud this controller is running in. - cloud-region: - type: string - description: The region that this controller is running in. - username: - type: string - description: The username that JIMM uses to connect to this controller. - agent-version: - type: string - description: The version of the juju agent running on the controller. - status: - $ref: '#/components/schemas/JujuEntityStatus' - JujuEntityStatus: - type: object - properties: - status: - type: string - description: Represents the status of an entity, but also applies to "workloads". - info: - type: string - description: Info on this status. - data: - type: object - since: - type: string - format: date-time - description: How long this entity has been running. - JujuFullStatus: - type: object - description: Holds a juju FullStatus, WIP - properties: - model: - type: object - properties: - name: - type: string - type: - type: string - cloud-tag: - type: string - region: - type: string - version: - type: string - available-version: - type: string - model-status: - $ref: '#/components/schemas/JujuDetailedStatus' - meter-status: - type: object - properties: - color: - type: string - message: - type: string - sla: - type: string - # machines: - # applications: - # remote-applications: - # offers: - # relations: - # controller-timestamp: - # branches: - JujuDetailedStatus: - type: object - properties: - status: - type: string - info: - type: string - data: - type: object - since: - type: string - format: date-time - kind: - type: string - version: - life: string - err: - type: string - RelationshipTuple: - type: object - properties: - tuple: - type: object - description: The relationship tuples to target. - properties: - object: - type: string - description: The base object to relate from. - relation: - type: string - description: The type of relation to use. - target_object: - type: string - description: The target object to relate to. - JIMMError: - type: object - description: An error returned by JIMM on a facade call. - \ No newline at end of file diff --git a/doc/howto-vault.txt b/doc/howto-vault.txt deleted file mode 100644 index b71f0a814..000000000 --- a/doc/howto-vault.txt +++ /dev/null @@ -1,87 +0,0 @@ - Vault Configuration For JIMM Development - -1. Introduction - - This document describes how to configure a development vault server - for use with JIMM when testing the vault integration is required. - -2. Configuring Vault - -2.1. Installing Vault - - The easiest way to install vault is to use the snap: - - $ snap install vault - -2.2. Starting Development Vault Server - - Vault is much simpler to run in development mode and this is - recommended when testing. To run the vault server: - - $ vault server -dev - - This will start a vault server listening on http://localhost:8200 - configure the VAULT_ADDR environment variable so that the vault - client can communicate with it: - - $ export VAULT_ADDR=http://localhost:8200 - -2.3. Add Approle Authentication - - The authentication method used by JIMM is based on approle - credentials. To use these the approle authentication method has to be - enabled: - - $ vault auth enable approle - -2.4. Create Policy For JIMM - - An access policy needs to be created for the JIMM user. To do this - create a jimm-dev.hcl file with the following contents: - - path "/jimm-dev-kv" { - capabilities = ["create", "read", "update", "delete", "list"] - } - - The policy is written to vault with the following command: - - $ vault policy write jimm-dev jimm-dev.hcl - -2.5. Create Approle Credentials for JIMM - - To create the approle credential for JIMM run the following command: - - $ vault write auth/approle/role/jimm-dev \ - token_ttl=10m \ - policies=jimm-dev - - Get the role_id for the role you created with the command: - - $ vault read auth/approle/role/jimm-dev/role-id - - Remember the role_id for later. - - Create a secret_id for JIMM by running the following command: - - $ vault write -f auth/approle/role/jimm-dev/secret-id - - Remember the secret_id for later. - -2.6. Create Key-Value Store for JIMM - - JIMM requires a location to store its secrets, create a new key-value - store using the following command: - - $ vault secrets enable -path /jimm-dev-kv kv - -3. Configuring JIMM - - To configure JIMM update the config.yaml file to have a vault stanza - like the following: - - vault: - address: http://localhost:8200 - approle-path: /auth/approle - approle-role-id: - approle-secret-id: - kv-path: /jimm-dev-kv/ diff --git a/doc/jimm-facade.md b/doc/jimm-facade.md deleted file mode 100644 index c0ffcb15f..000000000 --- a/doc/jimm-facade.md +++ /dev/null @@ -1,75 +0,0 @@ -JIMM Facade -=========== - ->This document is out of date and requires rework to include details ->on new JIMM specific facades. - -In addition to the facades required to emulate a juju controller, JIMM -also advertises a JIMM facade with some additional features. - -Version 1 ---------- - -Version 1 of the JIMM facade is not known to have been used by any -clients and consisted of a single procedure, UserModelStats. - -### UserModelStats - -The UserModelStats procedure returns model statistics for all models -accessible to the currently authenticated user. - -``` -UserModelStats() -> { - "Models": { - "fecd93ac-e082-40ce-a75b-ad5585103768": { - "name": "test01", - "uuid": "fecd93ac-e082-40ce-a75b-ad5585103768", - "type": "iaas", - "owner-tag": "user-owner@external", - "counts": { - "units": 10, - "applications": 6, - "machines": 5 - } - }, - ... - } -} -``` - -Version 2 ---------- - -Version 2 of the JIMM facade includes an unchanged UserModelStats -procedure, and introduces two new procedures: - - - DisableControllerUUIDMasking - - ListControllers - -### DisableControllerUUIDMasking - -The `DisableControllerUUIDMasking` procedure can only be used by -admin-level users. Once called any subsequent requests to a model -procedure that includes a controller UUID will use the UUID of the juju -controller hosting the model and not the the UUID of JAAS. This procedure -does not normally return any value. - -### ListControllers - -The `ListControllers` procedure can only be used by admin-level users. The -procedure returns the list of juju controllers that are hosting models -for the JAAS system. - -``` -ListControllers() -> { - "controllers": [ - { - "path": "controller-admin/aws-us-east-1-001", - "public": true, - "uuid": "e95e254b-2502-4907-83a5-2897503ce3cf", - "version": "2.6.10" - }, - ... - ] -} -``` diff --git a/compose-common.yaml b/docker-compose.common.yaml similarity index 100% rename from compose-common.yaml rename to docker-compose.common.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml index c2c352393..52e5d5c41 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -23,7 +23,7 @@ services: # An instance of JIMM used in integration tests, pulled from a tag. jimm-test: extends: - file: compose-common.yaml + file: docker-compose.common.yaml service: jimm-base image: ghcr.io/canonical/jimm:${JIMM_VERSION:-latest} profiles: ["test"] @@ -40,7 +40,7 @@ services: # An instance of JIMM used for dev, built from source with hot-reloading. jimm-dev: extends: - file: compose-common.yaml + file: docker-compose.common.yaml service: jimm-base image: cosmtrek/air:latest profiles: ["dev"] diff --git a/local/README.md b/local/README.md index c657350a7..ef8c22909 100644 --- a/local/README.md +++ b/local/README.md @@ -5,6 +5,7 @@ with the local Q/A environment. This environment is additionally used for integration testing within the JIMM test suite. # Starting the environment + 1. Ensure you have `make` installed `sudo apt install make` 2. Check for system dependencies with `make sys-deps` this will inform you of any missing dependencies and how to install them. 3. Set up necessary prerequisites with `make dev-env-setup` @@ -20,7 +21,7 @@ The service is started using Docker Compose, the following services should be st Some notes on the setup: - Local images are created in the repo's `/local/` folder where any init scripts are defined for each service using the service's upstream docker image. -- The docker compose has a base at `compose-common.yaml` for common elements to reduce duplication. +- The docker compose has a base at `docker-compose.common.yaml` for common elements to reduce duplication. - The compose has 2 additional profiles (dev and test). - Starting the compose with no profile will spin up the necessary components for testing. - The dev profile will start JIMM in a container using [air](https://github.com/air-verse/air), a tool for auto-reloading Go code when the source changes. @@ -41,6 +42,7 @@ Some notes on the setup: 3. Install JQ: `sudo snap install jq`. ## All-In-One commands + We have two all-in-one commands, namely: - LXD: run `make qa-lxd` - K8s: run `make qa-microk8s` @@ -51,6 +53,7 @@ and handle connectivity. Finally, adding a test model to Q/A against. Please ensure you've run "make dev-env-setup" first though. ## Manual + ### Controller set up Note that you can export an environment variable `CONTROLLER_NAME` and re-run steps 3. and 4. below to create multiple Juju @@ -64,6 +67,7 @@ controllers that will be controlled by JIMM. 5. `juju add-model test` - Adds a model to qa-lxd via JIMM. # Helpful tidbits! + > Note: For any secure step to work, ensure you've run the local traefik certs script! - To access vault UI, the URL is: `http://localhost:8200/ui` and the root key is `token`. diff --git a/scripts/set-version.sh b/scripts/set-version.sh deleted file mode 100755 index 4284812ea..000000000 --- a/scripts/set-version.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# -# set-version.sh -# Set the version built into the application. - -set -e - -if [ -z "${GIT_COMMIT}" ]; then - exit 0 -fi - -if [ -z "${VERSION}" ]; then - exit 0 -fi - -gofmt -r "unknownVersion -> Version{GitCommit: \"${GIT_COMMIT}\", Version: \"${VERSION}\",}" version/init.go.tmpl > version/init.go