Note that this README is targeted at AOS-Azure contributors. If you are not a member of this team, these instructions may not work as they will assume you have permissions that you may not have.
Utilities. Install the following:
Development helper scripts assume an up-to-date GNU tools environment. Recent Linux distros should work out-of-the-box.
macOS ships with outdated BSD-based tools. We recommend installing macOS GNU tools.
Environment variables. Ensure that $GOPATH/bin is in your path:
export PATH=$PATH:${GOPATH:-$HOME/go}/bin
.
Azure CLI access. Log into Azure using the CLI using az login
and your
credentials.
OpenShift CI cluster access. Log in to the CI
cluster using oc login
and a
token from the CI cluster web interface. You can copy the required command by
clicking on your username and the "Copy Login Command" option in the web
portal.
Codebase. Check out the codebase:
go get github.com/openshift/openshift-azure/...
Secrets. Retrieve cluster creation secrets from the vault:
export VAULT_ADDR=https://vault.ci.openshift.org
./vault login $TOKEN_FROM_THE_VAULT
./vault kv get -format=json "kv/selfservice/azure/cluster-secrets-azure/" | jq ".data.data" > vault-secrets.json
python3 vault-secrets.py
Environment file. Create an environment file:
cp env.example env
.
AAD Application / Service principal. Create a personal AAD Application:
hack/aad.sh app-create user-$USER-aad aro-team-shared
Source the env
file: . ./env
.
Determine an appropriate resource group name for your cluster (e.g. for a test
cluster, you could call it $USER-test
). Then export RESOURCEGROUP
and run
./hack/create.sh $RESOURCEGROUP
to deploy a cluster.
Access the web console via the link printed by create.sh, logging in with your Azure credentials.
To inspect pods running on the OpenShift cluster, run
KUBECONFIG=_data/_out/admin.kubeconfig oc get pods
.
To ssh into any OpenShift master node, run ./hack/ssh.sh
. You can directly
ssh to any other host from the master. sudo -i
will give root.
Run ./hack/delete.sh
to delete the deployed cluster.
Basic OpenShift configuration (also see test/manifests/fakerp/create.yaml):
name: openshift
location: $AZURE_REGION
properties:
openShiftVersion: v3.11
authProfile:
identityProviders:
- name: Azure AD
provider:
kind: AADIdentityProvider
clientId: $AZURE_AAD_CLIENT_ID
secret: $AZURE_AAD_CLIENT_SECRET
tenantId: $AZURE_TENANT_ID
networkProfile:
vnetCidr: 10.0.0.0/8
masterPoolProfile:
count: 3
vmSize: Standard_D2s_v3
subnetCidr: 10.0.0.0/24
agentPoolProfiles:
- name: infra
role: infra
count: 3
vmSize: Standard_D2s_v3
subnetCidr: 10.0.0.0/24
osType: Linux
- name: compute
role: compute
count: 1
vmSize: Standard_D2s_v3
subnetCidr: 10.0.0.0/24
osType: Linux
Read more about how to work with our CI system here.
For any infrastructure-related issues, make sure to contact the Developer Productivity team who is responsible for managing the OpenShift CI Infrastructure at #forum-testplatform in Slack.