private static async createOrUpdateContainerApp()

in azurecontainerapps.ts [628:669]


    private static async createOrUpdateContainerApp() {
        if (!this.containerAppExists) {
            if (!this.util.isNullOrEmpty(this.yamlConfigPath)) {
                // Create the Container App from the YAML configuration file
                await this.appHelper.createContainerAppFromYaml(this.containerAppName, this.resourceGroup, this.yamlConfigPath);
            } else {
                // Create the Container App from command line arguments
                await this.appHelper.createContainerApp(this.containerAppName, this.resourceGroup, this.containerAppEnvironment, this.commandLineArgs);
            }

            return;
        }

        if (!this.util.isNullOrEmpty(this.yamlConfigPath)) {
            // Update the Container App from the YAML configuration file
            await this.appHelper.updateContainerAppFromYaml(this.containerAppName, this.resourceGroup, this.yamlConfigPath);

            return;
        }

        if (this.noIngressUpdate) {
            // Update the Container Registry details on the existing Container App, if provided as an input
            if (!this.util.isNullOrEmpty(this.registryUrl) && !this.util.isNullOrEmpty(this.registryUsername) && !this.util.isNullOrEmpty(this.registryPassword)) {
                await this.appHelper.updateContainerAppRegistryDetails(this.containerAppName, this.resourceGroup, this.registryUrl, this.registryUsername, this.registryPassword);
            }

            // Update the Container App using the 'update' command
            await this.appHelper.updateContainerApp(this.containerAppName, this.resourceGroup, this.commandLineArgs);
        } else if (this.adminCredentialsProvided && !this.noIngressUpdate) {
            // Update the Container App with `up` command when admin credentials are provided and ingress is manually provided.
            await this.appHelper.updateContainerAppWithUp(this.containerAppName, this.resourceGroup, this.commandLineArgs, this.ingress, this.targetPort);
        } else {
            // Update the Container App using the 'containerapp update' and 'ingress update' commands
            await this.appHelper.updateContainerApp(this.containerAppName, this.resourceGroup, this.commandLineArgs)
            await this.appHelper.updateContainerAppIngress(this.containerAppName, this.resourceGroup, this.ingress, this.targetPort);
        }

        // Disable ingress on the existing Container App, if provided as an input
        if (this.ingress == 'disabled') {
            await this.appHelper.disableContainerAppIngress(this.containerAppName, this.resourceGroup);
        }
    }