- Add a
secure_env_vars
argument to thecreate_aci()
method, to set secure environment variables in the instance. The values of these variables are not visible in the container's properties, eg when viewed in the Azure portal or via the CLI. - Fix a bug in setting the environment variables for ACI (#16).
- Change maintainer email address.
- Significant enhancements for AKS:
- Fully support creating clusters with managed identities. This is recommended and the new default, compared to the older method of using service principals to control cluster resources.
- Support creating clusters using VM scalesets for the cluster nodes. This is recommended and the new default, compared to using individual VMs.
- Support private clusters.
- Support node autoscaling for agent pools backed by VM scalesets.
- Support spot (low-priority) nodes for agent pools backed by VM scalesets.
- New methods for the
az_kubernetes_service
class, for managing agent pools:get_agent_pool
,create_agent_pool
,delete_agent_pool
andlist_agent_pools
. Creating new agent pools requires VM scalesets, as mentioned above.
- New
agent_pool
function to supply the parameters for a single AKS agent pool. - The functions to call external tools (
call_docker
,call_docker_compose
,call_kubernetes
andcall_helm
) now use the value of the system optionazure_containers_tool_echo
to determine whether to echo output to the screen. If this is unset, the fallback isTRUE
(as in previous versions). - Remove MMLS vignette; version 9.3.0 is now very old.
- New vignettes on securing an ACI deployment with RestRserve, and deploying a secured service on AKS with Traefik/Let's Encrypt.
- The utility functions
call_docker
,call_docker_compose
,call_kubectl
andcall_helm
now accept a vector of individual commandline options as the first argument, which is the format expected byprocessx::run
. You can still provide the full commandline as a single string but this is discouraged, as it will likely fail for things like paths containing spaces.
- Fix a bug where
call_docker_compose
could be checking for the wrong binary.
- New
call_docker_compose
function for calling docker-compose. - Add delay in loop to wait for service principal during AKS resource creation; could timeout prematurely otherwise.
KubernetesCluster$create()
,apply()
, etc now accept HTTP[S] URLs as well as filenames as arguments.- Use the processx package to run external commands, rather than
base::system2()
. A major benefit of this change is that command output is automatically captured and returned as an R object, making it easier to write automated scripts.- The commandline is now a list component of the R object, rather than an attribute.
- The various
DockerRegistry
andKubernetesCluster
methods for calling docker, kubectl and helm now have...
as an argument, allowing you to pass extra inputs to these commands as needed. - Add
list_cluster_resources()
method for the AKS resource class, which returns a list of all the Azure resources managed by the cluster.
- The
aks$update_aad_password()
andaks$update_service_password()
methods now use the new Graph API calls for managing app passwords. The arguments to both these methods arename
(an optional friendly name for the password) andduration
. As a security measure, passwords can no longer be manually specified; instead all passwords are now auto-generated on the server with a cryptographically secure PRNG.
- Enable creating ACI and AKS instances with assigned managed identities. Note that this is still in preview for AKS; see the Microsoft Docs page for enabling this feature.
- Make
docker_registry
andkubernetes_cluster
into constructor functions rather than R6 classes, for consistency with other AzureR packages. The corresponding class objects are nowDockerRegistry
andKubernetesCluster
. - Enable AAD authentication for ACR. By default, instantiating a new docker registry object will authenticate using the AAD credentials of the currently signed-in user. Alternative authentication details can be supplied to
docker_registry
, which will be passed toAzureAuth::get_azure_token
. See the help fordocker_registry
for more information. - Enable authenticating with service principals to ACR from ACI and AKS.
- By default, create new container instances with a managed service identity.
- Add
aks$update_aad_password()
method to reset/update the password for AAD integration. - Add custom
acr$add_role_assignment()
method that recognises AKS objects.
- Add
aks$update_service_password()
method to reset/update the service principal credentials. - Send the docker password via
stdin
, rather than on the commandline. - Not released to CRAN (superseded by 1.1.0 above).
- Ensure dir for Kubernetes config file exists before writing the file.
- Add
wait
argument tocreate_aci
andcreate_aks
methods; rely on AzureRMR 2.0 for implementation. - By default, create a new service principal when creating a new AKS resource; this relies on the AzureGraph package.
- Fix bug in
aci$start()
method. - By default, save the config file for an AKS cluster in the AzureR directory to allow reuse without going through Resource Manager.
- Change
aks$get_cluster()
method to use a non-deprecated API call. - Allow resource group and subscription accessor methods to work even if AzureContainers is not on the search path.
- Allow for different AAD token implementations, either from httr or AzureAuth.
- Submitted to CRAN
- Moved to cloudyr organisation