test0820v

Young-Kyoo Kim·2025년 8월 20일
0
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

helmCharts:
- name: mysql
  repo: ../../upstream/mysql
  version: 9.4.6
  releaseName: mysql-dev
  namespace: mysql-dev
  valuesFile: values-dev.yaml

resources:
- namespace.yaml

patchesStrategicMerge:
- mysql-dev-patch.yaml

commonLabels:
  environment: dev
  managed-by: argocd
  
  
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: mysql-dev
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://bitbucket.org/your-org/my-application-infra.git
    targetRevision: HEAD
    path: charts/overlays/dev/mysql
    kustomize:
      images:
      - mysql:8.0.35
  destination:
    server: https://kubernetes.default.svc
    namespace: mysql-dev
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
    - CreateNamespace=true
    
 ---
 ---
- name: Deploy Client Binaries
  hosts: all
  become: yes
  vars:
    binary_base_url: "https://bitbucket.org/your-org/my-application-infra/raw/main/binaries"
    target_dir: "/usr/local/bin"
    
  tasks:
  - name: Create target directory
    file:
      path: "{{ target_dir }}"
      state: directory
      mode: '0755'

  - name: Download and install MySQL client
    get_url:
      url: "{{ binary_base_url }}/mysql-client/{{ mysql_client_version }}/{{ ansible_system | lower }}-{{ ansible_architecture }}/mysql-client"
      dest: "{{ target_dir }}/mysql-client"
      mode: '0755'
    when: "'mysql' in required_binaries"

  - name: Download and install Redis CLI
    get_url:
      url: "{{ binary_base_url }}/redis-cli/{{ redis_cli_version }}/{{ ansible_system | lower }}-{{ ansible_architecture }}/redis-cli"
      dest: "{{ target_dir }}/redis-cli"
      mode: '0755'
    when: "'redis' in required_binaries"

  - name: Verify binary installation
    command: "{{ target_dir }}/{{ item }} --version"
    register: binary_versions
    loop: "{{ required_binaries }}"
    failed_when: false
    
  - name: Display installed versions
    debug:
      msg: "{{ item.item }}: {{ item.stdout }}"
    loop: "{{ binary_versions.results }}"
    when: item.rc == 0
    
---    
 # Dev 환경 설정
mysql_client_version: "v8.0.35"
redis_cli_version: "v7.2.3"
required_binaries:
  - mysql-client
  - redis-cli

# 환경별 서버 설정
mysql_servers:
  - mysql-dev-01.internal
  - mysql-dev-02.internal

redis_servers:
  - redis-dev-01.internal
  
  
```sh
#!/bin/bash
set -e

REPO_ROOT=$(git rev-parse --show-toplevel)
CHARTS_DIR="$REPO_ROOT/charts/upstream"

echo "=== Updating Helm Charts ==="

# MySQL 차트 업데이트
echo "Updating MySQL chart..."
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm pull bitnami/mysql --untar --untardir "$CHARTS_DIR"

# Redis 차트 업데이트
echo "Updating Redis chart..."
helm pull bitnami/redis --untar --untardir "$CHARTS_DIR"

# 버전 정보 커밋
git add "$CHARTS_DIR"
git commit -m "Update helm charts: MySQL $(helm show chart bitnami/mysql | grep version | head -1), Redis $(helm show chart bitnami/redis | grep version | head -1)"
git push

echo "=== Helm charts updated successfully ==="

######################
#!/bin/bash
set -e

REPO_ROOT=$(git rev-parse --show-toplevel)
BINARIES_DIR="$REPO_ROOT/binaries"

# MySQL Client 업데이트
update_mysql_client() {
    local version="$1"
    local target_dir="$BINARIES_DIR/mysql-client/$version"
    
    mkdir -p "$target_dir"/{linux-amd64,linux-arm64,windows-amd64}
    
    # 각 아키텍처별 바이너리 다운로드 로직
    # 실제 다운로드 URL은 해당 프로젝트에 맞게 수정 필요
    
    # 심볼릭 링크 업데이트
    ln -sfn "$version" "$BINARIES_DIR/mysql-client/latest"
}

# Redis CLI 업데이트
update_redis_cli() {
    local version="$1"
    local target_dir="$BINARIES_DIR/redis-cli/$version"
    
    mkdir -p "$target_dir"/{linux-amd64,linux-arm64,windows-amd64}
    
    # Redis CLI 다운로드 로직
    
    # 심볼릭 링크 업데이트
    ln -sfn "$version" "$BINARIES_DIR/redis-cli/latest"
}

# 사용법: ./update-binaries.sh mysql v8.0.35
if [ "$1" = "mysql" ]; then
    update_mysql_client "$2"
elif [ "$1" = "redis" ]; then
    update_redis_cli "$2"
else
    echo "Usage: $0 {mysql|redis} <version>"
    exit 1
fi

git add "$BINARIES_DIR"
git commit -m "Update $1 binary to $2"
git push

0개의 댓글