ページの先頭行へ戻る
Enterprise Service Development Platform V1.2.0 入門ガイド
FUJITSU Software

3.8 CIジョブの追加

CIジョブの追加

「.gitlab-ci.yml」にジョブを定義することで、開発者が任意のジョブを追加することができます。

例えば、「.gitlab-ci.yml」に、「Container Managementへの配備ジョブ」を追加して、「Dockerイメージのビルドジョブ」でビルドしたイメージをContainer Management上でコンテナとして動作させることができます。

実際に配備ジョブを作成する場合は、Deployment・Serviceの作成、及び、kubectlコマンドによる配備がジョブ内で行えるように、「.gitlab-ci.yml」内にスクリプトを記述して下さい。

なお、KubernetesとCIパイプラインを連携するために、以下の手順を実施する必要があります。
  1. Ansibleサーバーに存在する以下のconfigファイルをコピーして、リポジトリのルートに追加してください。Ansibleサーバーへのログイン方法は「操作ガイド」を参照してください。
    /home/k5user/.kube/config

    注)マルチクラウド仕様では、AnsibleサーバーをKubernetes masterサーバーに読み替えてください。

  2. .gitlab-ci.ymlに以下を追加してください。
    variables:
      KUBECONFIG: config

配備ジョブ内でGitLab Container Registryのイメージを使用する場合、CIパイプラインからGitLab Container Registry内のイメージを参照できるようにするために、「操作ガイド」-「Podの作成(起動)」-「GitLab Container RegistryからDockerイメージをプルする方法による配備」の手順を実施してください。

kubectlコマンドが含まれていないDockerイメージを使用して配備ジョブを実行する場合、配備ジョブ内でkubectlコマンドをインストールする必要があります。配備ジョブの設定例は以下の通りです。
 # ステージの追加
stages:
  - build
  - test
  - docker_build
  - kube_deploy

# ジョブの追加
kube_deploy:
  stage: kube_deploy
  image: centos:centos7.4.1708
  before_script:
    - |-
      cat <<EOF > /etc/yum.repos.d/kubernetes.repo
      [kubernetes]
      name=Kubernetes
      baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
      enabled=1
      gpgcheck=1
      repo_gpgcheck=1
      gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
      EOF
    - yum install -y kubectl-<本製品で使用されているkubectlのバージョン>.x86_64
  script:
    - kubectl apply -f ./deployment.yaml
注)本製品で使用されているkubectlのバージョンは、Ansibleサーバーで以下のコマンドを実行すると確認できます。
sudo yum list installed | grep kubectl
コマンドの実行例は以下のとおりです。以下の実行例の 1.10.3-0 の部分がバージョンです。
kubectl.x86_64                             1.10.3-0                    installed