Skip to content
kubernetes files for Django + Vue Application
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
base
dockerfile
local
prod_config
prod_discovery
prod_workload
.gitignore
README.md
django-migration-job.yaml
docker-build.sh
gen_local_yaml.sh
gen_prod_yaml.sh

README.md

環境構築方法

  1. minikubeをインストールする
  2. sh gen_local_yaml.shを実行し、ローカル用のワークロード定義ファイルを生成する
  3. /etc/hostsに以下を実行してでた内容を追記し、django.vue.comをminikubeのipに割り当てます
echo 'django.vue.com\t'$(minikube ip)
  1. ルートディレクトリ下のprod以外のprod_xxxディレクトリを下記のリソース作成順に従ってkubernetes apply -fします
  2. MySQLとレジストリへのログイン情報のSecretリソースをkubernetes apply -fします
  3. localディレクトリをkubernetes apply -fします
kubectl apply -f kubernetes/prod_config
kubectl apply -f kubernetes/prod_discovery
kubectl apply -f kubernetes/prod_workload 
kubectl apply -f kubernetes/local
  1. django-migration-job.yamlをapplyしてデータベースのマイグレーションを行う

プロダクション環境の確認をする場合

  1. prod_workload/django.yamlの冒頭にあるConfigMapのサーバ名を使用するhost名に変更して下さい
server_name  django.vue.com;
  1. /etc/hostsに以下を実行してでた内容を追記し、変更したhost名をminikubeのipに割り当てます
echo '<hostname>\t'$(minikube ip)
  1. ルートディレクトリ下のprod_xxxディレクトリを下記のリソース作成順に従ってkubernetes apply -fする
  2. django-migration-job.yamlをapplyしてデータベースのマイグレーションを行う

ビルドについて

  • ビルドに関してはこのリポジトリを取り込んだ各プロジェクトでリリースタグをつけた時に、CircleCIで検知してビルドする予定
    • そのため、Dockerfileのビルドはする必要ありません

リソースの作成順

リソースの作成は以下の順に行って下さい

  1. Config系リソース
kubectl apply -f prod_config
  1. Discovery系リソース
kubectl apply -f prod_discovery
  1. Workloadリソース
kubectl apply -f prod_workload
kubectl apply -f prod

secretについて

mysql-secret.yamlは別途共有しているもの、値を参考に自身で作成したものprod_config下に入れて使用してください regcredも作成するか、別途共有しているものを使用してください

スクリプトの使い方

gen_local_yaml.sh

$NODE_IPはminikubeを使用しているなら$(minikube ip)

sh gen_local_yaml.sh $NODE_IP

gen_prod_yaml.sh

sh gen_prod_yaml.sh $HOST_NAME $DOCKER_RESISTRY_URL $PROJECT_NAME $BUILD_NUM
  • $HOST_NAME: サービスのドメイン
  • $DOCKER_RESISTRY_URL: Dockerイメージを保存してるリポジトリ
  • $PROJECT_NAME: プロジェクト名(docker-image名)
  • $BUILD_NUM: ビルド番号

docker-build.sh

sh docker-build.sh $DOCKER_RESISTRY_URL $PROJECT_NAME $BUILD_NUM
You can’t perform that action at this time.