diff --git a/workspaces/docs/terraform-scaleway/README.md b/workspaces/docs/terraform-scaleway/README.md new file mode 100644 index 0000000..52dc065 --- /dev/null +++ b/workspaces/docs/terraform-scaleway/README.md @@ -0,0 +1,33 @@ +# Create Server in Scaleway with Terraform + +## Prepare workspace + +Set your credentials as environment variable in your workspace. +Add the following lines to /home/abc/.zshrc: + +``` +export SCW_DEFAULT_PROJECT_ID= +export SCW_ACCESS_KEY= +export SCW_SECRET_KEY= +``` + +## Terraform + +- Initialize terraform project +``` +terraform init +``` +- Show Terraform plan +``` +terraform plan +``` +- Apply to create new ifrastructure +``` +terraform apply +``` +- Destroy infrastructure completely +``` +terraform destroy +``` + + diff --git a/workspaces/docs/terraform-scaleway/scaleway.tf b/workspaces/docs/terraform-scaleway/scaleway.tf new file mode 100644 index 0000000..5fa7474 --- /dev/null +++ b/workspaces/docs/terraform-scaleway/scaleway.tf @@ -0,0 +1,50 @@ +terraform { + required_providers { + scaleway = { + source = "scaleway/scaleway" + } + } + required_version = ">= 0.13" +} + +provider "scaleway" { + zone = "fr-par-1" +} + +resource "scaleway_instance_ip" "public_ip" {} + +resource "scaleway_instance_server" "web" { + type = "DEV1-S" + image = "ubuntu_focal" + ip_id = scaleway_instance_ip.public_ip.id + security_group_id = scaleway_instance_security_group.web.id + + root_volume { + delete_on_termination = false + } + additional_volume_ids = [ scaleway_instance_volume.data.id ] +} + +resource "scaleway_instance_security_group" "web" { + name = "http" + description = "allow HTTP and HTTPS traffic" + + inbound_rule { + action = "accept" + port = 80 + ip_range = "0.0.0.0/0" + protocol = "TCP" + } + + inbound_rule { + action = "accept" + port = 443 + ip_range = "0.0.0.0/0" + protocol = "TCP" + } +} + +resource "scaleway_instance_volume" "data" { + size_in_gb = 100 + type = "b_ssd" +} \ No newline at end of file diff --git a/workspaces/infra-workspace/1.15.0.package.json b/workspaces/infra-workspace/1.15.0.package.json new file mode 100644 index 0000000..b7931d7 --- /dev/null +++ b/workspaces/infra-workspace/1.15.0.package.json @@ -0,0 +1,117 @@ +{ + "private": true, + "theia": { + "frontend": { + "config": { + "applicationName": "Theia IDE", + "warnOnPotentiallyInsecureHostPattern": false, + "preferences": { + "files.enableTrash": false + } + } + } + }, + "dependencies": { + "@theia/editor-preview": "1.15.0", + "@theia/file-search": "1.15.0", + "@theia/getting-started": "1.15.0", + "@theia/git": "1.15.0", + "@theia/markers": "1.15.0", + "@theia/messages": "1.15.0", + "@theia/monaco": "1.15.0", + "@theia/navigator": "1.15.0", + "@theia/outline-view": "1.15.0", + "@theia/plugin-ext-vscode": "1.15.0", + "@theia/preferences": "1.15.0", + "@theia/preview": "1.15.0", + "@theia/search-in-workspace": "1.15.0", + "@theia/terminal": "1.15.0", + "@theia/vsx-registry": "1.15.0" + }, + "devDependencies": { + "@theia/cli": "1.15.0" + }, + "scripts": { + "preinstall": "node-gyp install" + }, + "theiaPluginsDir": "plugins", + "theiaPlugins": { + "vscode-builtin-bat": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/bat-1.39.1-prel.vsix", + "vscode-builtin-clojure": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/clojure-1.39.1-prel.vsix", + "vscode-builtin-coffeescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/coffeescript-1.39.1-prel.vsix", + "vscode-builtin-configuration-editing": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/configuration-editing-1.39.1-prel.vsix", + "vscode-builtin-cpp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/cpp-1.39.1-prel.vsix", + "vscode-builtin-csharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/csharp-1.39.1-prel.vsix", + "vscode-builtin-css": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/css-1.39.1-prel.vsix", + "vscode-builtin-debug-auto-launch": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/debug-auto-launch-1.39.1-prel.vsix", + "vscode-builtin-docker": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/docker-1.39.1-prel.vsix", + "vscode-builtin-emmet": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/emmet-1.39.1-prel.vsix", + "vscode-builtin-fsharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/fsharp-1.39.1-prel.vsix", + "vscode-builtin-go": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/go-1.39.1-prel.vsix", + "vscode-builtin-groovy": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/groovy-1.39.1-prel.vsix", + "vscode-builtin-grunt": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/grunt-1.39.1-prel.vsix", + "vscode-builtin-gulp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/gulp-1.39.1-prel.vsix", + "vscode-builtin-handlebars": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/handlebars-1.39.1-prel.vsix", + "vscode-builtin-hlsl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/hlsl-1.39.1-prel.vsix", + "vscode-builtin-html": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/html-1.39.1-prel.vsix", + "vscode-builtin-html-language-features": "https://open-vsx.org/api/vscode/html-language-features/1.49.0/file/vscode.html-language-features-1.49.0.vsix", + "vscode-builtin-ini": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ini-1.39.1-prel.vsix", + "vscode-builtin-jake": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/jake-1.39.1-prel.vsix", + "vscode-builtin-java": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/java-1.39.1-prel.vsix", + "vscode-builtin-javascript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/javascript-1.39.1-prel.vsix", + "vscode-builtin-json": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/json-1.39.1-prel.vsix", + "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", + "vscode-builtin-less": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/less-1.39.1-prel.vsix", + "vscode-builtin-log": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/log-1.39.1-prel.vsix", + "vscode-builtin-lua": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/lua-1.39.1-prel.vsix", + "vscode-builtin-make": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/make-1.39.1-prel.vsix", + "vscode-builtin-markdown": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/markdown-1.39.1-prel.vsix", + "vscode-builtin-merge-conflicts": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/merge-conflict-1.39.1-prel.vsix", + "vscode-builtin-npm": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/npm-1.39.1-prel.vsix", + "vscode-builtin-node-debug": "https://github.com/theia-ide/vscode-node-debug/releases/download/v1.35.3/node-debug-1.35.3.vsix", + "vscode-builtin-node-debug2": "https://github.com/theia-ide/vscode-node-debug2/releases/download/v1.33.0/node-debug2-1.33.0.vsix", + "vscode-builtin-objective-c": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/objective-c-1.39.1-prel.vsix", + "vscode-builtin-perl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/perl-1.39.1-prel.vsix", + "vscode-builtin-powershell": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/powershell-1.39.1-prel.vsix", + "vscode-builtin-pug": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/pug-1.39.1-prel.vsix", + "vscode-builtin-python": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/python-1.39.1-prel.vsix", + "vscode-builtin-r": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/r-1.39.1-prel.vsix", + "vscode-builtin-razor": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/razor-1.39.1-prel.vsix", + "vscode-builtin-ruby": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ruby-1.39.1-prel.vsix", + "vscode-builtin-rust": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/rust-1.39.1-prel.vsix", + "vscode-builtin-scss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/scss-1.39.1-prel.vsix", + "vscode-builtin-shaderlab": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shaderlab-1.39.1-prel.vsix", + "vscode-builtin-shellscript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shellscript-1.39.1-prel.vsix", + "vscode-builtin-sql": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/sql-1.39.1-prel.vsix", + "vscode-builtin-swift": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/swift-1.39.1-prel.vsix", + "vscode-builtin-theme-abyss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-abyss-1.39.1-prel.vsix", + "vscode-builtin-theme-defaults": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-defaults-1.39.1-prel.vsix", + "vscode-builtin-theme-kimbie-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-kimbie-dark-1.39.1-prel.vsix", + "vscode-builtin-theme-monokai": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-1.39.1-prel.vsix", + "vscode-builtin-theme-dimmed": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-dimmed-1.39.1-prel.vsix", + "vscode-builtin-theme-quietlight": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-quietlight-1.39.1-prel.vsix", + "vscode-builtin-theme-red": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-red-1.39.1-prel.vsix", + "vscode-builtin-theme-solarized-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-solarized-dark-1.39.1-prel.vsix", + "vscode-builtin-theme-tomorrow-night-blue": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-tomorrow-night-blue-1.39.1-prel.vsix", + "vscode-builtin-typescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-1.39.1-prel.vsix", + "vscode-builtin-typescript-language-features": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-language-features-1.39.1-prel.vsix", + "vscode-builtin-vb": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vb-1.39.1-prel.vsix", + "vscode-builtin-icon-theme-seti": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vscode-theme-seti-1.39.1-prel.vsix", + "vscode-builtin-xml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/xml-1.39.1-prel.vsix", + "vscode-builtin-yaml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/yaml-1.39.1-prel.vsix", + "vscode-editorconfig": "https://github.com/theia-ide/editorconfig-vscode/releases/download/v0.14.4/EditorConfig-0.14.4.vsix", + "vscode-python": "https://github.com/microsoft/vscode-python/releases/download/2020.1.58038/ms-python-release.vsix", + "nadim-vscode.infinity-dark-theme": "https://open-vsx.org/api/nadim-vscode/infinity-dark-theme/1.0.1/file/nadim-vscode.infinity-dark-theme-1.0.1.vsix", + "emroussel.atomize-atom-one-dark-theme": "https://open-vsx.org/api/emroussel/atomize-atom-one-dark-theme/1.5.5/file/emroussel.atomize-atom-one-dark-theme-1.5.5.vsix", + "mhutchie.git-graph": "https://open-vsx.org/api/mhutchie/git-graph/1.30.0/file/mhutchie.git-graph-1.30.0.vsix", + "teabyii.ayu": "https://open-vsx.org/api/teabyii/ayu/0.20.1/file/teabyii.ayu-0.20.1.vsix", + "yurihs.sublime-vscode-theme": "https://open-vsx.org/api/yurihs/sublime-vscode-theme/1.4.1/file/yurihs.sublime-vscode-theme-1.4.1.vsix", + "wesbos.theme-cobalt2": "https://open-vsx.org/api/wesbos/theme-cobalt2/2.1.6/file/wesbos.theme-cobalt2-2.1.6.vsix", + "robbowen.synthwave-vscode": "https://open-vsx.org/api/RobbOwen/synthwave-vscode/0.1.8/file/RobbOwen.synthwave-vscode-0.1.8.vsix", + + "vscoss.vscode-ansible": "https://open-vsx.org/api/vscoss/vscode-ansible/0.5.2/file/vscoss.vscode-ansible-0.5.2.vsix", + "dhoeric.ansible-vault": "https://open-vsx.org/api/dhoeric/ansible-vault/0.1.3/file/dhoeric.ansible-vault-0.1.3.vsix", + "hashicorp.terraform": "https://open-vsx.org/api/hashicorp/terraform/2.14.0/file/hashicorp.terraform-2.14.0.vsix", + "samuelcolvin.jinjahtml": "https://open-vsx.org/api/samuelcolvin/jinjahtml/0.16.0/file/samuelcolvin.jinjahtml-0.16.0.vsix" + } +} diff --git a/workspaces/infra-workspace/Dockerfile b/workspaces/infra-workspace/Dockerfile new file mode 100644 index 0000000..0f09dd5 --- /dev/null +++ b/workspaces/infra-workspace/Dockerfile @@ -0,0 +1,96 @@ +ARG docker_registry=docker.io/alnoda +ARG image_tag=18.04-0.7 + +## Images used: +ARG BUILD_IMAGE=node:12.18.3 +ARG DEPLOY_IMAGE=${docker_registry}/workspace-in-docker:${image_tag} + +################################################################################ BUILD THEIA (with specific plugins) + +ARG THEIA_VERSION=1.15.0 +#ARG THEIA_VERSION=latest +#ARG THEIA_VERSION=next +FROM ${BUILD_IMAGE} + +ARG THEIA_VERSION + +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install -y apt-utils \ + && apt-get install -y git \ + && apt-get install -y libsecret-1-dev \ + && mkdir /opt/theia + +WORKDIR /opt/theia +ADD ${THEIA_VERSION}.package.json ./package.json +ARG GITHUB_TOKEN +RUN yarn --pure-lockfile && \ + NODE_OPTIONS="--max_old_space_size=4096" yarn theia build && \ + yarn theia download:plugins && \ + yarn --production && \ + yarn autoclean --init && \ + echo *.ts >> .yarnclean && \ + echo *.ts.map >> .yarnclean && \ + echo *.spec.* >> .yarnclean && \ + yarn autoclean --force && \ + yarn cache clean + +################################################################################ WORKSPACE IMAGE + +FROM ${DEPLOY_IMAGE} +USER root + +COPY infra-requirements.txt /home/abc/installed-python-packages + +# Delete previous Theia & set up new +RUN rm -rf /opt/theia \ + && mkdir -p -m 777 /opt/theia \ + && cd /opt/theia && nodeenv --node=12.18.3 env && . env/bin/activate \ + && pip install -r /home/abc/installed-python-packages/infra-requirements.txt \ + && python3 -m pip install "ara[server]" + +COPY --from=0 /opt/theia /opt/theia +COPY settings.json /home/abc/.theia/settings.json + +# Ara +COPY ara-settings.yaml /home/abc/.ara/server/settings.yaml +ENV ANSIBLE_CALLBACK_PLUGINS="$(python3 -m ara.setup.callback_plugins)" ARA_API_CLIENT="http" ARA_API_SERVER="http://0.0.0.0:8029" ARA_TIME_ZONE="UTC" + +RUN echo "------------------------------------------------------ ara" \ + && echo "UTC" > /etc/timezone \ + && mkdir -p /home/abc/.ara/server \ + && ara-manage makemigrations \ + && ara-manage migrate \ + && echo "------------------------------------------------------ terraform" \ + && cd /tmp && wget https://releases.hashicorp.com/terraform/0.14.6/terraform_0.14.6_linux_amd64.zip \ + && unzip terraform_0.14.6_linux_amd64.zip -d /usr/local/bin \ + && echo "------------------------------------------------------ blast-radius" \ + && apt-get install -y graphviz \ + && echo "------------------------------------------------------ terraform-docs" \ + && cd /tmp && curl -Lo ./terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/v0.15.0/terraform-docs-v0.15.0-linux-amd64.tar.gz \ + && tar -xzf terraform-docs.tar.gz \ + && chmod +x terraform-docs \ + && mv /tmp/terraform-docs /usr/bin/terraform-docs \ + && rm /tmp/terraform-docs.tar.gz \ + && echo "------------------------------------------------------ tflint" \ + && curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash \ + && cd /tmp && curl -Lo /tmp/tfsec https://github.com/aquasecurity/tfsec/releases/download/v0.58.4/tfsec-linux-arm64 + && chmod +x /tmp/tfsec \ + && mv /tmp/tfsec /usr/bin/tfsec \ + && echo "------------------------------------------------------ terrascan" \ + && cd /tmp && curl -Lo ./terrascan.tar.gz https://github.com/accurics/terrascan/releases/download/v1.9.0/terrascan_1.9.0_Linux_x86_64.tar.gz \ + && tar -xf terrascan.tar.gz terrascan && rm terrascan.tar.gz \ + && install terrascan /usr/local/bin && rm terrascan \ + && echo "------------------------------------------------------ mkdocs" \ + + && echo "------------------------------------------------------ user" \ + && chown -R abc /home/abc/.ara/server \ + && chown -R abc /opt/theia \ + && mkdir -p /var/log/theia && chown -R abc /var/log/theia \ + && chown -R abc /var/log/ara/ \ + && chown -R abc /home/docs \ + && chown -R abc /home/abc/utils \ + && chown -R abc /home/abc/installed-python-packages \ + && find /home -type d | xargs -I{} chown -R abc {} \ + && find /home -type f | xargs -I{} chown abc {} + diff --git a/workspaces/infra-workspace/ara-settings.yaml b/workspaces/infra-workspace/ara-settings.yaml new file mode 100644 index 0000000..c91e200 --- /dev/null +++ b/workspaces/infra-workspace/ara-settings.yaml @@ -0,0 +1,58 @@ +--- +# This is a default settings template generated by ARA. +# To use a settings file such as this one, you need to export the +# ARA_SETTINGS environment variable like so: +# $ export ARA_SETTINGS="/home/abc/.ara/server/settings.yaml" + +default: + ALLOWED_HOSTS: + - ::1 + - 0.0.0.0 + - localhost + BASE_DIR: /home/abc/.ara/server + CORS_ORIGIN_ALLOW_ALL: true + CORS_ORIGIN_REGEX_WHITELIST: [] + CORS_ORIGIN_WHITELIST: + - http://127.0.0.1:8000 + - http://localhost:3000 + DATABASE_CONN_MAX_AGE: 0 + DATABASE_ENGINE: ara.server.db.backends.distributed_sqlite + DATABASE_HOST: null + DATABASE_NAME: /home/abc/.ara/server/ansible.sqlite + DATABASE_OPTIONS: {} + DATABASE_PASSWORD: null + DATABASE_PORT: null + DATABASE_USER: null + DEBUG: false + DISTRIBUTED_SQLITE: false + DISTRIBUTED_SQLITE_PREFIX: ara-report + DISTRIBUTED_SQLITE_ROOT: /var/www/logs + EXTERNAL_AUTH: false + LOGGING: + disable_existing_loggers: false + formatters: + normal: + format: '%(asctime)s %(levelname)s %(name)s: %(message)s' + handlers: + console: + class: logging.StreamHandler + formatter: normal + level: INFO + stream: ext://sys.stdout + loggers: + ara: + handlers: + - console + level: INFO + propagate: 0 + root: + handlers: + - console + level: INFO + version: 1 + LOG_LEVEL: INFO + PAGE_SIZE: 100 + READ_LOGIN_REQUIRED: false + SECRET_KEY: 8ylCP3gXqxp95RXE87i7c9ilzDWObgs8naPu9Vp6yT6jG8nwxy + TIME_ZONE: UTC + WRITE_LOGIN_REQUIRED: false diff --git a/workspaces/infra-workspace/infra-requirements.txt b/workspaces/infra-workspace/infra-requirements.txt new file mode 100644 index 0000000..267907e --- /dev/null +++ b/workspaces/infra-workspace/infra-requirements.txt @@ -0,0 +1,14 @@ +## Ansible tools +ansible==4.4.0 +# https://github.com/fboender/ansible-cmdb +ansible-cmdb==1.31 +# https://github.com/ansible-community/ara +ara==1.5.7 + +## Terraform tools +# https://github.com/28mm/blast-radius +blastradius==0.1.23 +# https://github.com/bridgecrewio/checkov +checkov==2.0.359 +# https://github.com/antonbabenko/pre-commit-terraform +pre-commit==2.14.0 diff --git a/workspaces/infra-workspace/settings.json b/workspaces/infra-workspace/settings.json new file mode 100644 index 0000000..1ff23e1 --- /dev/null +++ b/workspaces/infra-workspace/settings.json @@ -0,0 +1,5 @@ +{ + "terminal.integrated.shell.linux": "/bin/zsh", + "workbench.colorTheme": "SynthWave '84", + "git-graph.maxDepthOfRepoSearch": 3 +} \ No newline at end of file diff --git a/workspaces/infra-workspace/supervisord-infra.conf b/workspaces/infra-workspace/supervisord-infra.conf new file mode 100644 index 0000000..9f06c2f --- /dev/null +++ b/workspaces/infra-workspace/supervisord-infra.conf @@ -0,0 +1,10 @@ +[program:ara] +directory=/home +command=/bin/sh -c " ara-manage runserver 0.0.0.0:8029 " +stderr_logfile = /var/log/ara/stderr.log +stdout_logfile = /var/log/ara/arastdout.log +logfile_maxbytes = 1024 + +[program:blast-radius] +directory=/home/terraform +command=/bin/sh -c " blast-radius --serve --port 8030 /home/terraform " diff --git a/workspaces/workspace-in-docker/1.15.0.package.json b/workspaces/workspace-in-docker/1.15.0.package.json new file mode 100644 index 0000000..27fd742 --- /dev/null +++ b/workspaces/workspace-in-docker/1.15.0.package.json @@ -0,0 +1,119 @@ +{ + "private": true, + "theia": { + "frontend": { + "config": { + "applicationName": "Theia IDE", + "warnOnPotentiallyInsecureHostPattern": false, + "preferences": { + "files.enableTrash": false + } + } + } + }, + "dependencies": { + "@theia/editor-preview": "1.15.0", + "@theia/file-search": "1.15.0", + "@theia/getting-started": "1.15.0", + "@theia/git": "1.15.0", + "@theia/markers": "1.15.0", + "@theia/messages": "1.15.0", + "@theia/monaco": "1.15.0", + "@theia/navigator": "1.15.0", + "@theia/outline-view": "1.15.0", + "@theia/plugin-ext-vscode": "1.15.0", + "@theia/preferences": "1.15.0", + "@theia/preview": "1.15.0", + "@theia/search-in-workspace": "1.15.0", + "@theia/terminal": "1.15.0", + "@theia/vsx-registry": "1.15.0" + }, + "devDependencies": { + "@theia/cli": "1.15.0" + }, + "scripts": { + "preinstall": "node-gyp install" + }, + "theiaPluginsDir": "plugins", + "theiaPlugins": { + "vscode-builtin-bat": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/bat-1.39.1-prel.vsix", + "vscode-builtin-clojure": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/clojure-1.39.1-prel.vsix", + "vscode-builtin-coffeescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/coffeescript-1.39.1-prel.vsix", + "vscode-builtin-configuration-editing": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/configuration-editing-1.39.1-prel.vsix", + "vscode-builtin-cpp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/cpp-1.39.1-prel.vsix", + "vscode-builtin-csharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/csharp-1.39.1-prel.vsix", + "vscode-builtin-css": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/css-1.39.1-prel.vsix", + "vscode-builtin-debug-auto-launch": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/debug-auto-launch-1.39.1-prel.vsix", + "vscode-builtin-docker": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/docker-1.39.1-prel.vsix", + "vscode-builtin-emmet": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/emmet-1.39.1-prel.vsix", + "vscode-builtin-fsharp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/fsharp-1.39.1-prel.vsix", + "vscode-builtin-go": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/go-1.39.1-prel.vsix", + "vscode-builtin-groovy": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/groovy-1.39.1-prel.vsix", + "vscode-builtin-grunt": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/grunt-1.39.1-prel.vsix", + "vscode-builtin-gulp": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/gulp-1.39.1-prel.vsix", + "vscode-builtin-handlebars": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/handlebars-1.39.1-prel.vsix", + "vscode-builtin-hlsl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/hlsl-1.39.1-prel.vsix", + "vscode-builtin-html": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/html-1.39.1-prel.vsix", + "vscode-builtin-html-language-features": "https://open-vsx.org/api/vscode/html-language-features/1.49.0/file/vscode.html-language-features-1.49.0.vsix", + "vscode-builtin-ini": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ini-1.39.1-prel.vsix", + "vscode-builtin-jake": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/jake-1.39.1-prel.vsix", + "vscode-builtin-java": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/java-1.39.1-prel.vsix", + "vscode-builtin-javascript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/javascript-1.39.1-prel.vsix", + "vscode-builtin-json": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/json-1.39.1-prel.vsix", + "vscode-builtin-json-language-features": "https://open-vsx.org/api/vscode/json-language-features/1.46.1/file/vscode.json-language-features-1.46.1.vsix", + "vscode-builtin-less": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/less-1.39.1-prel.vsix", + "vscode-builtin-log": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/log-1.39.1-prel.vsix", + "vscode-builtin-lua": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/lua-1.39.1-prel.vsix", + "vscode-builtin-make": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/make-1.39.1-prel.vsix", + "vscode-builtin-markdown": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/markdown-1.39.1-prel.vsix", + "vscode-builtin-merge-conflicts": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/merge-conflict-1.39.1-prel.vsix", + "vscode-builtin-npm": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/npm-1.39.1-prel.vsix", + "vscode-builtin-node-debug": "https://github.com/theia-ide/vscode-node-debug/releases/download/v1.35.3/node-debug-1.35.3.vsix", + "vscode-builtin-node-debug2": "https://github.com/theia-ide/vscode-node-debug2/releases/download/v1.33.0/node-debug2-1.33.0.vsix", + "vscode-builtin-objective-c": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/objective-c-1.39.1-prel.vsix", + "vscode-builtin-perl": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/perl-1.39.1-prel.vsix", + "vscode-builtin-powershell": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/powershell-1.39.1-prel.vsix", + "vscode-builtin-pug": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/pug-1.39.1-prel.vsix", + "vscode-builtin-python": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/python-1.39.1-prel.vsix", + "vscode-builtin-r": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/r-1.39.1-prel.vsix", + "vscode-builtin-razor": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/razor-1.39.1-prel.vsix", + "vscode-builtin-ruby": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/ruby-1.39.1-prel.vsix", + "vscode-builtin-rust": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/rust-1.39.1-prel.vsix", + "vscode-builtin-scss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/scss-1.39.1-prel.vsix", + "vscode-builtin-shaderlab": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shaderlab-1.39.1-prel.vsix", + "vscode-builtin-shellscript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/shellscript-1.39.1-prel.vsix", + "vscode-builtin-sql": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/sql-1.39.1-prel.vsix", + "vscode-builtin-swift": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/swift-1.39.1-prel.vsix", + "vscode-builtin-theme-abyss": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-abyss-1.39.1-prel.vsix", + "vscode-builtin-theme-defaults": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-defaults-1.39.1-prel.vsix", + "vscode-builtin-theme-kimbie-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-kimbie-dark-1.39.1-prel.vsix", + "vscode-builtin-theme-monokai": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-1.39.1-prel.vsix", + "vscode-builtin-theme-dimmed": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-monokai-dimmed-1.39.1-prel.vsix", + "vscode-builtin-theme-quietlight": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-quietlight-1.39.1-prel.vsix", + "vscode-builtin-theme-red": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-red-1.39.1-prel.vsix", + "vscode-builtin-theme-solarized-dark": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-solarized-dark-1.39.1-prel.vsix", + "vscode-builtin-theme-tomorrow-night-blue": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/theme-tomorrow-night-blue-1.39.1-prel.vsix", + "vscode-builtin-typescript": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-1.39.1-prel.vsix", + "vscode-builtin-typescript-language-features": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/typescript-language-features-1.39.1-prel.vsix", + "vscode-builtin-vb": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vb-1.39.1-prel.vsix", + "vscode-builtin-icon-theme-seti": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/vscode-theme-seti-1.39.1-prel.vsix", + "vscode-builtin-xml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/xml-1.39.1-prel.vsix", + "vscode-builtin-yaml": "https://github.com/theia-ide/vscode-builtin-extensions/releases/download/v1.39.1-prel/yaml-1.39.1-prel.vsix", + "vscode-editorconfig": "https://github.com/theia-ide/editorconfig-vscode/releases/download/v0.14.4/EditorConfig-0.14.4.vsix", + "vscode-python": "https://github.com/microsoft/vscode-python/releases/download/2020.1.58038/ms-python-release.vsix", + "nadim-vscode.infinity-dark-theme": "https://open-vsx.org/api/nadim-vscode/infinity-dark-theme/1.0.1/file/nadim-vscode.infinity-dark-theme-1.0.1.vsix", + "emroussel.atomize-atom-one-dark-theme": "https://open-vsx.org/api/emroussel/atomize-atom-one-dark-theme/1.5.5/file/emroussel.atomize-atom-one-dark-theme-1.5.5.vsix", + "mhutchie.git-graph": "https://open-vsx.org/api/mhutchie/git-graph/1.30.0/file/mhutchie.git-graph-1.30.0.vsix", + "teabyii.ayu": "https://open-vsx.org/api/teabyii/ayu/0.20.1/file/teabyii.ayu-0.20.1.vsix", + "yurihs.sublime-vscode-theme": "https://open-vsx.org/api/yurihs/sublime-vscode-theme/1.4.1/file/yurihs.sublime-vscode-theme-1.4.1.vsix", + "wesbos.theme-cobalt2": "https://open-vsx.org/api/wesbos/theme-cobalt2/2.1.6/file/wesbos.theme-cobalt2-2.1.6.vsix", + "robbowen.synthwave-vscode": "https://open-vsx.org/api/RobbOwen/synthwave-vscode/0.1.8/file/RobbOwen.synthwave-vscode-0.1.8.vsix", + + "github.github-vscode-theme": "https://open-vsx.org/api/GitHub/github-vscode-theme/4.1.1/file/GitHub.github-vscode-theme-4.1.1.vsix", + "armandphilippot.coldark": "https://open-vsx.org/api/armandphilippot/coldark/1.2.9/file/armandphilippot.coldark-1.2.9.vsix", + "radiolevity.search-lights": "https://open-vsx.org/api/radiolevity/search-lights/1.10.1/file/radiolevity.search-lights-1.10.1.vsix", + "vladeeg.vscode-theme-vlight": "https://open-vsx.org/api/Vladeeg/vscode-theme-vlight/2.1.0/file/Vladeeg.vscode-theme-vlight-2.1.0.vsix", + "akamud.vscode-theme-onelight": "https://open-vsx.org/api/akamud/vscode-theme-onelight/2.2.3/file/akamud.vscode-theme-onelight-2.2.3.vsix", + "akamud.vscode-theme-onedark": "https://open-vsx.org/api/akamud/vscode-theme-onedark/2.2.3/file/akamud.vscode-theme-onedark-2.2.3.vsix" + } +} diff --git a/workspaces/workspace-in-docker/Dockerfile b/workspaces/workspace-in-docker/Dockerfile index 2a5388d..3231aa4 100644 --- a/workspaces/workspace-in-docker/Dockerfile +++ b/workspaces/workspace-in-docker/Dockerfile @@ -10,9 +10,13 @@ ARG DEPLOY_IMAGE=${docker_registry}/base-workspace:${image_tag} ################################################################################ BUILD -ARG version=latest +ARG THEIA_VERSION=1.15.0 +#ARG THEIA_VERSION=latest +#ARG THEIA_VERSION=next FROM ${BUILD_IMAGE} +ARG THEIA_VERSION + RUN apt-get update \ && apt-get upgrade -y \ && apt-get install -y apt-utils \ @@ -20,9 +24,8 @@ RUN apt-get update \ && apt-get install -y libsecret-1-dev \ && mkdir /opt/theia -ARG version=latest WORKDIR /opt/theia -ADD $version.package.json ./package.json +ADD ${THEIA_VERSION}.package.json ./package.json ARG GITHUB_TOKEN RUN yarn --pure-lockfile && \ NODE_OPTIONS="--max_old_space_size=4096" yarn theia build && \ diff --git a/workspaces/workspace-in-docker/latest.package.json b/workspaces/workspace-in-docker/latest.package.json index 706f056..2f94f0a 100644 --- a/workspaces/workspace-in-docker/latest.package.json +++ b/workspaces/workspace-in-docker/latest.package.json @@ -105,6 +105,8 @@ "emroussel.atomize-atom-one-dark-theme": "https://open-vsx.org/api/emroussel/atomize-atom-one-dark-theme/1.5.5/file/emroussel.atomize-atom-one-dark-theme-1.5.5.vsix", "mhutchie.git-graph": "https://open-vsx.org/api/mhutchie/git-graph/1.30.0/file/mhutchie.git-graph-1.30.0.vsix", "teabyii.ayu": "https://open-vsx.org/api/teabyii/ayu/0.20.1/file/teabyii.ayu-0.20.1.vsix", - "yurihs.sublime-vscode-theme": "https://open-vsx.org/api/yurihs/sublime-vscode-theme/1.4.1/file/yurihs.sublime-vscode-theme-1.4.1.vsix" + "yurihs.sublime-vscode-theme": "https://open-vsx.org/api/yurihs/sublime-vscode-theme/1.4.1/file/yurihs.sublime-vscode-theme-1.4.1.vsix", + "wesbos.theme-cobalt2": "https://open-vsx.org/api/wesbos/theme-cobalt2/2.1.6/file/wesbos.theme-cobalt2-2.1.6.vsix", + "robbowen.synthwave-vscode": "https://open-vsx.org/api/RobbOwen/synthwave-vscode/0.1.8/file/RobbOwen.synthwave-vscode-0.1.8.vsix" } }