2.4. クラウドでの Dev Spaces のインストール
Red Hat OpenShift Dev Spaces をクラウドでデプロイして実行します。
前提条件
- OpenShift Dev Spaces をデプロイする OpenShift クラスター。
-
dsc: Red Hat OpenShift Dev Spaces のコマンドラインツール。「dsc 管理ツールのインストール」 を参照してください。
2.4.1. クラウドでの OpenShift Dev Spaces のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
dsc ツールを使用してクラウドで OpenShift Dev Spaces Server を起動するには、以下の手順に従ってください。
2.4.2. Microsoft Azure での Dev Spaces のインストールとセットアップ リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure は、Microsoft が管理するデータセンターを通じてアプリケーションとサービスをビルド、テスト、デプロイ、管理するためのクラウドコンピューティングサービスです。
以下の手順に従って、Microsoft Azure に OpenShift Dev Spaces をインストールし、有効化します。
前提条件
-
helm: Kubernetes のパッケージマネージャー。Installing Helm を参照してください。 -
az: Microsoft Azure CLI コマンドラインツール。How to install Microsoft Azure CLI を参照してください。 -
kubelogin: 認証情報プラグイン。How to install kubelogin を参照してください。
2.4.2.1. OpenShift Dev Spaces インストールに向けた Microsoft Azure の準備 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dev Spaces インストールに向けた Microsoft Azure の準備
手順
Microsoft Azure にログインします。
az loginリソースグループを作成します (場所をリスト表示するには、
az account list-locationsコマンドを使用します)。# Resource group name ECLIPSE_CHE_RESOURCE_GROUP=eclipse-che # Azure region AZURE_REGION=centralus az group create --name $ECLIPSE_CHE_RESOURCE_GROUP --location $AZURE_REGIONクラスター管理者グループを作成します。
# Azure Active Directory group name AAD_GROUP_NAME=AKSAdmins az ad group create --display-name $AAD_GROUP_NAME --mail-nickname $AAD_GROUP_NAME現在のユーザーをクラスター管理者グループに追加します。
az ad group member add --group $AAD_GROUP_NAME \ --member-id $(az ad signed-in-user show --query id --output tsv)Microsoft Entra 統合クラスターを作成します。
# Azure Kubernetes Service cluster name AKS_CLUSTER_NAME=eclipse-che az aks create \ --resource-group $ECLIPSE_CHE_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --enable-aad \ --aad-admin-group-object-ids $(az ad group list --query "[?displayName=='$AAD_GROUP_NAME'].id" --output tsv) \ --generate-ssh-keysクラスターにアクセスするためのユーザー認証情報を取得します。
az aks get-credentials \ --resource-group $ECLIPSE_CHE_RESOURCE_GROUP \ --name $AKS_CLUSTER_NAME \ --adminMicrosoft Azure CLI を使用するように
kubeloginを設定します。kubelogin convert-kubeconfig -l azurecliクラスター内の Pod を表示します。
oc get pods --all-namespaces- 検証
実行状態のすべての Pod が表示されます。
2.4.2.2. Microsoft Azure Kubernetes Service への NGINX Ingress Controller のインストール リンクのコピーリンクがクリップボードにコピーされました!
次の手順に従って、NGINX Ingress Controller を Microsoft Azure Kubernetes Service にインストールします。
手順
NGINX Ingress Controller をインストールします。
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx \ --wait \ --create-namespace \ --namespace ingress-nginx \ --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-health-probe-request-path"=/healthz外部 IP を待ちます。正確な外部 IP アドレスが表示される前に、外部 IP の
<pending>ステータスが表示されることに注意してください。oc get services ingress-nginx-controller --namespace ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ingress-nginx-controller LoadBalancer 10.0.65.52 XX.XXX.XX.XXX 80:31104/TCP,443:32552/TCP 13m
2.4.2.3. Microsoft Azure Kubernetes Service への cert-manager のインストール リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure Kubernetes Service に cert-manager をインストールする方法を説明します。
手順
cert-manager をインストールします。
helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager \ --wait \ --create-namespace \ --namespace cert-manager \ --set installCRDs=true
2.4.2.4. Microsoft Azure での DNS の設定 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure で DNS を設定します。作業を開始する前に、ドメインが登録されていることを確認してください。
前提条件
- 登録されたドメイン。
手順
ドメイン名を定義します。
export DOMAIN_NAME=azr.my-ide.cloudDNS ゾーンを作成します。
az network dns zone create \ --resource-group $ECLIPSE_CHE_RESOURCE_GROUP \ --name $DOMAIN_NAMEDNS レコードセットを作成します。
az network dns record-set a add-record \ --resource-group $ECLIPSE_CHE_RESOURCE_GROUP \ --zone-name $DOMAIN_NAME \ --record-set-name "*" \ --ipv4-address $(oc get service -n ingress-nginx ingress-nginx-controller -o=jsonpath='{.status.loadBalancer.ingress[0].ip}')
GoDaddy などのレジストラーを使用する場合は、次の 2 つの DNS レコードをレジストラーに追加し、Ingress Controller の IP アドレスを指すようにする必要があります: * type: A * names: @ and *
+ .追加リソース
2.4.2.5. Microsoft Azure の devspace 向け Let's Encrypt 証明書の作成 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure の OpenShift Dev Spaces 向けに Let's Encrypt 証明書を作成するには、次の手順に従ってください。
手順
サービスプリンシパルを作成します。
CERT_MANAGER_SERVICE_PRINCIPAL_NAME=cert-manager-eclipse-che CERT_MANAGER_SERVICE_PRINCIPAL_APP_ID=$(az ad sp create-for-rbac --name $CERT_MANAGER_SERVICE_PRINCIPAL_NAME --query "appId" --output tsv)DNS ゾーンへのアクセスを許可します。
az role assignment create \ --assignee $CERT_MANAGER_SERVICE_PRINCIPAL_APP_ID \ --scope $(az network dns zone show --name $DOMAIN_NAME --resource-group $ECLIPSE_CHE_RESOURCE_GROUP --query "id" --output tsv) \ --role "DNS Zone Contributor"openshift-devspaces namespace を作成します。
oc create namespace openshift-devspacesサービスアカウントシークレットを作成します。
oc create secret generic azuredns-config \ --from-literal=clientSecret=$(az ad sp create-for-rbac --name $CERT_MANAGER_SERVICE_PRINCIPAL_NAME --query "password" --output tsv) \ --namespace openshift-devspacesIssuer を作成し、
MY_EMAIL_ADDRESSを有効なアドレスに置き換えます。oc apply -f - << EOF apiVersion: cert-manager.io/v1 kind: Issuer metadata: name: devspaces-letsencrypt namespace: openshift-devspaces spec: acme: solvers: - dns01: azureDNS: clientID: $CERT_MANAGER_SERVICE_PRINCIPAL_APP_ID clientSecretSecretRef: name: azuredns-config key: clientSecret subscriptionID: $(az account show --query "id" --output tsv) tenantID: $(az account show --query "tenantId" --output tsv) resourceGroupName: $ECLIPSE_CHE_RESOURCE_GROUP hostedZoneName: $DOMAIN_NAME email: MY_EMAIL_ADDRESS privateKeySecretRef: name: letsencrypt server: https://acme-v02.api.letsencrypt.org/directory EOF証明書を作成します。
oc apply -f - << EOF apiVersion: cert-manager.io/v1 kind: Certificate metadata: name: che-tls namespace: openshift-devspaces spec: secretName: che-tls issuerRef: name: devspaces-letsencrypt kind: Issuer commonName: '$DOMAIN_NAME' dnsNames: - '$DOMAIN_NAME' - '*.$DOMAIN_NAME' usages: - server auth - digital signature - key encipherment - key agreement - data encipherment EOF
GoDaddy などのレジストラーを使用する場合は、レジストラーで次の DNS レコードを複製する必要があります: * type: TXT * name: _acme-challenge
+ .追加リソース
2.4.2.6. Microsoft Entra ID へのクライアントアプリケーションの登録 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Entra ID にクライアントアプリケーションを登録するについて説明します。
手順
アプリケーションを作成します。
# Eclipse Che Application display name ECLIPSE_CHE_APPLICATION_DISPLAY_NAME="Eclipse Che" az ad app create \ --display-name $ECLIPSE_CHE_APPLICATION_DISPLAY_NAME \ --enable-access-token-issuance \ --required-resource-accesses '[{"resourceAccess":[{"id":"34a47c2f-cd0d-47b4-a93c-2c41130c671c","type":"Scope"}],"resourceAppId":"6dae42f8-4368-4678-94ff-3960e28e3630"},{"resourceAccess":[{"id":"e1fe6dd8-ba31-4d61-89e7-88639da4683d","type":"Scope"}],"resourceAppId":"00000003-0000-0000-c000-000000000000"}]' \ --optional-claims '{"accessToken":[{"additionalProperties":[],"essential":false,"name":"groups","source":null}]}' \ --sign-in-audience AzureADMyOrg \ --web-redirect-uris https://$DOMAIN_NAME/oauth/callbackアプリケーショングループのメンバーシップ要求を更新します。
az ad app update \ --id $(az ad app list --query "[?displayName=='$ECLIPSE_CHE_APPLICATION_DISPLAY_NAME'].id" --output tsv) \ --set groupMembershipClaims=SecurityGroup
2.4.2.7. OpenShift Dev Spaces の Microsoft Azure Kubernetes Service へのインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dev Spaces を Microsoft Azure Kubernetes Service にインストールします。
手順
CheCluster パッチ YAML ファイルを準備します。
cat > che-cluster-patch.yaml << EOF spec: networking: auth: identityProviderURL: "https://sts.windows.net/$(az account show --query "tenantId" --output tsv)/v2.0/" identityToken: access_token oAuthClientName: $(az ad app list --query "[?displayName=='$ECLIPSE_CHE_APPLICATION_DISPLAY_NAME'].appId" --output tsv) oAuthSecret: $(az ad app credential reset --id $ECLIPSE_CHE_APPLICATION_ID --query "password" --output tsv) oAuthScope: openid email profile 6dae42f8-4368-4678-94ff-3960e28e3630/user.read gateway: deployment: containers: - env: - name: OAUTH2_PROXY_INSECURE_OIDC_ALLOW_UNVERIFIED_EMAIL value: "true" name: oauth-proxy components: cheServer: extraProperties: CHE_OIDC_AUTH__SERVER__URL: "https://sts.windows.net/$(az account show --query "tenantId" --output tsv)/v2.0/" CHE_OIDC_EMAIL__CLAIM: unique_name EOFOpenShift Dev Spaces をデプロイします。
chectl server:deploy \ --platform=k8s \ --che-operator-cr-patch-yaml=che-cluster-patch.yaml \ --skip-oidc-provider-check \ --skip-cert-manager \ --domain=$DOMAIN_NAMEOpenShift Dev Spaces クラスターインスタンスに移動します。
$ dsc dashboard:open