The Probr AKS Service pack compliments the Kubernetes service pack with Azure Kubernetes Service (AKS)-specific compliance checks.
Click here to see the current state of the probes in this pack.
The following will build a binary named "aks":
git clone https://github.com/probr/probr-pack-aks.git
cd probr-pack-aks
make binary
Move the aks
binary into your probr service pack location (default is ${HOME}/probr/binaries
)
You will need
- Probr Core (https://github.com/probr/probr)
- An AKS Cluster
- An active kubeconfig against the cluster, that can deploy into the probe namespace (see config below. Default is probr-general-test-ns)
- A service principle that has the "Reader" Azure role on the cluster
- For the IAM probes, you will need:
- Managed Pod Identity to be configured in your cluster
- An
AzureIdentity
calledprobr-ai
and anAzureIdentityBinding
calledprobr-aib
to be deployed in the default namespace (or the namespace configured in the runtime config, see below).
The minimum required additions to your Probr runtime configuration is as follows:
Run:
- "aks"
ServicePacks:
Kubernetes:
AuthorisedContainerImage: "yourprivateregistry.io/probr/probr-probe"
AKS:
ClusterName: "your-clustername-here"
ResourceGroupName: "your-resource-group-name-here"
CloudProviders:
Azure:
TenantID: "UUID of your tenant"
SubscriptionID: "UUID of your subscription"
ClientID: "Client ID UUID of your service principle"
ClientSecret: "Recommend leaving this blank and using envvar"
We recommend not storing the ClientSecret in the config.yml, instead use the PROBR_AZURE_CLIENT_SECRET
environment variable.
If you don't want to use the defaults you can add the following to your Probr config.yml:
Run:
- "aks"
ServicePacks:
Kubernetes:
KubeConfig: "location of your kubeconfig if not the default"
KubeContext: "specific kubecontext if not the current context"
AuthorisedContainerImage: "yourprivateregistry.io/probr/probr-probe"
ProbeNamespace: "namespace Probr deploys into. Defaults to 'probr-general-test-ns'"
AKS:
ClusterName: "your-clustername-here"
ResourceGroupName: "your-resource-group-name-here"
ManagedPodIdentity:
DefaultAzureIdentityNamespace: "Namespace where the probr-ai and probr-aib live for cross-namespace identity tests. Defaults to 'default'"
IdentityPodNamespace: "namespace where the MIC and NMI pods live. Defaults to 'kube-system'"
CloudProviders:
Azure:
TenantID: "UUID of your tenant"
SubscriptionID: "UUID of your subscription"
ClientID: "Client ID UUID of your service principle"
ClientSecret: "Recommend leaving this blank and using envvar"
If all of the instructions above have been followed, then you should be able to run ./probr
and the service pack will run.