Middle
როგორ შევინახოთ Helm-ის შაბლონები სწორად GitLab-ში?
sobes.tech AI
პასუხი AI-სგან
GitLab-এ Helm টেমপ্লেটগুলি আলাদা Git রিপোজিটরিতে সংরক্ষণ করার পরামর্শ দেওয়া হয়। এটি তাদের সংস্করণ নিয়ন্ত্রণ, CI/CD পাইপলাইন প্রয়োগ, লিন্টিং এবং প্যাকেজিং, এবং অ্যাক্সেস পরিচালনা করার সুবিধা দেয়।
রিপোজিটরির কাঠামো এইরকম দেখাতে পারে:
my-helm-charts/
├── Chart.yaml // চার্টের মেটাডেটা
├── values.yaml // ডিফল্ট মানসমূহ
├── templates/ // Kubernetes ম্যানিফেস্টের টেমপ্লেট
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
└── charts/ // নির্ভরশীল চার্ট (অপশনাল)
└── redis/
└── ...
অটোমেশন জন্য আপনি GitLab CI/CD ব্যবহার করতে পারেন। উদাহরণ .gitlab-ci.yml:
stages:
- lint
- package
- deploy # অপশনাল
variables:
HELM_VERSION: "3.x.x" # Helm এর আপডেটেড ভার্সন
HELM_REGISTRY: "my-gitlab-registry" # আপনার রেজিস্ট্রারের নাম
before_script:
- curl https://get.helm.sh/helm-v${HELM_VERSION}-linux-amd64.tar.gz | tar xz
- mv linux-amd64/helm /usr/local/bin/helm
- helm version
lint_chart:
stage: lint
image: docker.io/alpine/helm:latest # Helm ইমেজ ব্যবহার করুন
script:
- helm lint ./my-chart-directory # আপনার চার্টের ডিরেক্টরির পথ
package_chart:
stage: package
image: docker.io/alpine/helm:latest
script:
- helm package ./my-chart-directory # .tgz আর্কাইভ তৈরি
artifacts:
paths:
- ./*.tgz # প্যাকেজকৃত চার্ট সংরক্ষণ
publish_chart:
stage: package
image: docker.io/alpine/helm:latest
script:
# Helm রেজিস্ট্রার সেটআপ করুন GitLab-এ
- HE=helm-registry.$CI_SERVER_HOST helm registry login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
- helm push my-chart-*.tgz oci://$CI_REGISTRY/$CI_PROJECT_NAMESPACE/$HELM_REGISTRY # OCI-তে পুশ
variables:
# নিশ্চিত করুন যে CI_REGISTRY_USER এবং CI_REGISTRY_PASSWORD পরিবর্তনশীলগুলি সেট করা হয়েছে
GIT_STRATEGY: none # রিপোজিটরি পুনরায় ক্লোন করবেন না
# ডিপ্লয়মেন্ট ধাপের উদাহরণ (অপশনাল)
# deploy_chart:
# stage: deploy
# image: alpine/helm:latest
# script:
# # নির্ভরশীলতা সেটআপ (যেমন kubectl, ক্লাউড প্রোভাইডার)
# # helm upgrade --install my-release oci://$CI_REGISTRY/$CI_PROJECT_NAMESPACE/$HELM_REGISTRY/my-chart --version latest -n my-namespace -f values.yaml
# environment: production # বা অন্য পরিবেশ
# when: manual # বা on_branch ইত্যাদি
প্যাকেজকৃত চার্ট (.tgz) সংরক্ষণের জন্য:
- GitLab Package Registry (Helm OCI charts): সুপারিশকৃত পদ্ধতি। এটি সরাসরি OCI ফরম্যাটে চার্ট সংরক্ষণ করতে দেয়।
- সাধারণ প্যাকেজ: যদি Helm OCI সমর্থিত না হয় বা অন্য কারণে।
- ব্যক্তিগত স্ট্যাটিক ফাইল স্টোরেজ: যেমন S3-সঙ্গত স্টোরেজ বা GitLab Pages।
Helm OCI রেজিস্টার ব্যবহার করলে, এটিকে Helm রেপোজিটরি হিসেবে যোগ করতে পারেন:
helm registry login registry.gitlab.com
helm repo add my-gitlab-charts oci://registry.gitlab.com/<your-namespace>/<your-helm-chart-project>
<your-namespace> এবং <your-helm-chart-project> যথাযথ মানে প্রতিস্থাপন করুন।