Giter VIP home page Giter VIP logo

infrastructure's Introduction

Infrastructure

This project contains all necessary dockerfile and yaml files that used provision the mindspore community:

├── development #contains all developing files (helm charts, init scripts, dockerfile)
└── production #contains the final yaml file that will be used in our production environment.   

Components

BASIC: ArgoCD Server

All of the components are deployed via ArgoCD,

Website: https://dev-deploy.mindspore.cn.

NOTE: The ArgoCD will use the pod name as default admin password, in order to keep the consistency, we patched the password via command:

kubectl patch secret -n argocd argocd-secret  -p '{"stringData": { "admin.password": "'$(htpasswd -bnBC 10 "" realpassword | tr -d ':\n')'"}}'

BASIC: Vault Server

Vault server used to hold all sensitive secrets that used in the infrastructure. In order to enable tls support, the certificate secrets vault-secret is required.

kubectl create secret generic vault-secret --from-file=./server.key  --from-file=./server.crt -n vault

Website: http://dev-secrets.mindspore.cn.

BASIC: Secrets Manager

It's based on secret manager that holds and converts all vault secrets. Secrets manager will sync specified secrets from vault server to k8s secret resource according to the CRD resource, it use AppRole to retrieve all secrets, therefore we need create appropriate approle on vault manually before deploying.

  1. enable vault approle
vault auth enable approle
  1. create policies for secrets manager
cat > mindspore-secrets-manager.hcl  <<EOF
path "secret/data/mindspore/*" {
  capabilities = ["read"]
}
EOF
cat mindspore-secrets-manager.hcl | vault policy write mindspore-secrets-manager -
  1. create vault role
vault write auth/approle/role/mindspore-secret-manager policies=mindspore-secret-manager secret_id_num_uses=0 secret_id_ttl=0
  1. get role id and secret id
vault read --field role_id auth/approle/role/mindspore-secrets-manager/role-id
vault write --field secret_id -force auth/approle/role/mindspore-secrets-manager/secret-id
  1. create secret for secrets manager
kubectl create secret generic vault-approle-secret --from-literal role_id=<role-id> --from-literal secret_id=<secret-id>

Mail System

It's based on the Docker mailman, but all components are upgraded into k8s version.

Website: https://mailweb.mindspore.cn.

MeetingBot System

It's used to record all meeting minutes happened on #mindspore-discuss and #mindspore-sc, minutes can be found at here

Jenkins System

It's based on Jenkins Helm chart within all slave nodes are configured via StatefulSets and will register them self when starting up.

Website: http://build.mindspore.cn for more detail.

Official Website

It's mindspore's official website, please visit https://wwww.mindspore.cn

CI Bot System

It's based on kubernetess' prow system, but some features are trimmed.

Repo System

There are two containers inside, one is nginx with fancy index module and the other is rsync server, please visit official repo website

Clusters

Now all mindspore components are deployed into two HuaweiCloud k8s clusters[CCE]. They are:

  1. CCE on cn-north-1 which are all x86 based nodes

  2. CCE on cn-north-4 which are all arm based nodes

infrastructure's People

Contributors

tommylike avatar yikun avatar zengchen1024 avatar xsmq avatar leonwanghui avatar mindspore-bot avatar zhongjun2 avatar vectorsl avatar ljllujiale avatar lvyufeng avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.