私はAuto DevOps統合を使用していませんが、実際のアプローチを試して一般化することができます。
k8sクラスタにティラーがインストールされている場合は、アプリケーション用のヘルムチャートを作成するのが最適です。
:舵によって管理
https://github.com/kubernetes/helm/blob/master/docs/charts.md(チャートを管理するために兜を使用して確認してください)
基本deployment.yaml次のようになります。あなたはすでに、ここではそれを行う方法についてのAAのチュートリアルがあることを行っていない場合は
image:
repository: registry.gitlab.com/my-proj
tag: latest
サンプル.gitlab-ci.ymlファイルは次のようになります:
.Valuesファイル内
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "name" . }}
labels:
app: {{ template "name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicaCount }}
template:
metadata:
labels:
app: {{ template "name" . }}
release: {{ .Release.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
と対応する値
ビルドフェーズでドッカーイメージが公開され、展開フェーズでは、そのイメージをregistry.gitlab.com/my-proj
からダウンロードしようとするヘルムチャートがインストールされます。
私は、k8sクラスタがそのレジストリにアクセスできるとします。レジストリがプライベートである場合は、(それが自動的に作成されていない限り)認証トークンを保持しているkubernetes秘密を作成する必要があります。 https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
使用しているデフォルトのパイプラインの画像(image: docker:git
)舵を持っていませんCLIがインストールされているので、helmとkubectlがインストールされているイメージでイメージを変更する必要があります。 gitlabチュートリアル 、彼らは各実行でインストールをやっているように見える: https://gitlab.com/gitlab-org/gitlab-ci-yml/blob/master/Auto-DevOps.gitlab-ci.yml(function install_dependencies()
をご確認ください)
これは、既知の粗いスポットですhttps://gitlab.com/help/topics/autodevops/index.md# private-project-support –
コンテナに未だ状態があり、ポッドにCrashLoopBackOff がある場合は、あなた自身のDockerfileを使用している可能性があります。ヘルムチャートはポート5000に公開することを期待しています。https://docs.gitlab .com/ee/topics/autodevops /#auto-build –