LoginSignup
0
2

More than 1 year has passed since last update.

Red Hat OpenShift LocalでArgoCDを使ってデプロイを試してみる

Last updated at Posted at 2023-01-12

はじめに

今回は、Red Hat OpenShift LocalにArgoCDを導入してデプロイをやってみたいと思います。

前提環境

今回使用した手元のRed Hat OpenShift Localの環境はこちらです。

  • MacBook Pro (13-inch, 2020)
  • MacOS Monterey 12.6
  • Red Hat OpenShift Localのバージョン 2.12.0

GitHubなどのGitリポジトリを別途用意してある前提です。

準備

OpenShiftでArgoCDを使う場合は、OpenShift GitOps Operatorを導入するというのが有力案ですが、特定のバージョンのArgoCDを利用したいというケースもあるかと思います。
ということで、今回はArgoCDを導入していきます。

ArgoCDのオンラインマニュアルを参照して導入します。
名前空間 argocd を作成して、そこへArgoCDを導入します。

$ oc new-project argocd
$ oc apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

しばらく時間がかかりますが、名前空間argocdのPodが全て起動していることを確認します。

$ oc get pods -n argocd

Argocd のコンソールへログインできるようにサービス argocd-server に対して route を作成します。
以下のyamlファイルを用意して apply します。

yaml route-argocd-route.yaml
kind: Route
apiVersion: route.openshift.io/v1
metadata:
  name: argocd-route
  namespace: argocd
spec:
  to:
    kind: Service
    name: argocd-server
    weight: 100
  port:
    targetPort: https
  tls:
    termination: passthrough
    insecureEdgeTerminationPolicy: None
  wildcardPolicy: None
$ oc apply -f route-argocd-route.yaml -n argocd

これで、Argocd のコンソールを表示できるようになります。![argocd-console-app.png]
argocd-console.png

adminのパスワードは、argocdプロジェクトのシークレット argocd-initial-admin-secret で参照できます。
無事にログインできると次の画面になります。
ArgocdコンソールApplication

次にクライアントツールも用意します。

$ brew install argocd

クライアントツールでもログインできることを確かめておきます。

$ argocd login --insecure argocd-route-argocd.apps-crc.testing

アプリケーションとカスタムリソース定義

アプリケーションは、hello-openshiftを使います。
マニフェストとして以下のYAMLファイルを用意しました。

yaml deployment.yml
kind: Deployment
apiVersion: apps/v1
metadata:
  name: hello
  labels:
    app: hello
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
        deployment: hello
    spec:
      containers:
        - name: hello
          image: "openshift/hello-openshift:latest"
yaml service.yml
kind: Service
apiVersion: v1
metadata:
  name: hello
  labels:
    app: hello
spec:
  ports:
    - name: 8080-tcp
      protocol: TCP
      port: 8080
      targetPort: 8080
  selector:
    app: hello
    deployment: hello
yaml route.yml
kind: Route
apiVersion: route.openshift.io/v1
metadata:
  name: hello
  labels:
    app: hello
spec:
  to:
    kind: Service
    name: hello
    weight: 100
  port:
    targetPort: 8080-tcp
  wildcardPolicy: None

マニュフェストを置いたリポジトリは以下のようにしました。

├── Dockerfile
├── README.md
├── manifest
│   └── dev-1
│       ├── deployment.yml
│       ├── route.yml
│       └── service.yml
├── requirements.txt
└── src
    └── main.py

次に ArgoCD で必要なリソース定義は以下の通りです。

  • AppProject: リポジトリとクラスタへのアクセス制限
  • Repository: マニフェストのリポジトリへのパスと接続情報を保持
  • Application: AppProjectの下でデプロイするプロジェクト毎に作成する。repoのマニフェストのパスとプロジェクトを紐付けする

いずれも ArgoCD のコンソール画面やYAMLファイルをapplyすることで設定できます。

ArgoCDのリソース定義

まずAppProjectを設定します。

ArgoCDのコンソール画面から、Settings -> Projectsを選択します。
そして、+ NEW PROJECTボタンを押します。

create-appproject.png

プロジェクト名(今回はproject-hello)を入力して、作成ボタンを押します。

作成されたプロジェクトのSOURCE REPOSITORIESを編集して、ソースコードのリポジトリのパスを入力します。次に、DESTINATIONSを編集して、クラスタを指定します。
create-appproject-detail.png

次にRepositoryを設定します。

ArgoCDのコンソール画面から、Settings -> Repositoriesを選択します。
そして、+ CONNECT REPOボタンを押します。

先ほどのProjectを選択して、RepositoryのURL、sshキーを設定して CONNECT ボタンを押します。
create-repository.png

Successfulのステータスが表示されたら成功です。

最後にApplicationを設定します。

ArgoCDのコンソール画面から、Applications を選択します。
そして、+ NEW APPボタンを押します。

Application Nameを入力して、Projectは上で作成したProjectを入力します。
application-general.png

画面をスクロールして、SOURCEの欄にリポジトリとマニフェストが入ったパスを指定します。
application-source.png

画面をスクロールして、DESTINATION欄にCluster URLとNamespace名を入力します。
application-destination.png

一番上の CREATE ボタンを押します。
するとアプリケーションが作成されます。
初めはmissingのステータスですが、SYNCボタンを押すと同期が取られて、デプロイが実行されます。:smile:
status-sync.png

以上

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2