diff --git a/.gitignore b/.gitignore index 4965f57..3649d6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5552 +1,77 @@ -### Maven template -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -# https://github.com/takari/maven-wrapper#usage-without-binary-jar -.mvn/wrapper/maven-wrapper.jar - -# Eclipse m2e generated files -# Eclipse Core -.project -# JDT-specific (Eclipse Java Development Tools) -.classpath - -### CMake template -CMakeLists.txt.user -CMakeCache.txt -CMakeFiles -CMakeScripts -Testing -Makefile -cmake_install.cmake -install_manifest.txt -compile_commands.json -CTestTestfile.cmake -_deps - -### Magento2 template -/sitemap -/sitemap.xml -/pub/sitemap -/pub/sitemap.xml -/app/config_sandbox -/app/etc/config.php -/app/etc/env.php -/app/code/Magento/TestModule* -/lib/internal/flex/uploader/.actionScriptProperties -/lib/internal/flex/uploader/.flexProperties -/lib/internal/flex/uploader/.project -/lib/internal/flex/uploader/.settings -/lib/internal/flex/varien/.actionScriptProperties -/lib/internal/flex/varien/.flexLibProperties -/lib/internal/flex/varien/.project -/lib/internal/flex/varien/.settings -/.grunt -/.php_cs.cache -/grunt-config.json -/dev/tools/grunt/configs/local-themes.js - -/pub/media/*.* -!/pub/media/.htaccess -/pub/media/attribute/* -!/pub/media/attribute/.htaccess -/pub/media/analytics/* -/pub/media/catalog/* -!/pub/media/catalog/.htaccess -/pub/media/customer/* -!/pub/media/customer/.htaccess -/pub/media/downloadable/* -!/pub/media/downloadable/.htaccess -/pub/media/favicon/* -/pub/media/import/* -!/pub/media/import/.htaccess -/pub/media/logo/* -/pub/media/theme/* -/pub/media/theme_customization/* -!/pub/media/theme_customization/.htaccess -/pub/media/wysiwyg/* -!/pub/media/wysiwyg/.htaccess -/pub/media/tmp/* -!/pub/media/tmp/.htaccess -/pub/media/captcha/* -!/pub/media/captcha/.htaccess -/pub/static/* -!/pub/static/.htaccess - -/var/* -!/var/.htaccess -/vendor/* -!/vendor/.htaccess -/generated/* -!/generated/.htaccess - -### Magento1 template -# gitignore template for Magento v1 projects -# -# It is recommended that you use `Magento.gitignore` as this is the latest version - -/PATCH_*.sh - -/app/etc/local.xml - -/media/* -!/media/.htaccess - -!/media/customer -/media/customer/* -!/media/customer/.htaccess - -!/media/dhl -/media/dhl/* -!/media/dhl/logo.jpg - -!/media/downloadable -/media/downloadable/* -!/media/downloadable/.htaccess - -!/media/xmlconnect -/media/xmlconnect/* - -!/media/xmlconnect/custom -/media/xmlconnect/custom/* -!/media/xmlconnect/custom/ok.gif - -!/media/xmlconnect/original -/media/xmlconnect/original/* -!/media/xmlconnect/original/ok.gif - -!/media/xmlconnect/system -/media/xmlconnect/system/* -!/media/xmlconnect/system/ok.gif - - -!/var/package -/var/package/* -!/var/package/*.xml - - -### Node template -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* -.pnpm-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* - -### TwinCAT3 template -# gitignore template for TwinCAT3 -# website: https://www.beckhoff.com/twincat3/ -# -# Recommended: VisualStudio.gitignore - -# TwinCAT files -*.tpy -*.tclrs -*.compiled-library -*.compileinfo -# Don't include the tmc-file rule if either of the following is true: -# 1. You've got TwinCAT C++ projects, as the information in the TMC-file is created manually for the C++ projects (in that case, only (manually) ignore the tmc-files for the PLC projects) -# 2. You've created a standalone PLC-project and added events to it, as these are stored in the TMC-file. -*.tmc -*.tmcRefac -*.library -*.project.~u -*.tsproj.bak -*.xti.bak -LineIDs.dbg -LineIDs.dbg.bak -_Boot/ -_CompileInfo/ -_Libraries/ -_ModuleInstall/ -### Go template -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# -# Binaries for programs and plugins -*.exe -*.exe~ -*.dll -*.so -*.dylib - -# Test binary, built with `go test -c` -*.test - -# Output of the go coverage tool, specifically when used with LiteIDE -*.out - -# Dependency directories (remove the comment below to include it) -# vendor/ - -# Go workspace file -go.work - -### CDK template -# CDK asset staging directory. -# For more information about AWS-CDK, see https://docs.aws.amazon.com/cdk/ -.cdk.staging/ -cdk.out/ - -### Leiningen template -pom.xml -pom.xml.asc -*.jar -*.class -/lib/ -/classes/ -/target/ -/checkouts/ -.lein-deps-sum -.lein-repl-history -.lein-plugins/ -.lein-failures -.nrepl-port -.cpcache/ - -### Erlang template -.eunit -*.o -*.beam -*.plt -erl_crash.dump -.concrete/DEV_MODE - -# rebar 2.x -.rebar -rel/example_project -ebin/*.beam -deps - -# rebar 3 -.rebar3 -_build/ -_checkouts/ - -### RhodesRhomobile template -rholog-* -sim-* -bin/libs -bin/RhoBundle -bin/tmp -bin/target -bin/*.ap_ - -### FlaxEngine template -# Ignore Flax project files -Binaries/ -Cache/ -Logs/ -Output/ -Screenshots/ -*.HotReload.* - -# Ignore Visual Studio project files (generated locally) -*.csproj -*.sln - -# Ignore thumbnails created by Windows -Thumbs.db - -# Ignore files built by Visual Studio -*.obj -*.pdb -*.user -*.aps -*.pch -*.vspscc -*_i.c -*_p.c -*.ncb -*.suo -*.tlb -*.tlh -*.bak -*.cache -*.ilk -[Bb]in -[Dd]ebug*/ -*.lib -*.sbr -obj/ -[Rr]elease*/ -_ReSharper*/ -[Tt]est[Rr]esult* -.vs/ - -# Ignore Nuget packages folder -packages/ - -### OpenCart template -.htaccess -/config.php -admin/config.php - -!index.html - -download/ -image/data/ -image/cache/ -system/cache/ -system/logs/ - -system/storage/ - -# vQmod log files -vqmod/logs/* -# vQmod cache files -vqmod/vqcache/* -vqmod/checked.cache -vqmod/mods.cache - -### OCaml template -*.annot -*.cmo -*.cma -*.cmi -*.a -*.cmx -*.cmxs -*.cmxa - -# ocamlbuild working directory - -# ocamlbuild targets -*.byte -*.native - -# oasis generated files -setup.data -setup.log - -# Merlin configuring file for Vim and Emacs -.merlin - -# Dune generated files -*.install - -# Local OPAM switch -_opam/ - -### Yeoman template -bower_components/ - -build/ -dist/ - -### Haskell template -dist-* -cabal-dev -*.hi -*.hie -*.chi -*.chs.h -*.dyn_o -*.dyn_hi -.hpc -.hsenv -.cabal-sandbox/ -cabal.sandbox.config -*.prof -*.aux -*.hp -*.eventlog -.stack-work/ -cabal.project.local -cabal.project.local~ -.HTF/ -.ghc.environment.* - -### ROS2 template -install/ -log/ - -# Ignore generated docs -*.dox -*.wikidoc - -# eclipse stuff -.cproject - -# qcreator stuff - -srv/_*.py -*.pcd -*.pyc -qtcreator-* - -*~ - -# Emacs -.#* - -# Colcon custom files -COLCON_IGNORE -AMENT_IGNORE - -### JupyterNotebooks template -# gitignore template for Jupyter Notebooks -# website: http://jupyter.org/ - -.ipynb_checkpoints -*/.ipynb_checkpoints/* - -# IPython -profile_default/ -ipython_config.py - -# Remove previous ipynb_checkpoints -# git rm -r .ipynb_checkpoints/ - -### Prestashop template -# Cache, temp and personal files - -/.htaccess - -# Cache -/cache/* -!/cache/.htaccess -!/cache/cachefs/index.php -!/cache/deprecated.txt -!/cache/index.php -!/cache/purifier/index.php -!/cache/push/activity -!/cache/push/index.php -!/cache/push/trends -!/cache/sandbox/index.php -!/cache/smarty/cache/index.php -!/cache/smarty/compile/index.php -!/cache/smarty/index.php -!/cache/tcpdf/index.php - -# Download -/download/* -!/download/.htaccess -!/download/index.php - -# Images -/img/* -!/img/.htaccess -!/img/index.php -!/img/404.gif -!/img/bg_500.png -!/img/bg_loader.png -!/img/favicon.ico -!/img/loader.gif -!/img/loadingAnimation.gif -!/img/logo.jpg -!/img/logo.png -!/img/logo_invoice.jpg -!/img/logo_stores.png -!/img/macFFBgHack.png -!/img/prestashop-avatar.png -!/img/prestashop@2x.png -!/img/preston-login-wink@2x.png -!/img/preston-login@2x.png -!/img/questionmark.png -!/img/genders/index.php -!/img/admin/index.php -!/img/c/index.php -!/img/cms/index.php -!/img/co/index.php -!/img/jquery-ui -!/img/l/index.php -!/img/m/index.php -!/img/os/index.php -!/img/p/index.php -!/img/s/index.php -!/img/scenes -!/img/st/index.php -!/img/su/index.php -!/img/t/index.php -!/img/tmp/index.php - -# Upload -/upload/* -!/upload/.htaccess - -/docs/phpdoc-sf/ -/composer.lock -*.hot-update.js -*.hot-update.json - - -/admin-dev/autoupgrade/* -!/admin-dev/autoupgrade/index.php -!/admin-dev/autoupgrade/backup/index.php - -/admin-dev/backups/* -!/admin-dev/backups/.htaccess - -/admin-dev/import/* -!/admin-dev/import/.htaccess -!/admin-dev/import/index.php - -/admin-dev/export/* -!/admin-dev/export/.htaccess -!/admin-dev/export/index.php - -# Downloaded RTL files -/admin-dev/themes/default/css/bundle/default_rtl.css -/admin-dev/themes/default/css/bundle/shared_rtl.css -/admin-dev/themes/default/css/font_rtl.css -/admin-dev/themes/default/css/overrides_rtl.css -/admin-dev/themes/default/css/vendor/font-awesome/font-awesome_rtl.css -/admin-dev/themes/default/css/vendor/nv.d3_rtl.css -/admin-dev/themes/default/css/vendor/titatoggle-min_rtl.css -/admin-dev/themes/default/public/theme_rtl.css -/admin-dev/themes/new-theme/css/module/drop_rtl.css -/admin-dev/themes/new-theme/css/right-sidebar_rtl.css - -themes/*/cache/* - -# Config - -config/settings.inc.php -config/settings.old.php -config/xml/* -config/themes/* -!config/xml/themes/default.xml -themes/*/config/settings_*.json -app/config/parameters.old.yml -app/config/config.php - -# Themes, modules and overrides - -modules/* -override/* -themes/*/ -!themes/classic -!themes/_core -!themes/_libraries - -# Vendors and dependencies - -composer.phar -php-cs-fixer -.grunt/* - -# Translations and emails templates - -translations/* -mails/* -!mails/themes/ -!mails/_partials/ -themes/default-bootstrap/lang/* -themes/default-bootstrap/modules/*/translations/*.php -themes/default-bootstrap/mails/* -!themes/default-bootstrap/mails/en/ -themes/default-bootstrap/modules/*/mails/* -!themes/default-bootstrap/modules/*/mails/en - -# MISC - -*sitemap.xml -/robots.txt - -# Symfony - -/bin/ -/app/Resources/geoip/GeoLite2-City.mmdb -/app/Resources/translations/* -!/app/Resources/translations/default -/app/config/parameters.yml -/app/config/parameters.php -/build/ -/phpunit.xml -!/var/cache -/var/cache/* -!var/cache/.gitkeep -!/var/logs -/var/logs/* -!var/logs/.gitkeep -!/var/sessions -/var/sessions/* -!var/sessions/.gitkeep -!var/SymfonyRequirements.php -/vendor/ -/web/bundles/ - - -### Eagle template -# Ignore list for Eagle, a PCB layout tool - -# Backup files -*.s#? -*.b#? -*.l#? -*.b$? -*.s$? -*.l$? - -# Eagle project file -# It contains a serial number and references to the file structure -# on your computer. -# comment the following line if you want to have your project file included. -eagle.epf - -# Autorouter files -*.pro -*.job - -# CAM files -*.$$$ -*.cmp -*.ly2 -*.l15 -*.sol -*.plc -*.stc -*.sts -*.crc -*.crs - -*.dri -*.drl -*.gpi -*.pls -*.ger -*.xln - -*.drd -*.drd.* - -*.s#* -*.b#* - -*.info - -*.eps - -# file locks introduced since 7.x -*.lck - -### Clojure template - -### JBoss4 template -# gitignore for JBoss v4 projects - -/server/all/data -/server/all/log -/server/all/tmp -/server/all/work -/server/default/data -/server/default/log -/server/default/tmp -/server/default/work -/server/minimal/data -/server/minimal/log -/server/minimal/tmp -/server/minimal/work - -# Note: -# there may be other directories that contain *.xml.failed or *.war.failed files -/server/default/deploy/*.xml.failed -/server/default/deploy/*.war.failed - -### Toit template -.packages -*_pb.toit - -### IGORPro template -# Avoid including Experiment files: they can be created and edited locally to test the ipf files -*.pxp -*.pxt -*.uxp -*.uxt - -### JBoss6 template -# gitignore for JBoss v6 projects -# -# Note: to ensure empty directories remain part of the repository, like -# `/server/minimal/lib`, you should add an empty `.gitignore` or `.gitkeep` file -# to the directory - otherwise you may have issues when starting the service. - -/server/jbossweb-standalone/data -/server/jbossweb-standalone/log -/server/jbossweb-standalone/tmp -/server/jbossweb-standalone/work -/server/standard/data -/server/standard/log -/server/standard/tmp -/server/standard/work -/server/default/deploy/*.jar.failed -/server/default/deploy/*.jar.dodeploy -/server/default/deploy/*.xml.dodeploy -/server/default/deploy/*.war.dodeploy - - -### Rust template -# Generated by Cargo -# will have compiled files and executables -debug/ - -# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries -# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html -Cargo.lock - -# These are backup files generated by rustfmt -**/*.rs.bk - -# MSVC Windows builds of rustc generate these, which store debugging information - -### Nikola template -# gitignore template for Nikola static site generator -# website: https://getnikola.com/ - -.doit.db -*.py[cod] -cache/ -output/ - -### SPFx template -#SharePoint Framework (SPFx) -# Logs - -# Dependency directories -node_modules - -# Build generated files -lib -solution -temp -*.sppkg - -# Coverage directory used by tools like istanbul - -# OSX -.DS_Store - -# Visual Studio files -.ntvs_analysis.dat -.vs -bin -obj - -# Resx Generated Code -*.resx.ts - -# Styles Generated Code -*.scss.ts - -### Perl template -!Build/ -.last_cover_stats -/META.yml -/META.json -/MYMETA.* -*.pm.tdy -*.bs - -# Devel::Cover -cover_db/ - -# Devel::NYTProf -nytprof.out - -# Dist::Zilla -/.build/ - -# Module::Build -Build -Build.bat - -# Module::Install -inc/ - -# ExtUtils::MakeMaker -/blib/ -/_eumm/ -/*.gz -/Makefile -/Makefile.old -/MANIFEST.bak -/pm_to_blib -/*.zip - -### AL template -### AL ### -#Template for AL projects for Dynamics 365 Business Central -#launch.json folder -.vscode/ -#Cache folder -.alcache/ -#Symbols folder -.alpackages/ -#Snapshots folder -.snapshots/ -#Testing Output folder -.output/ -#Extension App-file -*.app -#Rapid Application Development File -rad.json -#Translation Base-file -*.g.xlf -#License-file -*.flf -#Test results file -TestResults.xml -### Bazel template -# gitignore template for Bazel build system -# website: https://bazel.build/ - -# Ignore all bazel-* symlinks. There is no full list since this can change -# based on the name of the directory bazel is cloned into. -/bazel-* - -# Directories for the Bazel IntelliJ plugin containing the generated -# IntelliJ project files and plugin configuration. Seperate directories are -# for the IntelliJ, Android Studio and CLion versions of the plugin. -/.ijwb/ -/.aswb/ -/.clwb/ - -### CommonLisp template -*.FASL -*.fasl -*.lisp-temp -*.dfsl -*.pfsl -*.d64fsl -*.p64fsl -*.lx64fsl -*.lx32fsl -*.dx64fsl -*.dx32fsl -*.fx64fsl -*.fx32fsl -*.sx64fsl -*.sx32fsl -*.wx64fsl -*.wx32fsl - -### GNOMEShellExtension template -# Ignored files for GNOME extension git repository - -*.zip - -### JENKINS_HOME template -# Learn more about Jenkins and JENKINS_HOME directory for which this file is -# intended. -# -# http://jenkins-ci.org/ -# https://wiki.jenkins-ci.org/display/JENKINS/Administering+Jenkins -# -# Note: secret.key is purposefully not tracked by git. This should be backed up -# separately because configs may contain secrets which were encrypted using the -# secret.key. To back up secrets use 'tar -czf /tmp/secrets.tgz secret*' and -# save the file separate from your repository. If you want secrets backed up -# with configuration, then see the bottom of this file for an example. - -# Ignore all JENKINS_HOME except jobs directory, root xml config, and -# .gitignore file. -/* -!/jobs -!/.gitignore -!/*.xml - -# Ignore all files in jobs subdirectories except for folders. -# Note: git doesn't track folders, only file content. -jobs/** -!jobs/**/ - -# Uncomment the following line to save next build numbers with config. - -#!jobs/**/nextBuildNumber - -# For performance reasons, we want to ignore builds in Jenkins jobs because it -# contains many tiny files on large installations. This can impact git -# performance when running even basic commands like 'git status'. -builds -indexing - -# Exclude only config.xml files in repository subdirectories. -!config.xml - -# Don't track workspaces (when users build on the master). -jobs/**/*workspace - -# Security warning: If secrets are included with your configuration, then an -# adversary will be able to decrypt all encrypted secrets within Jenkins -# config. Including secrets is a bad practice, but the example is included in -# case someone still wants it for convenience. Uncomment the following line to -# include secrets for decryption with repository configuration in Git. - -#!/secret* - -# As a result, only Jenkins settings and job config.xml files in JENKINS_HOME -# will be tracked by git. - -### ExtJs template -.architect -bootstrap.css -bootstrap.js -bootstrap.json -bootstrap.jsonp -classic.json -classic.jsonp -ext/ -modern.json -modern.jsonp -resources/sass/.sass-cache/ -resources/.arch-internal-preview.css -.arch-internal-preview.css - -### Joomla template -/administrator/cache/* -/administrator/components/com_actionlogs/* -/administrator/components/com_admin/* -/administrator/components/com_ajax/* -/administrator/components/com_associations/* -/administrator/components/com_banners/* -/administrator/components/com_cache/* -/administrator/components/com_categories/* -/administrator/components/com_checkin/* -/administrator/components/com_config/* -/administrator/components/com_contact/* -/administrator/components/com_content/* -/administrator/components/com_contenthistory/* -/administrator/components/com_cpanel/* -/administrator/components/com_fields/* -/administrator/components/com_finder/* -/administrator/components/com_installer/* -/administrator/components/com_joomlaupdate/* -/administrator/components/com_languages/* -/administrator/components/com_login/* -/administrator/components/com_media/* -/administrator/components/com_menus/* -/administrator/components/com_messages/* -/administrator/components/com_modules/* -/administrator/components/com_newsfeeds/* -/administrator/components/com_plugins/* -/administrator/components/com_postinstall/* -/administrator/components/com_privacy/* -/administrator/components/com_redirect/* -/administrator/components/com_search/* -/administrator/components/com_tags/* -/administrator/components/com_templates/* -/administrator/components/com_users/* -/administrator/help/* -/administrator/includes/* -/administrator/index.php -/administrator/language/en-GB/en-GB.com_actionlogs.ini -/administrator/language/en-GB/en-GB.com_actionlogs.sys.ini -/administrator/language/en-GB/en-GB.com_admin.ini -/administrator/language/en-GB/en-GB.com_admin.sys.ini -/administrator/language/en-GB/en-GB.com_ajax.ini -/administrator/language/en-GB/en-GB.com_ajax.sys.ini -/administrator/language/en-GB/en-GB.com_associations.ini -/administrator/language/en-GB/en-GB.com_associations.sys.ini -/administrator/language/en-GB/en-GB.com_banners.ini -/administrator/language/en-GB/en-GB.com_banners.sys.ini -/administrator/language/en-GB/en-GB.com_cache.ini -/administrator/language/en-GB/en-GB.com_cache.sys.ini -/administrator/language/en-GB/en-GB.com_categories.ini -/administrator/language/en-GB/en-GB.com_categories.sys.ini -/administrator/language/en-GB/en-GB.com_checkin.ini -/administrator/language/en-GB/en-GB.com_checkin.sys.ini -/administrator/language/en-GB/en-GB.com_config.ini -/administrator/language/en-GB/en-GB.com_config.sys.ini -/administrator/language/en-GB/en-GB.com_contact.ini -/administrator/language/en-GB/en-GB.com_contact.sys.ini -/administrator/language/en-GB/en-GB.com_content.ini -/administrator/language/en-GB/en-GB.com_content.sys.ini -/administrator/language/en-GB/en-GB.com_contenthistory.ini -/administrator/language/en-GB/en-GB.com_contenthistory.sys.ini -/administrator/language/en-GB/en-GB.com_cpanel.ini -/administrator/language/en-GB/en-GB.com_cpanel.sys.ini -/administrator/language/en-GB/en-GB.com_fields.ini -/administrator/language/en-GB/en-GB.com_fields.sys.ini -/administrator/language/en-GB/en-GB.com_finder.ini -/administrator/language/en-GB/en-GB.com_finder.sys.ini -/administrator/language/en-GB/en-GB.com_installer.ini -/administrator/language/en-GB/en-GB.com_installer.sys.ini -/administrator/language/en-GB/en-GB.com_joomlaupdate.ini -/administrator/language/en-GB/en-GB.com_joomlaupdate.sys.ini -/administrator/language/en-GB/en-GB.com_languages.ini -/administrator/language/en-GB/en-GB.com_languages.sys.ini -/administrator/language/en-GB/en-GB.com_login.ini -/administrator/language/en-GB/en-GB.com_login.sys.ini -/administrator/language/en-GB/en-GB.com_mailto.sys.ini -/administrator/language/en-GB/en-GB.com_media.ini -/administrator/language/en-GB/en-GB.com_media.sys.ini -/administrator/language/en-GB/en-GB.com_menus.ini -/administrator/language/en-GB/en-GB.com_menus.sys.ini -/administrator/language/en-GB/en-GB.com_messages.ini -/administrator/language/en-GB/en-GB.com_messages.sys.ini -/administrator/language/en-GB/en-GB.com_modules.ini -/administrator/language/en-GB/en-GB.com_modules.sys.ini -/administrator/language/en-GB/en-GB.com_newsfeeds.ini -/administrator/language/en-GB/en-GB.com_newsfeeds.sys.ini -/administrator/language/en-GB/en-GB.com_plugins.ini -/administrator/language/en-GB/en-GB.com_plugins.sys.ini -/administrator/language/en-GB/en-GB.com_postinstall.ini -/administrator/language/en-GB/en-GB.com_postinstall.sys.ini -/administrator/language/en-GB/en-GB.com_privacy.ini -/administrator/language/en-GB/en-GB.com_privacy.sys.ini -/administrator/language/en-GB/en-GB.com_redirect.ini -/administrator/language/en-GB/en-GB.com_redirect.sys.ini -/administrator/language/en-GB/en-GB.com_search.ini -/administrator/language/en-GB/en-GB.com_search.sys.ini -/administrator/language/en-GB/en-GB.com_tags.ini -/administrator/language/en-GB/en-GB.com_tags.sys.ini -/administrator/language/en-GB/en-GB.com_templates.ini -/administrator/language/en-GB/en-GB.com_templates.sys.ini -/administrator/language/en-GB/en-GB.com_users.ini -/administrator/language/en-GB/en-GB.com_users.sys.ini -/administrator/language/en-GB/en-GB.com_weblinks.ini -/administrator/language/en-GB/en-GB.com_weblinks.sys.ini -/administrator/language/en-GB/en-GB.com_wrapper.ini -/administrator/language/en-GB/en-GB.com_wrapper.sys.ini -/administrator/language/en-GB/en-GB.ini -/administrator/language/en-GB/en-GB.lib_joomla.ini -/administrator/language/en-GB/en-GB.localise.php -/administrator/language/en-GB/en-GB.mod_custom.ini -/administrator/language/en-GB/en-GB.mod_custom.sys.ini -/administrator/language/en-GB/en-GB.mod_feed.ini -/administrator/language/en-GB/en-GB.mod_feed.sys.ini -/administrator/language/en-GB/en-GB.mod_latest.ini -/administrator/language/en-GB/en-GB.mod_latest.sys.ini -/administrator/language/en-GB/en-GB.mod_latestactions.ini -/administrator/language/en-GB/en-GB.mod_latestactions.sys.ini -/administrator/language/en-GB/en-GB.mod_logged.ini -/administrator/language/en-GB/en-GB.mod_logged.sys.ini -/administrator/language/en-GB/en-GB.mod_login.ini -/administrator/language/en-GB/en-GB.mod_login.sys.ini -/administrator/language/en-GB/en-GB.mod_menu.ini -/administrator/language/en-GB/en-GB.mod_menu.sys.ini -/administrator/language/en-GB/en-GB.mod_multilangstatus.ini -/administrator/language/en-GB/en-GB.mod_multilangstatus.sys.ini -/administrator/language/en-GB/en-GB.mod_online.ini -/administrator/language/en-GB/en-GB.mod_online.sys.ini -/administrator/language/en-GB/en-GB.mod_popular.ini -/administrator/language/en-GB/en-GB.mod_popular.sys.ini -/administrator/language/en-GB/en-GB.mod_privacy_dashboard.ini -/administrator/language/en-GB/en-GB.mod_privacy_dashboard.sys.ini -/administrator/language/en-GB/en-GB.mod_quickicon.ini -/administrator/language/en-GB/en-GB.mod_quickicon.sys.ini -/administrator/language/en-GB/en-GB.mod_sampledata.ini -/administrator/language/en-GB/en-GB.mod_sampledata.sys.ini -/administrator/language/en-GB/en-GB.mod_stats_admin.ini -/administrator/language/en-GB/en-GB.mod_stats_admin.sys.ini -/administrator/language/en-GB/en-GB.mod_status.ini -/administrator/language/en-GB/en-GB.mod_status.sys.ini -/administrator/language/en-GB/en-GB.mod_submenu.ini -/administrator/language/en-GB/en-GB.mod_submenu.sys.ini -/administrator/language/en-GB/en-GB.mod_title.ini -/administrator/language/en-GB/en-GB.mod_title.sys.ini -/administrator/language/en-GB/en-GB.mod_toolbar.ini -/administrator/language/en-GB/en-GB.mod_toolbar.sys.ini -/administrator/language/en-GB/en-GB.mod_unread.ini -/administrator/language/en-GB/en-GB.mod_unread.sys.ini -/administrator/language/en-GB/en-GB.mod_version.ini -/administrator/language/en-GB/en-GB.mod_version.sys.ini -/administrator/language/en-GB/en-GB.plg_actionlog_joomla.ini -/administrator/language/en-GB/en-GB.plg_actionlog_joomla.sys.ini -/administrator/language/en-GB/en-GB.plg_authentication_cookie.ini -/administrator/language/en-GB/en-GB.plg_authentication_cookie.sys.ini -/administrator/language/en-GB/en-GB.plg_authentication_example.ini -/administrator/language/en-GB/en-GB.plg_authentication_example.sys.ini -/administrator/language/en-GB/en-GB.plg_authentication_gmail.ini -/administrator/language/en-GB/en-GB.plg_authentication_gmail.sys.ini -/administrator/language/en-GB/en-GB.plg_authentication_joomla.ini -/administrator/language/en-GB/en-GB.plg_authentication_joomla.sys.ini -/administrator/language/en-GB/en-GB.plg_authentication_ldap.ini -/administrator/language/en-GB/en-GB.plg_authentication_ldap.sys.ini -/administrator/language/en-GB/en-GB.plg_captcha_recaptcha.ini -/administrator/language/en-GB/en-GB.plg_captcha_recaptcha.sys.ini -/administrator/language/en-GB/en-GB.plg_captcha_recaptcha_invisible.ini -/administrator/language/en-GB/en-GB.plg_captcha_recaptcha_invisible.sys.ini -/administrator/language/en-GB/en-GB.plg_content_confirmconsent.ini -/administrator/language/en-GB/en-GB.plg_content_confirmconsent.sys.ini -/administrator/language/en-GB/en-GB.plg_content_contact.ini -/administrator/language/en-GB/en-GB.plg_content_contact.sys.ini -/administrator/language/en-GB/en-GB.plg_content_emailcloak.ini -/administrator/language/en-GB/en-GB.plg_content_emailcloak.sys.ini -/administrator/language/en-GB/en-GB.plg_content_fields.ini -/administrator/language/en-GB/en-GB.plg_content_fields.sys.ini -/administrator/language/en-GB/en-GB.plg_content_finder.ini -/administrator/language/en-GB/en-GB.plg_content_finder.sys.ini -/administrator/language/en-GB/en-GB.plg_content_geshi.ini -/administrator/language/en-GB/en-GB.plg_content_geshi.sys.ini -/administrator/language/en-GB/en-GB.plg_content_joomla.ini -/administrator/language/en-GB/en-GB.plg_content_joomla.sys.ini -/administrator/language/en-GB/en-GB.plg_content_loadmodule.ini -/administrator/language/en-GB/en-GB.plg_content_loadmodule.sys.ini -/administrator/language/en-GB/en-GB.plg_content_pagebreak.ini -/administrator/language/en-GB/en-GB.plg_content_pagebreak.sys.ini -/administrator/language/en-GB/en-GB.plg_content_pagenavigation.ini -/administrator/language/en-GB/en-GB.plg_content_pagenavigation.sys.ini -/administrator/language/en-GB/en-GB.plg_content_vote.ini -/administrator/language/en-GB/en-GB.plg_content_vote.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_article.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_article.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_contact.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_contact.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_fields.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_fields.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_image.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_image.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_menu.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_menu.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_module.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_module.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_pagebreak.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_pagebreak.sys.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_readmore.ini -/administrator/language/en-GB/en-GB.plg_editors-xtd_readmore.sys.ini -/administrator/language/en-GB/en-GB.plg_editors_codemirror.ini -/administrator/language/en-GB/en-GB.plg_editors_codemirror.sys.ini -/administrator/language/en-GB/en-GB.plg_editors_none.ini -/administrator/language/en-GB/en-GB.plg_editors_none.sys.ini -/administrator/language/en-GB/en-GB.plg_editors_tinymce.ini -/administrator/language/en-GB/en-GB.plg_editors_tinymce.sys.ini -/administrator/language/en-GB/en-GB.plg_extension_joomla.ini -/administrator/language/en-GB/en-GB.plg_extension_joomla.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_calendar.ini -/administrator/language/en-GB/en-GB.plg_fields_calendar.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_checkboxes.ini -/administrator/language/en-GB/en-GB.plg_fields_checkboxes.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_color.ini -/administrator/language/en-GB/en-GB.plg_fields_color.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_editor.ini -/administrator/language/en-GB/en-GB.plg_fields_editor.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_image.ini -/administrator/language/en-GB/en-GB.plg_fields_image.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_imagelist.ini -/administrator/language/en-GB/en-GB.plg_fields_imagelist.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_integer.ini -/administrator/language/en-GB/en-GB.plg_fields_integer.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_list.ini -/administrator/language/en-GB/en-GB.plg_fields_list.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_media.ini -/administrator/language/en-GB/en-GB.plg_fields_media.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_radio.ini -/administrator/language/en-GB/en-GB.plg_fields_radio.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_repeatable.ini -/administrator/language/en-GB/en-GB.plg_fields_repeatable.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_sql.ini -/administrator/language/en-GB/en-GB.plg_fields_sql.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_text.ini -/administrator/language/en-GB/en-GB.plg_fields_text.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_textarea.ini -/administrator/language/en-GB/en-GB.plg_fields_textarea.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_url.ini -/administrator/language/en-GB/en-GB.plg_fields_url.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_user.ini -/administrator/language/en-GB/en-GB.plg_fields_user.sys.ini -/administrator/language/en-GB/en-GB.plg_fields_usergrouplist.ini -/administrator/language/en-GB/en-GB.plg_fields_usergrouplist.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_categories.ini -/administrator/language/en-GB/en-GB.plg_finder_categories.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_contacts.ini -/administrator/language/en-GB/en-GB.plg_finder_contacts.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_content.ini -/administrator/language/en-GB/en-GB.plg_finder_content.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_newsfeeds.ini -/administrator/language/en-GB/en-GB.plg_finder_newsfeeds.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_tags.ini -/administrator/language/en-GB/en-GB.plg_finder_tags.sys.ini -/administrator/language/en-GB/en-GB.plg_finder_weblinks.ini -/administrator/language/en-GB/en-GB.plg_finder_weblinks.sys.ini -/administrator/language/en-GB/en-GB.plg_installer_folderinstaller.ini -/administrator/language/en-GB/en-GB.plg_installer_folderinstaller.sys.ini -/administrator/language/en-GB/en-GB.plg_installer_packageinstaller.ini -/administrator/language/en-GB/en-GB.plg_installer_packageinstaller.sys.ini -/administrator/language/en-GB/en-GB.plg_installer_urlinstaller.ini -/administrator/language/en-GB/en-GB.plg_installer_urlinstaller.sys.ini -/administrator/language/en-GB/en-GB.plg_installer_webinstaller.ini -/administrator/language/en-GB/en-GB.plg_installer_webinstaller.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_actionlogs.ini -/administrator/language/en-GB/en-GB.plg_privacy_actionlogs.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_consents.ini -/administrator/language/en-GB/en-GB.plg_privacy_consents.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_contact.ini -/administrator/language/en-GB/en-GB.plg_privacy_contact.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_content.ini -/administrator/language/en-GB/en-GB.plg_privacy_content.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_message.ini -/administrator/language/en-GB/en-GB.plg_privacy_message.sys.ini -/administrator/language/en-GB/en-GB.plg_privacy_user.ini -/administrator/language/en-GB/en-GB.plg_privacy_user.sys.ini -/administrator/language/en-GB/en-GB.plg_quickicon_extensionupdate.ini -/administrator/language/en-GB/en-GB.plg_quickicon_extensionupdate.sys.ini -/administrator/language/en-GB/en-GB.plg_quickicon_joomlaupdate.ini -/administrator/language/en-GB/en-GB.plg_quickicon_joomlaupdate.sys.ini -/administrator/language/en-GB/en-GB.plg_quickicon_phpversioncheck.ini -/administrator/language/en-GB/en-GB.plg_quickicon_phpversioncheck.sys.ini -/administrator/language/en-GB/en-GB.plg_quickicon_privacycheck.ini -/administrator/language/en-GB/en-GB.plg_quickicon_privacycheck.sys.ini -/administrator/language/en-GB/en-GB.plg_sampledata_blog.ini -/administrator/language/en-GB/en-GB.plg_sampledata_blog.sys.ini -/administrator/language/en-GB/en-GB.plg_search_categories.ini -/administrator/language/en-GB/en-GB.plg_search_categories.sys.ini -/administrator/language/en-GB/en-GB.plg_search_contacts.ini -/administrator/language/en-GB/en-GB.plg_search_contacts.sys.ini -/administrator/language/en-GB/en-GB.plg_search_content.ini -/administrator/language/en-GB/en-GB.plg_search_content.sys.ini -/administrator/language/en-GB/en-GB.plg_search_newsfeeds.ini -/administrator/language/en-GB/en-GB.plg_search_newsfeeds.sys.ini -/administrator/language/en-GB/en-GB.plg_search_tags.ini -/administrator/language/en-GB/en-GB.plg_search_tags.sys.ini -/administrator/language/en-GB/en-GB.plg_search_weblinks.ini -/administrator/language/en-GB/en-GB.plg_search_weblinks.sys.ini -/administrator/language/en-GB/en-GB.plg_system_actionlogs.ini -/administrator/language/en-GB/en-GB.plg_system_actionlogs.sys.ini -/administrator/language/en-GB/en-GB.plg_system_cache.ini -/administrator/language/en-GB/en-GB.plg_system_cache.sys.ini -/administrator/language/en-GB/en-GB.plg_system_debug.ini -/administrator/language/en-GB/en-GB.plg_system_debug.sys.ini -/administrator/language/en-GB/en-GB.plg_system_fields.ini -/administrator/language/en-GB/en-GB.plg_system_fields.sys.ini -/administrator/language/en-GB/en-GB.plg_system_highlight.ini -/administrator/language/en-GB/en-GB.plg_system_highlight.sys.ini -/administrator/language/en-GB/en-GB.plg_system_languagecode.ini -/administrator/language/en-GB/en-GB.plg_system_languagecode.sys.ini -/administrator/language/en-GB/en-GB.plg_system_languagefilter.ini -/administrator/language/en-GB/en-GB.plg_system_languagefilter.sys.ini -/administrator/language/en-GB/en-GB.plg_system_log.ini -/administrator/language/en-GB/en-GB.plg_system_log.sys.ini -/administrator/language/en-GB/en-GB.plg_system_logout.ini -/administrator/language/en-GB/en-GB.plg_system_logout.sys.ini -/administrator/language/en-GB/en-GB.plg_system_logrotation.ini -/administrator/language/en-GB/en-GB.plg_system_logrotation.sys.ini -/administrator/language/en-GB/en-GB.plg_system_p3p.ini -/administrator/language/en-GB/en-GB.plg_system_p3p.sys.ini -/administrator/language/en-GB/en-GB.plg_system_privacyconsent.ini -/administrator/language/en-GB/en-GB.plg_system_privacyconsent.sys.ini -/administrator/language/en-GB/en-GB.plg_system_redirect.ini -/administrator/language/en-GB/en-GB.plg_system_redirect.sys.ini -/administrator/language/en-GB/en-GB.plg_system_remember.ini -/administrator/language/en-GB/en-GB.plg_system_remember.sys.ini -/administrator/language/en-GB/en-GB.plg_system_sef.ini -/administrator/language/en-GB/en-GB.plg_system_sef.sys.ini -/administrator/language/en-GB/en-GB.plg_system_sessiongc.ini -/administrator/language/en-GB/en-GB.plg_system_sessiongc.sys.ini -/administrator/language/en-GB/en-GB.plg_system_stats.ini -/administrator/language/en-GB/en-GB.plg_system_stats.sys.ini -/administrator/language/en-GB/en-GB.plg_system_updatenotification.ini -/administrator/language/en-GB/en-GB.plg_system_updatenotification.sys.ini -/administrator/language/en-GB/en-GB.plg_twofactorauth_totp.ini -/administrator/language/en-GB/en-GB.plg_twofactorauth_totp.sys.ini -/administrator/language/en-GB/en-GB.plg_twofactorauth_yubikey.ini -/administrator/language/en-GB/en-GB.plg_twofactorauth_yubikey.sys.ini -/administrator/language/en-GB/en-GB.plg_user_contactcreator.ini -/administrator/language/en-GB/en-GB.plg_user_contactcreator.sys.ini -/administrator/language/en-GB/en-GB.plg_user_joomla.ini -/administrator/language/en-GB/en-GB.plg_user_joomla.sys.ini -/administrator/language/en-GB/en-GB.plg_user_profile.ini -/administrator/language/en-GB/en-GB.plg_user_profile.sys.ini -/administrator/language/en-GB/en-GB.plg_user_terms.ini -/administrator/language/en-GB/en-GB.plg_user_terms.sys.ini -/administrator/language/en-GB/en-GB.tpl_hathor.ini -/administrator/language/en-GB/en-GB.tpl_hathor.sys.ini -/administrator/language/en-GB/en-GB.tpl_isis.ini -/administrator/language/en-GB/en-GB.tpl_isis.sys.ini -/administrator/language/en-GB/en-GB.xml -/administrator/language/en-GB/install.xml -/administrator/language/overrides/* -/administrator/language/index.html -/administrator/logs/* -/administrator/manifests/files/joomla.xml -/administrator/manifests/libraries/fof.xml -/administrator/manifests/libraries/idna_convert.xml -/administrator/manifests/libraries/joomla.xml -/administrator/manifests/libraries/phpass.xml -/administrator/manifests/libraries/phputf8.xml -/administrator/manifests/packages/pkg_en-GB.xml -/administrator/manifests/packages/index.html -/administrator/modules/mod_custom/* -/administrator/modules/mod_feed/* -/administrator/modules/mod_latest/* -/administrator/modules/mod_latestactions/* -/administrator/modules/mod_logged/* -/administrator/modules/mod_login/* -/administrator/modules/mod_menu/* -/administrator/modules/mod_multilangstatus/* -/administrator/modules/mod_online/* -/administrator/modules/mod_popular/* -/administrator/modules/mod_privacy_dashboard/* -/administrator/modules/mod_quickicon/* -/administrator/modules/mod_sampledata/* -/administrator/modules/mod_stats_admin/* -/administrator/modules/mod_status/* -/administrator/modules/mod_submenu/* -/administrator/modules/mod_title/* -/administrator/modules/mod_toolbar/* -/administrator/modules/mod_unread/* -/administrator/modules/mod_version/* -/administrator/templates/hathor/* -/administrator/templates/isis/* -/administrator/templates/system/* -/bin/* -/cli/* -/components/com_ajax/* -/components/com_banners/* -/components/com_config/* -/components/com_contact/* -/components/com_content/* -/components/com_contenthistory/* -/components/com_fields/* -/components/com_finder/* -/components/com_mailto/* -/components/com_media/* -/components/com_menus/* -/components/com_modules/* -/components/com_newsfeeds/* -/components/com_privacy/* -/components/com_search/* -/components/com_tags/* -/components/com_users/* -/components/com_wrapper/* -/components/index.html -/images/banners/* -/images/headers/* -/images/sampledata/* -/images/index.html -/images/joomla* -/images/powered_by.png -/includes/* -/installation/* -/language/en-GB/en-GB.com_ajax.ini -/language/en-GB/en-GB.com_config.ini -/language/en-GB/en-GB.com_contact.ini -/language/en-GB/en-GB.com_content.ini -/language/en-GB/en-GB.com_finder.ini -/language/en-GB/en-GB.com_mailto.ini -/language/en-GB/en-GB.com_media.ini -/language/en-GB/en-GB.com_messages.ini -/language/en-GB/en-GB.com_newsfeeds.ini -/language/en-GB/en-GB.com_privacy.ini -/language/en-GB/en-GB.com_search.ini -/language/en-GB/en-GB.com_tags.ini -/language/en-GB/en-GB.com_users.ini -/language/en-GB/en-GB.com_weblinks.ini -/language/en-GB/en-GB.com_wrapper.ini -/language/en-GB/en-GB.files_joomla.sys.ini -/language/en-GB/en-GB.finder_cli.ini -/language/en-GB/en-GB.ini -/language/en-GB/en-GB.lib_fof.ini -/language/en-GB/en-GB.lib_fof.sys.ini -/language/en-GB/en-GB.lib_idna_convert.sys.ini -/language/en-GB/en-GB.lib_joomla.ini -/language/en-GB/en-GB.lib_joomla.sys.ini -/language/en-GB/en-GB.lib_phpass.sys.ini -/language/en-GB/en-GB.lib_phpmailer.sys.ini -/language/en-GB/en-GB.lib_phputf8.sys.ini -/language/en-GB/en-GB.lib_simplepie.sys.ini -/language/en-GB/en-GB.localise.php -/language/en-GB/en-GB.mod_articles_archive.ini -/language/en-GB/en-GB.mod_articles_archive.sys.ini -/language/en-GB/en-GB.mod_articles_categories.ini -/language/en-GB/en-GB.mod_articles_categories.sys.ini -/language/en-GB/en-GB.mod_articles_category.ini -/language/en-GB/en-GB.mod_articles_category.sys.ini -/language/en-GB/en-GB.mod_articles_latest.ini -/language/en-GB/en-GB.mod_articles_latest.sys.ini -/language/en-GB/en-GB.mod_articles_news.ini -/language/en-GB/en-GB.mod_articles_news.sys.ini -/language/en-GB/en-GB.mod_articles_popular.ini -/language/en-GB/en-GB.mod_articles_popular.sys.ini -/language/en-GB/en-GB.mod_banners.ini -/language/en-GB/en-GB.mod_banners.sys.ini -/language/en-GB/en-GB.mod_breadcrumbs.ini -/language/en-GB/en-GB.mod_breadcrumbs.sys.ini -/language/en-GB/en-GB.mod_custom.ini -/language/en-GB/en-GB.mod_custom.sys.ini -/language/en-GB/en-GB.mod_feed.ini -/language/en-GB/en-GB.mod_feed.sys.ini -/language/en-GB/en-GB.mod_finder.ini -/language/en-GB/en-GB.mod_finder.sys.ini -/language/en-GB/en-GB.mod_footer.ini -/language/en-GB/en-GB.mod_footer.sys.ini -/language/en-GB/en-GB.mod_languages.ini -/language/en-GB/en-GB.mod_languages.sys.ini -/language/en-GB/en-GB.mod_login.ini -/language/en-GB/en-GB.mod_login.sys.ini -/language/en-GB/en-GB.mod_menu.ini -/language/en-GB/en-GB.mod_menu.sys.ini -/language/en-GB/en-GB.mod_random_image.ini -/language/en-GB/en-GB.mod_random_image.sys.ini -/language/en-GB/en-GB.mod_related_items.ini -/language/en-GB/en-GB.mod_related_items.sys.ini -/language/en-GB/en-GB.mod_search.ini -/language/en-GB/en-GB.mod_search.sys.ini -/language/en-GB/en-GB.mod_stats.ini -/language/en-GB/en-GB.mod_stats.sys.ini -/language/en-GB/en-GB.mod_syndicate.ini -/language/en-GB/en-GB.mod_syndicate.sys.ini -/language/en-GB/en-GB.mod_tags_popular.ini -/language/en-GB/en-GB.mod_tags_popular.sys.ini -/language/en-GB/en-GB.mod_tags_similar.ini -/language/en-GB/en-GB.mod_tags_similar.sys.ini -/language/en-GB/en-GB.mod_users_latest.ini -/language/en-GB/en-GB.mod_users_latest.sys.ini -/language/en-GB/en-GB.mod_weblinks.ini -/language/en-GB/en-GB.mod_weblinks.sys.ini -/language/en-GB/en-GB.mod_whosonline.ini -/language/en-GB/en-GB.mod_whosonline.sys.ini -/language/en-GB/en-GB.mod_wrapper.ini -/language/en-GB/en-GB.mod_wrapper.sys.ini -/language/en-GB/en-GB.tpl_atomic.ini -/language/en-GB/en-GB.tpl_atomic.sys.ini -/language/en-GB/en-GB.tpl_beez3.ini -/language/en-GB/en-GB.tpl_beez3.sys.ini -/language/en-GB/en-GB.tpl_beez5.ini -/language/en-GB/en-GB.tpl_beez5.sys.ini -/language/en-GB/en-GB.tpl_beez_20.ini -/language/en-GB/en-GB.tpl_beez_20.sys.ini -/language/en-GB/en-GB.tpl_protostar.ini -/language/en-GB/en-GB.tpl_protostar.sys.ini -/language/en-GB/en-GB.xml -/language/en-GB/install.xml -/language/overrides/* -/language/index.html -/layouts/joomla/* -/layouts/libraries/* -/layouts/plugins/* -/layouts/index.html -/libraries/cms/* -/libraries/fof/* -/libraries/idna_convert/* -/libraries/joomla/* -/libraries/legacy/* -/libraries/php-encryption/* -/libraries/phpass/* -/libraries/phpmailer/* -/libraries/phputf8/* -/libraries/simplepie/* -/libraries/src/* -/libraries/vendor/* -/libraries/classmap.php -/libraries/cms.php -/libraries/import.legacy.php -/libraries/import.php -/libraries/index.html -/libraries/loader.php -/media/cms/* -/media/com_associations/* -/media/com_contact/* -/media/com_content/* -/media/com_contenthistory/* -/media/com_fields/* -/media/com_finder/* -/media/com_joomlaupdate/* -/media/com_menus/* -/media/com_modules/* -/media/com_wrapper/* -/media/contacts/* -/media/editors/* -/media/jui/* -/media/mailto/* -/media/media/* -/media/mod_languages/* -/media/mod_sampledata/* -/media/overrider/* -/media/plg_captcha_recaptcha/* -/media/plg_captcha_recaptcha_invisible/* -/media/plg_quickicon_extensionupdate/* -/media/plg_quickicon_joomlaupdate/* -/media/plg_quickicon_privacycheck/* -/media/plg_system_highlight/* -/media/plg_system_stats/* -/media/plg_twofactorauth_totp/* -/media/system/* -/media/index.html -/modules/mod_articles_archive/* -/modules/mod_articles_categories/* -/modules/mod_articles_category/* -/modules/mod_articles_latest/* -/modules/mod_articles_news/* -/modules/mod_articles_popular/* -/modules/mod_banners/* -/modules/mod_breadcrumbs/* -/modules/mod_custom/* -/modules/mod_feed/* -/modules/mod_finder/* -/modules/mod_footer/* -/modules/mod_languages/* -/modules/mod_login/* -/modules/mod_menu/* -/modules/mod_random_image/* -/modules/mod_related_items/* -/modules/mod_search/* -/modules/mod_stats/* -/modules/mod_syndicate/* -/modules/mod_tags_popular/* -/modules/mod_tags_similar/* -/modules/mod_users_latest/* -/modules/mod_whosonline/* -/modules/mod_wrapper/* -/modules/index.html -/plugins/actionlog/joomla/* -/plugins/authentication/cookie/* -/plugins/authentication/example/* -/plugins/authentication/gmail/* -/plugins/authentication/joomla/* -/plugins/authentication/ldap/* -/plugins/captcha/recaptcha/* -/plugins/captcha/recaptcha_invisible/* -/plugins/content/confirmconsent/* -/plugins/content/contact/* -/plugins/content/emailcloak/* -/plugins/content/example/* -/plugins/content/fields/* -/plugins/content/finder/* -/plugins/content/geshi/* -/plugins/content/joomla/* -/plugins/content/loadmodule/* -/plugins/content/pagebreak/* -/plugins/content/pagenavigation/* -/plugins/content/vote/* -/plugins/editors/codemirror/* -/plugins/editors/none/* -/plugins/editors/tinymce/* -/plugins/editors-xtd/article/* -/plugins/editors-xtd/contact/* -/plugins/editors-xtd/fields/* -/plugins/editors-xtd/image/* -/plugins/editors-xtd/menu/* -/plugins/editors-xtd/module/* -/plugins/editors-xtd/pagebreak/* -/plugins/editors-xtd/readmore/* -/plugins/extension/example/* -/plugins/extension/joomla/* -/plugins/fields/calendar/* -/plugins/fields/checkboxes/* -/plugins/fields/color/* -/plugins/fields/editor/* -/plugins/fields/imagelist/* -/plugins/fields/integer/* -/plugins/fields/list/* -/plugins/fields/media/* -/plugins/fields/radio/* -/plugins/fields/repeatable/* -/plugins/fields/sql/* -/plugins/fields/text/* -/plugins/fields/textarea/* -/plugins/fields/url/* -/plugins/fields/user/* -/plugins/fields/usergrouplist/* -/plugins/finder/categories/* -/plugins/finder/contacts/* -/plugins/finder/content/* -/plugins/finder/newsfeeds/* -/plugins/finder/tags/* -/plugins/installer/folderinstaller/* -/plugins/installer/packageinstaller/* -/plugins/installer/urlinstaller/* -/plugins/privacy/actionlogs/* -/plugins/privacy/consents/* -/plugins/privacy/contact/* -/plugins/privacy/content/* -/plugins/privacy/message/* -/plugins/privacy/user/* -/plugins/quickicon/extensionupdate/* -/plugins/quickicon/joomlaupdate/* -/plugins/quickicon/phpversioncheck/* -/plugins/quickicon/privacycheck/* -/plugins/quickicon/index.html -/plugins/sampledata/blog/* -/plugins/search/categories/* -/plugins/search/contacts/* -/plugins/search/content/* -/plugins/search/newsfeeds/* -/plugins/search/tags/* -/plugins/search/weblinks/* -/plugins/search/index.html -/plugins/system/actionlogs/* -/plugins/system/cache/* -/plugins/system/debug/* -/plugins/system/fields/* -/plugins/system/highlight/* -/plugins/system/languagecode/* -/plugins/system/languagefilter/* -/plugins/system/log/* -/plugins/system/logout/* -/plugins/system/logrotation/* -/plugins/system/p3p/* -/plugins/system/privacyconsent/* -/plugins/system/redirect/* -/plugins/system/remember/* -/plugins/system/sef/* -/plugins/system/sessiongc/* -/plugins/system/stats/* -/plugins/system/updatenotification/* -/plugins/system/index.html -/plugins/twofactorauth/totp/* -/plugins/twofactorauth/yubikey/* -/plugins/user/contactcreator/* -/plugins/user/example/* -/plugins/user/joomla/* -/plugins/user/profile/* -/plugins/user/terms/* -/plugins/user/index.html -/plugins/index.html -/templates/beez3/* -/templates/protostar/* -/templates/system/* -/templates/index.html -/tmp/* -/configuration.php -/htaccess.txt -/index.php -/joomla.xml -/LICENSE.txt -/README.txt -/robots.txt.dist -/web.config.txt - -### Drupal template -# gitignore template for Drupal 8 projects -# -# earlier versions of Drupal are tracked in `community/PHP/` -# -# follows official upstream conventions: -# https://www.drupal.org/docs/develop/using-composer - -# Ignore configuration files that may contain sensitive information -/web/sites/*/*settings*.php -/web/sites/*/*services*.yml - -# Ignore paths that may contain user-generated content -/web/sites/*/files -/web/sites/*/public -/web/sites/*/private -/web/sites/*/files-public -/web/sites/*/files-private - -# Ignore paths that may contain temporary files -/web/sites/*/translations -/web/sites/*/tmp -/web/sites/*/cache - -# Ignore drupal core (if not versioning drupal sources) -/web/vendor -/web/core -/web/modules/README.txt -/web/profiles/README.txt -/web/sites/development.services.yml -/web/sites/example.settings.local.php -/web/sites/example.sites.php -/web/sites/README.txt -/web/themes/README.txt -/web/.csslintrc -/web/.editorconfig -/web/.eslintignore -/web/.eslintrc.json -/web/.gitattributes -/web/.htaccess -/web/.ht.router.php -/web/autoload.php -/web/composer.json -/web/composer.lock -/web/example.gitignore -/web/index.php -/web/INSTALL.txt -/web/LICENSE.txt -/web/README.txt -/web/robots.txt -/web/update.php -/web/web.config - -# Ignore vendor dependencies and scripts -/vendor -/composer.phar -/composer -/robo.phar -/robo -/drush.phar -/drush -/drupal.phar -/drupal - -### GitBook template -# Node rules: -## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) - -## Dependency directory -## Commenting this out is preferred by some people, see -## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git - -# Book build output -_book - -# eBook build output -*.epub -*.mobi -*.pdf - -### Idris template -# Idris 2 -*.ttc -*.ttm - -# Idris 1 -*.ibc - -### Symfony template -# Cache and logs (Symfony2) -/app/cache/* -/app/logs/* -!app/cache/.gitkeep -!app/logs/.gitkeep - -# Email spool folder -/app/spool/* - -# Cache, session files and logs (Symfony3) - -# Logs (Symfony4) -/var/log/* -!var/log/.gitkeep - -# Parameters -/app/config/parameters.ini - -# Managed by Composer -/app/bootstrap.php.cache -/var/bootstrap.php.cache -!bin/console -!bin/symfony_requirements - -# Assets and user uploads -/web/uploads/ - -# PHPUnit -/app/phpunit.xml - -# Build data - -# Composer PHAR - -# Backup entities generated with doctrine:generate:entities command -**/Entity/*~ - -# Embedded web-server pid file -/.web-server-pid - -### Magento template -#--------------------------# -# Magento Default Files # -#--------------------------# - - - - - - - - - - - - - - -### VisualStudio template -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Ww][Ii][Nn]32/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# ASP.NET Scaffolding -ScaffoldingReadMe.txt - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_h.h -*.meta -*.iobj -*.ipdb -*.pgc -*.pgd -*.rsp -*.tli -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.tlog -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*.json -coverage*.xml -coverage*.info - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio 6 auto-generated project file (contains which files were open etc.) -*.vbp - -# Visual Studio 6 workspace and project file (working project files containing files to include in project) -*.dsw -*.dsp - -# Visual Studio 6 technical files - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# Visual Studio History (VSHistory) files -.vshistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -# Fody - auto-generated XML schema -FodyWeavers.xsd - -# VS Code files for those working on multiple tools -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -*.code-workspace - -# Local History for Visual Studio Code -.history/ - -# Windows Installer files from build outputs -*.cab -*.msi -*.msix -*.msm -*.msp - -# JetBrains Rider -*.sln.iml - -### Yii template -assets/* -!assets/.gitignore -protected/runtime/* -!protected/runtime/.gitignore -protected/data/*.db -themes/classic/views/ - -### AppEngine template -# Google App Engine generated folder -appengine-generated/ - -### KiCad template -# For PCBs designed using KiCad: https://www.kicad.org/ -# Format documentation: https://kicad.org/help/file-formats/ - -# Temporary files -*.000 -*.bck -*.kicad_pcb-bak -*.kicad_sch-bak -*-backups -*.kicad_prl -*.sch-bak -_autosave-* -*-save.pro -*-save.kicad_pcb -fp-info-cache - -# Netlist files (exported from Eeschema) -*.net - -# Autorouter files (exported from Pcbnew) -*.dsn -*.ses - -# Exported BOM files -*.xml -*.csv - -### Go.AllowList template -# Allowlisting gitignore template for GO projects prevents us -# from adding various unwanted local files, such as generated -# files, developer configurations or IDE-specific files etc. -# -# Recommended: Go.AllowList.gitignore - -# Ignore everything -* - -# But not these files... - -!*.go -!go.sum -!go.mod - -!README.md -!LICENSE - -# !Makefile - -# ...even if they are in subdirectories -!*/ - -### Swift template -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## User settings -xcuserdata/ - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 - -## Obj-C/Swift specific -*.hmap - -## App packaging -*.ipa -*.dSYM.zip -*.dSYM - -## Playgrounds -timeline.xctimeline -playground.xcworkspace - -# Swift Package Manager -# -# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. -# Packages/ -# Package.pins -# Package.resolved -# *.xcodeproj -# -# Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata -# hence it is not needed unless you have added a package configuration file to your project -# .swiftpm - -.build/ - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ -# -# Add this line if you want to avoid checking in source code from the Xcode workspace -# *.xcworkspace - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - -Carthage/Build/ - -# Accio dependency management -Dependencies/ -.accio/ - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots/**/*.png -fastlane/test_output - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - -iOSInjectionProject/ - -### ForceDotCom template -.settings -salesforce.schema -Referenced Packages - -### LemonStand template -boot.php -index.php -install.php -/config/* -!/config/config.php -/controllers/* -/init/* -/logs/* -/phproad/* -/temp/* -/uploaded/* -/installer_files/* -/modules/backend/* -/modules/blog/* -/modules/cms/* -/modules/core/* -/modules/session/* -/modules/shop/* -/modules/system/* -/modules/users/* -# add content_*.php if you don't want erase client changes to content - -### Elixir template -/_build -/cover -/deps -/doc -/.fetch -*.ez -/config/*.secret.exs -.elixir_ls/ - -### Jigsaw template -# gitignore template for Jigsaw Static Site Generator -# -# website - https://jigsaw.tighten.co - -# Ignore build folder -build_* - -### Jekyll template -_site/ -.jekyll-cache/ -.jekyll-metadata -# Ignore folders generated by Bundler -.bundle/ -vendor/ - -### C template -# Prerequisites -*.d - -# Object files -*.ko -*.elf - -# Linker output -*.map -*.exp - -# Precompiled Headers -*.gch - -# Libraries -*.la -*.lo - -# Shared objects (inc. Windows DLLs) -*.so.* - -# Executables -*.i*86 -*.x86_64 -*.hex - -# Debug files -*.dSYM/ -*.su -*.idb - -# Kernel Module Compile Results -*.mod* -*.cmd -.tmp_versions/ -modules.order -Module.symvers -Mkfile.old -dkms.conf - -### Qt template -# C++ objects and libs -*.slo -*.lai - -# Qt-es -object_script.*.Release -object_script.*.Debug -*_plugin_import.cpp -/.qmake.cache -/.qmake.stash -*.pro.user -*.pro.user.* -*.qbs.user -*.qbs.user.* -*.moc -moc_*.cpp -moc_*.h -qrc_*.cpp -ui_*.h -*.qmlc -*.jsc -Makefile* -*build-* -*.qm -*.prl - -# Qt unit tests -target_wrapper.* - -# QtCreator -*.autosave - -# QtCreator Qml -*.qmlproject.user -*.qmlproject.user.* - -# QtCreator CMake -CMakeLists.txt.user* - -# QtCreator 4.8< compilation database - -# QtCreator local machine specific files for imported projects -*creator.user* - -*_qmlcache.qrc - -### D template -# Compiled Object files - -# Compiled Dynamic libraries - -# Compiled Static libraries - -# Executables - -# DUB -.dub -docs.json -__dummy.html -docs/ - -# Code coverage -*.lst - -### PlayFramework template -# Ignore Play! working directory # -bin/ -/db -.eclipse -/logs/ -/modules -/project/project -/project/target -/target -tmp/ -test-result -server.pid -*.eml -/dist/ - -### Lithium template -libraries/* -resources/tmp/* - -### uVision template -# git ignore file for Keil µVision Project - -# µVision 5 and µVision 4 Project screen layout file -*.uvguix.* -*.uvgui.* - -# Listing Files -*.i -*.m51 -*.m66 - -# Object Files -*.axf -*.b[0-2][0-9] -*.b3[0-1] -*.build_log.htm -*.crf -*.dep -*.htm -*.iex -*.lnp - -# Firmware Files -*.bin -*.h86 - -# Build Files -.bat - -# Debugger Files -.ini - -# JLink Files -JLinkLog.txt - -# Other Files - -### Plone template -*.pyo -*.tmp* -*.mo -*.egg -*.EGG -*.egg-info -*.EGG-INFO -.*.cfg -develop-eggs/ -downloads/ -eggs/ -fake-eggs/ -parts/ -var/ - -### R template -# History files -.Rhistory -.Rapp.history - -# Session Data files -.RData -.RDataTmp - -# User-specific files -.Ruserdata - -# Example code in package build process -*-Ex.R - -# Output files from R CMD build -/*.tar.gz - -# Output files from R CMD check -/*.Rcheck/ - -# RStudio files -.Rproj.user/ - -# produced vignettes -vignettes/*.html -vignettes/*.pdf - -# OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 -.httr-oauth - -# knitr and R markdown default cache directories -*_cache/ -/cache/ - -# Temporary files created by R markdown -*.utf8.md -*.knit.md - -# R Environment Variables -.Renviron - -# pkgdown site - -# translation temp files -po/*~ - -# RStudio Connect folder -rsconnect/ - -### Strapi template -############################ -# OS X -############################ - -.AppleDouble -.LSOverride -Icon -.Spotlight-V100 -.Trashes -._* - - -############################ -# Linux -############################ - - - -############################ -# Windows -############################ - -ehthumbs.db -Desktop.ini -$RECYCLE.BIN/ - - -############################ -# Packages -############################ - -*.7z -*.dat -*.dmg -*.gz -*.iso -*.rar -*.tar -*.com -*.swo -*.swp -*.swn -*.swm - - -############################ -# Logs and databases -############################ - -.tmp -*.sql -*.sqlite - - -############################ -# Misc. -############################ - -*# -.idea -nbproject - - -############################ -# Node.js -############################ - -lcov.info -results -build -.node_history -package-lock.json -**/package-lock.json -!docs/package-lock.json -*.heapsnapshot - - -############################ -# Tests -############################ - -testApp -cypress/screenshots -cypress/videos - - -############################ -# Documentation -############################ - - -############################ -# Builds -############################ - -packages/strapi-generate-new/files/public/ - -############################ -# Example app -############################ - -.dev -# *.cache - -############################ -# Visual Studio Code -############################ - -front-workspace.code-workspace - -### Terraform template -# Local .terraform directories -**/.terraform/* - -# .tfstate files -*.tfstate -*.tfstate.* - -# Crash log files -crash.log -crash.*.log - -# Exclude all .tfvars files, which are likely to contain sensitive data, such as -# password, private keys, and other secrets. These should not be part of version -# control as they are data points which are potentially sensitive and subject -# to change depending on the environment. -*.tfvars -*.tfvars.json - -# Ignore override files as they are usually used to override resources locally and so -# are not checked in -override.tf -override.tf.json -*_override.tf -*_override.tf.json - -# Include override files you do wish to add to version control using negated pattern -# !example_override.tf - -# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan -# example: *tfplan* - -# Ignore CLI configuration files -.terraformrc -terraform.rc - -### Drupal7 template -# gitignore template for Drupal 7 projects -# -# It is recommended that you use `Drupal.gitignore` as this is the latest version - -# Ignore configuration files that may contain sensitive information. -sites/*/*settings*.php -sites/example.sites.php - -# Ignore paths that contain generated content. -files/ -sites/*/files -sites/*/private -sites/*/translations - -# Ignore default text files -robots.txt -/CHANGELOG.txt -/COPYRIGHT.txt -/INSTALL*.txt -/MAINTAINERS.txt -/UPGRADE.txt -sites/README.txt -sites/all/libraries/README.txt -sites/all/modules/README.txt -sites/all/themes/README.txt - -# Ignore everything but the "sites" folder ( for non core developer ) -web.config -authorize.php -cron.php -update.php -xmlrpc.php -/includes -/misc -/profiles -/scripts -/themes - -### V template -*.tmp.c - -### Objective-C template -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## User settings - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) - -## Obj-C/Swift specific - -## App packaging - -# CocoaPods -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# Pods/ -# -# Add this line if you want to avoid checking in source code from the Xcode workspace -# *.xcworkspace - -# Carthage -# -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts - - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. -# Instead, use fastlane to re-generate the screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/#source-control - - -# Code Injection -# -# After new code Injection tools there's a generated folder /iOSInjectionProject -# https://github.com/johnno1962/injectionforxcode - - -### Textpattern template -css.php -rpc/ -sites/site*/admin/ -sites/site*/private/ -sites/site*/public/admin/ -sites/site*/public/setup/ -sites/site*/public/theme/ -textpattern/ -HISTORY.txt -README.txt - -### Beef template -recovery/ -BeefSpace_User.toml - -### Agda template -*.agdai -MAlonzo/** - -### Godot template -# Godot 4+ specific ignores -.godot/ - -# Godot-specific ignores -.import/ -export.cfg -export_presets.cfg - -# Imported translations (automatically generated from CSV files) -*.translation - -# Mono-specific ignores -.mono/ -data_*/ -mono_crash.*.json - -### Pimcore template -# gitignore template for Pimcore CMS - -# pimcore source files -/pimcore - -# asset files -/website/var/assets/* - -# backups -/website/var/backup/* - -# file cache -/website/var/cache/* - -# generated PHP classes, keep definition files (.psf) -/website/var/classes/Object* -!/website/var/classes/objectbricks - -# various configuration files -/website/var/config/system.xml -/website/var/config/cache.xml -/website/var/config/robots.txt -/website/var/config/Geo* -/website/var/config/object/* -/website/var/config/portal/* -/website/var/config/sqlreport/* - -# sent e-mail log files -/website/var/email/* - -# log files -/website/var/log/*.log - -# serialized recyclebin files -/website/var/recyclebin/* - -# search plugin -/website/var/search/* - -# various temp files -/website/var/system/* -/website/var/tmp/* - -# serialized version files -/website/var/versions/asset/* -/website/var/versions/document/* -/website/var/versions/object/* - -# user profile images -/website/var/user-image/* - -# keep .dummy files -!.dummy - -### Composer template - -# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control -# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file -# composer.lock - -### Java template -# Compiled class file - -# Log file - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.war -*.nar -*.ear -*.tar.gz - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* -replay_pid* - -### SugarCRM template -## SugarCRM -# Ignore custom .htaccess stuff. -# Ignore the cache directory completely. -# This will break the current behaviour. Which was often leading to -# the misuse of the repository as backup replacement. -# For development the cache directory can be safely ignored and -# therefore it is ignored. -!/cache/index.html -# Ignore some files and directories from the custom directory. -/custom/history/ -/custom/modulebuilder/ -/custom/working/ -/custom/modules/*/Ext/ -/custom/application/Ext/ -# Custom configuration should also be ignored. -/config_override.php -# The silent upgrade scripts aren't needed. -/silentUpgrade*.php -# Logs files can safely be ignored. -# Ignore the new upload directories. -!/upload/index.html -/upload_backup/ - -### Coq template -.*.aux -.*.d -*.glob -*.ml.d -*.ml4.d -*.mlg.d -*.mli.d -*.mllib.d -*.mlpack.d -*.v.d -*.vio -*.vo -*.vok -*.vos -.coq-native -.csdp.cache -.lia.cache -.nia.cache -.nlia.cache -.nra.cache -csdp.cache -lia.cache -nia.cache -nlia.cache -nra.cache -native_compute_profile_*.data - -# generated timing files -*.timing.diff -*.v.after-timing -*.v.before-timing -*.v.timing -time-of-build-after.log -time-of-build-before.log -time-of-build-both.log -time-of-build-pretty.log - -### GWT template - -# Package Files # - -# gwt caches and compiled units # -war/gwt_bree/ -gwt-unitCache/ - -# boilerplate generated classes # -.apt_generated/ - -# more caches and things from deploy # -war/WEB-INF/deploy/ -war/WEB-INF/classes/ - -#compilation logs -.gwt/ - -#gwt junit compilation files -www-test/ - -#old GWT (1.5) created this dir -.gwt-tmp/ - -### B4X template -**/Objects -**/AutoBackups - -### Vue template -# gitignore template for Vue.js projects -# -# Recommended template: Node.gitignore - -# TODO: where does this rule come from? -docs/_book - -# TODO: where does this rule come from? -test/ - -### Sass template -*.css.map -*.sass.map -*.scss.map - -### Stella template -# Atari 2600 (Stella) support for multiple assemblers -# - DASM -# - CC65 - -# Assembled binaries and object directories -a.out -*.a26 - -# Add in special Atari 7800-based binaries for good measure -*.a78 - -### Exercism template -# gitignore template for Exercism project -# website: https://exercism.io/ - -# Ignore .exercism folder which contain sensitive data -.exercism - -### Delphi template -# Uncomment these types if you want even more clean repository. But be careful. -# It can make harm to an existing project source. Read explanations below. -# -# Resource files are binaries containing manifest, project icon and version info. -# They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. -#*.res -# -# Type library file (binary). In old Delphi versions it should be stored. -# Since Delphi 2009 it is produced from .ridl file and can safely be ignored. -#*.tlb -# -# Diagram Portfolio file. Used by the diagram editor up to Delphi 7. -# Uncomment this if you are not using diagrams or use newer Delphi version. -#*.ddp -# -# Visual LiveBindings file. Added in Delphi XE2. -# Uncomment this if you are not using LiveBindings Designer. -#*.vlb -# -# Deployment Manager configuration file for your project. Added in Delphi XE2. -# Uncomment this if it is not mobile development and you do not use remote debug feature. -#*.deployproj -# -# C++ object files produced when C/C++ Output file generation is configured. -# Uncomment this if you are not using external objects (zlib library for example). -#*.obj -# - -# Delphi compiler-generated binaries (safe to delete) -*.bpl -*.bpi -*.dcp -*.apk -*.drc -*.dres -*.rsm -*.tds -*.dcu -*.ocx - -# Delphi autogenerated files (duplicated info) -*.cfg -*.hpp -*Resource.rc - -# Delphi local files (user-specific info) -*.local -*.identcache -*.projdata -*.tvsconfig -*.dsk - -# Delphi history and backups -__history/ -__recovery/ -*.~* - -# Castalia statistics file (since XE7 Castalia is distributed with Delphi) -*.stat - -# Boss dependency manager vendor folder https://github.com/HashLoad/boss -modules/ - -### Kotlin template -# Compiled class file - -# Log file - -# BlueJ files - -# Mobile Tools for Java (J2ME) - -# Package Files # - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml - -### CUDA template -*.ii -*.gpu -*.ptx -*.cubin -*.fatbin - -### Julia template -# Files generated by invoking Julia with --code-coverage -*.jl.cov -*.jl.*.cov - -# Files generated by invoking Julia with --track-allocation -*.jl.mem - -# System-specific files and directories generated by the BinaryProvider and BinDeps packages -# They contain absolute paths specific to the host computer, and so should not be committed -deps/deps.jl -deps/build.log -deps/downloads/ -deps/usr/ -deps/src/ - -# Build artifacts for creating documentation generated by the Documenter package -docs/build/ -docs/site/ - -# File generated by Pkg, the package manager, based on a corresponding Project.toml -# It records a fixed state of all packages used by the project. As such, it should not be -# committed for packages, but should be committed for applications that require a static -# environment. -Manifest.toml - -### Red template -# gitignore template for Red programming language -# website: http://www.red-lang.org/ - -# Red Compiled code -*.red - -# Libraries -crush.dll -crush.dylib -crush.so - -# Files generated during test -quick-test/quick-test.log -quick-test/runnable/ -system/tests/source/units/auto-tests/ -tests/source/units/auto-tests/ - -### Logtalk template -# gitignore template for LogTalk, a programming language that builds upon Prolog -# website: https://logtalk.org/ - -# Logtalk temporary file directories -.lgt_tmp/ -lgt_tmp/ - -# Logtalk default unit testing and doclet results and logs directories -logtalk_tester_logs/ -logtalk_doclet_logs/ - -# backend Prolog compiler temporary files -.pl-history -*.xwam -*.qo -*.ql -*.itf -*.po - -### Nanoc template -# For projects using Nanoc (http://nanoc.ws/) - -# Default location for output (needs to match output_dir's value found in nanoc.yaml) - -# Temporary file directory -tmp/nanoc/ - -# Crash Log - -### AtmelStudio template -## Ignore Atmel Studio temporary files and build results -# https://www.microchip.com/mplab/avr-support/atmel-studio-7 - -# Atmel Studio is powered by an older version of Visual Studio, -# so most of the project and solution files are the same as VS files, -# only prefixed by an `at`. - -#Build Directories - -#Build Results -*.eep -*.srec - -#User Specific Files -*.atsuo - -### ArchLinuxPackages template -*.tar.* -*.log.* -*.sig - -pkg/ -src/ - -### Puppet template -# gitignore template for Puppet modules -# website: https://forge.puppet.com/ - -# Built packages -pkg/* - -# Should run on multiple platforms so don't check in -Gemfile.lock - -# Tests -spec/fixtures/* -coverage/* - -# Third-party -vendor/* -.bundle/* - -### Ada template -# Object file - -# Ada Library Information -*.ali - -### Opa template -_build -_tracks - -opa-debug-js - -*.opp -*.opx -*.opx.broken -*.dump -*.api -*.api-txt - -### Scheme template -*.ss~ -*.ss#* -.#*.ss - -*.scm~ -*.scm#* -.#*.scm - -### IAR_EWARM template -# gitignore template for the IAR EWARM -# website: https://www.iar.com/knowledge/support/technical-notes/ide/which-files-should-be-version-controlled/ - -# Some tools will put the EWARM files -# under a subdirectory with the same name -# as the configuration. -# Example -# EWARM/Config1/Obj /List /Exe -# EWARM/Config2/Obj /List /Exe -EWARM/**/Obj -EWARM/**/List -EWARM/**/Exe - -# Autogenerated project files -*.ewt - -# Autogenerated folder for debugger -EWARM/settings - -### Elm template -# elm-package generated files -elm-stuff -# elm-repl generated files -repl-temp-* - -### Bitrix template -# gitignore template for 1C-Bitrix, a PHP-based CMS -# website: https://www.1c-bitrix.ru - -#Exclude all of core files -/bitrix/* - -#But not the templates and non bitrix components -!/bitrix/templates -!/bitrix/components -/bitrix/components/bitrix - -#Exclude bitrix gadgets -!/bitrix/gadgets -/bitrix/gadgets/bitrix - -#User can use that directory to store some stuff, but it's not really recommended, just use /local instead of this -!/bitrix/php_interface/ - -#Exclude database configs -/bitrix/php_interface/dbconn.php - -#Exclude default file storage directory -/upload/ - -### DM template -*.dmb -*.rsc -*.int -*.lk - -### Umbraco template -## Ignore Umbraco files/folders generated for each instance -## -## Get latest from https://github.com/github/gitignore/blob/main/Umbraco.gitignore - -# Note: VisualStudio gitignore rules may also be relevant - -# Umbraco -# Ignore unimportant folders generated by Umbraco -**/App_Data/Logs/ -**/App_Data/[Pp]review/ -**/App_Data/TEMP/ -**/App_Data/NuGetBackup/ - -# Ignore Umbraco content cache file -**/App_Data/umbraco.config - -## this [Uu]mbraco/ folder should be created by cmd like `Install-Package UmbracoCms -Version 8.5.3` -## you can find your Umbraco version in your Web.config. (i.e. ) -## Uncomment this line if you think it fits the way you work on your project. -## **/[Uu]mbraco/ - -## The [Mm]edia/ folder contains content. Content may vary by environment and should therefore not be added to source control. -## Uncomment this line if you think it fits the way you work on your project. -## **/[Mm]edia/ - -# Don't ignore Umbraco packages (VisualStudio.gitignore mistakes this for a NuGet packages folder) -# Make sure to include details from VisualStudio.gitignore BEFORE this -!**/App_Data/[Pp]ackages/* -!**/[Uu]mbraco/[Dd]eveloper/[Pp]ackages/* -!**/[Uu]mbraco/[Vv]iews/[Pp]ackages/* - -# ImageProcessor DiskCache -**/App_Data/cache/ - -# Ignore the Models Builder models out of date flag -**/ood.flag - -# NEW for version 9 .Net 5 (Core) -#ignore umbraco backoffice assest from wwwroot -**/wwwroot/umbraco/ - -# SQLite files -*.sqlite.db* - -#ignore umbraco data/views/settings -**/umbraco/ - -#include default location for modelsbuilder output -!**/umbraco/models - -#include default location for packages -!**/umbraco/Data/packages - -### TurboGears2 template -*.py[co] - -# Default development database -devdata.db - -# Default data directory -data/* - -# Packages - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -### Fortran template -# Prerequisites - -# Compiled Object files - -# Precompiled Headers - -# Compiled Dynamic libraries - -# Fortran module files -*.mod -*.smod - -# Compiled Static libraries - -# Executables - -### ThinkPHP template -# gitignore template for ThinkPHP v3.2.3 -# website: http://www.thinkphp.cn/ - -# Logs and Cache files -/Application/Runtime/ - -# Common configure file -/Application/Common/Conf/config.php -### WordPress template -# Wordpress - ignore core, configuration, examples, uploads and logs. -# https://github.com/github/gitignore/blob/main/WordPress.gitignore - -# Core -# -# Note: if you want to stage/commit WP core files -# you can delete this whole section/until Configuration. -/wp-admin/ -/wp-content/index.php -/wp-content/languages -/wp-content/plugins/index.php -/wp-content/themes/index.php -/wp-includes/ -/license.txt -/readme.html -/wp-*.php -/xmlrpc.php - -# Configuration -wp-config.php - -# Example themes -/wp-content/themes/twenty*/ - -# Example plugin -/wp-content/plugins/hello.php - -# Uploads -/wp-content/uploads/ - -# Log files - -# htaccess - -# All plugins -# -# Note: If you wish to whitelist plugins, -# uncomment the next line -#/wp-content/plugins - -# All themes -# -# Note: If you wish to whitelist themes, -# uncomment the next line -#/wp-content/themes -### Racket template -compiled/ -/doc/ -\#* -.\#* - -### SCons template -# for projects that use SCons for building: http://http://www.scons.org/ -.sconsign.dblite - -# When configure fails, SCons outputs these -config.log -.sconf_temp - -### Typo3 template -## TYPO3 v6.2 -# Ignore several upload and file directories. -/fileadmin/user_upload/ -/fileadmin/_temp_/ -/fileadmin/_processed_/ -/uploads/ -# Ignore cache -/typo3conf/temp_CACHED* -/typo3conf/temp_fieldInfo.php -/typo3conf/deprecation_*.log -/typo3conf/ENABLE_INSTALL_TOOL -/typo3conf/realurl_autoconf.php -/FIRST_INSTALL -# Ignore system folders, you should have them symlinked. -# If not comment out the following entries. -/typo3 -/typo3_src -/typo3_src-* -/Packages -# Ignore temp directory. -/typo3temp/ - -### CodeSniffer template -# gitignore for the PHP Codesniffer framework -# website: https://github.com/squizlabs/PHP_CodeSniffer -# -# Recommended template: PHP.gitignore - -/wpcs/* - -### UnrealEngine template -# Visual Studio 2015 user specific files - -# Compiled Object files - -# Precompiled Headers - -# Compiled Dynamic libraries - -# Fortran module files - -# Compiled Static libraries - -# Executables - -# These project files can be generated by the engine -*.xcodeproj -*.xcworkspace -*.VC.opendb - -# Precompiled Assets -SourceArt/**/*.png -SourceArt/**/*.tga - -# Binary Files -Binaries/* -Plugins/*/Binaries/* - -# Builds -Build/* - -# Whitelist PakBlacklist-.txt files -!Build/*/ -Build/*/** -!Build/*/PakBlacklist*.txt - -# Don't ignore icon files in Build -!Build/**/*.ico - -# Built data for maps -*_BuiltData.uasset - -# Configuration files generated by the Editor -Saved/* - -# Compiled source files for the engine to use -Intermediate/* -Plugins/*/Intermediate/* - -# Cache files for the editor to use -DerivedDataCache/* - -### FuelPHP template -# the composer package lock file and install directory -# Commit your application's lock file http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file -# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file -# /composer.lock -/fuel/vendor - -# the fuelphp document -/docs/ - -# you may install these packages with `oil package`. -# http://fuelphp.com/docs/packages/oil/package.html -# /fuel/packages/auth/ -# /fuel/packages/email/ -# /fuel/packages/oil/ -# /fuel/packages/orm/ -# /fuel/packages/parser/ - -# dynamically generated files -/fuel/app/logs/*/*/* -/fuel/app/cache/*/* -/fuel/app/config/crypt.php - -### Python template -# Byte-compiled / optimized / DLL files -*$py.class - -# C extensions - -# Distribution / packaging -.Python -.eggs/ -lib/ -lib64/ -sdist/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage.* -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.pot - -# Django stuff: -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ - -# Jupyter Notebook - -# IPython - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -### Elisp template -# Compiled -*.elc - -# Packaging -.cask - -# Backup files - -# Undo-tree save-files -*.~undo-tree - -### Fancy template -*.rbc -*.fyc - -### Finale template -*.db -*.avi -*.ps -*.mid -*.midi -*.mp3 -*.aif -*.wav -# Some versions of Finale have a bug and randomly save extra copies of -# the music source as " copy.mus" -*copy.mus - -### SketchUp template -*.skb - -### LensStudio template -# gitignore template for LensStudio -# website: https://lensstudio.snapchat.com/ - -# macOS/IDE # - -# js # -yarn.lock - -# Python # -[Bb]ackup* - -### PureScript template -# Dependencies -.psci_modules -.spago +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# AWS User-specific +.idea/**/aws.xml # Generated files -.psci -output +.idea/**/contentModel.xml -### EPiServer template -###################### -## EPiServer Files -###################### -*License.config +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml -### Grails template -# .gitignore for Grails 1.2 and 1.3 -# Although this should work for most versions of grails, it is -# suggested that you use the "grails integrate-with --git" command -# to generate your .gitignore file. +# Gradle +.idea/**/gradle.xml +.idea/**/libraries -# web application files -/web-app/WEB-INF/classes +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr -# default HSQL database files for production mode -/prodDb.* +# CMake +cmake-build-*/ -# general HSQL database files -*Db.properties -*Db.script +# Mongo Explorer plugin +.idea/**/mongoSettings.xml -# logs -/stacktrace.log -/test/reports -/logs - -# project release file -/*.war - -# plugin release files -/plugin.xml - -# older plugin install locations -/plugins -/web-app/plugins - -# "temporary" build files - -### ZendFramework template -# Composer files - -# Local configs -config/autoload/*.local.php - -# Binary gettext files - -# Data -data/logs/ -data/cache/ -data/sessions/ -data/tmp/ -temp/ - -#Doctrine 2 -data/DoctrineORMModule/Proxy/ -data/DoctrineORMModule/cache/ - -# Legacy ZF1 -demos/ -extras/documentation - -### VVVV template - -# .v4p backup files -*~.xml - -# Dynamic plugins .dll - -### Phalcon template -/config/development/ - -### Qooxdoo template -cache -cache-downloads -inspector -api -source/inspector.html - -### Android template -# Gradle files -.gradle/ - -# Local configuration file (sdk path, etc) -local.properties - -# Log/OS Files - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -output.json +# File-based project format +*.iws # IntelliJ -*.iml -.idea/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml +out/ -# Keystore files -*.jks -*.keystore +# mpeltonen/sbt-idea plugin +.idea_modules/ -# Google Services (e.g. APIs or Firebase) -google-services.json +# JIRA plugin +atlassian-ide-plugin.xml -# Android Profiling -*.hprof +# Cursive Clojure plugin +.idea/replstate.xml -### Gretl template -# gitignore template for Gretl -# website: http://gretl.sourceforge.net/ +# SonarLint plugin +.idea/sonarlint/ -# Auto-generated log file is overwritten whenever you start a new session -session.inp - -# Auto-generated temporary string code table -string_table.txt - -### Lilypond template - -### OpenSSL template -# OpenSSL-related files best not committed - -## Certificate Authority -*.ca - -## Certificate -*.crt - -## Certificate Sign Request -*.csr - -## Certificate -*.der - -## Key database file -*.kdb - -## OSCP request data -*.org - -## PKCS #12 -*.p12 - -## PEM-encoded certificate data -*.pem - -## Random number seed -*.rnd - -## SSLeay data -*.ssleay - -## S/MIME message -*.smime - -### Packer template -# Cache objects -packer_cache/ - -# Crash log - -# https://www.packer.io/guides/hcl/variables -# Exclude all .pkrvars.hcl files, which are likely to contain sensitive data, -# such as password, private keys, and other secrets. These should not be part of -# version control as they are data points which are potentially sensitive and -# subject to change depending on the environment. -# -*.pkrvars.hcl - -# For built boxes -*.box - -### Rails template -capybara-*.html -.rspec -/db/*.sqlite3 -/db/*.sqlite3-journal -/db/*.sqlite3-[0-9]* -/public/system -/coverage/ -/spec/tmp -*.orig -rerun.txt -pickle-email-*.html - -# Ignore all logfiles and tempfiles. -/log/* -!/log/.keep -!/tmp/.keep - -# TODO Comment out this rule if you are OK with secrets being uploaded to the repo -config/initializers/secret_token.rb -config/master.key - -# Only include if you have production secrets in this file, which is no longer a Rails default -# config/secrets.yml - -# dotenv, dotenv-rails -# TODO Comment out these rules if environment variables can be committed -.env*.local - -## Environment normalization: -/.bundle -/vendor/bundle - -# these should all be checked in to normalize the environment: -# Gemfile.lock, .ruby-version, .ruby-gemset - -# unless supporting rvm < 1.11.0 or doing something fancy, ignore this: -.rvmrc - -# if using bower-rails ignore default bower_components path bower.json files -/vendor/assets/bower_components -*.bowerrc -bower.json - -# Ignore pow environment settings -.powenv - -# Ignore Byebug command history file. -.byebug_history - -# Ignore node_modules - -# Ignore precompiled javascript packs -/public/packs -/public/packs-test -/public/assets - -# Ignore yarn files -/yarn-error.log - -# Ignore uploaded files in development -/storage/* -!/storage/.keep -/public/uploads - -### core template -*.*~ -nupkg/ - -# Visual Studio Code -.vscode - -# Rider - -# User-specific files - -# Build results -[Oo]ut/ -msbuild.log -msbuild.err -msbuild.wrn - -# Visual Studio 2015 - - -### esp-idf template -# gitignore template for esp-idf, the official development framework for ESP32 -# https://github.com/espressif/esp-idf - -sdkconfig -sdkconfig.old - -### Unity template -# This .gitignore file should be placed at the root of your Unity project directory -# -# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore -# -/[Ll]ibrary/ -/[Tt]emp/ -/[Oo]bj/ -/[Bb]uild/ -/[Bb]uilds/ -/[Ll]ogs/ -/[Uu]ser[Ss]ettings/ - -# MemoryCaptures can get excessive in size. -# They also could contain extremely sensitive data -/[Mm]emoryCaptures/ - -# Recordings can get excessive in size -/[Rr]ecordings/ - -# Uncomment this line if you wish to ignore the asset store tools plugin -# /[Aa]ssets/AssetStoreTools* - -# Autogenerated Jetbrains Rider plugin -/[Aa]ssets/Plugins/Editor/JetBrains* - -# Visual Studio cache directory - -# Gradle cache directory - -# Autogenerated VS/MD/Consulo solution and project files -ExportedObj/ -.consulo/ -*.unityproj -*.booproj -*.svd -*.mdb - -# Unity3D generated meta files -*.pidb.meta -*.pdb.meta -*.mdb.meta - -# Unity3D generated file on crash reports -sysinfo.txt - -# Builds -*.aab -*.unitypackage - -# Crashlytics generated file +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties crashlytics-build.properties +fabric.properties -# Packed Addressables -/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* - -# Temporary auto-generated Android Assets -/[Aa]ssets/[Ss]treamingAssets/aa.meta -/[Aa]ssets/[Ss]treamingAssets/aa/* - -### CodeIgniter template -*/config/development -*/logs/log-*.php -!*/logs/index.html -*/cache/* -!system/cache/* -!*/cache/index.html -!*/cache/.htaccess - -user_guide_src/build/* -user_guide_src/cilexer/build/* -user_guide_src/cilexer/dist/* -user_guide_src/cilexer/pycilexer.egg-info/* - -#codeigniter 3 -application/logs/* -!application/logs/index.html -!application/logs/.htaccess - -### SymphonyCMS template -manifest/cache/ -manifest/logs/ -manifest/tmp/ -symphony/ -workspace/uploads/ -install-log.txt - -### Xojo template -# Xojo (formerly REALbasic and Real Studio) - -Builds* -*.debug -*.debug.app -Debug*.exe -Debug*/Debug*.exe -Debug*/Debug*\ Libs -*.rbuistate -*.xojo_uistate -*.obsolete* - -### Sdcc template -# SDCC stuff -*.lnk -*.mem -*.rel -*.rst -*.sym - -### ROS template -devel/ -logs/ -msg_gen/ -srv_gen/ -msg/*Action.msg -msg/*ActionFeedback.msg -msg/*ActionGoal.msg -msg/*ActionResult.msg -msg/*Feedback.msg -msg/*Goal.msg -msg/*Result.msg -msg/_*.py -build_isolated/ -devel_isolated/ - -# Generated by dynamic reconfigure -*.cfgc -/cfg/cpp/ -/cfg/*.py - -# Ignore generated docs - -# eclipse stuff - -# qcreator stuff - - -/planning/cfg -/planning/docs -/planning/src - - -# Emacs - -# Catkin custom files -CATKIN_IGNORE - -### Kohana template -application/cache/* - -### Zephir template -# Cache files, generates by Zephir -.temp/ -.libs/ - -# Object files, generates by linker -*.loT - -# Files generated by configure and Zephir, -# not required for extension compilation. -ext/build/ -ext/modules/ -ext/Makefile* -ext/config* -ext/acinclude.m4 -ext/aclocal.m4 -ext/autom4te* -ext/install-sh -ext/ltmain.sh -ext/missing -ext/mkinstalldirs -ext/run-tests.php -ext/.deps -ext/libtool - -### Xilinx template -# gitignore template for Xilinx Vivado Design Suite -# website: https://www.xilinx.com/support/download.html - -# [home] -*.jou -*.str -*.os -*.js -*.pb -*.hwdef -*.vds -*.veo -*.wdf -*.vdi -*.dmp -*.rpx -*.rpt -*_stub.v -*_stub.vhdl -*_funcsim.v -*_funcsim.vhdl - -# [dir] -.metadata -*.data -*.ipdefs -.Xil -*.sdk -*.hw -*.ip_user_files - -### IP synth -*_synth_* - -.jobs - -### project synth -*/*.runs/synth*/*.xml -*/*.runs/synth*/*.txt -*/*.runs/synth*/*.sh -*/*.runs/synth*/*.tcl -*/*.runs/synth*/*.bat -*/*.runs/synth*/*.xdc -!*/*.runs/synth*/*utilization*.rpt - -*.runs/synth*/*.xml -*.runs/synth*/*.txt -*.runs/synth*/*.sh -*.runs/synth*/*.tcl -*.runs/synth*/*.bat -*.runs/synth*/*.xdc -!*.runs/synth*/*utilization*.rpt - -### project impl -*/*.runs/impl*/*.xml -*/*.runs/impl*/*.html -*/*.runs/impl*/*.txt -*/*.runs/impl*/*.sh -*/*.runs/impl*/*.tcl -*/*.runs/impl*/*.bat -!*/*.runs/impl*/*utilization*.rpt - -*.runs/impl*/*.xml -*.runs/impl*/*.html -*.runs/impl*/*.txt -*.runs/impl*/*.sh -*.runs/impl*/*.tcl -*.runs/impl*/*.bat -!*.runs/impl*/*utilization*.rpt - -### block design -*/*/bd/*/hdl -*/*/*/bd/*/hdl - -*/*/bd/*/*.xdc -*/*/*/bd/*/*.xdc - -*/*/bd/*/ip/*/*.xdc -*/*/*/bd/*/ip/*/*.xdc - -*/*/bd/*/ip/*/*/ -*/*/*/bd/*/ip/*/*/ - -*/*/bd/*/ip/*/*.vhd -*/*/*/bd/*/ip/*/*.vhd - -*/*/bd/*/ip/*/*.xml -*/*/*/bd/*/ip/*/*.xml - -*.c -*.h -*.vho -*.html -*/*/bd/*/ip/*/*.tcl -*/*/*/bd/*/ip/*/*.tcl -hw_handoff -ipshared - -### Waf template -# For projects that use the Waf build system: https://waf.io/ -# Dot-hidden on Unix-like systems -.waf-*-*/ -.waf3-*-*/ -# Hidden directory on Windows (no dot) -waf-*-*/ -waf3-*-*/ -# Lockfile -.lock-waf_*_build - -### SAM template -# gitignore template for AWS Serverless Application Model project -# website: https://docs.aws.amazon.com/serverless-application-model - -# Ignore build folder -.aws-sam/ - -### Dart template -# See https://www.dartlang.org/guides/libraries/private-files - -# Files and directories created by pub -.dart_tool/ -# If you're building an application, you may want to check-in your pubspec.lock -pubspec.lock - -# Directory created by dartdoc -# If you don't generate documentation locally you can remove this line. -doc/api/ - -# dotenv environment variables file -.env* - -# Avoid committing generated Javascript files: -*.dart.js -*.info.json # Produced by the --dump-info flag. -*.js # When generated by dart2js. Don't specify *.js if your - # project includes source files written in JavaScript. -*.js_ -*.js.deps -*.js.map - -.flutter-plugins -.flutter-plugins-dependencies - -### MetaProgrammingSystem template -workspace.xml -junitvmwatcher*.properties -build.properties - -# generated java classes and java source files -# manually add any custom artifacts that can't be generated from the models -# http://confluence.jetbrains.com/display/MPSD25/HowTo+--+MPS+and+Git -classes_gen -source_gen -source_gen.caches - -# generated test code and test results -test_gen -test_gen.caches -TEST-*.xml -junit*.properties - -### Gcov template -# gcc coverage testing tool files - -*.gcno -*.gcda -*.gcov - -### Kentico template -# gitignore template for using Kentico CMS -# website: http://www.kentico.com/ -# -# Recommended template: VisualStudio.gitignore - -# Include some Kentico folders excluded by Visual Studio rules -!CMS/CMSAdminControls/*/ -!CMS/CMSModules/System/*/ -!CMS/App_Data/CIRepository/** - -# Kentico temporary/environment files -CMS/App_Data/AzureCache -CMS/App_Data/AzureTemp -CMS/App_Data/CMSModules/DeviceProfile/logFiftyOne.txt -CMS/App_Data/CMSModules/DeviceProfiles/logFiftyOne.txt -CMS/App_Data/CMSModules/WebFarm/webfarm.sync -CMS/App_Data/CMSTemp -CMS/App_Data/Persistent -CMS/CMSSiteUtils/Export -CMS/CMSSiteUtils/Import - -# Ignore all smart search indexes, but not the other system folder contents -CMS/App_Data/CMSModules/SmartSearch/** -!CMS/App_Data/CMSModules/SmartSearch/*/ -!CMS/App_Data/CMSModules/SmartSearch/_StopWords/** -!CMS/App_Data/CMSModules/SmartSearch/_Synonyms/** - -## Kentico Starter Sites -# Starter site resource Files -CMS/App_Data/DancingGoat - -# Starter site web templates -CMS/App_Data/Templates/CommunitySite -CMS/App_Data/Templates/CorporateSite -CMS/App_Data/Templates/DancingGoat -CMS/App_Data/Templates/EcommerceSite -CMS/App_Data/Templates/IntranetPortal -CMS/App_Data/Templates/PersonalSite - -# Starter site app themes -CMS/App_Themes/CommunitySite -CMS/App_Themes/CorporateSite -CMS/App_Themes/EcommerceSite -CMS/App_Themes/IntranetPortal* -CMS/App_Themes/PersonalSite - -# Starter site ASPX templates -CMS/CMSTemplates/CorporateSite - -# Starter site media libraries -CMS/CommunitySite -CMS/CorporateSite -CMS/DancingGoat -CMS/EcommerceSite -CMS/IntranetPortal -CMS/PersonalSite - -## Project specific ignores -# Sensitive settings -AppSettings.config -ConnectionStrings.config - -# Project media libraries (recommend shared file storage) -# e.g. CMS/{SiteCodeName} - -### InforCMS template -# gitignore template for InforCRM (formerly SalesLogix) -# website: https://www.infor.com/product-summary/cx/infor-crm/ -# -# Recommended: VisualStudio.gitignore - -# Ignore model files that are auto-generated -ModelIndex.xml -ExportedFiles.xml - -# Ignore deployment files -[Mm]odel/[Dd]eployment - -# Force include portal SupportFiles -!Model/Portal/*/SupportFiles/[Bb]in/ -!Model/Portal/PortalTemplates/*/SupportFiles/[Bb]in - -### AutoIt template -# Compiled Scripts -*.a3x - -# Tidy Auto-Generated Backups -Backup/* - -# Au3Stripper Auto-Generated Files -*_stripped.au3 - -### Laravel template -npm-debug.log -yarn-error.log - -# Laravel 4 specific -bootstrap/compiled.php -app/storage/ - -# Laravel 5 & Lumen specific -public/storage -public/hot - -# Laravel 5 & Lumen specific with changed public path -public_html/storage -public_html/hot - -storage/*.key -Homestead.yaml -Homestead.json -/.vagrant -.phpunit.result.cache - -### Snap template -# gitginore template for creating Snap packages -# website: https://snapcraft.io/ - -prime/ -stage/ -*.snap - -# Snapcraft global state tracking data(automatically generated) -# https://forum.snapcraft.io/t/location-to-save-global-state/768 -/snap/.snapcraft/ - -# Source archive packed by `snapcraft cleanbuild` before pushing to the LXD container -/*_source.tar.bz2 - -### Processing template -applet -application.linux-arm64 -application.linux-armv6hf -application.linux32 -application.linux64 -application.windows32 -application.windows64 -application.macosx - -### AltiumDesigner template -# For PCBs designed using Altium Designer -# Website: https://www.altium.com/altium-designer/ - -# Directories containing cache data -History -__Previews - -# Directories containing logs and generated outputs -Project\ Logs* -Project\ Outputs* - -# Misc files generated by altium -debug.log -Status\ Report.txt -*.PcbDoc.htm -*.SchDocPreview -*.PcbDocPreview - -# Lock files sometimes left behind -.~lock.* - -### Smalltalk template -# changes file -*.changes -*.chg - -# system image -*.image -*.img7 -*.img - -# Pharo Smalltalk Debug log file -PharoDebug.log - -# Squeak Smalltalk Debug log file -SqueakDebug.log - -# Dolphin Smalltalk source file -*.sml - -# Dolphin Smalltalk error file -*.errors - -# Monticello package cache -/package-cache - -# playground cache -/play-cache -/play-stash - -# Metacello-github cache -/github-cache -github-*.zip - -### ChefCookbook template -.vagrant -/cookbooks - -# Bundler -bin/* - -.kitchen/ -.kitchen.local.yml - -### Lua template -# Compiled Lua sources -luac.out - -# luarocks build files -*.src.rock - -# Object files - -# Precompiled Headers - -# Libraries -*.def - -# Shared objects (inc. Windows DLLs) - -# Executables - - -### Phoenix template -# gitignore template for Phoenix projects -# website: http://www.phoenixframework.org/ -# -# Recommended template: Elixir.gitignore - -# Temporary files -/tmp - -# Static artifacts -/node_modules -/assets/node_modules - -# Since we are building assets from web/static, -# we ignore priv/static. You may want to comment -# this depending on your deployment strategy. -/priv/static/ - -# Installer-related files -/installer/_build -/installer/tmp -/installer/doc -/installer/deps - -### CakePHP template -# CakePHP 3 - -/config/app.php - -/tmp/cache/models/* -!/tmp/cache/models/empty -/tmp/cache/persistent/* -!/tmp/cache/persistent/empty -/tmp/cache/views/* -!/tmp/cache/views/empty -/tmp/sessions/* -!/tmp/sessions/empty -/tmp/tests/* -!/tmp/tests/empty - -!/logs/empty - -# CakePHP 2 - -/app/tmp/* -/app/Config/core.php -/app/Config/database.php -/vendors/* - -### SeamGen template -/bootstrap/data -/bootstrap/tmp -/exploded-archives/ -/test-build/ -/test-output/ -/test-report/ -temp-testng-customsuite.xml - -# based on http://stackoverflow.com/a/8865858/422476 I am removing inline comments - -#/classes/ all class files -#/dist/ contains generated war files for deployment -#/exploded-archives/ war content generation during deploy (or explode) -#/test-build/ test compilation (ant target for Seam) -#/test-output/ test results -#/test-report/ test report generation for, e.g., Hudson -#/target/ maven output folder -#temp-testng-customsuite.xml generated when running test cases under Eclipse - -# Thanks to @VonC and @kraftan for their helpful answers on a related question -# on StackOverflow.com: -# http://stackoverflow.com/questions/4176687 -# /what-is-the-recommended-source-control-ignore-pattern-for-seam-projects - -### Ruby template -*.gem -/.config -/InstalledFiles -/pkg/ -/spec/reports/ -/spec/examples.txt -/test/tmp/ -/test/version_tmp/ -/tmp/ - -# Used by dotenv library to load environment variables. -# .env - -# Ignore Byebug command history file. - -## Specific to RubyMotion: -.dat* -.repl_history -*.bridgesupport -build-iPhoneOS/ -build-iPhoneSimulator/ - -## Specific to RubyMotion (use of CocoaPods): -# -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control -# -# vendor/Pods/ - -## Documentation cache and generated files: -/.yardoc/ -/_yardoc/ -/rdoc/ - -## Environment normalization: -/.bundle/ -/lib/bundler/man/ - -# for a library or gem, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# Gemfile.lock -# .ruby-version -# .ruby-gemset - -# unless supporting rvm < 1.11.0 or doing something fancy, ignore this: - -# Used by RuboCop. Remote config files pulled in from inherit_from directive. -# .rubocop-https?--* - -### Raku template -# Gitignore for Raku (https://raku.org) -# As part of https://github.com/github/gitignore - -# precompiled files -.precomp -lib/.precomp - - -### ExpressionEngine template - -# Images -images/avatars/ -images/captchas/ -images/smileys/ -images/member_photos/ -images/signature_attachments/ -images/pm_attachments/ - -# For security do not publish the following files -system/expressionengine/config/database.php -system/expressionengine/config/config.php - -# Caches -sized/ -thumbs/ -_thumbs/ -*/expressionengine/cache/* - -### Scrivener template -*/Files/binder.autosave -*/Files/binder.backup -*/Files/search.indexes -*/Files/user.lock -*/Files/Docs/docs.checksum -*/Files/Data/docs.checksum -*/QuickLook/ -*/Settings/ui.plist - -### C++ template -# Prerequisites - -# Compiled Object files - -# Precompiled Headers - -# Compiled Dynamic libraries - -# Fortran module files - -# Compiled Static libraries - -# Executables - -### OracleForms template -# Compiled Form Modules -*.fmx - -# Compiled Menu Modules -*.mmx - -# Compiled Pre-Linked Libraries -*.plx - -### JBoss template -jboss/server/all/deploy/project.ext -jboss/server/default/deploy/project.ext -jboss/server/minimal/deploy/project.ext -jboss/server/all/log/*.log -jboss/server/all/tmp/**/* -jboss/server/all/data/**/* -jboss/server/all/work/**/* -jboss/server/default/log/*.log -jboss/server/default/tmp/**/* -jboss/server/default/data/**/* -jboss/server/default/work/**/* -jboss/server/minimal/log/*.log -jboss/server/minimal/tmp/**/* -jboss/server/minimal/data/**/* -jboss/server/minimal/work/**/* - -# deployed package files # - -*.DEPLOYED - -### Meteor template -# gitignore template for the Meteor framework -# website: https://www.meteor.com/ -# -# Recommended template: Node.gitignore - -# protect api keys in setting json -settings-production.json -settings.json - -# protect your mup.json settings -mup.json -mup.js - -### Scala template - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml - -### TeX template -## Core latex/pdflatex auxiliary files: -*.lof -*.lot -*.fls -*.toc -*.fmt -*.fot -*.cb -*.cb2 -.*.lb - -## Intermediate documents: -*.dvi -*.xdv -*-converted-to.* -# these rules might exclude image files for figures etc. -# *.ps -# *.eps -# *.pdf - -## Generated if empty string is given at "Please type another file name for output:" -.pdf - -## Bibliography auxiliary files (bibtex/biblatex/biber): -*.bbl -*.bcf -*.blg -*-blx.aux -*-blx.bib -*.run.xml - -## Build tool auxiliary files: -*.fdb_latexmk -*.synctex -*.synctex(busy) -*.synctex.gz -*.synctex.gz(busy) -*.pdfsync - -## Build tool directories for auxiliary files -# latexrun -latex.out/ - -## Auxiliary and intermediate files from other packages: -# algorithms -*.alg -*.loa - -# achemso -acs-*.bib - -# amsthm -*.thm - -# beamer -*.nav -*.pre -*.snm -*.vrb - -# changes -*.soc - -# comment -*.cut - -# cprotect -*.cpt - -# elsarticle (documentclass of Elsevier journals) -*.spl - -# endnotes -*.ent - -# fixme -*.lox - -# feynmf/feynmp -*.mf -*.mp -*.t[1-9] -*.t[1-9][0-9] -*.tfm - -#(r)(e)ledmac/(r)(e)ledpar -*.end -*.?end -*.[1-9] -*.[1-9][0-9] -*.[1-9][0-9][0-9] -*.[1-9]R -*.[1-9][0-9]R -*.[1-9][0-9][0-9]R -*.eledsec[1-9] -*.eledsec[1-9]R -*.eledsec[1-9][0-9] -*.eledsec[1-9][0-9]R -*.eledsec[1-9][0-9][0-9] -*.eledsec[1-9][0-9][0-9]R - -# glossaries -*.acn -*.acr -*.glg -*.glo -*.gls -*.glsdefs -*.lzo -*.lzs -*.slg -*.sls - -# uncomment this for glossaries-extra (will ignore makeindex's style files!) -# *.ist - -# gnuplot -*.gnuplot -*.table - -# gnuplottex -*-gnuplottex-* - -# gregoriotex -*.gaux -*.glog -*.gtex - -# htlatex -*.4ct -*.4tc -*.idv -*.lg -*.trc -*.xref - -# hyperref -*.brf - -# knitr -*-concordance.tex -# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files -# *.tikz -*-tikzDictionary - -# listings -*.lol - -# luatexja-ruby -*.ltjruby - -# makeidx -*.idx -*.ilg -*.ind - -# minitoc -*.maf -*.mlf -*.mlt -*.mtc[0-9]* -*.slf[0-9]* -*.slt[0-9]* -*.stc[0-9]* - -# minted -_minted* -*.pyg - -# morewrites -*.mw - -# newpax -*.newpax - -# nomencl -*.nlg -*.nlo -*.nls - -# pax -*.pax - -# pdfpcnotes -*.pdfpc - -# sagetex -*.sagetex.sage -*.sagetex.py -*.sagetex.scmd - -# scrwfile -*.wrt - -# svg -svg-inkscape/ - -# sympy -*.sout -*.sympy -sympy-plots-for-*.tex/ - -# pdfcomment -*.upa -*.upb - -# pythontex -*.pytxcode -pythontex-files-*/ - -# tcolorbox -*.listing - -# thmtools -*.loe - -# TikZ & PGF -*.dpth -*.md5 -*.auxlock - -# titletoc -*.ptc - -# todonotes -*.tdo - -# vhistory -*.hst -*.ver - -# easy-todo -*.lod - -# xcolor -*.xcp - -# xmpincl -*.xmpi - -# xindy -*.xdy - -# xypic precompiled matrices and outlines -*.xyc -*.xyd - -# endfloat -*.ttt -*.fff - -# Latexian -TSWLatexianTemp* - -## Editors: -# WinEdt -*.sav - -# Texpad -.texpadtmp - -# LyX -*.lyx~ - -# Kile -*.backup - -# gummi -.*.swp - -# KBibTeX -*~[0-9]* - -# TeXnicCenter -*.tps - -# auto folder when using emacs and auctex -./auto/* -*.el - -# expex forward references with \gathertags -*-tags.tex - -# standalone packages -*.sta - -# Makeindex log files -*.lpz - -# xwatermark package -*.xwm - -# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib -# option is specified. Footnotes are the stored in a file with suffix Notes.bib. -# Uncomment the next line to have this generated file ignored. -#*Notes.bib - -### CraftCMS template -# Craft 2 Storage (https://craftcms.com/support/craft-storage-gitignore) -# not necessary for Craft 3 (https://github.com/craftcms/craft/issues/26) -/craft/storage/* -!/craft/storage/rebrand - -### AppceleratorTitanium template -# Build folder and log file -build.log - -### Concrete5 template -# ignore the error log and .htaccess and others -error_log - -# concrete5 5.6 specific - -config/site.php -files/cache/* -files/tmp/* - -# concrete5 5.7 specific - -# ignore everything but the index.html -/application/files/* -!/application/files/index.html - -# ignore updates folder -/updates/* - -# ignore sitemap.xml - -### Autotools template -# http://www.gnu.org/software/automake - -Makefile.in -/ar-lib -/mdate-sh -/py-compile -/test-driver -/ylwrap -.deps/ -.dirstamp - -# http://www.gnu.org/software/autoconf - -autom4te.cache -/autoscan.log -/autoscan-*.log -/aclocal.m4 -/compile -/config.cache -/config.guess -/config.h.in -/config.log -/config.status -/config.sub -/configure -/configure.scan -/depcomp -/install-sh -/missing -/stamp-h1 - -# https://www.gnu.org/software/libtool/ - -/ltmain.sh - -# http://www.gnu.org/software/texinfo - -/texinfo.tex - -# http://www.gnu.org/software/m4/ - -m4/libtool.m4 -m4/ltoptions.m4 -m4/ltsugar.m4 -m4/ltversion.m4 -m4/lt~obsolete.m4 - -# Generated Makefile -# (meta build system like autotools, -# can automatically generate from config.status script -# (which is called by configure script)) - -### Nim template -nimcache/ -nimblecache/ -htmldocs/ - -### NWjs template -# gitignore template for NW.js projects -# website: https://nwjs.io/ - -# Seen in standard and sdk versions -credits.html -locales/ -libEGL.dll -libGLEv2.dll -node.dll -nw.dll -nw.exe -natives_blob.bin -nw_100_percent.pak -nw_200_percent.pak -nw_elf.dll -snapshot_blob.bin -resources.pak - -# Seen only in standard -d3dcompiler_47.dll -ffmpeg.dll -icudtl.dat - -# Seen only in sdk -pnacl/ -chromedriver.exe -nacl_irt_x86_64.nexe -nwjc.exe -payload.exe - -### Hugo template -# Generated files by hugo -/public/ -/resources/_gen/ -/assets/jsconfig.json -hugo_stats.json - -# Executable may be added to repository -hugo.exe -hugo.darwin -hugo.linux - -# Temporary lock file while building -/.hugo_build.lock - -### NasaSpecsIntact template -# gitignore template for Nasa SpecsIntact (SI) -# Website: https://specsintact.ksc.nasa.gov/ -# -# Recommended: -# MicrosoftOffice.gitignore -# - -# SpecsIntact (SI) Locking file; this would lock everyone out. -*.se$ - -# SI Reports; auto-generated. They do not belong in the repository -# as they will be re-created exactly when using a specific checkout point. -*.RPT -ADDRVER.* -BRKTVER.* -DUPEREF.* -REFVER.* -SECTVER.* -SUBMVER.* -TTLDIFFS.* - -# SpecsIntact files that change a lot and don't actually affect SI -# PULL.TBL is an auto-generated file to help speed SI loading. -PULL.TBL -pulltbl.bck - -# Tailoring information. -# Keep tailor.tag; it is a list of tailoring options in SI. - -# JOB.OTL informs SI where a spec section came from. -# Keeping the old one isn't useful in git. -JOB.OTL.OLD - -# OneNote TOC Files; SI Work Directories may be installed in a location co-located with OneNote -# notebooks, and if so, OneNote will litter the SI folder with these. -*.onetoc* - -# Log files, typically tagfix or other auto generated logs that aren't useful -# outside of the user that made them and clutter up the index. - -### CFWheels template -# unpacked plugin folders -plugins/**/* - -# files directory where uploads go -files - -# DBMigrate plugin: generated SQL -db/sql - -# AssetBundler plugin: generated bundles -javascripts/bundles -stylesheets/bundles - -### Actionscript template -# Build and Release Folders -bin-debug/ -bin-release/ - -# Other files and folders -.settings/ - -# Executables -*.swf -*.air - -# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties` -# should NOT be excluded as they contain compiler settings and other important -# information for Eclipse / Flash Builder. - -### Gradle template -.gradle -**/build/ -!src/**/build/ - -# Ignore Gradle GUI config -gradle-app.setting - -# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) -!gradle-wrapper.jar - -# Avoid ignore Gradle wrappper properties -!gradle-wrapper.properties - -# Cache of project -.gradletasknamecache - -# Eclipse Gradle plugin generated files -# Eclipse Core -# JDT-specific (Eclipse Java Development Tools) - -### Nix template -# Ignore build outputs from performing a nix-build or `nix build` command -result -result-* - -### Splunk template -# gitignore template for Splunk apps -# documentation: http://docs.splunk.com/Documentation/Splunk/6.2.3/admin/Defaultmetaconf - -# Splunk local meta file -local.meta - -# Splunk local folder -local - -### Cordova template -# gitignore template for the Cordova framework -# website: https://cordova.apache.org/ -# -# Recommended template: Node.gitignore - -# App platform binaries and built files -/platforms - -# Optional to ignore plugin Git clones -#/plugins - -### Mercury template -Mercury/ -Mercury.modules -*.mh -*.err -*.init -*.beams -*.c_date - -### LabVIEW template -# Libraries -*.lvlibp -*.llb - -# Shared objects (inc. Windows DLLs) - -# Executables - -# Metadata -*.aliases -*.lvlps +# Editor-based Rest Client +.idea/httpRequests +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/devops.iml b/.idea/devops.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/devops.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..9d5783b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/apps/backend/configmap.yaml b/apps/backend/configmap.yaml new file mode 100644 index 0000000..53ca9ba --- /dev/null +++ b/apps/backend/configmap.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: backend-config +data: + DB_HOST: "db.yourdomain.com" + DB_PORT: "5432" + API_KEY: "your-api-key" + diff --git a/apps/backend/deployment.yaml b/apps/backend/deployment.yaml new file mode 100644 index 0000000..c38e947 --- /dev/null +++ b/apps/backend/deployment.yaml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend + labels: + app: backend +spec: + replicas: 2 + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + containers: + - name: backend + image: your-registry/backend:v1.0.0 + ports: + - containerPort: 8080 + envFrom: + - configMapRef: + name: backend-config + resources: + requests: + cpu: 200m + memory: 256Mi + limits: + cpu: 1 + memory: 1Gi + livenessProbe: + httpGet: + path: /healthz + port: 8080 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /ready + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + diff --git a/apps/backend/service.yaml b/apps/backend/service.yaml new file mode 100644 index 0000000..1672235 --- /dev/null +++ b/apps/backend/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend +spec: + selector: + app: backend + ports: + - protocol: TCP + port: 8080 + targetPort: 8080 + diff --git a/apps/frontend/deployment.yaml b/apps/frontend/deployment.yaml new file mode 100644 index 0000000..5f20233 --- /dev/null +++ b/apps/frontend/deployment.yaml @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend + labels: + app: frontend +spec: + replicas: 2 + selector: + matchLabels: + app: frontend + template: + metadata: + labels: + app: frontend + spec: + containers: + - name: frontend + image: your-registry/frontend:v1.0.0 + ports: + - containerPort: 80 + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + cpu: 500m + memory: 512Mi + livenessProbe: + httpGet: + path: /healthz + port: 80 + initialDelaySeconds: 10 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /ready + port: 80 + initialDelaySeconds: 5 + periodSeconds: 10 + diff --git a/apps/frontend/ingress.yaml b/apps/frontend/ingress.yaml new file mode 100644 index 0000000..e9ed215 --- /dev/null +++ b/apps/frontend/ingress.yaml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: frontend + annotations: + kubernetes.io/ingress.class: nginx + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + tls: + - hosts: + - frontend.yourdomain.com + secretName: frontend-tls + rules: + - host: frontend.yourdomain.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: frontend + port: + number: 80 + diff --git a/apps/frontend/service.yaml b/apps/frontend/service.yaml new file mode 100644 index 0000000..92c42e4 --- /dev/null +++ b/apps/frontend/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend +spec: + selector: + app: frontend + ports: + - protocol: TCP + port: 80 + targetPort: 80 + diff --git a/base/kustomization.yaml b/base/kustomization.yaml new file mode 100644 index 0000000..454cd52 --- /dev/null +++ b/base/kustomization.yaml @@ -0,0 +1,10 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../apps/frontend/deployment.yaml + - ../apps/frontend/service.yaml + - ../apps/frontend/ingress.yaml + - ../apps/backend/deployment.yaml + - ../apps/backend/service.yaml + - ../apps/backend/configmap.yaml + diff --git a/infra/.gitignore b/infra/.gitignore new file mode 100644 index 0000000..2faf43d --- /dev/null +++ b/infra/.gitignore @@ -0,0 +1,37 @@ +# Local .terraform directories +**/.terraform/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log +crash.*.log + +# Exclude all .tfvars files, which are likely to contain sensitive data, such as +# password, private keys, and other secrets. These should not be part of version +# control as they are data points which are potentially sensitive and subject +# to change depending on the environment. +*.tfvars +*.tfvars.json + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Ignore transient lock info files created by terraform apply +.terraform.tfstate.lock.info + +# Include override files you do wish to add to version control using negated pattern +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc diff --git a/infra/clusters/management/bootstrap.tar.xz b/infra/clusters/management/bootstrap.tar.xz new file mode 100644 index 0000000..ec9f172 Binary files /dev/null and b/infra/clusters/management/bootstrap.tar.xz differ diff --git a/infra/clusters/management/bootstrap/stage1-create/.terraform.lock.hcl b/infra/clusters/management/bootstrap/stage1-create/.terraform.lock.hcl new file mode 100644 index 0000000..c636ea6 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/.terraform.lock.hcl @@ -0,0 +1,159 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/gavinbunney/kubectl" { + version = "1.14.0" + constraints = "1.14.0" + hashes = [ + "h1:gLFn+RvP37sVzp9qnFCwngRjjFV649r6apjxvJ1E/SE=", + "zh:0350f3122ff711984bbc36f6093c1fe19043173fad5a904bce27f86afe3cc858", + "zh:07ca36c7aa7533e8325b38232c77c04d6ef1081cb0bac9d56e8ccd51f12f2030", + "zh:0c351afd91d9e994a71fe64bbd1662d0024006b3493bb61d46c23ea3e42a7cf5", + "zh:39f1a0aa1d589a7e815b62b5aa11041040903b061672c4cfc7de38622866cbc4", + "zh:428d3a321043b78e23c91a8d641f2d08d6b97f74c195c654f04d2c455e017de5", + "zh:4baf5b1de2dfe9968cc0f57fd4be5a741deb5b34ee0989519267697af5f3eee5", + "zh:6131a927f9dffa014ab5ca5364ac965fe9b19830d2bbf916a5b2865b956fdfcf", + "zh:c62e0c9fd052cbf68c5c2612af4f6408c61c7e37b615dc347918d2442dd05e93", + "zh:f0beffd7ce78f49ead612e4b1aefb7cb6a461d040428f514f4f9cc4e5698ac65", + ] +} + +provider "registry.terraform.io/hashicorp/helm" { + version = "2.10.1" + constraints = "2.10.1" + hashes = [ + "h1:ctDhNJU4tEcyoUgPzwKuJmbDIqUl25mCY+s/lVHP6Sg=", + "zh:0717312baed39fb0a00576297241b69b419880cad8771bf72dec97ebdc96b200", + "zh:0e0e287b4e8429a0700143c8159764502eba0b33b1d094bf0d4ef4d93c7802cb", + "zh:4f74605377dab4065aaad35a2c5fa6186558c6e2e57b9058bdc8a62cf91857b9", + "zh:505f4af4dedb7a4f8f45b4201900b8e16216bdc2a01cc84fe13cdbf937570e7e", + "zh:83f37fe692513c0ce307d487248765383e00f9a84ed95f993ce0d3efdf4204d3", + "zh:840e5a84e1b5744f0211f611a2c6890da58016a40aafd5971f12285164d4e29b", + "zh:8c03d8dee292fa0367b0511cf3e95b706e034f78025f5dff0388116e1798bf47", + "zh:937800d1860f6b3adbb20e65f11e5fcd940b21ce8bdb48198630426244691325", + "zh:c1853aa5cbbdd1d46f4b169e84c3482103f0e8575a9bb044dbde908e27348c5d", + "zh:c9b0f640590da20931c30818b0b0587aa517d5606cb6e8052e4e4bf38f97b54d", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + "zh:fe8bd4dd09dc7ca218959eda1ced9115408c2cdc9b4a76964bfa455f3bcadfd3", + ] +} + +provider "registry.terraform.io/hashicorp/local" { + version = "2.4.0" + constraints = "2.4.0" + hashes = [ + "h1:R97FTYETo88sT2VHfMgkPU3lzCsZLunPftjSI5vfKe8=", + "zh:53604cd29cb92538668fe09565c739358dc53ca56f9f11312b9d7de81e48fab9", + "zh:66a46e9c508716a1c98efbf793092f03d50049fa4a83cd6b2251e9a06aca2acf", + "zh:70a6f6a852dd83768d0778ce9817d81d4b3f073fab8fa570bff92dcb0824f732", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:82a803f2f484c8b766e2e9c32343e9c89b91997b9f8d2697f9f3837f62926b35", + "zh:9708a4e40d6cc4b8afd1352e5186e6e1502f6ae599867c120967aebe9d90ed04", + "zh:973f65ce0d67c585f4ec250c1e634c9b22d9c4288b484ee2a871d7fa1e317406", + "zh:c8fa0f98f9316e4cfef082aa9b785ba16e36ff754d6aba8b456dab9500e671c6", + "zh:cfa5342a5f5188b20db246c73ac823918c189468e1382cb3c48a9c0c08fc5bf7", + "zh:e0e2b477c7e899c63b06b38cd8684a893d834d6d0b5e9b033cedc06dd7ffe9e2", + "zh:f62d7d05ea1ee566f732505200ab38d94315a4add27947a60afa29860822d3fc", + "zh:fa7ce69dde358e172bd719014ad637634bbdabc49363104f4fca759b4b73f2ce", + ] +} + +provider "registry.terraform.io/hashicorp/random" { + version = "3.6.2" + hashes = [ + "h1:wmG0QFjQ2OfyPy6BB7mQ57WtoZZGGV07uAPQeDmIrAE=", + "zh:0ef01a4f81147b32c1bea3429974d4d104bbc4be2ba3cfa667031a8183ef88ec", + "zh:1bcd2d8161e89e39886119965ef0f37fcce2da9c1aca34263dd3002ba05fcb53", + "zh:37c75d15e9514556a5f4ed02e1548aaa95c0ecd6ff9af1119ac905144c70c114", + "zh:4210550a767226976bc7e57d988b9ce48f4411fa8a60cd74a6b246baf7589dad", + "zh:562007382520cd4baa7320f35e1370ffe84e46ed4e2071fdc7e4b1a9b1f8ae9b", + "zh:5efb9da90f665e43f22c2e13e0ce48e86cae2d960aaf1abf721b497f32025916", + "zh:6f71257a6b1218d02a573fc9bff0657410404fb2ef23bc66ae8cd968f98d5ff6", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:9647e18f221380a85f2f0ab387c68fdafd58af6193a932417299cdcae4710150", + "zh:bb6297ce412c3c2fa9fec726114e5e0508dd2638cad6a0cb433194930c97a544", + "zh:f83e925ed73ff8a5ef6e3608ad9225baa5376446349572c2449c0c0b3cf184b7", + "zh:fbef0781cb64de76b1df1ca11078aecba7800d82fd4a956302734999cfd9a4af", + ] +} + +provider "registry.terraform.io/hashicorp/tls" { + version = "4.0.4" + constraints = "4.0.4" + hashes = [ + "h1:pe9vq86dZZKCm+8k1RhzARwENslF3SXb9ErHbQfgjXU=", + "zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55", + "zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848", + "zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be", + "zh:5a8eec2409a9ff7cd0758a9d818c74bcba92a240e6c5e54b99df68fff312bbd5", + "zh:5e6a4b39f3171f53292ab88058a59e64825f2b842760a4869e64dc1dc093d1fe", + "zh:810547d0bf9311d21c81cc306126d3547e7bd3f194fc295836acf164b9f8424e", + "zh:824a5f3617624243bed0259d7dd37d76017097dc3193dac669be342b90b2ab48", + "zh:9361ccc7048be5dcbc2fafe2d8216939765b3160bd52734f7a9fd917a39ecbd8", + "zh:aa02ea625aaf672e649296bce7580f62d724268189fe9ad7c1b36bb0fa12fa60", + "zh:c71b4cd40d6ec7815dfeefd57d88bc592c0c42f5e5858dcc88245d371b4b8b1e", + "zh:dabcd52f36b43d250a3d71ad7abfa07b5622c69068d989e60b79b2bb4f220316", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} + +provider "registry.terraform.io/hetznercloud/hcloud" { + version = "1.33.2" + constraints = "1.33.2" + hashes = [ + "h1:3Hx8p9LbcnHfBhy3nT7+unlc5rwkiSZjLt9SVQOSpB8=", + "zh:0a5d0f332d7dfe77fa27301094af98a185aabfb9f56d71b81936e03211e4d66f", + "zh:0e047859ee7296f335881933ccf8ce8c07aa47bef56d5449a81b85a2d9dac93a", + "zh:1d3d0896f518df9e245c3207ed231e528f5dcfe628508e7c3ceba4a2bfefaa7a", + "zh:1d7a31c8c490512896ce327ab220e950f1a2e30ee83cc2e58e69bbbfbbb87e72", + "zh:67cbb2492683cb22f6c54f26bee72aec140c8dd2d0881b2815d2ef80959fc751", + "zh:771062815e662979204ac2dc91c34c893f27670d67e02370e48124483d3c9838", + "zh:957ebb146898cd059c0cc8b4c32e574b61041d8b6a11cd854b3cc1d3baaeb3a9", + "zh:95dbd8634000b979213cb97b5d869cad78299ac994d0665d150c8dafc1390429", + "zh:a21b22b2e9d835e1b8b3b7e0b41a4d199171d62e9e9be78c444c700e96b31316", + "zh:aead1ba50640a51f20d574374f2c6065d9bfa4eea5ef044d1475873c33e58239", + "zh:cefabd0a78af40ea5cd08e1ca436c753df9b1c6496eb27281b755a2de1f167ab", + "zh:d98cffc5206b9a7550a23e13031a6f53566bd1ed3bf65314bc55ef12404d49ce", + "zh:dddaaf95b6aba701153659feff12c7bce6acc78362cb5ff8321a1a1cbf780cd9", + "zh:fd662b483250326a1bfbe5684c22c5083955a43e0773347eea35cd4c2cfe700e", + ] +} + +provider "registry.terraform.io/loafoe/ssh" { + version = "2.6.0" + constraints = "2.6.0" + hashes = [ + "h1:80FIBNQBLj9p0j7EMQDWxzY6Fh0VODiflCww1/Wx6rk=", + "zh:1285448b69bd388a4a59ed170f9c07c641207a7291057860557937807d02da95", + "zh:2472c5dee4265cb555a627aa4ecc5702d32cd7aebe85722820df7499b7d4502a", + "zh:2a9b8f0ad446febb517a7fe38de9b02bc1bcceb90843a713c546770eff44aa84", + "zh:66e62d5bb280af7407315a62aee2ab35f8ce1b36f7400633f75f72111deede87", + "zh:832fc1213c3447fa831c1b2331cde71072c95a3f3eae04ff23dd09975d7c6577", + "zh:a4e19d6a6e776732cce70f350e8cf1954febf1e9281b4668f567636c7d0f75d8", + "zh:ac18abae233fe367f164c5a4492875a25e1c1de38a181876ffdc9f87c75abacf", + "zh:b44203b49cdef04f3e110923017a1e80c8b5588b91605e0c0985b3c2d839d6c0", + "zh:bf489e0f8ebc6f1d0d28cd6eadd871d6d63b952deaf10271765609fce417a5cf", + "zh:c41a209c6a4bf81309e573a53ad7b9e8d655bd7e81e40685214aeac92e682333", + "zh:ded134d1359bd39c2261ce1ed3bd468f8fac4fff09c07a213a3d281313d99d59", + ] +} + +provider "registry.terraform.io/rancher/rancher2" { + version = "3.0.0" + constraints = "3.0.0" + hashes = [ + "h1:Qnc86BDThHGg+UqfK8Ssx7l+KcYg8wBDsMU3mCgUK6E=", + "zh:3f28e165f4e6dbfb3c6f57ea96571f907915cf9d3eaf0041054ec3c4e22cc14b", + "zh:4d71e727690d8691321c9591248599fdb38e09e27dace74da6dee16ec01351b0", + "zh:51dc86277205c7514cad0edd6e48a300a470a846a12927323b09fb1550891bcb", + "zh:5b240c5eefc5bcffcf851bd11dc913cff05a0fbf7539e966c7638894265a6297", + "zh:8f754482629b587083c1b9e0e0646a577a8defdf64d61ca12c853dd41ffbc1bb", + "zh:9a212e0dd166e2dc1ae3c13c99b07eb6f48e5ec4b6dcdca857d3f3d05b0fcabc", + "zh:a4e45342af8e9a8ab2be9a3ffd8a7df244519fade4901cc0b95328937e8b80ba", + "zh:af148901e447f97b844b5d5a81df5c7fce0432b3f0a42cb674196f0ff2ce1ded", + "zh:b11a97fc16b1fde2956906569bae890be59d444c192c560f00dca418b8184875", + "zh:b1588f6b704326ee6cf384c6d2542e4bd6f08b5324098cb6a7c126fb37112b28", + "zh:e63dd35d6f962e22561b3dd1b6fd8c23bb8154ca492a89e6b4693569974c971f", + "zh:f1eeae30b192f569f3e16061e28f1ce876a6f48eeab4c113e5f771809719090b", + ] +} diff --git a/infra/clusters/management/bootstrap/stage1-create/id_rsa b/infra/clusters/management/bootstrap/stage1-create/id_rsa new file mode 100644 index 0000000..da16aaf --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/id_rsa @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEAujkDLDgyrzbdQRk96ucXOB9aBKZAxoEiFqlGIY3Z65kB4o0C +4Oc8l74S5CPmQsxNJwfRWpSmzVNn3XiHGLcSpLF9NeKMYrWZ/uvZ7r/dZmeOkp+I +073Dkz9jU09HMlLZMuB7BNzEZmpO+1BrjYj9s76DwF9sjJlUYG88xBqOVp/7mqiX +RD+XLBdz090qx/JGOHMSxJECRq8AiWrp5Jp/garjcw7fOKiS1tQ4uiswWj+AfU3b +b9l3HpgyAcaFbg5sHllj5iSwlsMlEGjU/AeEpUkWjQHrv3hcwMIAua5qhC8az30D +fJ2kcjyg7J4CDqB6Jaxk9SWATO4jlQzEQd3reQIDAQABAoIBAB6AJALkGXkVNVvq +NHf67ZSlnerRCB77G4g2pWPthdnOr75ZdjU76nK4EQQI1TfvmltgLmv1mPRcStC9 +YvMrWQRchbODrZalQ9m663DtP+f74iAlvRVhKV0+rpgAjhqx8x0gI0YCmrBjjRgg +bd06qML92zpw5qiInIdG8N71soaBWaAHPurMxQitGEiKCMXziRyNDJdt6vvuW+ne +K2x6CYP+4bqXDDKOLk2s8w1iG+50TMf28USSOVTORWu/fBoWzK56Ifhy3qHRRklF +U74jyolGo2fTyGCxdsjrjmkluVy7FYiTAKiSyQ7qPeTeFswE7Bko7xF690wp9rUP +Ecf33tkCgYEAxRCOWZX+EJ9MIqEc19lU/sWR+xMgnQoS2+I2u2KIGjCkIOqPssGj +qcGqLglp4SzZRvOAOMfU6dGZHsw+OjY50Nj8Z5irgps68wionB7eIzCWaJ5+FtZl +OpAquwWYUZbitdOMkn4vDoIjbkb7Lg8abK5593RHKTH7nzXmLckHG0cCgYEA8epi +xLcWdRr7R4YrSAJm7LkvAVvOr7LGmVG5tTHCgBMmxb3ac1reKJLF871FsKkTuVE9 +LHhUvHNO3rExrRs8wzZRkykPHoL/xiuIxZagRyX3fiBU/IlxNU7S6W/fqShWyVnM +QZdeL6GB4KyBTcVWckBdx9XRxuJxFtSjcYdAoz8CgYAnCGl5uyjwt+zHqyvgYS7h +q9aHabl7AYTMwtjectzMezf3QR6nZI17UV3Y8opjTJPY5uBN3t8AVUDEBeaJdzYq +dOBB0M6f9wlNHDjxe3e6dqREIqiM83hniii8lJYgCwfqxfVBCvddI0/LRwn3jIxK +XKDR79ksgrb5SR7HkNr0fwKBgQDB/8CtGFY+GyEfvoy+9o4rkGYNpN4fMDLriQpw +MDNWGgWh1hp1H43A49MzH7nfbfePSYLRQr5RUfcRxu+bbphPxCOu6+JgCZWsCgVo +zt5BsETFNJBy5JWQtmGVKk4mjV7rocOXZhf2AoLw9eXLxFEK1mteci4EXFtsf6GC +zYAcaQKBgHrx0e5NHuSUYw0AYBd6CR4zIOdVPVTUEocAhjVvglEp5ApC0SQYr2bD +BjA2lsfYhtRrjciSAvDHRnK2pTWlbNZEQAert1z20+Hv7BLq376vgTjJCOXQYxUY +v3uf4s04ZJkDT5msmxvGQMZfjsMPqAPNNYyajUy+RdSU5DBNPv6G +-----END RSA PRIVATE KEY----- diff --git a/infra/clusters/management/bootstrap/stage1-create/id_rsa.pub b/infra/clusters/management/bootstrap/stage1-create/id_rsa.pub new file mode 100755 index 0000000..5669c94 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6OQMsODKvNt1BGT3q5xc4H1oEpkDGgSIWqUYhjdnrmQHijQLg5zyXvhLkI+ZCzE0nB9FalKbNU2fdeIcYtxKksX014oxitZn+69nuv91mZ46Sn4jTvcOTP2NTT0cyUtky4HsE3MRmak77UGuNiP2zvoPAX2yMmVRgbzzEGo5Wn/uaqJdEP5csF3PT3SrH8kY4cxLEkQJGrwCJaunkmn+BquNzDt84qJLW1Di6KzBaP4B9Tdtv2XcemDIBxoVuDmweWWPmJLCWwyUQaNT8B4SlSRaNAeu/eFzAwgC5rmqELxrPfQN8naRyPKDsngIOoHolrGT1JYBM7iOVDMRB3et5 diff --git a/infra/clusters/management/bootstrap/stage1-create/kube_config_server.yaml b/infra/clusters/management/bootstrap/stage1-create/kube_config_server.yaml new file mode 100755 index 0000000..7ad7981 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/kube_config_server.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUzTWpVNU56RXhNVGt3SGhjTk1qUXdPVEV3TVRJeU5URTVXaGNOTXpRd09UQTRNVEl5TlRFNQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUzTWpVNU56RXhNVGt3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFSeVY2RG5UUUkwUEEzNEdNU1FlYWNKZ0l0WWJjdThzZ2ZhODBoc3AxNEgKQ2Y5YWtsSkJVOFpZaGl4WnZTOS9tKzB3MXF2RkRnM2ZVSDd4QnQ2T3A0UXZvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVXRUcEk2MXNMemkzVlp3eisxY05qClRBWTN2K0V3Q2dZSUtvWkl6ajBFQXdJRFNBQXdSUUloQUtQZjgybTA3LzBqek1sdHkrcVU5SVQ0TTA1UkNmbmIKNmlHdWYzTlRLYS9NQWlCcW5PK3ZGSUZ1QWFsTUlvNFl1eWUzb0NZbkhwd3Z3aGxJNUdTSmU2Y2F5UT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + server: https://168.119.61.8:6443 + name: default +contexts: +- context: + cluster: default + user: default + name: default +current-context: default +kind: Config +preferences: {} +users: +- name: default + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrakNDQVRlZ0F3SUJBZ0lJRXhBYnJ5RWprUzR3Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOekkxT1RjeE1URTVNQjRYRFRJME1Ea3hNREV5TWpVeE9Wb1hEVEkxTURreApNREV5TWpVeE9Wb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJFc2MwWVgxSlRqSSswR2gKd0tkRnZjU1BMK1p3dDhCN1hlNktMUVIyRU5TMkpuS3pVSG56QnhaWXVPY2RlR0I2OUZ1L3FoTCtHL1QySnA3KwoyQmRDcjdtalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCVDMxZi84OWsrY3BoOU9YTWVPNE5hLzdaeEhiREFLQmdncWhrak9QUVFEQWdOSkFEQkcKQWlFQTROZEtiLy84K2NSbzNmN3J4aFZOWjFIbG11cTVHUE5oUHl2cFl6YWE1aFVDSVFDME9SWng5UGdLTlB6NwpIZjdlcmxmdjJaVUw1c0tRQWhrdE9sOFJxSHpYTUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQpNSUlCZHpDQ0FSMmdBd0lCQWdJQkFEQUtCZ2dxaGtqT1BRUURBakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwClpXNTBMV05oUURFM01qVTVOekV4TVRrd0hoY05NalF3T1RFd01USXlOVEU1V2hjTk16UXdPVEE0TVRJeU5URTUKV2pBak1TRXdId1lEVlFRRERCaHJNM010WTJ4cFpXNTBMV05oUURFM01qVTVOekV4TVRrd1dUQVRCZ2NxaGtqTwpQUUlCQmdncWhrak9QUU1CQndOQ0FBVDVkQ2NhOU05eUFQakJjZnJGUkRwK08rclEwL3VXbDdzUjN5ODZQWlV6CmZBaUllMm5Gc2NVOEpadzVFN2svQXg3d2Z4ZWZGdjJyaHJvUmt5V0pZaHJvbzBJd1FEQU9CZ05WSFE4QkFmOEUKQkFNQ0FxUXdEd1lEVlIwVEFRSC9CQVV3QXdFQi96QWRCZ05WSFE0RUZnUVU5OVgvL1BaUG5LWWZUbHpIanVEVwp2KzJjUjJ3d0NnWUlLb1pJemowRUF3SURTQUF3UlFJaEFKSGlxa2lKQVFqT3RYK2tsQnhzbVU5WUZxb0Rud2xICkR0RnB3Rm1WM2ZVdkFpQURBbi84dVl3TkpjNU9uWE5SeDVUckVlc0JvcmRJem96dVZhRFV2a3VLM0E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSUZEbVZrTFR0cjgvaGlEM0E4bXJWRkRRdTYyMCtqSU9zVHNRNlVPM21uRDZvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFU3h6UmhmVWxPTWo3UWFIQXAwVzl4STh2NW5DM3dIdGQ3b290QkhZUTFMWW1jck5RZWZNSApGbGk0NXgxNFlIcjBXNytxRXY0YjlQWW1udjdZRjBLdnVRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo= diff --git a/infra/clusters/management/bootstrap/stage1-create/local.tf b/infra/clusters/management/bootstrap/stage1-create/local.tf new file mode 100644 index 0000000..820c16f --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/local.tf @@ -0,0 +1,7 @@ +data "local_sensitive_file" "vault_keys" { + filename = "${path.module}/vault.secret" +} + +locals { + vault_keys = jsondecode(data.local_sensitive_file.vault_keys.content) +} diff --git a/infra/clusters/management/bootstrap/stage1-create/main.tf b/infra/clusters/management/bootstrap/stage1-create/main.tf new file mode 100644 index 0000000..605caac --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/main.tf @@ -0,0 +1,67 @@ +# HCloud infrastructure resources +resource "tls_private_key" "global_key" { + algorithm = "RSA" + rsa_bits = 2048 +} + +resource "local_sensitive_file" "ssh_private_key_pem" { + filename = "${path.module}/id_rsa" + content = tls_private_key.global_key.private_key_pem + file_permission = "0600" +} + +resource "local_file" "ssh_public_key_openssh" { + filename = "${path.module}/id_rsa.pub" + content = tls_private_key.global_key.public_key_openssh +} + +resource "hcloud_network" "private" { + name = "${var.prefix}-private-network" + ip_range = var.network_cidr +} + +resource "hcloud_network_subnet" "private" { + type = "cloud" + network_id = hcloud_network.private.id + network_zone = var.network_zone + ip_range = var.network_ip_range +} + +# Temporary key pair used for SSH access +resource "hcloud_ssh_key" "management_ssh_key" { + name = "${var.prefix}-instance-ssh-key" + public_key = tls_private_key.global_key.public_key_openssh +} + +# HCloud Instance for creating a single node RKE cluster and installing the Rancher server +resource "hcloud_server" "management_server" { + name = "${var.prefix}-management-server" + image = "ubuntu-24.04" + server_type = var.instance_type + location = var.hcloud_location + ssh_keys = [hcloud_ssh_key.management_ssh_key.id] + + network { + network_id = hcloud_network.private.id + } + + provisioner "remote-exec" { + inline = [ + "echo 'Waiting for cloud-init to complete...'", + "cloud-init status --wait > /dev/null", + "echo 'Completed cloud-init!'", + ] + + connection { + type = "ssh" + host = self.ipv4_address + user = local.node_username + private_key = tls_private_key.global_key.private_key_pem + } + } + + depends_on = [ + hcloud_network_subnet.private + ] +} + diff --git a/infra/clusters/management/bootstrap/stage1-create/output.tf b/infra/clusters/management/bootstrap/stage1-create/output.tf new file mode 100644 index 0000000..db030cb --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/output.tf @@ -0,0 +1,43 @@ +output "rancher_node_ip" { + value = hcloud_server.management_server.ipv4_address +} + +output "rancher_server_uri" { + value = module.rancher.rancher_uri +} + +output "rancher_server_admin_password" { + value = module.rancher.rancher_server_admin_password + sensitive = true +} + +output "minio_api_uri" { + value = module.rancher.minio_api_uri +} + +output "minio_admin_uri" { + value = module.rancher.minio_admin_uri +} + +output "minio_root_user" { + value = module.rancher.minio_root_user + sensitive = true +} + +output "minio_root_password" { + value = module.rancher.minio_root_password + sensitive = true +} + +output "minio_region" { + value = var.aws_region +} + +output "vault_uri" { + value = module.rancher.vault_uri +} + +output "vault_root_token" { + value = local.vault_keys.root_token + sensitive = true +} diff --git a/infra/clusters/management/bootstrap/stage1-create/provider.tf b/infra/clusters/management/bootstrap/stage1-create/provider.tf new file mode 100644 index 0000000..55fdd90 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/provider.tf @@ -0,0 +1,21 @@ +terraform { + required_providers { + hcloud = { + source = "hetznercloud/hcloud" + version = "1.33.2" + } + local = { + source = "hashicorp/local" + version = "2.4.0" + } + tls = { + source = "hashicorp/tls" + version = "4.0.4" + } + } + required_version = ">= 1.0.0" +} + +provider "hcloud" { + token = var.hcloud_token +} diff --git a/infra/clusters/management/bootstrap/stage1-create/rancher.tf b/infra/clusters/management/bootstrap/stage1-create/rancher.tf new file mode 100644 index 0000000..b0e1e59 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/rancher.tf @@ -0,0 +1,23 @@ +module "rancher" { + source = "../../../../modules/rancher" + + node_public_ip = hcloud_server.management_server.ipv4_address + node_internal_ip = one(hcloud_server.management_server.network[*]).ip + node_username = local.node_username + ssh_private_key_pem = tls_private_key.global_key.private_key_pem + rancher_kubernetes_version = var.rancher_kubernetes_version + + cert_manager_version = var.cert_manager_version + rancher_version = var.rancher_version + rancher_helm_repository = var.rancher_helm_repository + + // rancher_server_dns = join(".", ["rancher", hcloud_server.management_server.ipv4_address, "sslip.io"]) + admin_password = var.rancher_server_admin_password + + aws_access_key_id = var.aws_access_key_id + aws_secret_access_key = var.aws_secret_access_key + aws_region = var.aws_region + aws_kms_key_id = var.aws_kms_key_id + + server_dns = join(".", [hcloud_server.management_server.ipv4_address, "sslip.io"]) +} diff --git a/infra/clusters/management/bootstrap/stage1-create/variables.tf b/infra/clusters/management/bootstrap/stage1-create/variables.tf new file mode 100644 index 0000000..f886981 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/variables.tf @@ -0,0 +1,97 @@ +# Variables for Hetzner Cloud infrastructure module +variable "hcloud_token" { + type = string + description = "Hetzner Cloud API token used to create infrastructure" +} + +variable "hcloud_location" { + type = string + description = "Hetzner location used for all resources" + default = "fsn1" +} + +variable "prefix" { + type = string + description = "Prefix added to names of all resources" + default = "quickstart" +} + +variable "network_cidr" { + type = string + description = "Network to create for private communication" + default = "10.0.0.0/8" +} + +variable "network_ip_range" { + type = string + description = "Subnet to create for private communication. Must be part of the CIDR defined in `network_cidr`." + default = "10.0.1.0/24" +} + +variable "network_zone" { + type = string + description = "Zone to create the network in" + default = "eu-central" +} + +variable "instance_type" { + type = string + description = "Type of instance to be used for all instances" + default = "cx21" +} + +# Variables for Rancher server module +variable "rancher_kubernetes_version" { + type = string + description = "Kubernetes version to use for Rancher server cluster" + default = "v1.24.14+k3s1" +} + +variable "cert_manager_version" { + type = string + description = "Version of cert-manager to install alongside Rancher (format: 0.0.0)" + default = "1.11.0" +} + +variable "rancher_version" { + type = string + description = "Rancher server version (format: v0.0.0)" + default = "2.7.9" +} + +variable "rancher_helm_repository" { + type = string + description = "The helm repository, where the Rancher helm chart is installed from" + default = "https://releases.rancher.com/server-charts/latest" +} + +variable "rancher_server_admin_password" { + type = string + description = "Admin password to use for Rancher server bootstrap, min. 12 characters" +} + +# Local variables used to reduce repetition +locals { + node_username = "root" +} + +variable "aws_access_key_id" { + description = "AWS Access Key ID for Vault KMS access" + type = string +} + +variable "aws_secret_access_key" { + description = "AWS Secret Access Key for Vault KMS access" + type = string +} + +variable "aws_kms_key_id" { + description = "AWS KMS Key ID for Vault KMS access" + type = string +} + +variable "aws_region" { + description = "AWS KMS Region for Vault KMS access" + type = string + default = "eu-central-1" +} diff --git a/infra/clusters/management/bootstrap/stage1-create/vault.secret b/infra/clusters/management/bootstrap/stage1-create/vault.secret new file mode 100755 index 0000000..088b703 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage1-create/vault.secret @@ -0,0 +1,23 @@ +{ + "unseal_keys_b64": [], + "unseal_keys_hex": [], + "unseal_shares": 1, + "unseal_threshold": 1, + "recovery_keys_b64": [ + "V2OBJfg6VFyd8My0fFnQVnX0ehUIejdkiS0wIk/yj08L", + "Ub3NvB8i9wylI7GUhlHu1YayvrBL71eEC7+SmkXT9AWw", + "rL3HQKU0AEenP4y2UBD+ZlUrIY3LJfnA+eFKXi8IIowN", + "MldF1Cqi2FvLs4Z7yYyAxlZgNptVcUNRv4zU3wkD1RpT", + "SlGl9m9bYfD/xZ0Ia1RrPEFbxDPmnMdDjpV0S26BrY8O" + ], + "recovery_keys_hex": [ + "57638125f83a545c9df0ccb47c59d05675f47a15087a3764892d30224ff28f4f0b", + "51bdcdbc1f22f70ca523b1948651eed586b2beb04bef57840bbf929a45d3f405b0", + "acbdc740a5340047a73f8cb65010fe66552b218dcb25f9c0f9e14a5e2f08228c0d", + "325745d42aa2d85bcbb3867bc98c80c65660369b55714351bf8cd4df0903d51a53", + "4a51a5f66f5b61f0ffc59d086b546b3c415bc433e69cc7438e95744b6e81ad8f0e" + ], + "recovery_keys_shares": 5, + "recovery_keys_threshold": 3, + "root_token": "hvs.mDJwUQczuCUrK5wu9HhnKsP5" +} diff --git a/infra/clusters/management/bootstrap/stage2-harden/.terraform.lock.hcl b/infra/clusters/management/bootstrap/stage2-harden/.terraform.lock.hcl new file mode 100644 index 0000000..7c6a1e6 --- /dev/null +++ b/infra/clusters/management/bootstrap/stage2-harden/.terraform.lock.hcl @@ -0,0 +1,41 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/aminueza/minio" { + version = "2.5.0" + constraints = "~> 2.5.0" + hashes = [ + "h1:RrjfsRy+fBVh7VF3r9u7uCCSjAdR5APa6sqbc9b8GfU=", + "zh:066cdb289dbfd1675e22fe58c8b42e2732f24fc1528b1919a78dfe28f80e8b30", + "zh:26d5e55106259e69493b95058178ec3d6b2395f03a8fe832af1be0e4d89ef42c", + "zh:6247e19de9ec6ef719cfcb174b8f08085c0fd5118b3b0de3fb9bb150702b4ad8", + "zh:70c3cbab0ba8edeec0db2e175bcdb47255c92f3153f839c4e8f2b0fe8c1366f4", + "zh:713793b4b93ae62070b18983ff525390de6c84547cab4220aa068437149f5035", + "zh:72de3e532d4bc7c7a4a872aaf00d7e4dfa09f3730668a738bb881d6734248f02", + "zh:9090f9288d7bc9f23043c1e65d8535e91f10413a16699d4a18add811b25fa167", + "zh:9847284aecb52718468feccb914d67e8befb8bff8345275cb03c3209b338f68b", + "zh:aa09ba1aa6fec278198ff352cc7f2977cfe567d31fd948c54fba5db82b4cd7ec", + "zh:ca28efbf60400918b9dadd18ecbf683065bf9329b35cbf3826718d8d50f10263", + "zh:cb21b119202ac6a30724beb89aefbb8660762b0e9b7165f1e22d59720dd0f110", + "zh:f36b4c9fe4795e892b3be2c80a22461f373541f81d335b51afa963097ab29624", + ] +} + +provider "registry.terraform.io/hashicorp/vault" { + version = "4.4.0" + hashes = [ + "h1:+OO0KHYslvmN+mgRi+v3B6Yg7CYJUyaFh0GIW2hQcCY=", + "zh:12758c5afc4160355c55e808f3d0e960a69ef285ddd57f29c3a775ac63c76135", + "zh:190c4fbb620bbc07ff850119e17ffbca9f4d81968e69436024fcfb20c69d177e", + "zh:2668d3f37e41a539ddca8507a2f8100711cbe54fd7de6d9e82e191c456999674", + "zh:59cf5fe3a5cff561c9d15b1b0748fdaeee8966537a5121a20178a1dd265cc22c", + "zh:6bf7107b56132281b05932aa8fce8851cd2351d2f6c7d0de4475b5dabf755d4f", + "zh:77ee85a529e9ae519aa63950960bd2c2056dd622ad32b08731cb5237e28a9200", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:c3ff4d9c123cc23f95813800c4cea69d1fab29c65b96de4a5932fc328275f527", + "zh:c5a6dd8530f720757861da38c16da6577f30cc00423471f8bcc5682c1852027f", + "zh:c5acd773d7d24a6116866bf0e4449a3be6849cd6bd2f87141289d47983a0f777", + "zh:ede501e9979a586be279b63e0cf5ce69fa89780e37791fe87d8b4283e3716c96", + "zh:f5f6ae50a23a184d126832d688380e22311fa1b0192723507a790e57917c3e78", + ] +} diff --git a/infra/clusters/management/bootstrap/stage2-harden/local.tf b/infra/clusters/management/bootstrap/stage2-harden/local.tf new file mode 100644 index 0000000..570e96b --- /dev/null +++ b/infra/clusters/management/bootstrap/stage2-harden/local.tf @@ -0,0 +1,13 @@ +locals { + minio_uri = data.terraform_remote_state.stage1.outputs.minio_api_uri + minio_server = replace( + regex("^https?://(?:www\\.)?(.+)/?$", local.minio_uri)[0], + "$1", + "$1:443" + ) + minio_region = try(data.terraform_remote_state.stage1.outputs.minio_region, "eu-central-1") + minio_root_user = data.terraform_remote_state.stage1.outputs.minio_root_user + minio_root_password = data.terraform_remote_state.stage1.outputs.minio_root_password + vault_uri = data.terraform_remote_state.stage1.outputs.vault_uri + vault_root_token = data.terraform_remote_state.stage1.outputs.vault_root_token +} diff --git a/infra/clusters/management/bootstrap/stage2-harden/main.tf b/infra/clusters/management/bootstrap/stage2-harden/main.tf new file mode 100644 index 0000000..b4af08a --- /dev/null +++ b/infra/clusters/management/bootstrap/stage2-harden/main.tf @@ -0,0 +1,83 @@ +resource "vault_mount" "management" { + path = "management" + type = "kv" + options = { version = "2" } + description = "KV Version 2 secret engine mount for management" +} + +resource "minio_s3_bucket" "management" { + bucket = "management" + acl = "private" +} + +# resource "minio_s3_bucket_server_side_encryption" "management" { +# bucket = minio_s3_bucket.management.bucket +# encryption_type = "aws:kms" +# kms_key_id = var.aws_kms_key_id +# } + +resource "minio_iam_user" "management" { + name = "management" +} + +resource "minio_iam_service_account" "management_service_account" { + target_user = minio_iam_user.management.name + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Action = ["s3:ListBucket"] + Resource = ["arn:aws:s3:::management"] + }, + { + Effect = "Allow" + Action = ["s3:GetObject", "s3:PutObject"] + Resource = ["arn:aws:s3:::management/*"] + } + ] + }) +} + +resource "vault_kv_secret_v2" "minio_creds" { + mount = "management" + name = "minio" + delete_all_versions = true + + data_json = jsonencode({ + access_key = minio_iam_service_account.management_service_account.access_key + secret_key = minio_iam_service_account.management_service_account.secret_key + }) + + depends_on = [ + vault_mount.management, + minio_iam_service_account.management_service_account + ] +} + +resource "vault_policy" "management" { + name = "management" + + policy = < /dev/null", + "echo 'Completed cloud-init!'", + ] + + connection { + type = "ssh" + host = self.ipv4_address + user = local.node_username + private_key = tls_private_key.global_key.private_key_pem + } + } + + depends_on = [ + hcloud_network_subnet.private + ] +} diff --git a/infra/clusters/management/helm.tf b/infra/clusters/management/helm.tf new file mode 100644 index 0000000..7ce96ab --- /dev/null +++ b/infra/clusters/management/helm.tf @@ -0,0 +1,5 @@ +provider "helm" { + kubernetes { + config_path = "./bootstrap/stage1-initial-infra/kube_config_server.yaml" + } +} diff --git a/infra/clusters/management/main.tf b/infra/clusters/management/main.tf new file mode 100644 index 0000000..33c3f3b --- /dev/null +++ b/infra/clusters/management/main.tf @@ -0,0 +1,17 @@ +terraform { + backend "s3" { + endpoints = { + s3 = "https://storage.168.119.61.8.sslip.io" + } + bucket = "management" + key = "terraform.tfstate" + region = "eu-central-1" + + #encrypt = false + skip_region_validation = true + skip_metadata_api_check = true + skip_credentials_validation = true + skip_requesting_account_id = true + use_path_style = true + } +} diff --git a/infra/clusters/management/rancher.tf b/infra/clusters/management/rancher.tf new file mode 100644 index 0000000..3bce624 --- /dev/null +++ b/infra/clusters/management/rancher.tf @@ -0,0 +1,34 @@ +resource "random_password" "rancher_admin_password" { + length = 20 + special = false +} + +resource "vault_kv_secret_v2" "rancher_creds" { + mount = "management" + name = "rancher" + delete_all_versions = true + data_json = jsonencode({ + admin_password = random_password.rancher_admin_password.result + }) +} + +resource "helm_release" "rancher" { + name = "rancher" + namespace = "cattle-system" + chart = "https://releases.rancher.com/server-charts/latest/rancher-2.9.1.tgz" + + reuse_values = true + recreate_pods = false + + set_sensitive { + name = "adminPassword" + value = vault_kv_secret_v2.rancher_creds.data["admin_password"] + } + + lifecycle { + ignore_changes = [ + set, + set_sensitive, + ] + } +} diff --git a/infra/clusters/management/scripts/generate-tf-backend-config.sh b/infra/clusters/management/scripts/generate-tf-backend-config.sh new file mode 100755 index 0000000..44982f6 --- /dev/null +++ b/infra/clusters/management/scripts/generate-tf-backend-config.sh @@ -0,0 +1,11 @@ +#!/bin/bash +MINIO_ACCESS_KEY=$(vault kv get -mount="management" -field="access_key" "minio") +MINIO_SECRET_KEY=$(vault kv get -mount="management" -field="secret_key" "minio") + +cat << EOF > backend.tfvars +access_key = "${MINIO_ACCESS_KEY}" +secret_key = "${MINIO_SECRET_KEY}" +bucket = "${BUCKET}" +key = "terraform.tfstate" +region = "eu-central-1" +EOF diff --git a/infra/clusters/management/scripts/rotate-secrets.sh b/infra/clusters/management/scripts/rotate-secrets.sh new file mode 100644 index 0000000..77f9f74 --- /dev/null +++ b/infra/clusters/management/scripts/rotate-secrets.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# Generate new secrets +NEW_MINIO_ACCESS_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n 1) +NEW_MINIO_SECRET_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | fold -w 40 | head -n 1) +NEW_RANCHER_PASSWORD=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | fold -w 20 | head -n 1) + +# Update secrets in Vault +vault kv put kvv2/minio access_key="$NEW_MINIO_ACCESS_KEY" secret_key="$NEW_MINIO_SECRET_KEY" +vault kv put kvv2/rancher admin_password="$NEW_RANCHER_PASSWORD" + +# Apply Terraform configuration +terraform apply -var="minio_access_key=$NEW_MINIO_ACCESS_KEY" -var="minio_secret_key=$NEW_MINIO_SECRET_KEY" -var="rancher_admin_password=$NEW_RANCHER_PASSWORD" diff --git a/infra/clusters/management/state.tf b/infra/clusters/management/state.tf new file mode 100644 index 0000000..7a7277a --- /dev/null +++ b/infra/clusters/management/state.tf @@ -0,0 +1,7 @@ +data "terraform_remote_state" "stage2" { + backend = "local" + + config = { + path = "./bootstrap/stage2-harden/terraform.tfstate" + } +} diff --git a/infra/clusters/management/vault.tf b/infra/clusters/management/vault.tf new file mode 100644 index 0000000..579d1d1 --- /dev/null +++ b/infra/clusters/management/vault.tf @@ -0,0 +1,4 @@ +provider "vault" { + address = "http://127.0.0.1:8200" + token = data.terraform_remote_state.stage4.outputs.vault_token +} diff --git a/infra/clusters/platform/bootstrap/minio.tf b/infra/clusters/platform/bootstrap/minio.tf new file mode 100644 index 0000000..eaca998 --- /dev/null +++ b/infra/clusters/platform/bootstrap/minio.tf @@ -0,0 +1,47 @@ +terraform { + required_providers { + minio = { + source = "aminueza/minio" + version = "~> 2.5.0" + } + } +} + +provider "minio" { + minio_server = "localhost:9123" + minio_region = "eu-central-1" + minio_user = data.vault_kv_secret_v2.minio_creds.data["access_key"] + minio_password = data.vault_kv_secret_v2.minio_creds.data["secret_key"] +} + +resource "minio_s3_bucket" "platform" { + depends_on = [data.vault_kv_secret_v2.minio_creds] + bucket = "platform" + acl = "private" +} + +resource "minio_iam_user" "platform" { + depends_on = [data.vault_kv_secret_v2.minio_creds] + name = "platform" +} + +resource "minio_iam_policy" "platform" { + depends_on = [minio_s3_bucket.platform] + name = "platform-policy" + policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Effect = "Allow" + Action = ["s3:GetObject", "s3:PutObject"] + Resource = ["arn:aws:s3:::platform/*"] + } + ] + }) +} + +resource "minio_iam_user_policy_attachment" "policy_attachment" { + depends_on = [minio_iam_user.platform, minio_iam_policy.platform] + user_name = minio_iam_user.platform.name + policy_name = minio_iam_policy.platform.name +} diff --git a/infra/clusters/platform/bootstrap/output.tf b/infra/clusters/platform/bootstrap/output.tf new file mode 100644 index 0000000..0cc044c --- /dev/null +++ b/infra/clusters/platform/bootstrap/output.tf @@ -0,0 +1,17 @@ +output "vault_token" { + value = vault_token.platform.client_token + sensitive = true +} + +output "minio_user" { + value = minio_iam_user.platform.id +} + +output "minio_user_status" { + value = minio_iam_user.platform.status +} + +output "minio_user_secret" { + value = minio_iam_user.platform.secret + sensitive = true +} diff --git a/infra/clusters/platform/bootstrap/variables.tf b/infra/clusters/platform/bootstrap/variables.tf new file mode 100644 index 0000000..4cb800c --- /dev/null +++ b/infra/clusters/platform/bootstrap/variables.tf @@ -0,0 +1,4 @@ +variable "vault_root_token" { + description = "Vault (root) token to create secrets" + type = string +} diff --git a/infra/clusters/platform/bootstrap/vault.tf b/infra/clusters/platform/bootstrap/vault.tf new file mode 100644 index 0000000..03904bb --- /dev/null +++ b/infra/clusters/platform/bootstrap/vault.tf @@ -0,0 +1,34 @@ +provider "vault" { + address = "http://127.0.0.1:8200" + token = var.vault_root_token +} + +data "vault_kv_secret_v2" "minio_creds" { + mount = "management" + name = "minio" +} + +resource "vault_mount" "platform" { + path = "platform" + type = "kv" + options = { version = "2" } + description = "KV Version 2 secret engine mount for management" +} + +resource "vault_policy" "platform" { + name = "platform" + + policy = < /dev/null", + "echo 'Completed cloud-init!'", + ] + + connection { + type = "ssh" + host = self.ipv4_address + user = local.node_username + private_key = tls_private_key.global_key.private_key_pem + } + } + + depends_on = [ + hcloud_network_subnet.private + ] +} diff --git a/infra/clusters/platform/rancher_cluster.tf b/infra/clusters/platform/rancher_cluster.tf new file mode 100644 index 0000000..d01a92e --- /dev/null +++ b/infra/clusters/platform/rancher_cluster.tf @@ -0,0 +1,8 @@ + +# Create custom managed cluster for quickstart +resource "rancher2_cluster_v2" "quickstart_workload" { + provider = rancher2.admin + + name = var.workload_cluster_name + kubernetes_version = var.workload_kubernetes_version +} diff --git a/infra/modules/MODULES.md b/infra/modules/MODULES.md new file mode 100644 index 0000000..7f08ea4 --- /dev/null +++ b/infra/modules/MODULES.md @@ -0,0 +1,15 @@ +- consul: service discovery +- crdb: cockroachdb, distributed postgresql database +- jaeger: distributed tracing +- harbor: registry +- keda: k8s scaling using events +- metabase: easy dashboarding +- minio: s3 compatible object storage +- novu: webhooks +- rabbitmq: message broker +- redis: in-memory key-value store +- stack-auth: auth0 alternative +- traefik: ingress +- umami: analytics +- vault: secrets management +- victoriametrics: prometheus compatible TSDB diff --git a/infra/modules/argocd.tf b/infra/modules/argocd.tf new file mode 100644 index 0000000..24c80bf --- /dev/null +++ b/infra/modules/argocd.tf @@ -0,0 +1,15 @@ +resource "helm_release" "argocd" { + name = "argocd" + repository = "https://argoproj.github.io/argo-helm" + chart = "argo-cd" + namespace = "argocd" + create_namespace = true + + set { + name = "server.service.type" + value = "LoadBalancer" + } + + # Add other configuration options as needed +} + diff --git a/infra/modules/dns.tf b/infra/modules/dns.tf new file mode 100644 index 0000000..06c1945 --- /dev/null +++ b/infra/modules/dns.tf @@ -0,0 +1,18 @@ +resource "http" "create_dns_record" { + url = "https://dns.hetzner.com/api/v1/records" + method = "POST" + + request_headers = { + "Auth-API-Token" = var.hetzner_dns_token + "Content-Type" = "application/json" + } + + request_body = jsonencode({ + zone_id = var.hetzner_zone_id + type = "A" + name = "rancher" + value = hcloud_server.master.ipv4_address + ttl = 3600 + }) +} + diff --git a/infra/modules/harbor/main.tf b/infra/modules/harbor/main.tf new file mode 100644 index 0000000..c3daba1 --- /dev/null +++ b/infra/modules/harbor/main.tf @@ -0,0 +1,19 @@ +resource "harbor_project" "example_project" { + name = "example-project" + public = false + vulnerability_scanning = true +} + +resource "harbor_robot_account" "example_robot" { + name = "example-robot" + description = "Robot account for example project" + level = "project" + permissions { + access { + action = "push" + resource = "repository" + } + kind = "project" + namespace = harbor_project.example_project.name + } +} diff --git a/infra/modules/harbor/provider.tf b/infra/modules/harbor/provider.tf new file mode 100644 index 0000000..6f55663 --- /dev/null +++ b/infra/modules/harbor/provider.tf @@ -0,0 +1,19 @@ +terraform { + required_providers { + harbor = { + source = "goharbor/harbor" + version = "~> 3.0" # Use the latest version available + } + } +} + +provider "harbor" { + url = "https://your-harbor-instance-url" + username = var.harbor_username + password = var.harbor_password + # Alternatively, you can use a bearer token: + # bearer_token = var.harbor_token + + # If you're using a self-signed certificate, you might need: + # insecure = true +} diff --git a/infra/modules/harbor/variables.tf b/infra/modules/harbor/variables.tf new file mode 100644 index 0000000..21591c5 --- /dev/null +++ b/infra/modules/harbor/variables.tf @@ -0,0 +1,17 @@ +variable "harbor_username" { + type = string + description = "Username for Harbor" +} + +variable "harbor_password" { + type = string + description = "Password for Harbor" + sensitive = true +} + +# If using bearer token instead of username/password: +# variable "harbor_token" { +# type = string +# description = "Bearer token for Harbor" +# sensitive = true +# } diff --git a/infra/modules/hcloud/README.md b/infra/modules/hcloud/README.md new file mode 100644 index 0000000..0e003a5 --- /dev/null +++ b/infra/modules/hcloud/README.md @@ -0,0 +1,68 @@ +# Hetzner Cloud Rancher Quickstart + +Two single-node Kubernetes clusters will be created from two instances running Ubuntu 20.04 and Docker. +Both instances will be accessible over SSH using the auto-generated SSH keys `id_rsa` and `id_rsa.pub`. + + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.0.0 | +| [hcloud](#requirement\_hcloud) | 1.33.2 | +| [local](#requirement\_local) | 2.4.0 | +| [tls](#requirement\_tls) | 4.0.4 | + +## Providers + +| Name | Version | +|------|---------| +| [hcloud](#provider\_hcloud) | 1.33.2 | +| [local](#provider\_local) | 2.4.0 | +| [tls](#provider\_tls) | 4.0.4 | + +## Modules + +| Name | Source | Version | +|------|--------|---------| +| [rancher\_common](#module\_rancher\_common) | ../rancher-common | n/a | + +## Resources + +| Name | Type | +|------|------| +| [hcloud_network.private](https://registry.terraform.io/providers/hetznercloud/hcloud/1.33.2/docs/resources/network) | resource | +| [hcloud_network_subnet.private](https://registry.terraform.io/providers/hetznercloud/hcloud/1.33.2/docs/resources/network_subnet) | resource | +| [hcloud_server.quickstart_node](https://registry.terraform.io/providers/hetznercloud/hcloud/1.33.2/docs/resources/server) | resource | +| [hcloud_server.rancher_server](https://registry.terraform.io/providers/hetznercloud/hcloud/1.33.2/docs/resources/server) | resource | +| [hcloud_ssh_key.quickstart_ssh_key](https://registry.terraform.io/providers/hetznercloud/hcloud/1.33.2/docs/resources/ssh_key) | resource | +| [local_file.ssh_public_key_openssh](https://registry.terraform.io/providers/hashicorp/local/2.4.0/docs/resources/file) | resource | +| [local_sensitive_file.ssh_private_key_pem](https://registry.terraform.io/providers/hashicorp/local/2.4.0/docs/resources/sensitive_file) | resource | +| [tls_private_key.global_key](https://registry.terraform.io/providers/hashicorp/tls/4.0.4/docs/resources/private_key) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [hcloud\_token](#input\_hcloud\_token) | Hetzner Cloud API token used to create infrastructure | `string` | n/a | yes | +| [rancher\_server\_admin\_password](#input\_rancher\_server\_admin\_password) | Admin password to use for Rancher server bootstrap, min. 12 characters | `string` | n/a | yes | +| [cert\_manager\_version](#input\_cert\_manager\_version) | Version of cert-manager to install alongside Rancher (format: 0.0.0) | `string` | `"1.11.0"` | no | +| [hcloud\_location](#input\_hcloud\_location) | Hetzner location used for all resources | `string` | `"fsn1"` | no | +| [instance\_type](#input\_instance\_type) | Type of instance to be used for all instances | `string` | `"cx21"` | no | +| [network\_cidr](#input\_network\_cidr) | Network to create for private communication | `string` | `"10.0.0.0/8"` | no | +| [network\_ip\_range](#input\_network\_ip\_range) | Subnet to create for private communication. Must be part of the CIDR defined in `network_cidr`. | `string` | `"10.0.1.0/24"` | no | +| [network\_zone](#input\_network\_zone) | Zone to create the network in | `string` | `"eu-central"` | no | +| [prefix](#input\_prefix) | Prefix added to names of all resources | `string` | `"quickstart"` | no | +| [rancher\_helm\_repository](#input\_rancher\_helm\_repository) | The helm repository, where the Rancher helm chart is installed from | `string` | `"https://releases.rancher.com/server-charts/latest"` | no | +| [rancher\_kubernetes\_version](#input\_rancher\_kubernetes\_version) | Kubernetes version to use for Rancher server cluster | `string` | `"v1.24.14+k3s1"` | no | +| [rancher\_version](#input\_rancher\_version) | Rancher server version (format: v0.0.0) | `string` | `"2.7.9"` | no | +| [workload\_kubernetes\_version](#input\_workload\_kubernetes\_version) | Kubernetes version to use for managed workload cluster | `string` | `"v1.24.14+rke2r1"` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| [rancher\_node\_ip](#output\_rancher\_node\_ip) | n/a | +| [rancher\_server\_url](#output\_rancher\_server\_url) | n/a | +| [workload\_node\_ip](#output\_workload\_node\_ip) | n/a | + diff --git a/infra/modules/hcloud/files/userdata_quickstart_node.template b/infra/modules/hcloud/files/userdata_quickstart_node.template new file mode 100644 index 0000000..4083d09 --- /dev/null +++ b/infra/modules/hcloud/files/userdata_quickstart_node.template @@ -0,0 +1,3 @@ +#!/bin/bash -x + +${register_command} --etcd --controlplane --worker diff --git a/infra/modules/hcloud/infra.tf b/infra/modules/hcloud/infra.tf new file mode 100644 index 0000000..ef89e11 --- /dev/null +++ b/infra/modules/hcloud/infra.tf @@ -0,0 +1,128 @@ +# HCloud infrastructure resources + +resource "tls_private_key" "global_key" { + algorithm = "RSA" + rsa_bits = 2048 +} + +resource "local_sensitive_file" "ssh_private_key_pem" { + filename = "${path.module}/id_rsa" + content = tls_private_key.global_key.private_key_pem + file_permission = "0600" +} + +resource "local_file" "ssh_public_key_openssh" { + filename = "${path.module}/id_rsa.pub" + content = tls_private_key.global_key.public_key_openssh +} + +resource "hcloud_network" "private" { + name = "${var.prefix}-private-network" + ip_range = var.network_cidr +} + +resource "hcloud_network_subnet" "private" { + type = "cloud" + network_id = hcloud_network.private.id + network_zone = var.network_zone + ip_range = var.network_ip_range +} + +# Temporary key pair used for SSH accesss +resource "hcloud_ssh_key" "quickstart_ssh_key" { + name = "${var.prefix}-instance-ssh-key" + public_key = tls_private_key.global_key.public_key_openssh +} + +# HCloud Instance for creating a single node RKE cluster and installing the Rancher server +resource "hcloud_server" "rancher_server" { + name = "${var.prefix}-rancher-server" + image = "ubuntu-20.04" + server_type = var.instance_type + location = var.hcloud_location + ssh_keys = [hcloud_ssh_key.quickstart_ssh_key.id] + + network { + network_id = hcloud_network.private.id + } + + provisioner "remote-exec" { + inline = [ + "echo 'Waiting for cloud-init to complete...'", + "cloud-init status --wait > /dev/null", + "echo 'Completed cloud-init!'", + ] + + connection { + type = "ssh" + host = self.ipv4_address + user = local.node_username + private_key = tls_private_key.global_key.private_key_pem + } + } + + depends_on = [ + hcloud_network_subnet.private + ] +} + +# Rancher resources +module "rancher_common" { + source = "../rancher-common" + + node_public_ip = hcloud_server.rancher_server.ipv4_address + node_internal_ip = one(hcloud_server.rancher_server.network[*]).ip + node_username = local.node_username + ssh_private_key_pem = tls_private_key.global_key.private_key_pem + rancher_kubernetes_version = var.rancher_kubernetes_version + + cert_manager_version = var.cert_manager_version + rancher_version = var.rancher_version + rancher_helm_repository = var.rancher_helm_repository + + rancher_server_dns = join(".", ["rancher", hcloud_server.rancher_server.ipv4_address, "sslip.io"]) + admin_password = var.rancher_server_admin_password + + workload_kubernetes_version = var.workload_kubernetes_version + workload_cluster_name = "quickstart-hcloud-custom" +} + +# HCloud instance for creating a single node workload cluster +resource "hcloud_server" "quickstart_node" { + name = "${var.prefix}-worker" + image = "ubuntu-20.04" + server_type = var.instance_type + location = var.hcloud_location + ssh_keys = [hcloud_ssh_key.quickstart_ssh_key.id] + + network { + network_id = hcloud_network.private.id + } + + user_data = templatefile( + "${path.module}/files/userdata_quickstart_node.template", + { + username = local.node_username + register_command = module.rancher_common.custom_cluster_command + } + ) + + provisioner "remote-exec" { + inline = [ + "echo 'Waiting for cloud-init to complete...'", + "cloud-init status --wait > /dev/null", + "echo 'Completed cloud-init!'", + ] + + connection { + type = "ssh" + host = self.ipv4_address + user = local.node_username + private_key = tls_private_key.global_key.private_key_pem + } + } + + depends_on = [ + hcloud_network_subnet.private + ] +} \ No newline at end of file diff --git a/infra/modules/hcloud/output.tf b/infra/modules/hcloud/output.tf new file mode 100644 index 0000000..0489a82 --- /dev/null +++ b/infra/modules/hcloud/output.tf @@ -0,0 +1,12 @@ + +output "rancher_server_url" { + value = module.rancher_common.rancher_url +} + +output "rancher_node_ip" { + value = hcloud_server.rancher_server.ipv4_address +} + +output "workload_node_ip" { + value = hcloud_server.quickstart_node.ipv4_address +} diff --git a/infra/modules/hcloud/provider.tf b/infra/modules/hcloud/provider.tf new file mode 100644 index 0000000..55fdd90 --- /dev/null +++ b/infra/modules/hcloud/provider.tf @@ -0,0 +1,21 @@ +terraform { + required_providers { + hcloud = { + source = "hetznercloud/hcloud" + version = "1.33.2" + } + local = { + source = "hashicorp/local" + version = "2.4.0" + } + tls = { + source = "hashicorp/tls" + version = "4.0.4" + } + } + required_version = ">= 1.0.0" +} + +provider "hcloud" { + token = var.hcloud_token +} diff --git a/infra/modules/hcloud/terraform.tfvars.example b/infra/modules/hcloud/terraform.tfvars.example new file mode 100644 index 0000000..50418c2 --- /dev/null +++ b/infra/modules/hcloud/terraform.tfvars.example @@ -0,0 +1,39 @@ + +# Hetzner Cloud API token used to create infrastructure +hcloud_token = "" + +# Admin password to use for Rancher server bootstrap, min. 12 characters +rancher_server_admin_password = "" + +# Version of cert-manager to install alongside Rancher (format: 0.0.0) +cert_manager_version = "1.11.0" + +# Hetzner location used for all resources +hcloud_location = "fsn1" + +# Type of instance to be used for all instances +instance_type = "cx21" + +# Network to create for private communication +network_cidr = "10.0.0.0/8" + +# Subnet to create for private communication. Must be part of the CIDR defined in `network_cidr`. +network_ip_range = "10.0.1.0/24" + +# Zone to create the network in +network_zone = "eu-central" + +# Prefix added to names of all resources +prefix = "quickstart" + +# The helm repository, where the Rancher helm chart is installed from +rancher_helm_repository = "https://releases.rancher.com/server-charts/latest" + +# Kubernetes version to use for Rancher server cluster +rancher_kubernetes_version = "v1.24.14+k3s1" + +# Rancher server version (format: v0.0.0) +rancher_version = "2.7.9" + +# Kubernetes version to use for managed workload cluster +workload_kubernetes_version = "v1.24.14+rke2r1" \ No newline at end of file diff --git a/infra/modules/hcloud/variables.tf b/infra/modules/hcloud/variables.tf new file mode 100644 index 0000000..f56b418 --- /dev/null +++ b/infra/modules/hcloud/variables.tf @@ -0,0 +1,82 @@ +# Variables for Hetzner Cloud infrastructure module + +variable "hcloud_token" { + type = string + description = "Hetzner Cloud API token used to create infrastructure" +} + +variable "hcloud_location" { + type = string + description = "Hetzner location used for all resources" + default = "fsn1" +} + +variable "prefix" { + type = string + description = "Prefix added to names of all resources" + default = "quickstart" +} + +variable "network_cidr" { + type = string + description = "Network to create for private communication" + default = "10.0.0.0/8" +} + +variable "network_ip_range" { + type = string + description = "Subnet to create for private communication. Must be part of the CIDR defined in `network_cidr`." + default = "10.0.1.0/24" +} + +variable "network_zone" { + type = string + description = "Zone to create the network in" + default = "eu-central" +} + +variable "instance_type" { + type = string + description = "Type of instance to be used for all instances" + default = "cx21" +} + +variable "rancher_kubernetes_version" { + type = string + description = "Kubernetes version to use for Rancher server cluster" + default = "v1.24.14+k3s1" +} + +variable "workload_kubernetes_version" { + type = string + description = "Kubernetes version to use for managed workload cluster" + default = "v1.24.14+rke2r1" +} + +variable "cert_manager_version" { + type = string + description = "Version of cert-manager to install alongside Rancher (format: 0.0.0)" + default = "1.11.0" +} + +variable "rancher_version" { + type = string + description = "Rancher server version (format: v0.0.0)" + default = "2.7.9" +} + +variable "rancher_helm_repository" { + type = string + description = "The helm repository, where the Rancher helm chart is installed from" + default = "https://releases.rancher.com/server-charts/latest" +} + +variable "rancher_server_admin_password" { + type = string + description = "Admin password to use for Rancher server bootstrap, min. 12 characters" +} + +# Local variables used to reduce repetition +locals { + node_username = "root" +} diff --git a/infra/modules/minio/local.tf b/infra/modules/minio/local.tf new file mode 100644 index 0000000..4f01c63 --- /dev/null +++ b/infra/modules/minio/local.tf @@ -0,0 +1,4 @@ +locals { + hostname_api = var.hostname + hostname_admin = join(".", ["admin", var.hostname]) +} diff --git a/infra/modules/minio/main.tf b/infra/modules/minio/main.tf new file mode 100644 index 0000000..71a0367 --- /dev/null +++ b/infra/modules/minio/main.tf @@ -0,0 +1,52 @@ +resource "random_password" "minio_access_key" { + length = 20 + special = false +} + +resource "random_password" "minio_secret_key" { + length = 40 + special = true +} + +resource "helm_release" "minio" { + name = "minio" + repository = "https://charts.bitnami.com/bitnami" + chart = "minio" + namespace = "minio" + create_namespace = true + + set_sensitive { + name = "auth.rootUser" + value = random_password.minio_access_key.result + } + + set_sensitive { + name = "auth.rootPassword" + value = random_password.minio_secret_key.result + } + + + + values = [ + <<-EOT + ingress: + enabled: false + ingressClassName: traefik + tls: true + hostname: ${local.hostname_admin} + annotations: + kubernetes.io/ingress.class: traefik + cert-manager.io/cluster-issuer: letsencrypt + traefik.ingress.kubernetes.io/router.entrypoints: web,websecure + apiIngress: + enabled: true + ingressClassName: traefik + tls: true + hostname: ${local.hostname_api} + annotations: + kubernetes.io/ingress.class: traefik + cert-manager.io/cluster-issuer: letsencrypt + traefik.ingress.kubernetes.io/router.entrypoints: web,websecure + EOT + ] +} diff --git a/infra/modules/minio/output.tf b/infra/modules/minio/output.tf new file mode 100644 index 0000000..cfeb94c --- /dev/null +++ b/infra/modules/minio/output.tf @@ -0,0 +1,17 @@ +output "minio_api_uri" { + value = "https://${local.hostname_api}" +} + +output "minio_admin_uri" { + value = "https://${local.hostname_admin}" +} + +output "minio_root_user" { + value = random_password.minio_access_key.result + sensitive = true +} + +output "minio_root_password" { + value = random_password.minio_secret_key.result + sensitive = true +} diff --git a/infra/modules/minio/provider.tf b/infra/modules/minio/provider.tf new file mode 100644 index 0000000..e6871fa --- /dev/null +++ b/infra/modules/minio/provider.tf @@ -0,0 +1,5 @@ +provider "helm" { + kubernetes { + config_path = var.config_path + } +} diff --git a/infra/modules/minio/variables.tf b/infra/modules/minio/variables.tf new file mode 100644 index 0000000..38e3a08 --- /dev/null +++ b/infra/modules/minio/variables.tf @@ -0,0 +1,9 @@ +variable "config_path" { + description = "Path to the kubeconfig file" + type = string +} + +variable "hostname" { + description = "Hostname for the Minio server" + type = string +} diff --git a/infra/modules/rancher/README.md b/infra/modules/rancher/README.md new file mode 100644 index 0000000..c5a68b3 --- /dev/null +++ b/infra/modules/rancher/README.md @@ -0,0 +1,70 @@ +# Rancher Common Terraform Module + +The `rancher-common` module contains all resources that do not depend on a +specific cloud provider. RKE, Kubernetes, Helm, and Rancher providers are used +given the necessary information about the infrastructure created in a cloud +provider. + + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >= 1.0.0 | +| [helm](#requirement\_helm) | 2.10.1 | +| [local](#requirement\_local) | 2.4.0 | +| [rancher2](#requirement\_rancher2) | 3.0.0 | +| [ssh](#requirement\_ssh) | 2.6.0 | + +## Providers + +| Name | Version | +|------|---------| +| [helm](#provider\_helm) | 2.10.1 | +| [local](#provider\_local) | 2.4.0 | +| [rancher2.admin](#provider\_rancher2.admin) | 3.0.0 | +| [rancher2.bootstrap](#provider\_rancher2.bootstrap) | 3.0.0 | +| [ssh](#provider\_ssh) | 2.6.0 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [helm_release.cert_manager](https://registry.terraform.io/providers/hashicorp/helm/2.10.1/docs/resources/release) | resource | +| [helm_release.rancher_server](https://registry.terraform.io/providers/hashicorp/helm/2.10.1/docs/resources/release) | resource | +| [local_file.kube_config_server_yaml](https://registry.terraform.io/providers/hashicorp/local/2.4.0/docs/resources/file) | resource | +| [local_file.kube_config_workload_yaml](https://registry.terraform.io/providers/hashicorp/local/2.4.0/docs/resources/file) | resource | +| [rancher2_bootstrap.admin](https://registry.terraform.io/providers/rancher/rancher2/3.0.0/docs/resources/bootstrap) | resource | +| [rancher2_cluster_v2.quickstart_workload](https://registry.terraform.io/providers/rancher/rancher2/3.0.0/docs/resources/cluster_v2) | resource | +| [ssh_resource.install_k3s](https://registry.terraform.io/providers/loafoe/ssh/2.6.0/docs/resources/resource) | resource | +| [ssh_resource.retrieve_config](https://registry.terraform.io/providers/loafoe/ssh/2.6.0/docs/resources/resource) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [admin\_password](#input\_admin\_password) | Admin password to use for Rancher server bootstrap, min. 12 characters | `string` | n/a | yes | +| [node\_public\_ip](#input\_node\_public\_ip) | Public IP of compute node for Rancher cluster | `string` | n/a | yes | +| [node\_username](#input\_node\_username) | Username used for SSH access to the Rancher server cluster node | `string` | n/a | yes | +| [rancher\_server\_dns](#input\_rancher\_server\_dns) | DNS host name of the Rancher server | `string` | n/a | yes | +| [ssh\_private\_key\_pem](#input\_ssh\_private\_key\_pem) | Private key used for SSH access to the Rancher server cluster node | `string` | n/a | yes | +| [workload\_cluster\_name](#input\_workload\_cluster\_name) | Name for created custom workload cluster | `string` | n/a | yes | +| [cert\_manager\_version](#input\_cert\_manager\_version) | Version of cert-manager to install alongside Rancher (format: 0.0.0) | `string` | `"1.11.0"` | no | +| [node\_internal\_ip](#input\_node\_internal\_ip) | Internal IP of compute node for Rancher cluster | `string` | `""` | no | +| [rancher\_helm\_repository](#input\_rancher\_helm\_repository) | The helm repository, where the Rancher helm chart is installed from | `string` | `"https://releases.rancher.com/server-charts/latest"` | no | +| [rancher\_kubernetes\_version](#input\_rancher\_kubernetes\_version) | Kubernetes version to use for Rancher server cluster | `string` | `"v1.24.14+k3s1"` | no | +| [rancher\_version](#input\_rancher\_version) | Rancher server version (format v0.0.0) | `string` | `"2.7.9"` | no | +| [workload\_kubernetes\_version](#input\_workload\_kubernetes\_version) | Kubernetes version to use for managed workload cluster | `string` | `"v1.24.14+rke2r1"` | no | + +## Outputs + +| Name | Description | +|------|-------------| +| [custom\_cluster\_command](#output\_custom\_cluster\_command) | Docker command used to add a node to the quickstart cluster | +| [custom\_cluster\_windows\_command](#output\_custom\_cluster\_windows\_command) | Docker command used to add a windows node to the quickstart cluster | +| [rancher\_url](#output\_rancher\_url) | n/a | + diff --git a/infra/modules/rancher/data.tf b/infra/modules/rancher/data.tf new file mode 100644 index 0000000..6adf3e8 --- /dev/null +++ b/infra/modules/rancher/data.tf @@ -0,0 +1,14 @@ +# Data for rancher common module + +# Kubernetes data +# ---------------------------------------------------------- + +# # Rancher certificates +# data "kubernetes_secret" "rancher_cert" { +# depends_on = [helm_release.rancher_server] + +# metadata { +# name = "tls-rancher-ingress" +# namespace = "cattle-system" +# } +# } diff --git a/infra/modules/rancher/helm.tf b/infra/modules/rancher/helm.tf new file mode 100644 index 0000000..ac0ada1 --- /dev/null +++ b/infra/modules/rancher/helm.tf @@ -0,0 +1,51 @@ +# Helm resources + +# Install cert-manager helm chart +resource "helm_release" "cert_manager" { + name = "cert-manager" + chart = "https://charts.jetstack.io/charts/cert-manager-v${var.cert_manager_version}.tgz" + namespace = "cert-manager" + create_namespace = true + wait = true + + set { + name = "installCRDs" + value = "true" + } + + set_list { + name = "dnsConfig.nameservers" + value = ["1.1.1.1", "8.8.8.8"] + } + + set { + name = "email" + value = var.cert_manager_email + } +} + +# Install Rancher helm chart +resource "helm_release" "rancher_server" { + depends_on = [ + helm_release.cert_manager, + ] + + name = "rancher" + chart = "${var.rancher_helm_repository}/rancher-${var.rancher_version}.tgz" + namespace = "cattle-system" + create_namespace = true + wait = true + + values = [ file("${path.module}/rancher-values.yaml") ] + + set { + name = "hostname" + value = join(".", ["rancher", var.server_dns]) + } + + set { + name = "bootstrapPassword" + value = "admin" # TODO: change this once the terraform provider has been updated with the new pw bootstrap logic + } +} + diff --git a/infra/modules/rancher/k3s.tf b/infra/modules/rancher/k3s.tf new file mode 100644 index 0000000..9526d14 --- /dev/null +++ b/infra/modules/rancher/k3s.tf @@ -0,0 +1,23 @@ +# K3s cluster for Rancher + +resource "ssh_resource" "install_k3s" { + host = var.node_public_ip + commands = [ + "bash -c 'curl https://get.k3s.io | INSTALL_K3S_EXEC=\"server --disable=traefik --node-external-ip ${var.node_public_ip} --node-ip ${var.node_internal_ip}\" INSTALL_K3S_VERSION=${var.rancher_kubernetes_version} sh -'" + ] + user = var.node_username + private_key = var.ssh_private_key_pem +} + +resource "ssh_resource" "retrieve_config" { + depends_on = [ + ssh_resource.install_k3s + ] + host = var.node_public_ip + commands = [ + "sudo sed \"s/127.0.0.1/${var.node_public_ip}/g\" /etc/rancher/k3s/k3s.yaml" + ] + user = var.node_username + private_key = var.ssh_private_key_pem +} + diff --git a/infra/modules/rancher/k8s.tf b/infra/modules/rancher/k8s.tf new file mode 100644 index 0000000..6a50644 --- /dev/null +++ b/infra/modules/rancher/k8s.tf @@ -0,0 +1,39 @@ +resource "kubectl_manifest" "clusterissuer-letsencrypt" { + depends_on = [ + ssh_resource.retrieve_config, + helm_release.cert_manager, + module.traefik, + ] + + yaml_body = <