├── .codefresh ├── agent-validate.yml ├── kubevious-validate.yml └── workload-operator-validate.yml ├── .github └── ISSUE_TEMPLATE │ └── issue.md ├── .gitignore ├── LICENSE ├── README.md ├── VERSION.md ├── agent ├── chart │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ └── parser │ │ │ ├── _helpers.tpl │ │ │ ├── clusterrole.yaml │ │ │ ├── clusterrolebinding.yaml │ │ │ ├── deployment.yaml │ │ │ └── serviceaccount.yaml │ └── values.yaml ├── dev-install.sh ├── dev-uninstall.sh ├── overrides │ ├── existing-service-account.yaml │ ├── overrides-install.yaml │ └── overrides-parser-api-skip.yaml ├── setup-binary-versions.sh ├── template-all.sh └── validate.sh ├── charts ├── favicon.png ├── index.html ├── index.yaml ├── kubevious-0.1.tgz ├── kubevious-0.2.tgz ├── kubevious-0.3.tgz ├── kubevious-0.4.10.tgz ├── kubevious-0.4.11.tgz ├── kubevious-0.4.12.tgz ├── kubevious-0.4.13.tgz ├── kubevious-0.4.14.tgz ├── kubevious-0.4.15.tgz ├── kubevious-0.4.16.tgz ├── kubevious-0.4.17.tgz ├── kubevious-0.4.18.tgz ├── kubevious-0.4.19.tgz ├── kubevious-0.4.20.tgz ├── kubevious-0.4.21.tgz ├── kubevious-0.4.22.tgz ├── kubevious-0.4.23.tgz ├── kubevious-0.4.24.tgz ├── kubevious-0.5.1.tgz ├── kubevious-0.5.2.tgz ├── kubevious-0.5.3.tgz ├── kubevious-0.5.4.tgz ├── kubevious-0.5.6.tgz ├── kubevious-0.5.7.tgz ├── kubevious-0.5.8.tgz ├── kubevious-0.5.9.tgz ├── kubevious-0.6.1.tgz ├── kubevious-0.6.10.tgz ├── kubevious-0.6.11.tgz ├── kubevious-0.6.12.tgz ├── kubevious-0.6.13.tgz ├── kubevious-0.6.14.tgz ├── kubevious-0.6.15.tgz ├── kubevious-0.6.16.tgz ├── kubevious-0.6.17.tgz ├── kubevious-0.6.18.tgz ├── kubevious-0.6.19.tgz ├── kubevious-0.6.2.tgz ├── kubevious-0.6.20.tgz ├── kubevious-0.6.21.tgz ├── kubevious-0.6.22.tgz ├── kubevious-0.6.23.tgz ├── kubevious-0.6.24.tgz ├── kubevious-0.6.25.tgz ├── kubevious-0.6.26.tgz ├── kubevious-0.6.27.tgz ├── kubevious-0.6.28.tgz ├── kubevious-0.6.29.tgz ├── kubevious-0.6.3.tgz ├── kubevious-0.6.30.tgz ├── kubevious-0.6.31.tgz ├── kubevious-0.6.32.tgz ├── kubevious-0.6.33.tgz ├── kubevious-0.6.34.tgz ├── kubevious-0.6.35.tgz ├── kubevious-0.6.36.tgz ├── kubevious-0.6.4.tgz ├── kubevious-0.6.5.tgz ├── kubevious-0.6.6.tgz ├── kubevious-0.6.7.tgz ├── kubevious-0.6.8.tgz ├── kubevious-0.6.9.tgz ├── kubevious-0.7.1.tgz ├── kubevious-0.7.10.tgz ├── kubevious-0.7.11.tgz ├── kubevious-0.7.12.tgz ├── kubevious-0.7.13.tgz ├── kubevious-0.7.14.tgz ├── kubevious-0.7.15.tgz ├── kubevious-0.7.16.tgz ├── kubevious-0.7.17.tgz ├── kubevious-0.7.18.tgz ├── kubevious-0.7.19.tgz ├── kubevious-0.7.2.tgz ├── kubevious-0.7.20.tgz ├── kubevious-0.7.21.tgz ├── kubevious-0.7.22.tgz ├── kubevious-0.7.25.tgz ├── kubevious-0.7.26.tgz ├── kubevious-0.7.3.tgz ├── kubevious-0.7.4.tgz ├── kubevious-0.7.5.tgz ├── kubevious-0.7.6.tgz ├── kubevious-0.7.7.tgz ├── kubevious-0.7.8.tgz ├── kubevious-0.7.9.tgz ├── kubevious-0.8.1.tgz ├── kubevious-0.8.10.tgz ├── kubevious-0.8.11.tgz ├── kubevious-0.8.12.tgz ├── kubevious-0.8.13.tgz ├── kubevious-0.8.14.tgz ├── kubevious-0.8.15.tgz ├── kubevious-0.8.2.tgz ├── kubevious-0.8.3.tgz ├── kubevious-0.8.4.tgz ├── kubevious-0.8.7.tgz ├── kubevious-0.8.9.tgz ├── kubevious-0.9.1.tgz ├── kubevious-0.9.10.tgz ├── kubevious-0.9.11.tgz ├── kubevious-0.9.12.tgz ├── kubevious-0.9.13.tgz ├── kubevious-0.9.14.tgz ├── kubevious-0.9.15.tgz ├── kubevious-0.9.16.tgz ├── kubevious-0.9.17.tgz ├── kubevious-0.9.18.tgz ├── kubevious-0.9.19.tgz ├── kubevious-0.9.2.tgz ├── kubevious-0.9.20.tgz ├── kubevious-0.9.21.tgz ├── kubevious-0.9.22.tgz ├── kubevious-0.9.23.tgz ├── kubevious-0.9.24.tgz ├── kubevious-0.9.25.tgz ├── kubevious-0.9.26.tgz ├── kubevious-0.9.27.tgz ├── kubevious-0.9.28.tgz ├── kubevious-0.9.3.tgz ├── kubevious-0.9.4.tgz ├── kubevious-0.9.5.tgz ├── kubevious-0.9.6.tgz ├── kubevious-0.9.7.tgz ├── kubevious-0.9.8.tgz ├── kubevious-0.9.9.tgz ├── kubevious-1.0.1.tgz ├── kubevious-1.0.10.tgz ├── kubevious-1.0.11.tgz ├── kubevious-1.0.12.tgz ├── kubevious-1.0.13.tgz ├── kubevious-1.0.14.tgz ├── kubevious-1.0.15.tgz ├── kubevious-1.0.16.tgz ├── kubevious-1.0.2.tgz ├── kubevious-1.0.3.tgz ├── kubevious-1.0.4.tgz ├── kubevious-1.0.5.tgz ├── kubevious-1.0.6.tgz ├── kubevious-1.0.7.tgz ├── kubevious-1.0.8.tgz ├── kubevious-1.0.9.tgz ├── kubevious-1.1.1.tgz ├── kubevious-1.1.2.tgz ├── kubevious-1.1.3.tgz ├── kubevious-1.1.4.tgz ├── kubevious-1.1.5.tgz ├── kubevious-1.2.1.tgz ├── kubevious-1.2.2.tgz ├── kubevious-agent-0.9.14.tgz ├── kubevious-agent-0.9.16.tgz ├── kubevious-agent-0.9.17.tgz ├── kubevious-agent-0.9.18.tgz ├── kubevious-agent-0.9.19.tgz ├── kubevious-agent-0.9.23.tgz ├── kubevious-agent-0.9.24.tgz ├── kubevious-agent-0.9.25.tgz ├── kubevious-agent-0.9.26.tgz ├── kubevious-agent-0.9.27.tgz ├── kubevious-agent-1.0.1.tgz ├── kubevious-agent-1.0.2.tgz ├── kubevious-agent-1.0.3.tgz ├── kubevious-agent-1.0.4.tgz ├── workload-operator-0.0.2.tgz └── workload-operator-0.0.3.tgz ├── kubevious ├── chart │ ├── .helmignore │ ├── Chart.yaml │ ├── templates │ │ ├── NOTES.txt │ │ ├── _helpers.tpl │ │ ├── backend │ │ │ ├── _helpers.tpl │ │ │ ├── clusterrole.yaml │ │ │ ├── clusterrolebinding.yaml │ │ │ ├── deployment.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── collector │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── crds │ │ │ ├── ChangePackage.yaml │ │ │ └── ValidationState.yaml │ │ ├── guard │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── ingress.yaml │ │ ├── mysql │ │ │ ├── _helpers.tpl │ │ │ ├── configmap-db.yaml │ │ │ ├── configmap-init-script.yaml │ │ │ ├── configmap-mysql-config.yaml │ │ │ ├── secret-root.yaml │ │ │ ├── secret.yaml │ │ │ ├── service.yaml │ │ │ ├── serviceaccount.yaml │ │ │ └── statefulset.yaml │ │ ├── parser │ │ │ ├── _helpers.tpl │ │ │ ├── clusterrole.yaml │ │ │ ├── clusterrolebinding.yaml │ │ │ ├── deployment.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ ├── redis │ │ │ ├── _helpers.tpl │ │ │ ├── configmap-redis-config.yaml │ │ │ ├── service.yaml │ │ │ ├── serviceaccount.yaml │ │ │ └── statefulset.yaml │ │ ├── ui │ │ │ ├── _helpers.tpl │ │ │ ├── configmap-caddy.yaml │ │ │ ├── deployment.yaml │ │ │ ├── service.yaml │ │ │ └── serviceaccount.yaml │ │ └── worldvious │ │ │ ├── _helpers.tpl │ │ │ ├── configmap.yaml │ │ │ └── secret.yaml │ └── values.yaml ├── dev-install.sh ├── dev-uninstall.sh ├── overrides │ ├── gcp │ │ └── certificate.yaml │ ├── overrides-custom-name.yaml │ ├── overrides-demo.yaml │ ├── overrides-do.yaml │ ├── overrides-external-mysql.yaml │ ├── overrides-gcp-https.yaml │ ├── overrides-ingress.yaml │ ├── overrides-node-selector.yaml │ ├── overrides-parser-api-skip.yaml │ ├── overrides-skip-role-binding.yaml │ ├── overrides-v8-memory.yaml │ └── overrides.yaml ├── public-install.sh ├── setup-binary-versions.sh ├── template-all.sh ├── template-custom-name.sh ├── template-debug.sh ├── template-demo.sh ├── template-external-mysql.sh ├── template-ingress.sh ├── template-other-version.sh ├── template-parser-api-skip.sh ├── template-skip-role.sh ├── template.sh └── validate.sh ├── repo-run-server.sh ├── scripts └── service-version-helper.sh └── workload-operator ├── chart ├── .helmignore ├── Chart.yaml ├── templates │ ├── 00-crds │ │ ├── workload-profile.yaml │ │ └── workload.yaml │ ├── 01-workload-operator │ │ ├── _helpers.tpl │ │ ├── clusterrole.yaml │ │ ├── clusterrolebinding.yaml │ │ ├── deployment.yaml │ │ └── serviceaccount.yaml │ ├── NOTES.txt │ └── _helpers.tpl └── values.yaml ├── dev-install.sh ├── dev-uninstall.sh ├── overrides ├── default.yaml └── simple.yaml ├── setup-binary-versions.sh ├── template-all.sh ├── template.sh └── validate.sh /.codefresh/agent-validate.yml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | stages: 3 | - "init" 4 | - "clone" 5 | - "validate" 6 | steps: 7 | init: 8 | title: Init 9 | stage: init 10 | image: codefresh/cli 11 | shell: bash 12 | commands: 13 | - cf_export GITHUB_TOKEN=$(codefresh get context github --decrypt -o yaml | yq -y .spec.data.auth.password) 14 | - cf_export MAIN_REPO_PATH=/codefresh/volume/repo.git 15 | - export PRODUCT_NAME=agent 16 | - cf_export PRODUCT_NAME=${PRODUCT_NAME} 17 | 18 | clone: 19 | title: Clone Repo 20 | stage: clone 21 | image: "alpine/git:latest" 22 | working_directory: "/codefresh/volume" 23 | commands: 24 | - pwd 25 | - ls -la 26 | - rm -rf ${{MAIN_REPO_PATH}} 27 | - "git clone https://${{CF_REPO_OWNER}}:${{GITHUB_TOKEN}}@github.com/${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}.git ${{MAIN_REPO_PATH}}" 28 | - ls -la 29 | - cd ${{MAIN_REPO_PATH}} 30 | - git reset --hard ${{CF_REVISION}} 31 | - ls -la 32 | 33 | lint: 34 | title: Lint 35 | stage: validate 36 | image: kubevious/cicd_deployer 37 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 38 | shell: bash 39 | commands: 40 | - pwd 41 | - ls -la 42 | - helm lint chart/ 43 | 44 | validate_default: 45 | title: Validate Chart Default 46 | stage: validate 47 | image: kubevious/cicd_deployer 48 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 49 | shell: bash 50 | commands: 51 | - rm -rf output 52 | - pwd 53 | - ls -la 54 | - helm template kubevious-agent ./chart --debug -n kubevious-agent --output-dir output/default 55 | - helm template kubevious-agent ./chart --debug -n kubevious-agent -f overrides/existing-service-account.yaml --output-dir output/existing-service-account 56 | - helm template kubevious-agent ./chart --debug -n kubevious-agent -f overrides/overrides-parser-api-skip.yaml --output-dir output/overrides-parser-api-skip 57 | 58 | validate_all: 59 | title: Validate Chart with All Overrides 60 | stage: validate 61 | image: kubevious/cicd_deployer 62 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 63 | shell: bash 64 | commands: 65 | - rm -rf output 66 | - pwd 67 | - ls -la 68 | - ./template-all.sh 69 | -------------------------------------------------------------------------------- /.codefresh/kubevious-validate.yml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | stages: 3 | - "init" 4 | - "clone" 5 | - "validate" 6 | steps: 7 | init: 8 | title: Init 9 | stage: init 10 | image: codefresh/cli 11 | shell: bash 12 | commands: 13 | - cf_export GITHUB_TOKEN=$(codefresh get context github --decrypt -o yaml | yq -y .spec.data.auth.password) 14 | - cf_export MAIN_REPO_PATH=/codefresh/volume/repo.git 15 | - export PRODUCT_NAME=kubevious 16 | - cf_export PRODUCT_NAME=${PRODUCT_NAME} 17 | 18 | clone: 19 | title: Clone Repo 20 | stage: clone 21 | image: "alpine/git:latest" 22 | working_directory: "/codefresh/volume" 23 | commands: 24 | - pwd 25 | - ls -la 26 | - rm -rf ${{MAIN_REPO_PATH}} 27 | - "git clone https://${{CF_REPO_OWNER}}:${{GITHUB_TOKEN}}@github.com/${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}.git ${{MAIN_REPO_PATH}}" 28 | - ls -la 29 | - cd ${{MAIN_REPO_PATH}} 30 | - git reset --hard ${{CF_REVISION}} 31 | - ls -la 32 | 33 | lint: 34 | title: Lint 35 | stage: validate 36 | image: kubevious/cicd_deployer 37 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 38 | shell: bash 39 | commands: 40 | - pwd 41 | - ls -la 42 | - helm lint chart/ 43 | 44 | validate_default: 45 | title: Validate Chart Default 46 | stage: validate 47 | image: kubevious/cicd_deployer 48 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 49 | shell: bash 50 | commands: 51 | - rm -rf output 52 | - pwd 53 | - ls -la 54 | - helm template kubevious ./chart --debug -n kubevious --output-dir output/ 55 | - ls -la output/ 56 | 57 | validate_ingress: 58 | title: Validate Chart with Ingress 59 | stage: validate 60 | image: kubevious/cicd_deployer 61 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 62 | shell: bash 63 | commands: 64 | - rm -rf output 65 | - pwd 66 | - ls -la 67 | - helm template kubevious ./chart --debug -n kubevious -f overrides/overrides-ingress.yaml --output-dir output/ 68 | - ls -la output/ 69 | 70 | validate_external_mysql: 71 | title: Validate Chart with External MySQL 72 | stage: validate 73 | image: kubevious/cicd_deployer 74 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 75 | shell: bash 76 | commands: 77 | - rm -rf output 78 | - pwd 79 | - ls -la 80 | - helm template kubevious ./chart --debug -n kubevious -f overrides/overrides-external-mysql.yaml --output-dir output/ 81 | - ls -la output/ 82 | 83 | validate_custom_name: 84 | title: Validate Chart with Custom Name 85 | stage: validate 86 | image: kubevious/cicd_deployer 87 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 88 | shell: bash 89 | commands: 90 | - rm -rf output 91 | - pwd 92 | - ls -la 93 | - helm template kubevious ./chart --debug -n kubevious -f overrides/overrides-custom-name.yaml --output-dir output/ 94 | - ls -la output/ 95 | 96 | validate_api_skip: 97 | title: Validate Chart with API Skip 98 | stage: validate 99 | image: kubevious/cicd_deployer 100 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 101 | shell: bash 102 | commands: 103 | - rm -rf output 104 | - pwd 105 | - ls -la 106 | - helm template kubevious ./chart --debug -n kubevious -f overrides/overrides-parser-api-skip.yaml --output-dir output/ 107 | - ls -la output/ 108 | 109 | validate_api_node_memory_setting: 110 | title: Validate Chart with Node.js Memory Setting 111 | stage: validate 112 | image: kubevious/cicd_deployer 113 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 114 | shell: bash 115 | commands: 116 | - rm -rf output 117 | - pwd 118 | - ls -la 119 | - helm template kubevious ./chart --debug -n kubevious -f overrides/overrides-v8-memory.yaml --output-dir output/ 120 | - ls -la output/ 121 | 122 | validate_all: 123 | title: Validate Chart with All Overrides 124 | stage: validate 125 | image: kubevious/cicd_deployer 126 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 127 | shell: bash 128 | commands: 129 | - rm -rf output 130 | - pwd 131 | - ls -la 132 | - ./template-all.sh 133 | 134 | -------------------------------------------------------------------------------- /.codefresh/workload-operator-validate.yml: -------------------------------------------------------------------------------- 1 | version: "1.0" 2 | stages: 3 | - "init" 4 | - "clone" 5 | - "validate" 6 | steps: 7 | init: 8 | title: Init 9 | stage: init 10 | image: codefresh/cli 11 | shell: bash 12 | commands: 13 | - cf_export GITHUB_TOKEN=$(codefresh get context github --decrypt -o yaml | yq -y .spec.data.auth.password) 14 | - cf_export MAIN_REPO_PATH=/codefresh/volume/repo.git 15 | - export PRODUCT_NAME=workload-operator 16 | - cf_export PRODUCT_NAME=${PRODUCT_NAME} 17 | 18 | clone: 19 | title: Clone Repo 20 | stage: clone 21 | image: "alpine/git:latest" 22 | working_directory: "/codefresh/volume" 23 | commands: 24 | - pwd 25 | - ls -la 26 | - rm -rf ${{MAIN_REPO_PATH}} 27 | - "git clone https://${{CF_REPO_OWNER}}:${{GITHUB_TOKEN}}@github.com/${{CF_REPO_OWNER}}/${{CF_REPO_NAME}}.git ${{MAIN_REPO_PATH}}" 28 | - ls -la 29 | - cd ${{MAIN_REPO_PATH}} 30 | - git reset --hard ${{CF_REVISION}} 31 | - ls -la 32 | 33 | lint: 34 | title: Lint 35 | stage: validate 36 | image: kubevious/cicd_deployer 37 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 38 | shell: bash 39 | commands: 40 | - pwd 41 | - ls -la 42 | - helm lint chart/ 43 | 44 | validate_default: 45 | title: Validate Chart Default 46 | stage: validate 47 | image: kubevious/cicd_deployer 48 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 49 | shell: bash 50 | commands: 51 | - rm -rf output 52 | - pwd 53 | - ls -la 54 | - helm template workload-operator ./chart --debug -n workload-operator --output-dir output/default 55 | 56 | validate_all: 57 | title: Validate Chart with All Overrides 58 | stage: validate 59 | image: kubevious/cicd_deployer 60 | working_directory: ${{MAIN_REPO_PATH}}/${{PRODUCT_NAME}} 61 | shell: bash 62 | commands: 63 | - rm -rf output 64 | - pwd 65 | - ls -la 66 | - ./template-all.sh 67 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issues to be reported in the main repo. 3 | about: Please report issues under the kubevious/kubevious repo. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Please report issues and suggestions to the main repo: 11 | https://github.com/kubevious/kubevious/issues/new/choose 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # Logs 4 | logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | !charts/*.tgz 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # next.js build output 63 | .next 64 | 65 | 66 | .history 67 | 68 | /kubevious-test.yaml 69 | 70 | .idea 71 | .vscode 72 | 73 | output/ 74 | runtime/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /VERSION.md: -------------------------------------------------------------------------------- 1 | # Released Version: v1.2 2 | -------------------------------------------------------------------------------- /agent/chart/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /agent/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kubevious-agent 3 | description: A Helm chart for Kubevious SaaS Agent 4 | type: application 5 | keywords: 6 | - kubernetes ui 7 | - kubernetes web ui 8 | - kubernetes configuration checker 9 | - kubernetes validator 10 | icon: https://kubevious.io/img/logo.png 11 | version: 1.0.4 12 | appVersion: 1.0.4 13 | -------------------------------------------------------------------------------- /agent/chart/README.md: -------------------------------------------------------------------------------- 1 | # Kubevious Agent Helm Charts 2 | **Kubevious Agent** reports configuration from inside the cluster to Kubevious SaaS (https://portal.kubevious.io). 3 | 4 | ## Prerequisites 5 | 6 | - Kubernetes v1.13 or higher 7 | - Helm v3.2 or higher 8 | 9 | ## Installation 10 | 11 | 1. Create a namespace: 12 | 13 | ```sh 14 | kubectl create namespace kubevious-agent 15 | ``` 16 | 17 | 2. Create token secret `kubevious-token`. Specific instructions with token data value is available in cluster editor. 18 | 19 | ```sh 20 | kubectl create secret generic kubevious-token -n kubevious-agent \ 21 | --from-literal=key= \ 22 | --dry-run=client -o yaml | 23 | kubectl apply -f - 24 | ``` 25 | 26 | 3. Add repository 27 | ```sh 28 | helm repo add kubevious https://helm.kubevious.io 29 | ``` 30 | 31 | 4. Install the agent chart 32 | ```sh 33 | helm upgrade --atomic -i -n kubevious-agent kubevious-agent kubevious/kubevious-agent 34 | ``` 35 | 36 | 37 | ## Configuration 38 | 39 | The following table lists the configurable parameters of the kubevious chart and their default values. 40 | 41 | | Value | Description | Default | 42 | | ----------------------------------- | ------------------------------------------------------------ | -------------------------------------------- | 43 | | nameOverride | Overrides the *app.kubernetes.io/name* label value | | 44 | | fullnameOverride | Overrides name of the app | | 45 | | kubevious.api.skipEvents | Indicates whether Kubernetes Events should be collected by Kubevious. On some systems, that can significantly increase memory, processing, and storage requirements. | True | 46 | | kubevious.api.skipSecrets | Indicates whether Kubevious should collect Kubernetes Secrets. Values of Secrets are always sanitized and replaced with *null*. Collecting Secrets helps detect inconsistencies between data keys and their references. | False | 47 | | kubevious.api.skipped | List of APIs to be skipped from the collection. Use \:\ format. For example: `apps/v1:ControllerRevision` or `discovery.k8s.io/v1:EndpointSlice` | [] | 48 | | parser.podAnnotations | Kubevious parser pod annotations | | 49 | | parser.image.pullPolicy | Kubevious parser PodSpec pullPolicy | IfNotPresent | 50 | | parser.image.imagePullSecrets | Kubevious parser PodSpec imagePullSecrets | | 51 | | parser.resources.requests.cpu | Kubevious parser request CPU | 100m | 52 | | parser.resources.requests.memory | Kubevious parser request Memory | 200Mi | 53 | | parser.resources.limits.cpu | Kubevious parser limit CPU | | 54 | | parser.resources.limits.memory | Kubevious parser limit Memory | | 55 | | parser.v8MaxOldSpace | Parser V8 old memory section (in megabytes) | | 56 | | parser.podSecurityContext | Kubevious parser PodSpec securityContext | | 57 | | parser.nodeSelector | Kubevious parser PodSpec nodeSelector | | 58 | | parser.tolerations | Kubevious parser PodSpec tolerations | | 59 | | parser.affinity | Kubevious parser PodSpec affinity | | 60 | | parser.log.level | Parser backend log level. Values are: *error, warn, info, verbose, debug, silly* | Info | 61 | | parser.serviceAccount.create | Indicates whether a service account should be created for Kubevious parser | true | 62 | | parser.serviceAccount.annotations | Annotations to add to Kubevious parser service account | | 63 | | parser.serviceAccount.name | The name of the service account to use. If not and create is true, a name is generated | | 64 | 65 | ## Detailed Notes 66 | 67 | ### Kubernetes Secret Sanitization 68 | Data from Kubernetes secrets is sanitized and does not leave the cluster. Keys of data are maintained but data is completely removed. Maintaining information about keys in secret allows validation of structure of secrets and show how things are mapped to environment variables and volume mounts. Below is the example of Secret reported to Kubevious SaaS: 69 | ```yaml 70 | kind: Secret 71 | apiVersion: v1 72 | metadata: 73 | name: default-token-w2656 74 | data: 75 | ca.crt: 76 | token: 77 | ``` 78 | If you want to learn more how sanitization works, please see the following code snippet below. Search for the `_sanitizeSecret` function. It may take few seconds for github to scroll to the line of interest. 79 | https://github.com/kubevious/parser/commit/1c3f19b781d6c22ccf4a4fa24bce10b514ea8150#diff-179652d03fa7d2a54b9fe88c99bd1e94bea9147b01b2b6616610a069244a348fR96-R104 -------------------------------------------------------------------------------- /agent/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | NKXW 2 | WXx:,;oKW 3 | Nk;.....,oKW 4 | No'.......,oKW 5 | Nkc'.......,o0W 6 | WKxkNNkc'.......,oKW 7 | Kc.'ckNNkc'.......,oKW 8 | WWWNNNNWW Nk;...'ckNNkc'.......cK 9 | WX0kdocc:::::clodk0NW NOc'......'ckNNkc'...'cON 10 | N0dc;'...............:ONNOc'..........'ckNNkl:ckN 11 | WKx:'.................'c0WKl'...........,,;oX WNW 12 | WKd;.....................;d0X0d;........;d0KXW 13 | Nk:.........................'ckXKx;....;xXW 14 | Xd,............................':kXKo,:xXW 15 | Xo'...............................'l0NKXNXW 16 | Wd'..................................;kXOc:O 17 | Nkooooooooooooooooooooooooooooooooooooxkdod0W 18 | WNK0000000000000000000000000000000000KK0000KKK0000KKXW 19 | Kl,''''''''''''''''''''''''''''''''''''''''''''''''';xW 20 | NkdoooooooooooooooooooooooooooooooooooooooooooooooooxKW 21 | WNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKNW 22 | Nd,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,dN 23 | Nl....................''''....................oN 24 | Nl................';ok000Oko;.................oN 25 | Nl...............'oXWKkxxkKWXo'...............oN 26 | Nl...............lXWO;....;kWXl...............oN 27 | Nl..............'dWWd'.....lNWd'.............'oN 28 | WKOkkkkkkkkkkkkkOXWWKOkkkkkKW XOOOOOOOOOOOOOOOKW 29 | 30 | Kubevious Agent v{{- .Chart.Version }} installed! 31 | 32 | Visit https://portal.kubevious.io to access your cluster. -------------------------------------------------------------------------------- /agent/chart/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "kubevious.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 40 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | */}} 11 | {{- define "kubevious.fullname" -}} 12 | {{- if .Values.fullnameOverride }} 13 | {{- .Values.fullnameOverride | trunc 50 | trimSuffix "-" }} 14 | {{- else }} 15 | {{- $name := default .Chart.Name .Values.nameOverride }} 16 | {{- if contains $name .Release.Name }} 17 | {{- .Release.Name | trunc 50 | trimSuffix "-" }} 18 | {{- else }} 19 | {{- printf "%s-%s" .Release.Name $name | trunc 50 | trimSuffix "-" }} 20 | {{- end }} 21 | {{- end }} 22 | {{- end }} 23 | 24 | 25 | {{/* 26 | Create chart name and version as used by the chart label. 27 | */}} 28 | {{- define "kubevious.chart" -}} 29 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 30 | {{- end }} 31 | 32 | {{/* 33 | Common labels 34 | */}} 35 | {{- define "kubevious.labels" -}} 36 | app.kubernetes.io/name: {{ include "kubevious.name" . }} 37 | app.kubernetes.io/instance: {{ .Release.Name }} 38 | helm.sh/chart: {{ include "kubevious.chart" . }} 39 | {{- if .Chart.AppVersion }} 40 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 41 | {{- end }} 42 | app.kubernetes.io/managed-by: {{ .Release.Service }} 43 | {{- end }} 44 | 45 | {{/* 46 | Match labels 47 | */}} 48 | {{- define "kubevious.match-labels" -}} 49 | app.kubernetes.io/name: {{ include "kubevious.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | app.kubernetes.io/managed-by: {{ .Release.Service }} 52 | {{- end }} 53 | 54 | -------------------------------------------------------------------------------- /agent/chart/templates/parser/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "kubevious-parser.fullname" -}} 3 | {{ include "kubevious.fullname" . }}-parser 4 | {{- end }} 5 | 6 | {{/* 7 | Create the name of the service account to use for the parser 8 | */}} 9 | {{- define "kubevious-parser.serviceAccountName" -}} 10 | {{- if .Values.parser.serviceAccount.create }} 11 | {{- default (include "kubevious-parser.fullname" .) .Values.parser.serviceAccount.name }} 12 | {{- else }} 13 | {{- default "default" .Values.parser.serviceAccount.name }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /agent/chart/templates/parser/clusterrole.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.parser.serviceAccount.create -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRole 5 | metadata: 6 | name: {{ include "kubevious-parser.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | rules: 11 | - apiGroups: 12 | - "*" 13 | resources: 14 | - "*" 15 | verbs: 16 | - get 17 | - list 18 | - watch 19 | {{- end }} -------------------------------------------------------------------------------- /agent/chart/templates/parser/clusterrolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.parser.serviceAccount.create -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRoleBinding 5 | metadata: 6 | name: {{ include "kubevious-parser.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | roleRef: 11 | apiGroup: rbac.authorization.k8s.io 12 | kind: ClusterRole 13 | name: {{ include "kubevious-parser.fullname" . }} 14 | subjects: 15 | - kind: ServiceAccount 16 | name: {{ include "kubevious-parser.fullname" . }} 17 | namespace: {{ .Release.Namespace }} 18 | {{- end }} -------------------------------------------------------------------------------- /agent/chart/templates/parser/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "kubevious-parser.fullname" . }} 6 | labels: 7 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 8 | {{- include "kubevious.labels" . | nindent 4 }} 9 | spec: 10 | replicas: 1 11 | selector: 12 | matchLabels: 13 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 14 | {{- include "kubevious.match-labels" . | nindent 6 }} 15 | template: 16 | metadata: 17 | {{- with .Values.parser.podAnnotations }} 18 | annotations: 19 | {{- toYaml . | nindent 8 }} 20 | {{- end }} 21 | labels: 22 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 23 | {{- include "kubevious.labels" . | nindent 8 }} 24 | spec: 25 | {{- with .Values.parser.imagePullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 8 }} 28 | {{- end }} 29 | serviceAccountName: {{ include "kubevious-parser.serviceAccountName" . }} 30 | securityContext: 31 | {{- toYaml .Values.parser.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.parser.securityContext | nindent 12 }} 36 | image: "{{ .Values.parser.image.repository }}:{{ .Values.parser.image.tag | default .Chart.AppVersion }}" 37 | imagePullPolicy: {{ .Values.parser.image.pullPolicy }} 38 | env: 39 | - name: NODE_ENV 40 | value: "production" 41 | - name: LOG_LEVEL 42 | value: "{{ .Values.parser.log.level }}" 43 | - name: KUBEVIOUS_COLLECTOR 44 | value: https://portal.kubevious.io/api/v1/collect 45 | - name: KUBEVIOUS_COLLECTOR_AUTH 46 | value: https://portal.kubevious.io/api/v1/auth/collector/login 47 | - name: KUBEVIOUS_COLLECTOR_KEY_PATH 48 | value: /runtime/token/key 49 | - name: SERVER_PORT 50 | value: "4000" 51 | {{- if .Values.parser.v8MaxOldSpace }} 52 | - name: NODE_OPTIONS 53 | value: "--max-old-space-size={{ .Values.parser.v8MaxOldSpace }}" 54 | {{- end }} 55 | volumeMounts: 56 | - mountPath: /runtime/token 57 | name: kubevious-token 58 | readOnly: true 59 | ports: 60 | - name: http 61 | containerPort: 4000 62 | protocol: TCP 63 | resources: 64 | {{- toYaml .Values.parser.resources | nindent 12 }} 65 | volumes: 66 | - name: kubevious-token 67 | secret: 68 | secretName: kubevious-token 69 | {{- with .Values.parser.nodeSelector }} 70 | nodeSelector: 71 | {{- toYaml . | nindent 8 }} 72 | {{- end }} 73 | {{- with .Values.parser.affinity }} 74 | affinity: 75 | {{- toYaml . | nindent 8 }} 76 | {{- end }} 77 | {{- with .Values.parser.tolerations }} 78 | tolerations: 79 | {{- toYaml . | nindent 8 }} 80 | {{- end }} 81 | -------------------------------------------------------------------------------- /agent/chart/templates/parser/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.parser.serviceAccount.create -}} 2 | --- 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-parser.serviceAccountName" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | {{- with .Values.parser.serviceAccount.annotations }} 11 | annotations: 12 | {{- toYaml . | nindent 4 }} 13 | {{- end }} 14 | {{- end }} 15 | -------------------------------------------------------------------------------- /agent/chart/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for kubevious agent. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | nameOverride: "" 5 | fullnameOverride: "" 6 | ### 7 | ### KUBEVIOUS 8 | ### 9 | kubevious: 10 | api: 11 | skipEvents: true 12 | skipSecrets: false 13 | skipped: [] 14 | ### 15 | ### KUBEVIOUS PARSER 16 | ### 17 | parser: 18 | image: 19 | repository: kubevious/parser 20 | tag: 1.0.15 21 | pullPolicy: IfNotPresent 22 | imagePullSecrets: [] 23 | podAnnotations: {} 24 | podSecurityContext: {} 25 | securityContext: {} 26 | resources: 27 | requests: 28 | cpu: 100m 29 | memory: 200Mi 30 | # limits: 31 | # cpu: 500m 32 | # memory: 1Gi 33 | v8MaxOldSpace: null 34 | nodeSelector: {} 35 | tolerations: [] 36 | affinity: {} 37 | log: 38 | level: info 39 | serviceAccount: 40 | # Specifies whether a service account should be created 41 | create: true 42 | # Annotations to add to the service account 43 | annotations: {} 44 | # The name of the service account to use. 45 | # If not set and create is true, a name is generated using the fullname template 46 | name: "" 47 | -------------------------------------------------------------------------------- /agent/dev-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will install Kubevious Agent now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | VERSION=0.0.1 21 | 22 | yq ".version = \"${VERSION}\"" -i chart/Chart.yaml 23 | yq ".appVersion = \"${VERSION}\"" -i chart/Chart.yaml 24 | 25 | echo "**********" 26 | cat chart/Chart.yaml 27 | echo "**********" 28 | 29 | rm -f kubevious-agent-*.tgz 30 | 31 | helm package chart/ --version ${VERSION} 32 | 33 | source ${MY_DIR}/runtime/key.sh 34 | 35 | # Create namespace kubevious-agent 36 | kubectl create namespace kubevious-agent 37 | 38 | # Create Kubevious token secret 39 | kubectl create secret generic kubevious-token -n kubevious-agent \ 40 | --from-literal=key=${AGENT_KEY} \ 41 | --dry-run=client -o yaml | 42 | kubectl apply -f - 43 | 44 | 45 | # --debug 46 | helm upgrade -i \ 47 | --atomic \ 48 | -n kubevious-agent \ 49 | -f overrides/overrides-install.yaml \ 50 | kubevious-agent ./kubevious-agent-${VERSION}.tgz -------------------------------------------------------------------------------- /agent/dev-uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will UNINSTALL Kubevious Agent now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | helm uninstall kubevious-agent -n kubevious-agent 21 | 22 | kubectl delete ns kubevious-agent -------------------------------------------------------------------------------- /agent/overrides/existing-service-account.yaml: -------------------------------------------------------------------------------- 1 | parser: 2 | serviceAccount: 3 | create: false 4 | name: "best-service-account" -------------------------------------------------------------------------------- /agent/overrides/overrides-install.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/agent/overrides/overrides-install.yaml -------------------------------------------------------------------------------- /agent/overrides/overrides-parser-api-skip.yaml: -------------------------------------------------------------------------------- 1 | kubevious: 2 | api: 3 | skipEvents: true 4 | skipSecrets: true 5 | skipped: 6 | - discovery.k8s.io/v1:EndpointSlice 7 | - apps/v1:ControllerRevision 8 | - v1:Service -------------------------------------------------------------------------------- /agent/setup-binary-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | source ${MY_DIR}/../scripts/service-version-helper.sh 6 | 7 | cd $MY_DIR/chart 8 | 9 | processBinary "parser" 10 | 11 | -------------------------------------------------------------------------------- /agent/template-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd ${MY_DIR} 6 | 7 | OUTPUT_BASE_DIR=${MY_DIR}/output 8 | rm -rf ${OUTPUT_BASE_DIR} 9 | 10 | OVERRIDES_DIR=${MY_DIR}/overrides 11 | 12 | NAMESPACE=kubevious-agent 13 | 14 | for f in ${OVERRIDES_DIR}/*.yaml; do 15 | echo "OVERRIDE >>> $f"; 16 | NAME=$(basename -s .yaml $f) 17 | echo " | $NAME"; 18 | 19 | OUTPUT_DIR=${OUTPUT_BASE_DIR}/${NAME} 20 | 21 | helm template kubevious-agent ./chart --debug \ 22 | -n ${NAMESPACE} \ 23 | -f $f \ 24 | --output-dir ${OUTPUT_DIR} 25 | 26 | EXITCODE=$? 27 | if [ $EXITCODE -ne 0 ]; then 28 | echo "ERROR templating overrides: $f"; 29 | exit 1; 30 | fi 31 | done 32 | -------------------------------------------------------------------------------- /agent/validate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | echo "RUNNIG HELM LINT..." 8 | helm lint chart/ 9 | 10 | echo "CLEANUP..." 11 | rm -rf output 12 | 13 | echo "RUNNIG TEMPLATE DEFAULT..." 14 | helm template kubevious-agent ./chart --debug -n kubevious-agent --output-dir output/default 15 | 16 | echo "RUNNIG TEMPLATE EXISTING-SERVICE-ACCOUNT..." 17 | helm template kubevious-agent ./chart --debug -n kubevious-agent -f overrides/existing-service-account.yaml --output-dir output/existing-service-account 18 | 19 | -------------------------------------------------------------------------------- /charts/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/favicon.png -------------------------------------------------------------------------------- /charts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Kubevious Helm Repository 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 |

Kubevious Helm Repository

21 | 22 | 25 | 26 |
27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 | 35 | 36 | 123 | 124 | 125 | -------------------------------------------------------------------------------- /charts/kubevious-0.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.17.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.17.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.18.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.18.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.19.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.19.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.20.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.20.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.21.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.21.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.22.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.22.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.23.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.23.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.4.24.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.4.24.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.6.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.6.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.8.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.8.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.5.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.5.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.17.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.17.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.18.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.18.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.19.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.19.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.20.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.20.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.21.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.21.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.22.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.22.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.23.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.23.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.24.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.24.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.25.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.25.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.26.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.26.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.27.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.27.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.28.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.28.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.29.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.29.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.30.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.30.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.31.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.31.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.32.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.32.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.33.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.33.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.34.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.34.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.35.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.35.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.36.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.36.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.5.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.5.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.6.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.6.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.8.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.8.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.6.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.6.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.17.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.17.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.18.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.18.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.19.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.19.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.20.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.20.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.21.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.21.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.22.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.22.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.25.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.25.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.26.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.26.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.5.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.5.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.6.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.6.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.8.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.8.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.7.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.7.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.8.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.8.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.17.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.17.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.18.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.18.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.19.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.19.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.20.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.20.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.21.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.21.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.22.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.22.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.23.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.23.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.24.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.24.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.25.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.25.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.26.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.26.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.27.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.27.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.28.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.28.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.5.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.5.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.6.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.6.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.8.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.8.tgz -------------------------------------------------------------------------------- /charts/kubevious-0.9.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-0.9.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.10.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.10.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.11.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.11.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.12.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.12.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.13.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.13.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.15.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.15.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.5.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.5.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.6.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.6.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.7.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.7.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.8.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.8.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.0.9.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.0.9.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.1.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.1.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.1.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.1.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.1.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.1.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.1.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.1.4.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.1.5.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.1.5.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.2.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.2.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-1.2.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-1.2.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.14.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.14.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.16.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.16.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.17.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.17.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.18.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.18.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.19.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.19.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.23.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.23.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.24.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.24.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.25.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.25.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.26.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.26.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-0.9.27.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-0.9.27.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-1.0.1.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-1.0.1.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-1.0.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-1.0.2.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-1.0.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-1.0.3.tgz -------------------------------------------------------------------------------- /charts/kubevious-agent-1.0.4.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/kubevious-agent-1.0.4.tgz -------------------------------------------------------------------------------- /charts/workload-operator-0.0.2.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/workload-operator-0.0.2.tgz -------------------------------------------------------------------------------- /charts/workload-operator-0.0.3.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/charts/workload-operator-0.0.3.tgz -------------------------------------------------------------------------------- /kubevious/chart/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /kubevious/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kubevious 3 | description: A Helm chart for Kubevious 4 | type: application 5 | keywords: 6 | - kubernetes ui 7 | - kubernetes web ui 8 | - kubernetes configuration checker 9 | - kubernetes validator 10 | icon: https://kubevious.io/img/logo.png 11 | version: 1.2.2 12 | appVersion: 1.2.2 13 | -------------------------------------------------------------------------------- /kubevious/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | NKXW 2 | WXx:,;oKW 3 | Nk;.....,oKW 4 | No'.......,oKW 5 | Nkc'.......,o0W 6 | WKxkNNkc'.......,oKW 7 | Kc.'ckNNkc'.......,oKW 8 | WWWNNNNWW Nk;...'ckNNkc'.......cK 9 | WX0kdocc:::::clodk0NW NOc'......'ckNNkc'...'cON 10 | N0dc;'...............:ONNOc'..........'ckNNkl:ckN 11 | WKx:'.................'c0WKl'...........,,;oX WNW 12 | WKd;.....................;d0X0d;........;d0KXW 13 | Nk:.........................'ckXKx;....;xXW 14 | Xd,............................':kXKo,:xXW 15 | Xo'...............................'l0NKXNXW 16 | Wd'..................................;kXOc:O 17 | Nkooooooooooooooooooooooooooooooooooooxkdod0W 18 | WNK0000000000000000000000000000000000KK0000KKK0000KKXW 19 | Kl,''''''''''''''''''''''''''''''''''''''''''''''''';xW 20 | NkdoooooooooooooooooooooooooooooooooooooooooooooooooxKW 21 | WNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKNW 22 | Nd,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,dN 23 | Nl....................''''....................oN 24 | Nl................';ok000Oko;.................oN 25 | Nl...............'oXWKkxxkKWXo'...............oN 26 | Nl...............lXWO;....;kWXl...............oN 27 | Nl..............'dWWd'.....lNWd'.............'oN 28 | WKOkkkkkkkkkkkkkOXWWKOkkkkkKW XOOOOOOOOOOOOOOOKW 29 | 30 | Kubevious v{{- .Chart.Version }} installed! 31 | 32 | {{- if .Values.ingress.enabled }} 33 | {{- range $host := .Values.ingress.hosts }} 34 | {{- range .paths }} 35 | {{- if $host.host }} 36 | Visit http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} to access Kubevious 37 | {{- else }} 38 | Access Kubevious by this command: 39 | $ echo "Visit http://"$(kubectl get ingress kubevious-ui -n kubevious -o jsonpath="{.status.loadBalancer.ingress[0].ip}") 40 | {{- end }} 41 | {{- end }} 42 | {{- end }} 43 | It may take some time for Ingress to be up and running. 44 | 45 | Alternatively, you can also access Kubevious by setting up port forwarding 46 | $ kubectl port-forward service/{{ include "kubevious-ui.service.name" . }} 8080:80 -n {{ .Release.Namespace }} 47 | and visiting http://127.0.0.1:8080 48 | {{- else if contains "NodePort" .Values.ui.service.type }} 49 | Access Kubevious by this command: 50 | $ echo "Visit http://"$(kubectl get nodes -n {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")":"$(kubectl get -n {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "kubevious-ui.service.name" . }}) 51 | 52 | Alternatively, you can also access Kubevious by setting up port forwarding 53 | $ kubectl port-forward service/{{ include "kubevious-ui.service.name" . }} 8080:80 -n {{ .Release.Namespace }} 54 | and visiting http://127.0.0.1:8080 55 | {{- else if contains "LoadBalancer" .Values.ui.service.type }} 56 | Access Kubevious by this command: 57 | $ echo "Visit http://"$(kubectl get svc -n {{ .Release.Namespace }} {{ include "kubevious-ui.service.name" . }} -o jsonpath="{.status.loadBalancer.ingress[0].ip}" )":"{{ .Values.ui.service.port }} 58 | 59 | NOTE: It may take a few minutes for the LoadBalancer IP to be available. You can watch the status of by running: 60 | $ kubectl get -n {{ .Release.Namespace }} svc -w {{ include "kubevious-ui.service.name" . }} 61 | 62 | Alternatively, you can also access Kubevious by setting up port forwarding 63 | $ kubectl port-forward service/{{ include "kubevious-ui.service.name" . }} 8080:80 -n {{ .Release.Namespace }} 64 | and visiting http://127.0.0.1:8080 65 | {{- else if contains "ClusterIP" .Values.ui.service.type }} 66 | Access Kubevious by setting up port forwarding 67 | $ kubectl port-forward service/{{ include "kubevious-ui.service.name" . }} 8080:80 -n {{ .Release.Namespace }} 68 | and visiting http://127.0.0.1:8080 69 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "kubevious.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 40 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | */}} 11 | {{- define "kubevious.fullname" -}} 12 | {{- if .Values.fullnameOverride }} 13 | {{- .Values.fullnameOverride | trunc 50 | trimSuffix "-" }} 14 | {{- else }} 15 | {{- $name := default .Chart.Name .Values.nameOverride }} 16 | {{- if contains $name .Release.Name }} 17 | {{- .Release.Name | trunc 50 | trimSuffix "-" }} 18 | {{- else }} 19 | {{- printf "%s-%s" .Release.Name $name | trunc 50 | trimSuffix "-" }} 20 | {{- end }} 21 | {{- end }} 22 | {{- end }} 23 | 24 | 25 | {{/* 26 | Create chart name and version as used by the chart label. 27 | */}} 28 | {{- define "kubevious.chart" -}} 29 | {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} 30 | {{- end }} 31 | 32 | {{/* 33 | Common labels 34 | */}} 35 | {{- define "kubevious.labels" -}} 36 | app.kubernetes.io/name: {{ include "kubevious.name" . }} 37 | app.kubernetes.io/instance: {{ .Release.Name }} 38 | {{- if .Chart.AppVersion }} 39 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 40 | {{- end }} 41 | app.kubernetes.io/managed-by: {{ .Release.Service }} 42 | helm.sh/chart: {{ include "kubevious.chart" . }} 43 | {{- end }} 44 | 45 | {{/* 46 | Base labels 47 | */}} 48 | {{- define "kubevious.base-labels" -}} 49 | app.kubernetes.io/name: {{ include "kubevious.name" . }} 50 | app.kubernetes.io/instance: {{ .Release.Name }} 51 | app.kubernetes.io/managed-by: {{ .Release.Service }} 52 | {{- end }} 53 | 54 | {{/* 55 | Match labels 56 | */}} 57 | {{- define "kubevious.match-labels" -}} 58 | app.kubernetes.io/name: {{ include "kubevious.name" . }} 59 | app.kubernetes.io/instance: {{ .Release.Name }} 60 | app.kubernetes.io/managed-by: {{ .Release.Service }} 61 | {{- end }} 62 | 63 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "kubevious-backend.fullname" -}} 3 | {{ include "kubevious.fullname" . }}-backend 4 | {{- end }} 5 | 6 | {{/* 7 | Create the name of the service account to use for kubevious 8 | */}} 9 | {{- define "kubevious-backend.serviceAccountName" -}} 10 | {{- if .Values.backend.serviceAccount.create }} 11 | {{- default (include "kubevious-backend.fullname" .) .Values.backend.serviceAccount.name }} 12 | {{- else }} 13 | {{- default "default" .Values.backend.serviceAccount.name }} 14 | {{- end }} 15 | {{- end }} 16 | 17 | {{- define "kubevious-backend.service.name" -}} 18 | {{ print (include "kubevious-backend.fullname" . ) "-" (.Values.backend.service.type | lower) }} 19 | {{- end }} 20 | 21 | {{- define "kubevious-backend.baseUrl" -}} 22 | http://{{ include "kubevious-backend.service.name" . }}:{{ .Values.backend.service.port }} 23 | {{- end }} 24 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/clusterrole.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.backend.serviceAccount.create -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRole 5 | metadata: 6 | name: {{ include "kubevious-backend.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | rules: 11 | - apiGroups: 12 | - kubevious.io 13 | resources: 14 | - changepackages 15 | verbs: 16 | - get 17 | - list 18 | - watch 19 | - delete 20 | - apiGroups: 21 | - kubevious.io 22 | resources: 23 | - validationstates 24 | verbs: 25 | - get 26 | - list 27 | - create 28 | - delete 29 | - update 30 | {{- end }} 31 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/clusterrolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.backend.serviceAccount.create -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRoleBinding 5 | metadata: 6 | name: {{ include "kubevious-backend.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | roleRef: 11 | apiGroup: rbac.authorization.k8s.io 12 | kind: ClusterRole 13 | name: {{ include "kubevious-backend.fullname" . }} 14 | subjects: 15 | - kind: ServiceAccount 16 | name: {{ include "kubevious-backend.fullname" . }} 17 | namespace: {{ .Release.Namespace }} 18 | {{- end }} 19 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "kubevious-backend.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | replicas: 1 12 | selector: 13 | matchLabels: 14 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 15 | {{- include "kubevious.match-labels" . | nindent 6 }} 16 | template: 17 | metadata: 18 | {{- with .Values.backend.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 24 | {{- include "kubevious.labels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.backend.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | securityContext: 31 | {{- toYaml .Values.backend.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.backend.securityContext | nindent 12 }} 36 | image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" 37 | imagePullPolicy: {{ .Values.backend.image.pullPolicy }} 38 | env: 39 | - name: NODE_ENV 40 | value: "production" 41 | - name: LOG_LEVEL 42 | value: "{{ .Values.backend.log.level }}" 43 | - name: SERVER_PORT 44 | value: "4001" 45 | - name: COLLECTOR_BASE_URL 46 | value: {{ include "kubevious-collector.baseUrl" . }} 47 | - name: PARSER_BASE_URL 48 | value: {{ include "kubevious-parser.baseUrl" . }} 49 | - name: GUARD_BASE_URL 50 | value: {{ include "kubevious-guard.baseUrl" . }} 51 | envFrom: 52 | - configMapRef: 53 | name: {{ include "kubevious-mysql.config" . }} 54 | - secretRef: 55 | name: {{ include "kubevious-mysql.secret" . }} 56 | - configMapRef: 57 | name: {{ include "kubevious-redis.config" . }} 58 | - secretRef: 59 | name: {{ include "kubevious-worldvious.secret" . }} 60 | - configMapRef: 61 | name: {{ include "kubevious-worldvious.config" . }} 62 | ports: 63 | - name: http 64 | containerPort: 4001 65 | protocol: TCP 66 | livenessProbe: 67 | httpGet: 68 | path: / 69 | port: http 70 | readinessProbe: 71 | httpGet: 72 | path: / 73 | port: http 74 | resources: 75 | {{- toYaml .Values.backend.resources | nindent 12 }} 76 | serviceAccountName: {{ include "kubevious-backend.serviceAccountName" . }} 77 | {{- with .Values.backend.nodeSelector }} 78 | nodeSelector: 79 | {{- toYaml . | nindent 8 }} 80 | {{- end }} 81 | {{- with .Values.backend.affinity }} 82 | affinity: 83 | {{- toYaml . | nindent 8 }} 84 | {{- end }} 85 | {{- with .Values.backend.tolerations }} 86 | tolerations: 87 | {{- toYaml . | nindent 8 }} 88 | {{- end }} 89 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "kubevious-backend.service.name" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | type: {{ .Values.backend.service.type }} 12 | ports: 13 | - port: {{ .Values.backend.service.port }} 14 | targetPort: http 15 | protocol: TCP 16 | name: http 17 | selector: 18 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 19 | {{- include "kubevious.labels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /kubevious/chart/templates/backend/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.backend.serviceAccount.create -}} 2 | --- 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-backend.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-backend.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | {{- with .Values.backend.serviceAccount.annotations }} 12 | annotations: 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /kubevious/chart/templates/collector/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- define "kubevious-collector.fullname" -}} 2 | {{ include "kubevious.fullname" . }}-collector 3 | {{- end }} 4 | 5 | {{/* 6 | Create the name of the service account to use for kubevious 7 | */}} 8 | {{- define "kubevious-collector.serviceAccountName" -}} 9 | {{- if .Values.collector.serviceAccount.create }} 10 | {{- default (include "kubevious-collector.fullname" .) .Values.collector.serviceAccount.name }} 11 | {{- else }} 12 | {{- default "default" .Values.collector.serviceAccount.name }} 13 | {{- end }} 14 | {{- end }} 15 | 16 | {{- define "kubevious-collector.service.name" -}} 17 | {{ print (include "kubevious-collector.fullname" . ) "-" (.Values.collector.service.type | lower) }} 18 | {{- end }} 19 | 20 | {{- define "kubevious-collector.baseUrl" -}} 21 | http://{{ include "kubevious-collector.service.name" . }}:{{ .Values.collector.service.port }} 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /kubevious/chart/templates/collector/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "kubevious-collector.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | replicas: 1 12 | selector: 13 | matchLabels: 14 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 15 | {{- include "kubevious.match-labels" . | nindent 6 }} 16 | template: 17 | metadata: 18 | {{- with .Values.collector.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 24 | {{- include "kubevious.labels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.collector.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | securityContext: 31 | {{- toYaml .Values.collector.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.collector.securityContext | nindent 12 }} 36 | image: "{{ .Values.collector.image.repository }}:{{ .Values.collector.image.tag }}" 37 | imagePullPolicy: {{ .Values.collector.image.pullPolicy }} 38 | env: 39 | - name: NODE_ENV 40 | value: "production" 41 | - name: LOG_LEVEL 42 | value: "{{ .Values.collector.log.level }}" 43 | - name: SERVER_PORT 44 | value: "4002" 45 | - name: BACKEND_BASE_URL 46 | value: {{ include "kubevious-backend.baseUrl" . }} 47 | {{- if .Values.collector.historyRetentionDays }} 48 | - name: COLLECTOR_HISTORY_RETENTION_DAYS 49 | value: "{{ .Values.collector.historyRetentionDays }}" 50 | {{- end }} 51 | {{- if .Values.collector.v8MaxOldSpace }} 52 | - name: NODE_OPTIONS 53 | value: "--max-old-space-size={{ .Values.collector.v8MaxOldSpace }}" 54 | {{- end }} 55 | envFrom: 56 | - configMapRef: 57 | name: {{ include "kubevious-mysql.config" . }} 58 | - secretRef: 59 | name: {{ include "kubevious-mysql.secret" . }} 60 | - configMapRef: 61 | name: {{ include "kubevious-redis.config" . }} 62 | - secretRef: 63 | name: {{ include "kubevious-worldvious.secret" . }} 64 | - configMapRef: 65 | name: {{ include "kubevious-worldvious.config" . }} 66 | ports: 67 | - name: http 68 | containerPort: 4002 69 | protocol: TCP 70 | livenessProbe: 71 | httpGet: 72 | path: / 73 | port: http 74 | readinessProbe: 75 | httpGet: 76 | path: / 77 | port: http 78 | resources: 79 | {{- toYaml .Values.collector.resources | nindent 12 }} 80 | serviceAccountName: {{ include "kubevious-collector.serviceAccountName" . }} 81 | {{- with .Values.collector.nodeSelector }} 82 | nodeSelector: 83 | {{- toYaml . | nindent 8 }} 84 | {{- end }} 85 | {{- with .Values.collector.affinity }} 86 | affinity: 87 | {{- toYaml . | nindent 8 }} 88 | {{- end }} 89 | {{- with .Values.collector.tolerations }} 90 | tolerations: 91 | {{- toYaml . | nindent 8 }} 92 | {{- end }} 93 | -------------------------------------------------------------------------------- /kubevious/chart/templates/collector/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "kubevious-collector.service.name" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | type: {{ .Values.collector.service.type }} 12 | ports: 13 | - port: {{ .Values.collector.service.port }} 14 | targetPort: http 15 | protocol: TCP 16 | name: http 17 | selector: 18 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 19 | {{- include "kubevious.labels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /kubevious/chart/templates/collector/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if .Values.collector.serviceAccount.create -}} 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-collector.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-collector.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | {{- with .Values.collector.serviceAccount.annotations }} 12 | annotations: 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /kubevious/chart/templates/crds/ChangePackage.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apiextensions.k8s.io/v1 2 | kind: CustomResourceDefinition 3 | metadata: 4 | name: changepackages.kubevious.io 5 | spec: 6 | group: kubevious.io 7 | versions: 8 | - name: v1 9 | served: true 10 | storage: true 11 | schema: 12 | openAPIV3Schema: 13 | type: object 14 | properties: 15 | data: 16 | type: object 17 | properties: 18 | charts: 19 | type: array 20 | items: 21 | type: object 22 | properties: 23 | namespace: 24 | type: string 25 | name: 26 | type: string 27 | required: 28 | - namespace 29 | - name 30 | changes: 31 | type: array 32 | items: 33 | type: object 34 | properties: 35 | data: 36 | type: string 37 | required: 38 | - data 39 | deletions: 40 | type: array 41 | items: 42 | type: object 43 | properties: 44 | apiVersion: 45 | type: string 46 | kind: 47 | type: string 48 | namespace: 49 | type: string 50 | name: 51 | type: string 52 | required: 53 | - apiVersion 54 | - kind 55 | - name 56 | required: 57 | - data 58 | scope: Namespaced 59 | names: 60 | plural: changepackages 61 | singular: changepackage 62 | kind: ChangePackage -------------------------------------------------------------------------------- /kubevious/chart/templates/crds/ValidationState.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apiextensions.k8s.io/v1 2 | kind: CustomResourceDefinition 3 | metadata: 4 | name: validationstates.kubevious.io 5 | spec: 6 | group: kubevious.io 7 | versions: 8 | - name: v1 9 | served: true 10 | storage: true 11 | schema: 12 | openAPIV3Schema: 13 | type: object 14 | properties: 15 | status: 16 | type: object 17 | properties: 18 | state: 19 | type: string 20 | date: 21 | type: string 22 | format: datetime 23 | success: 24 | type: boolean 25 | summary: 26 | type: object 27 | properties: 28 | issues: 29 | type: object 30 | properties: 31 | raised: 32 | type: object 33 | properties: 34 | errors: 35 | type: number 36 | warnings: 37 | type: number 38 | required: 39 | - errors 40 | - warnings 41 | cleared: 42 | type: object 43 | properties: 44 | errors: 45 | type: number 46 | warnings: 47 | type: number 48 | required: 49 | - errors 50 | - warnings 51 | required: 52 | - raised 53 | - cleared 54 | required: 55 | - issues 56 | raisedIssues: 57 | type: array 58 | items: 59 | type: object 60 | properties: 61 | dn: 62 | type: string 63 | msg: 64 | type: string 65 | severity: 66 | type: string 67 | required: 68 | - dn 69 | - msg 70 | - severity 71 | clearedIssues: 72 | type: array 73 | items: 74 | type: object 75 | properties: 76 | dn: 77 | type: string 78 | msg: 79 | type: string 80 | severity: 81 | type: string 82 | required: 83 | - dn 84 | - msg 85 | - severity 86 | required: 87 | - state 88 | - date 89 | required: 90 | - status 91 | scope: Namespaced 92 | names: 93 | plural: validationstates 94 | singular: validationstate 95 | kind: ValidationState -------------------------------------------------------------------------------- /kubevious/chart/templates/guard/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- define "kubevious-guard.fullname" -}} 2 | {{ include "kubevious.fullname" . }}-guard 3 | {{- end }} 4 | 5 | {{/* 6 | Create the name of the service account to use for kubevious 7 | */}} 8 | {{- define "kubevious-guard.serviceAccountName" -}} 9 | {{- if .Values.guard.serviceAccount.create }} 10 | {{- default (include "kubevious-guard.fullname" .) .Values.guard.serviceAccount.name }} 11 | {{- else }} 12 | {{- default "default" .Values.guard.serviceAccount.name }} 13 | {{- end }} 14 | {{- end }} 15 | 16 | {{- define "kubevious-guard.service.name" -}} 17 | {{ print (include "kubevious-guard.fullname" . ) "-" (.Values.guard.service.type | lower) }} 18 | {{- end }} 19 | 20 | {{- define "kubevious-guard.baseUrl" -}} 21 | http://{{ include "kubevious-guard.service.name" . }}:{{ .Values.guard.service.port }} 22 | {{- end }} 23 | -------------------------------------------------------------------------------- /kubevious/chart/templates/guard/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "kubevious-guard.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | replicas: 1 12 | selector: 13 | matchLabels: 14 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 15 | {{- include "kubevious.match-labels" . | nindent 6 }} 16 | template: 17 | metadata: 18 | {{- with .Values.guard.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 24 | {{- include "kubevious.labels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.guard.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | securityContext: 31 | {{- toYaml .Values.guard.podSecurityContext | nindent 8 }} 32 | containers: 33 | - name: {{ .Chart.Name }} 34 | securityContext: 35 | {{- toYaml .Values.guard.securityContext | nindent 12 }} 36 | image: "{{ .Values.guard.image.repository }}:{{ .Values.guard.image.tag }}" 37 | imagePullPolicy: {{ .Values.guard.image.pullPolicy }} 38 | env: 39 | - name: NODE_ENV 40 | value: "production" 41 | - name: LOG_LEVEL 42 | value: "{{ .Values.guard.log.level }}" 43 | - name: SERVER_PORT 44 | value: "4004" 45 | - name: BACKEND_BASE_URL 46 | value: {{ include "kubevious-backend.baseUrl" . }} 47 | {{- if .Values.guard.v8MaxOldSpace }} 48 | - name: NODE_OPTIONS 49 | value: "--max-old-space-size={{ .Values.guard.v8MaxOldSpace }}" 50 | {{- end }} 51 | envFrom: 52 | - configMapRef: 53 | name: {{ include "kubevious-mysql.config" . }} 54 | - secretRef: 55 | name: {{ include "kubevious-mysql.secret" . }} 56 | - configMapRef: 57 | name: {{ include "kubevious-redis.config" . }} 58 | - secretRef: 59 | name: {{ include "kubevious-worldvious.secret" . }} 60 | - configMapRef: 61 | name: {{ include "kubevious-worldvious.config" . }} 62 | ports: 63 | - name: http 64 | containerPort: 4004 65 | protocol: TCP 66 | livenessProbe: 67 | httpGet: 68 | path: / 69 | port: http 70 | readinessProbe: 71 | httpGet: 72 | path: / 73 | port: http 74 | resources: 75 | {{- toYaml .Values.guard.resources | nindent 12 }} 76 | serviceAccountName: {{ include "kubevious-guard.serviceAccountName" . }} 77 | {{- with .Values.guard.nodeSelector }} 78 | nodeSelector: 79 | {{- toYaml . | nindent 8 }} 80 | {{- end }} 81 | {{- with .Values.guard.affinity }} 82 | affinity: 83 | {{- toYaml . | nindent 8 }} 84 | {{- end }} 85 | {{- with .Values.guard.tolerations }} 86 | tolerations: 87 | {{- toYaml . | nindent 8 }} 88 | {{- end }} 89 | -------------------------------------------------------------------------------- /kubevious/chart/templates/guard/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "kubevious-guard.service.name" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | type: {{ .Values.guard.service.type }} 12 | ports: 13 | - port: {{ .Values.guard.service.port }} 14 | targetPort: http 15 | protocol: TCP 16 | name: http 17 | selector: 18 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 19 | {{- include "kubevious.labels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /kubevious/chart/templates/guard/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if .Values.guard.serviceAccount.create -}} 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-guard.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-guard.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | {{- with .Values.guard.serviceAccount.annotations }} 12 | annotations: 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /kubevious/chart/templates/ingress.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.ingress.enabled -}} 2 | {{- $fullName := include "kubevious-ui.fullname" . -}} 3 | {{- $svcName := include "kubevious-ui.service.name" . -}} 4 | {{- $svcPort := .Values.ui.service.port -}} 5 | {{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} 6 | apiVersion: networking.k8s.io/v1 7 | {{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} 8 | apiVersion: networking.k8s.io/v1beta1 9 | {{- else -}} 10 | apiVersion: extensions/v1beta1 11 | {{- end }} 12 | kind: Ingress 13 | metadata: 14 | name: {{ $fullName }} 15 | namespace: {{ .Release.Namespace }} 16 | labels: 17 | {{- include "kubevious.labels" . | nindent 4 }} 18 | annotations: 19 | {{- with .Values.ingress.annotations }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | spec: 23 | {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} 24 | ingressClassName: {{ .Values.ingress.className }} 25 | {{- end }} 26 | {{- if .Values.ingress.tls }} 27 | tls: 28 | {{- range .Values.ingress.tls }} 29 | - hosts: 30 | {{- range .hosts }} 31 | - {{ . | quote }} 32 | {{- end }} 33 | secretName: {{ .secretName }} 34 | {{- end }} 35 | {{- end }} 36 | rules: 37 | {{- range .Values.ingress.hosts }} 38 | - host: {{ .host | quote }} 39 | http: 40 | paths: 41 | {{- range .paths }} 42 | - path: {{ .path }} 43 | {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} 44 | pathType: {{ .pathType }} 45 | {{- end }} 46 | backend: 47 | {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} 48 | service: 49 | name: {{ $svcName }} 50 | port: 51 | number: {{ $svcPort }} 52 | {{- else }} 53 | serviceName: {{ $svcName }} 54 | servicePort: {{ $svcPort }} 55 | {{- end }} 56 | {{- end }} 57 | {{- end }} 58 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "kubevious-mysql.fullname" -}} 3 | {{ include "kubevious.fullname" . }}-mysql 4 | {{- end }} 5 | 6 | {{- define "kubevious-mysql.config" -}} 7 | {{ include "kubevious-mysql.fullname" . }}-config 8 | {{- end }} 9 | 10 | {{- define "kubevious-mysql.secret" -}} 11 | {{ include "kubevious-mysql.fullname" . }}-secret 12 | {{- end }} 13 | 14 | {{- define "kubevious-mysql.secret-root" -}} 15 | {{ include "kubevious-mysql.fullname" . }}-secret-root 16 | {{- end }} 17 | 18 | {{- define "kubevious-mysql.root-password" -}} 19 | {{- if .Values.mysql.root_password }} 20 | {{- .Values.mysql.root_password | b64enc }} 21 | {{- else }} 22 | {{- $secret := (lookup "v1" "Secret" .Release.Namespace (include "kubevious-mysql.secret-root" .) ) -}} 23 | {{- if $secret }} 24 | {{- $secret.data.MYSQL_ROOT_PASSWORD }} 25 | {{- else }} 26 | {{- if .Values.mysql.generate_passwords }} 27 | {{- randAlphaNum 16 | b64enc }} 28 | {{- else }} 29 | {{- "kubevious" | b64enc }} 30 | {{- end }} 31 | {{- end }} 32 | {{- end }} 33 | {{- end }} 34 | 35 | 36 | {{- define "kubevious-mysql.host" -}} 37 | {{- if .Values.mysql.external.enabled }} 38 | {{- .Values.mysql.external.host }} 39 | {{- else }} 40 | {{- include "kubevious-mysql.fullname" . }} 41 | {{- end }} 42 | {{- end }} 43 | 44 | 45 | {{- define "kubevious-mysql.port" -}} 46 | {{- if .Values.mysql.external.enabled }} 47 | {{- .Values.mysql.external.port }} 48 | {{- else }} 49 | {{- .Values.mysql.service.port }} 50 | {{- end }} 51 | {{- end }} 52 | 53 | 54 | {{- define "kubevious-mysql.database" -}} 55 | {{- if .Values.mysql.external.enabled }} 56 | {{- .Values.mysql.external.database }} 57 | {{- else }} 58 | {{- .Values.mysql.db_name }} 59 | {{- end }} 60 | {{- end }} 61 | 62 | 63 | {{- define "kubevious-mysql.user" -}} 64 | {{- if .Values.mysql.external.enabled }} 65 | {{- .Values.mysql.external.user }} 66 | {{- else }} 67 | {{- .Values.mysql.db_user }} 68 | {{- end }} 69 | {{- end }} 70 | 71 | 72 | {{- define "kubevious-mysql.user-password" -}} 73 | {{- .Values.mysql.external.password | b64enc }} 74 | {{- if .Values.mysql.external.enabled }} 75 | {{- else }} 76 | {{- if and (.Values.mysql.db_user) (not (eq .Values.mysql.db_user "root")) }} 77 | {{- if .Values.mysql.db_password }} 78 | {{- .Values.mysql.db_password | b64enc }} 79 | {{- else }} 80 | {{- $secret := (lookup "v1" "Secret" .Release.Namespace (include "kubevious-mysql.secret" .) ) -}} 81 | {{- if $secret }} 82 | {{- $secret.data.MYSQL_PASS }} 83 | {{- else }} 84 | {{- if .Values.mysql.generate_passwords }} 85 | {{- randAlphaNum 16 | b64enc }} 86 | {{- else }} 87 | {{- "kubevious" | b64enc }} 88 | {{- end }} 89 | {{- end }} 90 | {{- end }} 91 | {{- else }} 92 | {{- include "kubevious-mysql.root-password" . }} 93 | {{- end }} 94 | {{- end }} 95 | {{- end }} 96 | 97 | 98 | {{/* 99 | Create the name of the service account to use for mysql 100 | */}} 101 | {{- define "kubevious-mysql.serviceAccountName" -}} 102 | {{- if .Values.mysql.serviceAccount.create }} 103 | {{- default (include "kubevious-mysql.fullname" .) .Values.mysql.serviceAccount.name }} 104 | {{- else }} 105 | {{- default "default" .Values.mysql.serviceAccount.name }} 106 | {{- end }} 107 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/configmap-db.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | apiVersion: v1 4 | kind: ConfigMap 5 | metadata: 6 | name: {{ include "kubevious-mysql.fullname" . }}-conf 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | data: 12 | master.cnf: | 13 | # Apply this config only on the master. 14 | [mysqld] 15 | log-bin 16 | slave.cnf: | 17 | # Apply this config only on slaves. 18 | [mysqld] 19 | super-read-only 20 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/configmap-init-script.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | apiVersion: v1 4 | kind: ConfigMap 5 | metadata: 6 | name: {{ include "kubevious-mysql.fullname" . }}-init-script 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | data: 12 | initdb.sql: | 13 | USE kubevious; 14 | 15 | SET NAMES utf8; 16 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/configmap-mysql-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "kubevious-mysql.config" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | data: 11 | MYSQL_HOST: "{{ include "kubevious-mysql.host" . }}" 12 | MYSQL_PORT: "{{ include "kubevious-mysql.port" . }}" 13 | MYSQL_DB: "{{ include "kubevious-mysql.database" . }}" 14 | MYSQL_USER: "{{ include "kubevious-mysql.user" . }}" -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/secret-root.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | apiVersion: v1 4 | kind: Secret 5 | metadata: 6 | name: {{ include "kubevious-mysql.secret-root" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | type: Opaque 12 | data: 13 | MYSQL_ROOT_PASSWORD: {{ include "kubevious-mysql.root-password" . | quote }} 14 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/secret.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "kubevious-mysql.secret" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | type: Opaque 11 | data: 12 | MYSQL_PASS: {{ include "kubevious-mysql.user-password" . | quote }} 13 | -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/service.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | kind: Service 4 | apiVersion: v1 5 | metadata: 6 | name: {{ include "kubevious-mysql.fullname" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | spec: 12 | type: {{ .Values.mysql.service.type }} 13 | ports: 14 | - port: {{ .Values.mysql.service.port }} 15 | targetPort: mysql 16 | protocol: TCP 17 | name: mysql 18 | selector: 19 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 20 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | {{- if .Values.mysql.serviceAccount.create -}} 4 | apiVersion: v1 5 | kind: ServiceAccount 6 | metadata: 7 | name: {{ include "kubevious-mysql.serviceAccountName" . }} 8 | namespace: {{ .Release.Namespace }} 9 | labels: 10 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 11 | {{- include "kubevious.labels" . | nindent 4 }} 12 | {{- with .Values.mysql.serviceAccount.annotations }} 13 | annotations: 14 | {{- toYaml . | nindent 4 }} 15 | {{- end }} 16 | {{- end }} 17 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/mysql/statefulset.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.mysql.external.enabled -}} 2 | --- 3 | # source: https://chart.io/docs/tasks/run-application/run-replicated-stateful-application/ 4 | apiVersion: apps/v1 5 | kind: StatefulSet 6 | metadata: 7 | name: {{ include "kubevious-mysql.fullname" . }} 8 | namespace: {{ .Release.Namespace }} 9 | labels: 10 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 11 | {{- include "kubevious.labels" . | nindent 4 }} 12 | spec: 13 | selector: 14 | matchLabels: 15 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 16 | {{- include "kubevious.match-labels" . | nindent 6 }} 17 | serviceName: {{ include "kubevious-mysql.fullname" . }} 18 | replicas: 1 19 | template: 20 | metadata: 21 | labels: 22 | app.kubernetes.io/component: {{ include "kubevious-mysql.fullname" . }} 23 | {{- include "kubevious.base-labels" . | nindent 8 }} 24 | spec: 25 | {{- with .Values.mysql.imagePullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 8 }} 28 | {{- end }} 29 | securityContext: 30 | {{- toYaml .Values.mysql.podSecurityContext | nindent 8 }} 31 | initContainers: 32 | - name: init-mysql 33 | image: {{ .Values.mysql.image.repository }}:{{ .Values.mysql.image.tag }} 34 | imagePullPolicy: {{ .Values.mysql.image.pullPolicy }} 35 | command: 36 | - bash 37 | - "-c" 38 | - | 39 | set -ex 40 | echo "[mysqld]" > /mnt/conf.d/server-id.cnf 41 | echo "server-id=1" >> /mnt/conf.d/server-id.cnf 42 | echo "[mysqld]" > /mnt/conf.d/bin-logs.cnf 43 | echo "binlog_expire_logs_seconds=259200" >> /mnt/conf.d/bin-logs.cnf 44 | cp /mnt/config-map/master.cnf /mnt/conf.d/ 45 | volumeMounts: 46 | - name: conf 47 | mountPath: /mnt/conf.d 48 | - name: config-map 49 | mountPath: /mnt/config-map 50 | containers: 51 | - name: mysql 52 | image: "{{ .Values.mysql.image.repository }}:{{ .Values.mysql.image.tag }}" 53 | imagePullPolicy: {{ .Values.mysql.image.pullPolicy }} 54 | env: 55 | - name: NODE_ENV 56 | value: "production" 57 | - name: MYSQL_DATABASE 58 | value: "{{ .Values.mysql.db_name }}" 59 | {{- if and (.Values.mysql.db_user) (not (eq .Values.mysql.db_user "root")) }} 60 | - name: MYSQL_USER 61 | value: "{{ .Values.mysql.db_user }}" 62 | - name: MYSQL_PASSWORD 63 | valueFrom: 64 | secretKeyRef: 65 | name: {{ include "kubevious-mysql.secret" . }} 66 | key: MYSQL_PASS 67 | {{- end }} 68 | - name: MYSQL_ROOT_PASSWORD 69 | valueFrom: 70 | secretKeyRef: 71 | name: {{ include "kubevious-mysql.secret-root" . }} 72 | key: MYSQL_ROOT_PASSWORD 73 | ports: 74 | - name: mysql 75 | containerPort: 3306 76 | volumeMounts: 77 | - name: "data" 78 | mountPath: /var/lib/mysql 79 | subPath: mysql 80 | - name: conf 81 | mountPath: /etc/mysql/conf.d 82 | - name: init-script 83 | mountPath: /docker-entrypoint-initdb.d 84 | livenessProbe: 85 | exec: 86 | {{ if eq .Values.mysql.db_user "root" }} 87 | command: ["mysqladmin", "ping"] 88 | {{ else }} 89 | command: ["mysqladmin", "ping", "-u$MYSQL_USER", "-p$MYSQL_PASSWORD"] 90 | {{ end }} 91 | initialDelaySeconds: 120 92 | periodSeconds: 10 93 | timeoutSeconds: 5 94 | readinessProbe: 95 | exec: 96 | # Check we can execute queries over TCP (skip-networking is off). 97 | command: 98 | - bash 99 | - "-c" 100 | {{ if eq .Values.mysql.db_user "root" }} 101 | - | 102 | mysql -p$MYSQL_ROOT_PASSWORD -h 127.0.0.1 -e 'SELECT 1' 103 | {{ else }} 104 | - | 105 | mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -h 127.0.0.1 -e 'SELECT 1' 106 | {{ end }} 107 | 108 | initialDelaySeconds: 5 109 | periodSeconds: 2 110 | timeoutSeconds: 1 111 | resources: 112 | {{- toYaml .Values.mysql.resources | nindent 12 }} 113 | serviceAccountName: {{ include "kubevious-mysql.serviceAccountName" . }} 114 | {{- with .Values.mysql.nodeSelector }} 115 | nodeSelector: 116 | {{- toYaml . | nindent 8 }} 117 | {{- end }} 118 | {{- with .Values.mysql.affinity }} 119 | affinity: 120 | {{- toYaml . | nindent 8 }} 121 | {{- end }} 122 | {{- with .Values.mysql.tolerations }} 123 | tolerations: 124 | {{- toYaml . | nindent 8 }} 125 | {{- end }} 126 | volumes: 127 | - name: conf 128 | emptyDir: {} 129 | - name: config-map 130 | configMap: 131 | name: {{ include "kubevious-mysql.fullname" . }}-conf 132 | - name: init-script 133 | configMap: 134 | name: {{ include "kubevious-mysql.fullname" . }}-init-script 135 | {{- if .Values.mysql.persistence.enabled }} 136 | volumeClaimTemplates: 137 | - metadata: 138 | name: "data" 139 | spec: 140 | accessModes: ["{{ .Values.mysql.persistence.accessMode }}"] 141 | {{- if .Values.mysql.persistence.storageClass }} 142 | storageClassName: "{{ .Values.mysql.persistence.storageClass }}" 143 | {{- end }} 144 | resources: 145 | requests: 146 | storage: {{ .Values.mysql.persistence.size }} 147 | {{- else }} 148 | - name: data 149 | emptyDir: {} 150 | {{- end }} 151 | {{- end -}} -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "kubevious-parser.fullname" -}} 3 | {{ include "kubevious.fullname" . }}-parser 4 | {{- end }} 5 | 6 | {{/* 7 | Create the name of the service account to use for the parser 8 | */}} 9 | {{- define "kubevious-parser.serviceAccountName" -}} 10 | {{- default (include "kubevious-parser.fullname" .) .Values.parser.serviceAccount.name }} 11 | {{- end }} 12 | 13 | {{- define "kubevious-parser.service.name" -}} 14 | {{ print (include "kubevious-parser.fullname" . ) "-" (.Values.parser.service.type | lower) }} 15 | {{- end }} 16 | 17 | 18 | {{- define "kubevious-parser.baseUrl" -}} 19 | http://{{ include "kubevious-parser.service.name" . }}:{{ .Values.parser.service.port }} 20 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/clusterrole.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.parser.serviceAccount.skipRoleBinding -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRole 5 | metadata: 6 | name: {{ include "kubevious-parser.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | rules: 11 | - apiGroups: 12 | - "*" 13 | resources: 14 | - "*" 15 | verbs: 16 | - get 17 | - list 18 | - watch 19 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/clusterrolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.parser.serviceAccount.skipRoleBinding -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRoleBinding 5 | metadata: 6 | name: {{ include "kubevious-parser.fullname" . }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | roleRef: 11 | apiGroup: rbac.authorization.k8s.io 12 | kind: ClusterRole 13 | name: {{ include "kubevious-parser.fullname" . }} 14 | subjects: 15 | - kind: ServiceAccount 16 | name: {{ include "kubevious-parser.fullname" . }} 17 | namespace: {{ .Release.Namespace }} 18 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "kubevious-parser.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | replicas: 1 12 | selector: 13 | matchLabels: 14 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 15 | {{- include "kubevious.match-labels" . | nindent 6 }} 16 | template: 17 | metadata: 18 | {{- with .Values.parser.podAnnotations }} 19 | annotations: 20 | {{- toYaml . | nindent 8 }} 21 | {{- end }} 22 | labels: 23 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 24 | {{- include "kubevious.labels" . | nindent 8 }} 25 | spec: 26 | {{- with .Values.parser.imagePullSecrets }} 27 | imagePullSecrets: 28 | {{- toYaml . | nindent 8 }} 29 | {{- end }} 30 | serviceAccountName: {{ include "kubevious-parser.serviceAccountName" . }} 31 | securityContext: 32 | {{- toYaml .Values.parser.podSecurityContext | nindent 8 }} 33 | containers: 34 | - name: {{ .Chart.Name }} 35 | securityContext: 36 | {{- toYaml .Values.parser.securityContext | nindent 12 }} 37 | image: "{{ .Values.parser.image.repository }}:{{ .Values.parser.image.tag }}" 38 | imagePullPolicy: {{ .Values.parser.image.pullPolicy }} 39 | env: 40 | - name: NODE_ENV 41 | value: "production" 42 | - name: LOG_LEVEL 43 | value: "{{ .Values.parser.log.level }}" 44 | - name: KUBEVIOUS_COLLECTOR 45 | value: "{{ include "kubevious-collector.baseUrl" . }}/api/v1/collect" 46 | {{- if .Values.kubevious.api.skipEvents }} 47 | - name: KUBEVIOUS_API_SKIP_EVENTS 48 | value: "true" 49 | {{- end }} 50 | {{- if .Values.kubevious.api.skipSecrets }} 51 | - name: KUBEVIOUS_API_SKIP_SECRET 52 | value: "true" 53 | {{- end }} 54 | {{- if .Values.kubevious.api.skipped }} 55 | - name: KUBEVIOUS_API_SKIP 56 | value: {{ join "," .Values.kubevious.api.skipped }} 57 | {{- end }} 58 | - name: SERVER_PORT 59 | value: "4003" 60 | {{- if .Values.parser.v8MaxOldSpace }} 61 | - name: NODE_OPTIONS 62 | value: "--max-old-space-size={{ .Values.parser.v8MaxOldSpace }}" 63 | {{- end }} 64 | envFrom: 65 | - configMapRef: 66 | name: {{ include "kubevious-worldvious.config" . }} 67 | - secretRef: 68 | name: {{ include "kubevious-worldvious.secret" . }} 69 | ports: 70 | - name: http 71 | containerPort: 4003 72 | protocol: TCP 73 | resources: 74 | {{- toYaml .Values.parser.resources | nindent 12 }} 75 | {{- with .Values.parser.nodeSelector }} 76 | nodeSelector: 77 | {{- toYaml . | nindent 8 }} 78 | {{- end }} 79 | {{- with .Values.parser.affinity }} 80 | affinity: 81 | {{- toYaml . | nindent 8 }} 82 | {{- end }} 83 | {{- with .Values.parser.tolerations }} 84 | tolerations: 85 | {{- toYaml . | nindent 8 }} 86 | {{- end }} 87 | -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "kubevious-parser.service.name" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | type: {{ .Values.parser.service.type }} 12 | ports: 13 | - port: {{ .Values.parser.service.port }} 14 | targetPort: http 15 | protocol: TCP 16 | name: http 17 | selector: 18 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 19 | {{- include "kubevious.labels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /kubevious/chart/templates/parser/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.parser.serviceAccount.create -}} 2 | --- 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-parser.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-parser.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | {{- with .Values.parser.serviceAccount.annotations }} 12 | annotations: 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /kubevious/chart/templates/redis/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "kubevious-redis.fullname" -}} 3 | {{ include "kubevious.fullname" . }}-redis 4 | {{- end }} 5 | 6 | {{- define "kubevious-redis.config" -}} 7 | {{ include "kubevious-redis.fullname" . }}-config 8 | {{- end }} 9 | 10 | {{- define "kubevious-redis.host" -}} 11 | {{- include "kubevious-redis.fullname" . }} 12 | {{- end }} 13 | 14 | {{- define "kubevious-redis.port" -}} 15 | {{- .Values.redis.service.port }} 16 | {{- end }} 17 | 18 | {{/* 19 | Create the name of the service account to use for redis 20 | */}} 21 | {{- define "kubevious-redis.serviceAccountName" -}} 22 | {{- if .Values.redis.serviceAccount.create }} 23 | {{- default (include "kubevious-redis.fullname" .) .Values.redis.serviceAccount.name }} 24 | {{- else }} 25 | {{- default "default" .Values.redis.serviceAccount.name }} 26 | {{- end }} 27 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/redis/configmap-redis-config.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "kubevious-redis.config" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | data: 11 | REDIS_HOST: "{{ include "kubevious-redis.host" . }}" 12 | REDIS_PORT: "{{ include "kubevious-redis.port" . }}" -------------------------------------------------------------------------------- /kubevious/chart/templates/redis/service.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | kind: Service 3 | apiVersion: v1 4 | metadata: 5 | name: {{ include "kubevious-redis.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | type: {{ .Values.redis.service.type }} 12 | ports: 13 | - port: {{ .Values.redis.service.port }} 14 | targetPort: redis 15 | protocol: TCP 16 | name: redis 17 | selector: 18 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} -------------------------------------------------------------------------------- /kubevious/chart/templates/redis/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.redis.serviceAccount.create -}} 2 | apiVersion: v1 3 | kind: ServiceAccount 4 | metadata: 5 | name: {{ include "kubevious-redis.serviceAccountName" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | {{- with .Values.redis.serviceAccount.annotations }} 11 | annotations: 12 | {{- toYaml . | nindent 4 }} 13 | {{- end }} 14 | {{- end }} 15 | -------------------------------------------------------------------------------- /kubevious/chart/templates/redis/statefulset.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: StatefulSet 4 | metadata: 5 | name: {{ include "kubevious-redis.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | spec: 11 | selector: 12 | matchLabels: 13 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 14 | {{- include "kubevious.match-labels" . | nindent 6 }} 15 | serviceName: {{ include "kubevious-redis.fullname" . }} 16 | replicas: 1 17 | template: 18 | metadata: 19 | labels: 20 | app.kubernetes.io/component: {{ include "kubevious-redis.fullname" . }} 21 | {{- include "kubevious.base-labels" . | nindent 8 }} 22 | spec: 23 | {{- with .Values.redis.imagePullSecrets }} 24 | imagePullSecrets: 25 | {{- toYaml . | nindent 8 }} 26 | {{- end }} 27 | securityContext: 28 | {{- toYaml .Values.redis.podSecurityContext | nindent 8 }} 29 | containers: 30 | - name: redis 31 | image: "{{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}" 32 | imagePullPolicy: {{ .Values.redis.image.pullPolicy }} 33 | ports: 34 | - containerPort: 6379 35 | protocol: TCP 36 | name: redis 37 | resources: 38 | {{- toYaml .Values.redis.resources | nindent 12 }} 39 | serviceAccountName: {{ include "kubevious-redis.serviceAccountName" . }} 40 | {{- with .Values.redis.nodeSelector }} 41 | nodeSelector: 42 | {{- toYaml . | nindent 8 }} 43 | {{- end }} 44 | {{- with .Values.redis.affinity }} 45 | affinity: 46 | {{- toYaml . | nindent 8 }} 47 | {{- end }} 48 | {{- with .Values.redis.tolerations }} 49 | tolerations: 50 | {{- toYaml . | nindent 8 }} 51 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/ui/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | 3 | {{- define "kubevious-ui.fullname" -}} 4 | {{ include "kubevious.fullname" . }}-ui 5 | {{- end }} 6 | 7 | {{/* 8 | Create the name of the service account to use for the ui 9 | */}} 10 | {{- define "kubevious-ui.serviceAccountName" -}} 11 | {{- if .Values.ui.serviceAccount.create }} 12 | {{- default (include "kubevious-ui.fullname" .) .Values.ui.serviceAccount.name }} 13 | {{- else }} 14 | {{- default "default" .Values.ui.serviceAccount.name }} 15 | {{- end }} 16 | {{- end }} 17 | 18 | {{- define "kubevious-ui.service.name" -}} 19 | {{ print (include "kubevious-ui.fullname" . ) "-" (.Values.ui.service.type | lower) }} 20 | {{- end }} 21 | 22 | {{- define "kubevious-ui.caddyConfig" -}} 23 | {{ print (include "kubevious-ui.fullname" . ) "-caddy" }} 24 | {{- end }} 25 | -------------------------------------------------------------------------------- /kubevious/chart/templates/ui/configmap-caddy.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "kubevious-ui.caddyConfig" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | data: 11 | Caddyfile: | 12 | { 13 | admin :5555 14 | } 15 | 16 | :4000 { 17 | 18 | handle /api/v1/* { 19 | reverse_proxy {{ include "kubevious-backend.service.name" . }}:{{ .Values.backend.service.port }} 20 | } 21 | 22 | handle /socket/* { 23 | reverse_proxy {{ include "kubevious-backend.service.name" . }}:{{ .Values.backend.service.port }} 24 | } 25 | 26 | handle /* { 27 | root * /caddy/www 28 | try_files {path} /index.html 29 | file_server 30 | } 31 | 32 | } -------------------------------------------------------------------------------- /kubevious/chart/templates/ui/deployment.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: {{ include "kubevious-ui.fullname" . }} 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 8 | {{- include "kubevious.labels" . | nindent 4 }} 9 | spec: 10 | replicas: 1 11 | selector: 12 | matchLabels: 13 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 14 | {{- include "kubevious.match-labels" . | nindent 6 }} 15 | template: 16 | metadata: 17 | {{- with .Values.ui.podAnnotations }} 18 | annotations: 19 | {{- toYaml . | nindent 8 }} 20 | {{- end }} 21 | labels: 22 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 23 | {{- include "kubevious.labels" . | nindent 8 }} 24 | spec: 25 | {{- with .Values.ui.imagePullSecrets }} 26 | imagePullSecrets: 27 | {{- toYaml . | nindent 8 }} 28 | {{- end }} 29 | securityContext: 30 | {{- toYaml .Values.ui.podSecurityContext | nindent 8 }} 31 | containers: 32 | - name: {{ .Chart.Name }} 33 | securityContext: 34 | {{- toYaml .Values.ui.securityContext | nindent 12 }} 35 | image: "{{ .Values.ui.image.repository }}:{{ .Values.ui.image.tag }}" 36 | imagePullPolicy: {{ .Values.ui.image.pullPolicy }} 37 | env: 38 | - name: NODE_ENV 39 | value: "production" 40 | - name: KUBEVIOUS_VERSION 41 | value: {{ .Chart.Version }} 42 | ports: 43 | - name: http 44 | containerPort: 4000 45 | protocol: TCP 46 | livenessProbe: 47 | httpGet: 48 | path: / 49 | port: http 50 | readinessProbe: 51 | httpGet: 52 | path: / 53 | port: http 54 | resources: 55 | {{- toYaml .Values.ui.resources | nindent 12 }} 56 | volumeMounts: 57 | - name: caddy-config 58 | mountPath: /etc/caddy/Caddyfile 59 | subPath: Caddyfile 60 | volumes: 61 | - name: caddy-config 62 | configMap: 63 | name: {{ include "kubevious-ui.caddyConfig" . }} 64 | serviceAccountName: {{ include "kubevious-ui.serviceAccountName" . }} 65 | {{- with .Values.ui.nodeSelector }} 66 | nodeSelector: 67 | {{- toYaml . | nindent 8 }} 68 | {{- end }} 69 | {{- with .Values.ui.affinity }} 70 | affinity: 71 | {{- toYaml . | nindent 8 }} 72 | {{- end }} 73 | {{- with .Values.ui.tolerations }} 74 | tolerations: 75 | {{- toYaml . | nindent 8 }} 76 | {{- end }} 77 | -------------------------------------------------------------------------------- /kubevious/chart/templates/ui/service.yaml: -------------------------------------------------------------------------------- 1 | kind: Service 2 | apiVersion: v1 3 | metadata: 4 | name: {{ include "kubevious-ui.service.name" . }} 5 | namespace: {{ .Release.Namespace }} 6 | labels: 7 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 8 | {{- include "kubevious.labels" . | nindent 4 }} 9 | spec: 10 | type: {{ .Values.ui.service.type }} 11 | ports: 12 | - port: {{ .Values.ui.service.port }} 13 | targetPort: http 14 | protocol: TCP 15 | name: http 16 | selector: 17 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 18 | {{- include "kubevious.labels" . | nindent 4 }} 19 | -------------------------------------------------------------------------------- /kubevious/chart/templates/ui/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | {{- if .Values.ui.serviceAccount.create -}} 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "kubevious-ui.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | app.kubernetes.io/component: {{ include "kubevious-ui.fullname" . }} 10 | {{- include "kubevious.labels" . | nindent 4 }} 11 | {{- with .Values.ui.serviceAccount.annotations }} 12 | annotations: 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | -------------------------------------------------------------------------------- /kubevious/chart/templates/worldvious/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{- define "kubevious-worldvious.fullname" -}} 2 | {{ include "kubevious.fullname" . }}-worldvious 3 | {{- end }} 4 | 5 | {{- define "kubevious-worldvious.secret" -}} 6 | {{ include "kubevious-worldvious.fullname" . }} 7 | {{- end }} 8 | 9 | {{- define "kubevious-worldvious.config" -}} 10 | {{ include "kubevious-worldvious.fullname" . }} 11 | {{- end }} 12 | 13 | 14 | {{- define "kubevious-worldvious.id" -}} 15 | {{- $secret := (lookup "v1" "Secret" .Release.Namespace (include "kubevious-worldvious.secret" .) ) -}} 16 | {{- if $secret }} 17 | {{- $secret.data.WORLDVIOUS_ID }} 18 | {{- else }} 19 | {{- uuidv4 | b64enc }} 20 | {{- end }} 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /kubevious/chart/templates/worldvious/configmap.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: ConfigMap 4 | metadata: 5 | name: {{ include "kubevious-worldvious.config" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-worldvious.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | data: 11 | WORLDVIOUS_URL: https://api.kubevious.io/api/v1/oss 12 | {{- if or (.Values.worldvious.opt_out_all) (.Values.worldvious.opt_out_version_check) }} 13 | WORLDVIOUS_VERSION_CHECK_DISABLE: "true" 14 | {{- end }} 15 | {{- if or (.Values.worldvious.opt_out_all) (.Values.worldvious.opt_out_error_report) }} 16 | WORLDVIOUS_ERROR_REPORT_DISABLE: "true" 17 | {{- end }} 18 | {{- if or (.Values.worldvious.opt_out_all) (.Values.worldvious.opt_out_counters_report) }} 19 | WORLDVIOUS_COUNTERS_REPORT_DISABLE: "true" 20 | {{- end }} 21 | {{- if or (.Values.worldvious.opt_out_all) (.Values.worldvious.opt_out_metrics_report) }} 22 | WORLDVIOUS_METRICS_REPORT_DISABLE: "true" 23 | {{- end }} -------------------------------------------------------------------------------- /kubevious/chart/templates/worldvious/secret.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: v1 3 | kind: Secret 4 | metadata: 5 | name: {{ include "kubevious-worldvious.secret" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | app.kubernetes.io/component: {{ include "kubevious-worldvious.fullname" . }} 9 | {{- include "kubevious.labels" . | nindent 4 }} 10 | type: Opaque 11 | data: 12 | WORLDVIOUS_ID: {{ include "kubevious-worldvious.id" . | quote }} 13 | -------------------------------------------------------------------------------- /kubevious/chart/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for kubevious. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | nameOverride: "" 5 | fullnameOverride: "" 6 | ### 7 | ### INGRESS 8 | ### 9 | ingress: 10 | enabled: false 11 | className: "" 12 | annotations: 13 | kubernetes.io/ingress.allow-http: "true" 14 | hosts: 15 | - host: "" 16 | paths: 17 | - path: / 18 | pathType: ImplementationSpecific 19 | tls: [] 20 | ### 21 | ### KUBEVIOUS 22 | ### 23 | kubevious: 24 | api: 25 | skipEvents: true 26 | skipSecrets: false 27 | skipped: [] 28 | ### 29 | ### KUBEVIOUS BACKEND 30 | ### 31 | backend: 32 | image: 33 | repository: kubevious/backend 34 | tag: 1.2.2 35 | pullPolicy: IfNotPresent 36 | imagePullSecrets: [] 37 | podAnnotations: {} 38 | podSecurityContext: {} 39 | securityContext: {} 40 | service: 41 | type: ClusterIP 42 | port: 4000 43 | serviceAccount: 44 | # Specifies whether a service account should be created 45 | create: true 46 | # Annotations to add to the service account 47 | annotations: {} 48 | # The name of the service account to use. 49 | # If not set and create is true, a name is generated using the fullname template 50 | name: "" 51 | resources: 52 | requests: 53 | cpu: 100m 54 | memory: 200Mi 55 | # limits: 56 | # cpu: 500m 57 | # memory: 1Gi 58 | nodeSelector: {} 59 | tolerations: [] 60 | affinity: {} 61 | log: 62 | level: info 63 | ### 64 | ### KUBEVIOUS COLLECTOR 65 | ### 66 | collector: 67 | image: 68 | repository: kubevious/collector 69 | tag: 1.2.1 70 | pullPolicy: IfNotPresent 71 | imagePullSecrets: [] 72 | podAnnotations: {} 73 | podSecurityContext: {} 74 | securityContext: {} 75 | service: 76 | type: ClusterIP 77 | port: 4000 78 | serviceAccount: 79 | # Specifies whether a service account should be created 80 | create: false 81 | # Annotations to add to the service account 82 | annotations: {} 83 | # The name of the service account to use. 84 | # If not set and create is true, a name is generated using the fullname template 85 | name: "" 86 | resources: 87 | requests: 88 | cpu: 100m 89 | memory: 200Mi 90 | # limits: 91 | # cpu: 500m 92 | # memory: 1Gi 93 | v8MaxOldSpace: null 94 | nodeSelector: {} 95 | tolerations: [] 96 | affinity: {} 97 | log: 98 | level: info 99 | historyRetentionDays: 15 100 | ### 101 | ### KUBEVIOUS GUARD 102 | ### 103 | guard: 104 | image: 105 | repository: kubevious/guard 106 | tag: 1.2.1 107 | pullPolicy: IfNotPresent 108 | imagePullSecrets: [] 109 | podAnnotations: {} 110 | podSecurityContext: {} 111 | securityContext: {} 112 | service: 113 | type: ClusterIP 114 | port: 4000 115 | serviceAccount: 116 | # Specifies whether a service account should be created 117 | create: false 118 | # Annotations to add to the service account 119 | annotations: {} 120 | # The name of the service account to use. 121 | # If not set and create is true, a name is generated using the fullname template 122 | name: "" 123 | resources: 124 | requests: 125 | cpu: 100m 126 | memory: 200Mi 127 | # limits: 128 | # cpu: 500m 129 | # memory: 1Gi 130 | v8MaxOldSpace: null 131 | nodeSelector: {} 132 | tolerations: [] 133 | affinity: {} 134 | log: 135 | level: info 136 | ### 137 | ### KUBEVIOUS PARSER 138 | ### 139 | parser: 140 | image: 141 | repository: kubevious/parser 142 | tag: 1.2.2 143 | pullPolicy: IfNotPresent 144 | imagePullSecrets: [] 145 | podAnnotations: {} 146 | podSecurityContext: {} 147 | securityContext: {} 148 | service: 149 | type: ClusterIP 150 | port: 4000 151 | resources: 152 | requests: 153 | cpu: 100m 154 | memory: 200Mi 155 | # limits: 156 | # cpu: 500m 157 | # memory: 1Gi 158 | v8MaxOldSpace: null 159 | nodeSelector: {} 160 | tolerations: [] 161 | affinity: {} 162 | log: 163 | level: info 164 | serviceAccount: 165 | # Specifies whether a service account should be created 166 | create: true 167 | # Annotations to add to the service account 168 | annotations: {} 169 | # The name of the service account to use. 170 | # If not set and create is true, a name is generated using the fullname template 171 | name: "" 172 | ### 173 | ### KUBEVIOUS UI 174 | ### 175 | ui: 176 | image: 177 | repository: kubevious/ui 178 | tag: 1.2.1 179 | pullPolicy: IfNotPresent 180 | imagePullSecrets: [] 181 | podAnnotations: {} 182 | podSecurityContext: {} 183 | securityContext: {} 184 | service: 185 | type: ClusterIP 186 | port: 80 187 | serviceAccount: 188 | # Specifies whether a service account should be created 189 | create: false 190 | # Annotations to add to the service account 191 | annotations: {} 192 | # The name of the service account to use. 193 | # If not set and create is true, a name is generated using the fullname template 194 | name: "" 195 | resources: 196 | requests: 197 | cpu: 25m 198 | memory: 50Mi 199 | # limits: 200 | # cpu: 100m 201 | # memory: 128Mi 202 | nodeSelector: {} 203 | tolerations: [] 204 | affinity: {} 205 | ### 206 | ### MYSQL 207 | ### 208 | mysql: 209 | external: 210 | enabled: false 211 | host: "" 212 | port: "" 213 | database: "" 214 | user: "" 215 | password: "" 216 | image: 217 | repository: mysql 218 | tag: 8.0.30 219 | pullPolicy: IfNotPresent 220 | db_name: kubevious 221 | db_user: "kubevious" 222 | generate_passwords: false 223 | db_password: "" 224 | root_password: "" 225 | persistence: 226 | enabled: true 227 | accessMode: ReadWriteOnce 228 | size: "10Gi" 229 | storageClass: "" 230 | service: 231 | type: ClusterIP 232 | port: "3306" 233 | serviceAccount: 234 | # Specifies whether a service account should be created 235 | create: false 236 | # Annotations to add to the service account 237 | annotations: {} 238 | # The name of the service account to use. 239 | # If not set and create is true, a name is generated using the fullname template 240 | name: "" 241 | imagePullSecrets: [] 242 | podAnnotations: {} 243 | podSecurityContext: {} 244 | securityContext: {} 245 | resources: 246 | requests: 247 | cpu: 250m 248 | memory: 1000Mi 249 | # limits: 250 | # cpu: 1000m 251 | # memory: 2Gi 252 | nodeSelector: {} 253 | tolerations: [] 254 | affinity: {} 255 | ### 256 | ### REDIS 257 | ### 258 | redis: 259 | image: 260 | repository: redislabs/redisearch 261 | tag: 2.4.14 262 | pullPolicy: IfNotPresent 263 | service: 264 | type: ClusterIP 265 | port: "6379" 266 | serviceAccount: 267 | # Specifies whether a service account should be created 268 | create: false 269 | # Annotations to add to the service account 270 | annotations: {} 271 | # The name of the service account to use. 272 | # If not set and create is true, a name is generated using the fullname template 273 | name: "" 274 | imagePullSecrets: [] 275 | podAnnotations: {} 276 | podSecurityContext: {} 277 | securityContext: {} 278 | resources: 279 | requests: 280 | cpu: 100m 281 | memory: 128Mi 282 | # limits: 283 | # cpu: 1000m 284 | # memory: 2Gi 285 | nodeSelector: {} 286 | tolerations: [] 287 | affinity: {} 288 | ### 289 | ### WORLDVIOUS 290 | ### 291 | worldvious: 292 | ## Disables version check. As a part of the version check, Kubevious deployments 293 | ## are added to the leaderboard at https://worldvious.io. Reporting is anonymized 294 | ## to the nearest city. No IP address is stored or logged. We calculate the SHA256 295 | ## hash of the IP address and use it as a key. As a part of this request, we also 296 | ## added news notification and a feedback request mechanism. 297 | opt_out_version_check: false 298 | ## Disables automatic exception and error reporting. 299 | opt_out_error_report: false 300 | ## Disables periodic reporting of cluster metrics, such as: number of nodes, pods, 301 | ## ingresses, configmaps, etc. The number of pods and nodes would appear on the 302 | ## https://worldvious.io leaderboard. Those are the same counters you would see in 303 | ## the console log of kubevious and parser pods. 304 | opt_out_counters_report: false 305 | ## Disables periodic reporting of internal time metrics. In conjunction with counters 306 | ## reporting, this would help identify internal bottlenecks and improve overall 307 | ## performance. Those are the same metrics you would see in the console log of kubevious 308 | ## and parser pods. 309 | opt_out_metrics_report: false 310 | ## Opt out from all of the above reportings. 311 | opt_out_all: false 312 | -------------------------------------------------------------------------------- /kubevious/dev-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will install Kubevious now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | # VERSION=0.9.13 21 | 22 | # yq ".version = \"${VERSION}\"" -i chart/Chart.yaml 23 | # yq ".appVersion = \"${VERSION}\"" -i chart/Chart.yaml 24 | 25 | echo "********************" 26 | cat chart/Chart.yaml 27 | echo "********************" 28 | 29 | VERSION=$(yq ".version" chart/Chart.yaml) 30 | echo "VERSION: ${VERSION}" 31 | echo "********************" 32 | 33 | rm -f kubevious-*.tgz 34 | 35 | helm package chart/ --version ${VERSION} 36 | 37 | kubectl create namespace kubevious 38 | 39 | # --debug 40 | helm upgrade -i \ 41 | --atomic \ 42 | -n kubevious \ 43 | -f overrides/overrides.yaml \ 44 | kubevious ./kubevious-${VERSION}.tgz 45 | -------------------------------------------------------------------------------- /kubevious/dev-uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will UNINSTALL Kubevious now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | helm uninstall kubevious -n kubevious 21 | 22 | kubectl delete pvc data-kubevious-mysql-0 -n kubevious 23 | 24 | kubectl get pv -------------------------------------------------------------------------------- /kubevious/overrides/gcp/certificate.yaml: -------------------------------------------------------------------------------- 1 | kind: ManagedCertificate 2 | apiVersion: networking.gke.io/v1beta1 3 | metadata: 4 | name: kubevious-certificate 5 | namespace: kubevious 6 | spec: 7 | domains: 8 | - demo2.kubevious.io 9 | -------------------------------------------------------------------------------- /kubevious/overrides/overrides-custom-name.yaml: -------------------------------------------------------------------------------- 1 | nameOverride: "kubevious-custom" 2 | fullnameOverride: "kubevious-pre-release" 3 | ingress: 4 | enabled: true -------------------------------------------------------------------------------- /kubevious/overrides/overrides-demo.yaml: -------------------------------------------------------------------------------- 1 | ingress: 2 | enabled: true 3 | annotations: 4 | kubernetes.io/ingress.allow-http: "true" 5 | kubernetes.io/ingress.global-static-ip-name: kubevious-ui 6 | networking.gke.io/managed-certificates: kubevious-certificate 7 | hosts: 8 | - host: "demo.kubevious.io" 9 | paths: 10 | - path: "" 11 | ui: 12 | image: 13 | repository: kubevious/ui-demo 14 | mysql: 15 | persistence: 16 | size: "20Gi" -------------------------------------------------------------------------------- /kubevious/overrides/overrides-do.yaml: -------------------------------------------------------------------------------- 1 | ingress: 2 | enabled: true 3 | # annotations: 4 | # kubernetes.io/ingress.class: kong 5 | hosts: 6 | - host: "" 7 | ui: 8 | service: 9 | type: NodePort -------------------------------------------------------------------------------- /kubevious/overrides/overrides-external-mysql.yaml: -------------------------------------------------------------------------------- 1 | mysql: 2 | external: 3 | enabled: true 4 | host: "my-external-mysql" 5 | port: "1234" 6 | database: "my-external-db" 7 | user: "my-external-user" 8 | password: "my-external-user" -------------------------------------------------------------------------------- /kubevious/overrides/overrides-gcp-https.yaml: -------------------------------------------------------------------------------- 1 | ingress: 2 | enabled: true 3 | annotations: 4 | kubernetes.io/ingress.allow-http: "true" 5 | kubernetes.io/ingress.global-static-ip-name: kubevious-ui 6 | networking.gke.io/managed-certificates: kubevious-certificate 7 | hosts: 8 | - host: "demo.kubevious.io" 9 | paths: 10 | - path: "/" 11 | pathType: ImplementationSpecific 12 | ui: 13 | service: 14 | type: NodePort -------------------------------------------------------------------------------- /kubevious/overrides/overrides-ingress.yaml: -------------------------------------------------------------------------------- 1 | ingress: 2 | enabled: true -------------------------------------------------------------------------------- /kubevious/overrides/overrides-node-selector.yaml: -------------------------------------------------------------------------------- 1 | kubevious: 2 | nodeSelector: 3 | kubernetes.io/arch: amd64 4 | parser: 5 | nodeSelector: 6 | kubernetes.io/arch: amd64 7 | ui: 8 | nodeSelector: 9 | kubernetes.io/arch: amd64 -------------------------------------------------------------------------------- /kubevious/overrides/overrides-parser-api-skip.yaml: -------------------------------------------------------------------------------- 1 | kubevious: 2 | api: 3 | skipEvents: true 4 | skipSecrets: true 5 | skipped: 6 | - discovery.k8s.io/v1:EndpointSlice 7 | - apps/v1:ControllerRevision 8 | - v1:Service -------------------------------------------------------------------------------- /kubevious/overrides/overrides-skip-role-binding.yaml: -------------------------------------------------------------------------------- 1 | parser: 2 | serviceAccount: 3 | skipRoleBinding: true 4 | -------------------------------------------------------------------------------- /kubevious/overrides/overrides-v8-memory.yaml: -------------------------------------------------------------------------------- 1 | parser: 2 | v8MaxOldSpace: 2048 3 | collector: 4 | v8MaxOldSpace: 4096 -------------------------------------------------------------------------------- /kubevious/overrides/overrides.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/kubevious/overrides/overrides.yaml -------------------------------------------------------------------------------- /kubevious/public-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will install Kubevious now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | helm repo add kubevious https://helm.kubevious.io 21 | 22 | helm repo update 23 | 24 | kubectl create namespace kubevious 25 | 26 | # --debug 27 | helm upgrade --atomic -i \ 28 | --version 0.8.15 \ 29 | -n kubevious \ 30 | --set worldvious.opt_out_all=save \ 31 | kubevious kubevious/kubevious -------------------------------------------------------------------------------- /kubevious/setup-binary-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | source ${MY_DIR}/../scripts/service-version-helper.sh 6 | 7 | cd $MY_DIR/chart 8 | 9 | processBinary "ui" 10 | processBinary "backend" 11 | processBinary "collector" 12 | processBinary "guard" 13 | processBinary "parser" 14 | 15 | -------------------------------------------------------------------------------- /kubevious/template-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd ${MY_DIR} 6 | 7 | OUTPUT_BASE_DIR=${MY_DIR}/output 8 | rm -rf ${OUTPUT_BASE_DIR} 9 | 10 | OVERRIDES_DIR=${MY_DIR}/overrides 11 | 12 | NAMESPACE=kubevious 13 | 14 | for f in ${OVERRIDES_DIR}/*.yaml; do 15 | echo "OVERRIDE >>> $f"; 16 | NAME=$(basename -s .yaml $f) 17 | echo " | $NAME"; 18 | 19 | OUTPUT_DIR=${OUTPUT_BASE_DIR}/${NAME} 20 | 21 | helm template kubevious ./chart --debug \ 22 | -n ${NAMESPACE} \ 23 | -f $f \ 24 | --output-dir ${OUTPUT_DIR} 25 | 26 | EXITCODE=$? 27 | if [ $EXITCODE -ne 0 ]; then 28 | echo "ERROR templating overrides: $f"; 29 | exit 1; 30 | fi 31 | done 32 | -------------------------------------------------------------------------------- /kubevious/template-custom-name.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/custom-name 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-custom-name.yaml \ 13 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-debug.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/debug 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart \ 11 | -n kubevious \ 12 | -f overrides/overrides-v8-memory.yaml \ 13 | --version 0.8.15 \ 14 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-demo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/demo 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-demo.yaml \ 13 | --kube-version "1.20.15" \ 14 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-external-mysql.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/external-mysql 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-external-mysql.yaml \ 13 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-ingress.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/ingress 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-ingress.yaml \ 13 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-other-version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/other 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | docker run -ti --rm -v $(pwd):/apps \ 11 | -v ~/.kube:/root/.kube \ 12 | -v ~/.helm:/root/.helm alpine/helm:3.1.0 \ 13 | template kubevious /apps/chart --debug \ 14 | -n kubevious \ 15 | -f /apps/overrides/overrides.yaml \ 16 | --output-dir /apps/${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-parser-api-skip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/parser-api-skip 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-parser-api-skip.yaml \ 13 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template-skip-role.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/skip-role 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | -f overrides/overrides-skip-role-binding.yaml \ 13 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/default 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template kubevious ./chart --debug \ 11 | -n kubevious \ 12 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /kubevious/validate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | echo "RUNNIG HELM LINT..." 8 | helm lint chart/ 9 | 10 | echo "RUNNIG HELM LINT with DEPLOY IMAGE..." 11 | docker run -ti --rm -v $(pwd):/apps kubevious/aws_cicd_deployer helm lint /apps/chart 12 | 13 | echo "RUNNIG HELM VERIFY..." 14 | helm verify chart/ 15 | 16 | -------------------------------------------------------------------------------- /repo-run-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | echo "Helm Repo: http://localhost:5678" 8 | http-server -p 5678 charts/ -------------------------------------------------------------------------------- /scripts/service-version-helper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | fetchBinaryVersion () { 4 | local REPO_NAME=${1} 5 | echo "fetchBinaryVersion REPO_NAME: ${REPO_NAME}" 6 | local GIT_PATH="https://raw.githubusercontent.com/kubevious/${REPO_NAME}/master/version.sh" 7 | source /dev/stdin <<< "$(curl -s ${GIT_PATH})" 8 | echo "FETCHED ${REPO_NAME} VERSION: ${PRODUCT_VERSION}" 9 | } 10 | 11 | processBinary () { 12 | local REPO_NAME=${1} 13 | local VALUE_NAME=${2} 14 | if [[ -z "$VALUE_NAME" ]]; then 15 | VALUE_NAME="${REPO_NAME}" 16 | fi 17 | echo "[processBinary] REPO_NAME=${REPO_NAME}" 18 | echo "[processBinary] VALUE_NAME=${VALUE_NAME}" 19 | 20 | fetchBinaryVersion ${REPO_NAME} 21 | echo "${REPO_NAME} VERSION: ${PRODUCT_VERSION}" 22 | 23 | yq ".${VALUE_NAME}.image.tag = \"${PRODUCT_VERSION}\"" -i values.yaml 24 | } 25 | -------------------------------------------------------------------------------- /workload-operator/chart/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /workload-operator/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: workload-operator 3 | description: A Helm chart for Kubevious Workload Operator 4 | type: application 5 | keywords: 6 | - kubernetes workload 7 | icon: https://kubevious.io/img/logo.png 8 | version: 0.0.3 9 | appVersion: 0.0.3 10 | -------------------------------------------------------------------------------- /workload-operator/chart/templates/01-workload-operator/_helpers.tpl: -------------------------------------------------------------------------------- 1 | 2 | {{- define "workload-operator.fullname" -}} 3 | {{ include "chart.fullname" . }} 4 | {{- end }} 5 | 6 | 7 | {{/* 8 | Common labels 9 | */}} 10 | {{- define "workload-operator.labels" -}} 11 | {{- include "chart.labels" . }} 12 | app.kubernetes.io/component: workload-operator 13 | {{- end }} 14 | 15 | 16 | {{/* 17 | Match labels 18 | */}} 19 | {{- define "workload-operator.match-labels" -}} 20 | {{- include "chart.match-labels" . }} 21 | app.kubernetes.io/component: workload-operator 22 | {{- end }} 23 | 24 | 25 | {{/* 26 | Create the name of the service account to use 27 | */}} 28 | {{- define "workload-operator.serviceAccountName" -}} 29 | {{- default (include "workload-operator.fullname" .) .Values.operator.serviceAccount.name }} 30 | {{- end }} -------------------------------------------------------------------------------- /workload-operator/chart/templates/01-workload-operator/clusterrole.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.operator.serviceAccount.skipRoleBinding -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRole 5 | metadata: 6 | name: {{ include "workload-operator.fullname" . }} 7 | labels: 8 | {{- include "workload-operator.labels" . | nindent 4 }} 9 | rules: 10 | - apiGroups: 11 | - kubevious.io 12 | resources: 13 | - workloads 14 | - workloadprofiles 15 | verbs: 16 | - get 17 | - list 18 | - watch 19 | - apiGroups: 20 | - apps 21 | resources: 22 | - deployments 23 | verbs: 24 | - "*" 25 | {{- end }} -------------------------------------------------------------------------------- /workload-operator/chart/templates/01-workload-operator/clusterrolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- if not .Values.operator.serviceAccount.skipRoleBinding -}} 2 | --- 3 | apiVersion: rbac.authorization.k8s.io/v1 4 | kind: ClusterRoleBinding 5 | metadata: 6 | name: {{ include "workload-operator.fullname" . }} 7 | labels: 8 | {{- include "workload-operator.labels" . | nindent 4 }} 9 | roleRef: 10 | apiGroup: rbac.authorization.k8s.io 11 | kind: ClusterRole 12 | name: {{ include "workload-operator.fullname" . }} 13 | subjects: 14 | - kind: ServiceAccount 15 | name: {{ include "workload-operator.fullname" . }} 16 | namespace: {{ .Release.Namespace }} 17 | {{- end }} -------------------------------------------------------------------------------- /workload-operator/chart/templates/01-workload-operator/deployment.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: apps/v1 3 | kind: Deployment 4 | metadata: 5 | name: {{ include "workload-operator.fullname" . }} 6 | namespace: {{ .Release.Namespace }} 7 | labels: 8 | {{- include "workload-operator.labels" . | nindent 4 }} 9 | {{- with .Values.operator.serviceAccount.annotations }} 10 | annotations: 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | spec: 14 | replicas: 1 15 | selector: 16 | matchLabels: 17 | {{- include "workload-operator.match-labels" . | nindent 6 }} 18 | template: 19 | metadata: 20 | {{- with .Values.operator.podAnnotations }} 21 | annotations: 22 | {{- toYaml . | nindent 8 }} 23 | {{- end }} 24 | labels: 25 | {{- include "workload-operator.labels" . | nindent 8 }} 26 | spec: 27 | {{- with .Values.operator.imagePullSecrets }} 28 | imagePullSecrets: 29 | {{- toYaml . | nindent 8 }} 30 | {{- end }} 31 | serviceAccountName: {{ include "workload-operator.serviceAccountName" . }} 32 | securityContext: 33 | {{- toYaml .Values.operator.podSecurityContext | nindent 8 }} 34 | containers: 35 | - name: {{ .Chart.Name }} 36 | securityContext: 37 | {{- toYaml .Values.operator.securityContext | nindent 12 }} 38 | image: "{{ .Values.operator.image.repository }}:{{ .Values.operator.image.tag }}" 39 | imagePullPolicy: {{ .Values.operator.image.pullPolicy }} 40 | env: 41 | - name: NODE_ENV 42 | value: "production" 43 | - name: LOG_LEVEL 44 | value: "{{ .Values.operator.log.level }}" 45 | - name: SERVER_PORT 46 | value: "4000" 47 | {{- if .Values.operator.v8MaxOldSpace }} 48 | - name: NODE_OPTIONS 49 | value: "--max-old-space-size={{ .Values.operator.v8MaxOldSpace }}" 50 | {{- end }} 51 | resources: 52 | {{- toYaml .Values.operator.resources | nindent 12 }} 53 | {{- with .Values.operator.nodeSelector }} 54 | nodeSelector: 55 | {{- toYaml . | nindent 8 }} 56 | {{- end }} 57 | {{- with .Values.operator.affinity }} 58 | affinity: 59 | {{- toYaml . | nindent 8 }} 60 | {{- end }} 61 | {{- with .Values.operator.tolerations }} 62 | tolerations: 63 | {{- toYaml . | nindent 8 }} 64 | {{- end }} 65 | -------------------------------------------------------------------------------- /workload-operator/chart/templates/01-workload-operator/serviceaccount.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.operator.serviceAccount.create -}} 2 | --- 3 | apiVersion: v1 4 | kind: ServiceAccount 5 | metadata: 6 | name: {{ include "workload-operator.serviceAccountName" . }} 7 | namespace: {{ .Release.Namespace }} 8 | labels: 9 | {{- include "workload-operator.labels" . | nindent 4 }} 10 | {{- with .Values.operator.serviceAccount.annotations }} 11 | annotations: 12 | {{- toYaml . | nindent 4 }} 13 | {{- end }} 14 | {{- end }} 15 | -------------------------------------------------------------------------------- /workload-operator/chart/templates/NOTES.txt: -------------------------------------------------------------------------------- 1 | NKXW 2 | WXx:,;oKW 3 | Nk;.....,oKW 4 | No'.......,oKW 5 | Nkc'.......,o0W 6 | WKxkNNkc'.......,oKW 7 | Kc.'ckNNkc'.......,oKW 8 | WWWNNNNWW Nk;...'ckNNkc'.......cK 9 | WX0kdocc:::::clodk0NW NOc'......'ckNNkc'...'cON 10 | N0dc;'...............:ONNOc'..........'ckNNkl:ckN 11 | WKx:'.................'c0WKl'...........,,;oX WNW 12 | WKd;.....................;d0X0d;........;d0KXW 13 | Nk:.........................'ckXKx;....;xXW 14 | Xd,............................':kXKo,:xXW 15 | Xo'...............................'l0NKXNXW 16 | Wd'..................................;kXOc:O 17 | Nkooooooooooooooooooooooooooooooooooooxkdod0W 18 | WNK0000000000000000000000000000000000KK0000KKK0000KKXW 19 | Kl,''''''''''''''''''''''''''''''''''''''''''''''''';xW 20 | NkdoooooooooooooooooooooooooooooooooooooooooooooooooxKW 21 | WNKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKNW 22 | Nd,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,dN 23 | Nl....................''''....................oN 24 | Nl................';ok000Oko;.................oN 25 | Nl...............'oXWKkxxkKWXo'...............oN 26 | Nl...............lXWO;....;kWXl...............oN 27 | Nl..............'dWWd'.....lNWd'.............'oN 28 | WKOkkkkkkkkkkkkkOXWWKOkkkkkKW XOOOOOOOOOOOOOOOKW 29 | 30 | Kubevious Workload Operator v{{- .Chart.Version }} installed! 31 | 32 | Now you can try applying the following manifest below: 33 | 34 | --- 35 | apiVersion: kubevious.io/v1alpha1 36 | kind: Workload 37 | metadata: 38 | name: nginx 39 | spec: 40 | replicas: 10 41 | selector: 42 | matchLabels: 43 | app: nginx 44 | template: 45 | metadata: 46 | labels: 47 | app: nginx 48 | spec: 49 | containers: 50 | - name: nginx 51 | image: nginx 52 | schedule: 53 | - name: reserved 54 | replicas: 20% 55 | nodeSelector: 56 | nodetype: ON_DEMAND 57 | - name: spot 58 | nodeSelector: 59 | nodetype: SPOT 60 | 61 | 62 | Learn more about Workload Operator here: 63 | https://github.com/kubevious/workload-operator -------------------------------------------------------------------------------- /workload-operator/chart/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/* 2 | Expand the name of the chart. 3 | */}} 4 | {{- define "chart.name" -}} 5 | {{- default .Chart.Name .Values.nameOverride | trunc 40 | trimSuffix "-" }} 6 | {{- end }} 7 | 8 | {{/* 9 | Create a default fully qualified app name. 10 | */}} 11 | {{- define "chart.fullname" -}} 12 | {{- if .Values.fullnameOverride }} 13 | {{- .Values.fullnameOverride | trunc 50 | trimSuffix "-" }} 14 | {{- else }} 15 | {{- $name := default .Chart.Name .Values.nameOverride }} 16 | {{- if contains $name .Release.Name }} 17 | {{- .Release.Name | trunc 50 | trimSuffix "-" }} 18 | {{- else }} 19 | {{- printf "%s-%s" .Release.Name $name | trunc 50 | trimSuffix "-" }} 20 | {{- end }} 21 | {{- end }} 22 | {{- end }} 23 | 24 | 25 | {{/* 26 | Common labels 27 | */}} 28 | {{- define "chart.labels" -}} 29 | app.kubernetes.io/name: {{ include "chart.name" . }} 30 | app.kubernetes.io/instance: {{ .Release.Name }} 31 | {{- if .Chart.AppVersion }} 32 | app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} 33 | {{- end }} 34 | app.kubernetes.io/managed-by: {{ .Release.Service }} 35 | helm.sh/chart: {{ include "chart.name" . }} 36 | {{- end }} 37 | 38 | {{/* 39 | Match labels 40 | */}} 41 | {{- define "chart.match-labels" -}} 42 | app.kubernetes.io/name: {{ include "chart.name" . }} 43 | app.kubernetes.io/instance: {{ .Release.Name }} 44 | app.kubernetes.io/managed-by: {{ .Release.Service }} 45 | {{- end }} 46 | 47 | -------------------------------------------------------------------------------- /workload-operator/chart/values.yaml: -------------------------------------------------------------------------------- 1 | # Default values for Kubevious Workload Operator. 2 | # This is a YAML-formatted file. 3 | # Declare variables to be passed into your templates. 4 | nameOverride: "" 5 | fullnameOverride: "" 6 | ### 7 | ### OPERATOR 8 | operator: 9 | image: 10 | repository: kubevious/workload-operator 11 | tag: 1.0.2 12 | pullPolicy: IfNotPresent 13 | imagePullSecrets: [] 14 | podAnnotations: {} 15 | podSecurityContext: 16 | runAsUser: 1000 17 | runAsGroup: 3000 18 | fsGroup: 2000 19 | securityContext: 20 | allowPrivilegeEscalation: false 21 | serviceAccount: 22 | # Specifies whether a service account should be created 23 | create: true 24 | # Annotations to add to the service account 25 | annotations: {} 26 | # The name of the service account to use. 27 | # If not set and create is true, a name is generated using the fullname template 28 | name: "" 29 | resources: 30 | requests: 31 | cpu: 100m 32 | memory: 200Mi 33 | # limits: 34 | # cpu: 500m 35 | # memory: 1Gi 36 | v8MaxOldSpace: null 37 | nodeSelector: {} 38 | tolerations: [] 39 | affinity: {} 40 | log: 41 | level: info 42 | -------------------------------------------------------------------------------- /workload-operator/dev-install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will install Workload Operator now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | PRODUCT_NAME=workload-operator 21 | 22 | VERSION=0.0.1 23 | 24 | yq ".version = \"${VERSION}\"" -i chart/Chart.yaml 25 | yq ".appVersion = \"${VERSION}\"" -i chart/Chart.yaml 26 | 27 | echo "**********" 28 | cat chart/Chart.yaml 29 | echo "**********" 30 | 31 | rm -f "${PRODUCT_NAME}-*.tgz" 32 | 33 | helm package chart/ --version ${VERSION} 34 | 35 | # Create namespace 36 | kubectl create namespace ${PRODUCT_NAME} 37 | 38 | # --debug 39 | helm upgrade -i \ 40 | --atomic \ 41 | -n ${PRODUCT_NAME} \ 42 | -f overrides/default.yaml \ 43 | ${PRODUCT_NAME} ./${PRODUCT_NAME}-${VERSION}.tgz -------------------------------------------------------------------------------- /workload-operator/dev-uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | CURRENT_CONTEXT=$(kubectl config current-context) 8 | echo "Current context is: ${CURRENT_CONTEXT}" 9 | echo "Will UNINSTALL Workload Operator now" 10 | read -r -p "Do you want to continue?(y/N) " response 11 | case "$response" in 12 | [yY][eE][sS]|[yY]) 13 | ;; 14 | *) 15 | echo "Aborted" 16 | exit 1; 17 | ;; 18 | esac 19 | 20 | PRODUCT_NAME=workload-operator 21 | 22 | helm uninstall ${PRODUCT_NAME} -n ${PRODUCT_NAME} 23 | 24 | kubectl delete ns ${PRODUCT_NAME} -------------------------------------------------------------------------------- /workload-operator/overrides/default.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/workload-operator/overrides/default.yaml -------------------------------------------------------------------------------- /workload-operator/overrides/simple.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kubevious/helm/cc5b839b02002b33210630f4de6ec4393c04c211/workload-operator/overrides/simple.yaml -------------------------------------------------------------------------------- /workload-operator/setup-binary-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | source ${MY_DIR}/../scripts/service-version-helper.sh 6 | 7 | cd $MY_DIR/chart 8 | 9 | processBinary "workload-operator" "operator" 10 | 11 | -------------------------------------------------------------------------------- /workload-operator/template-all.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd ${MY_DIR} 6 | 7 | OUTPUT_BASE_DIR=${MY_DIR}/output 8 | rm -rf ${OUTPUT_BASE_DIR} 9 | 10 | OVERRIDES_DIR=${MY_DIR}/overrides 11 | 12 | NAMESPACE=workload-operator 13 | 14 | for f in ${OVERRIDES_DIR}/*.yaml; do 15 | echo "OVERRIDE >>> $f"; 16 | NAME=$(basename -s .yaml $f) 17 | echo " | $NAME"; 18 | 19 | OUTPUT_DIR=${OUTPUT_BASE_DIR}/${NAME} 20 | 21 | helm template workload-operator ./chart --debug \ 22 | -n ${NAMESPACE} \ 23 | -f $f \ 24 | --output-dir ${OUTPUT_DIR} 25 | 26 | EXITCODE=$? 27 | if [ $EXITCODE -ne 0 ]; then 28 | echo "ERROR templating overrides: $f"; 29 | exit 1; 30 | fi 31 | done 32 | -------------------------------------------------------------------------------- /workload-operator/template.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/default 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template workload-operator ./chart --debug \ 11 | -n workload-operator \ 12 | --output-dir ${OUTPUT_DIR} -------------------------------------------------------------------------------- /workload-operator/validate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MY_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")" 3 | MY_DIR="$(dirname $MY_PATH)" 4 | 5 | cd $MY_DIR 6 | 7 | OUTPUT_DIR=output/default 8 | rm -rf ${OUTPUT_DIR} 9 | 10 | helm template workload-operator ./chart --debug \ 11 | -n workload-operator \ 12 | --output-dir ${OUTPUT_DIR} 13 | 14 | kubevious guard ${OUTPUT_DIR} --------------------------------------------------------------------------------