From 175ee47da4d5e50ff809f78b456576895ff15340 Mon Sep 17 00:00:00 2001 From: Jonathan Innis Date: Wed, 13 Jan 2021 19:17:10 -0800 Subject: [PATCH] [k8sconfiguration] Parameter Validation and Table Formatting (#2871) * Push updates to k8sconfiguration keys and fix issue with known hosts * Remove print statement * Increase CLI version and add to changelog * Remove deprecated CLIError and reduce history.rst text * Joinnis/add validators (#1) * Push updates to k8sconfiguration keys and fix issue with known hosts * Add validations for naming * Remove print statement * Add validator testing to the set of tests * Add unit testing and greater scenario test coverage * Delete test_kubernetesconfiguration_scenario.py * Remove dots from the regex for naming * Add the scenario tests back * Add good key scenario test to scenarios * Remove numeric checks for configurations * Reduce scneario testing * Move validation of configuration name into creation command * Add table formatting for list and show * Update version * Update the error message for validation failure * Update the test cases for the new error messages * Change error message and regex check * Add proper formatting to code files * Updated final formatting checks * Updated error messages * Update error message and help text * Final update to error messaging * Update test_validators.py * Update based on PR comments Co-authored-by: Jonathan Innis --- src/k8sconfiguration/HISTORY.rst | 4 + .../azext_k8sconfiguration/_format.py | 25 + .../azext_k8sconfiguration/_params.py | 37 +- .../azext_k8sconfiguration/_validators.py | 33 + .../azext_k8sconfiguration/commands.py | 5 +- .../azext_k8sconfiguration/custom.py | 52 +- .../recordings/test_k8sconfiguration.yaml | 1332 ----------------- .../test_k8sconfiguration_success.yaml | 449 ++++++ .../test_kubernetesconfiguration_scenario.py | 219 ++- .../tests/latest/test_validators.py | 176 +++ src/k8sconfiguration/setup.py | 2 +- 11 files changed, 881 insertions(+), 1453 deletions(-) create mode 100644 src/k8sconfiguration/azext_k8sconfiguration/_format.py delete mode 100644 src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration.yaml create mode 100644 src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration_success.yaml create mode 100644 src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_validators.py diff --git a/src/k8sconfiguration/HISTORY.rst b/src/k8sconfiguration/HISTORY.rst index 27cda9e5d3..e6feb7422f 100644 --- a/src/k8sconfiguration/HISTORY.rst +++ b/src/k8sconfiguration/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +0.2.3 +++++++++++++++++++ +* Add parameter regex validation, improve table formatting + 0.2.2 ++++++++++++++++++ * Update min az CLI version diff --git a/src/k8sconfiguration/azext_k8sconfiguration/_format.py b/src/k8sconfiguration/azext_k8sconfiguration/_format.py new file mode 100644 index 0000000000..e6ddb86781 --- /dev/null +++ b/src/k8sconfiguration/azext_k8sconfiguration/_format.py @@ -0,0 +1,25 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +from collections import OrderedDict + + +def k8sconfiguration_list_table_format(results): + return [__get_table_row(result) for result in results] + + +def k8sconfiguration_show_table_format(result): + return __get_table_row(result) + + +def __get_table_row(result): + return OrderedDict([ + ('name', result['name']), + ('repositoryUrl', result['repositoryUrl']), + ('operatorName', result['operatorInstanceName']), + ('operatorNamespace', result['operatorNamespace']), + ('scope', result['operatorScope']), + ('provisioningState', result['provisioningState']) + ]) diff --git a/src/k8sconfiguration/azext_k8sconfiguration/_params.py b/src/k8sconfiguration/azext_k8sconfiguration/_params.py index d4a52e9801..3488163bbd 100644 --- a/src/k8sconfiguration/azext_k8sconfiguration/_params.py +++ b/src/k8sconfiguration/azext_k8sconfiguration/_params.py @@ -13,7 +13,7 @@ ) from azure.cli.core.commands.validators import get_default_location_from_resource_group -from ._validators import validate_configuration_type +from ._validators import validate_configuration_type, validate_operator_namespace, validate_operator_instance_name def load_arguments(self, _): @@ -21,18 +21,27 @@ def load_arguments(self, _): with self.argument_context('k8sconfiguration') as c: c.argument('tags', tags_type) - c.argument('location', validator=get_default_location_from_resource_group) - c.argument('name', sourcecontrolconfiguration_type, options_list=['--name', '-n']) - c.argument('cluster_name', options_list=['--cluster-name', '-c'], help='Name of the Kubernetes cluster') - c.argument('cluster_type', arg_type=get_enum_type(['connectedClusters', 'managedClusters']), + c.argument('location', + validator=get_default_location_from_resource_group) + c.argument('name', sourcecontrolconfiguration_type, + options_list=['--name', '-n']) + c.argument('cluster_name', + options_list=['--cluster-name', '-c'], + help='Name of the Kubernetes cluster') + c.argument('cluster_type', + arg_type=get_enum_type(['connectedClusters', 'managedClusters']), help='Specify Arc clusters or AKS managed clusters.') - c.argument('repository_url', options_list=['--repository-url', '-u'], + c.argument('repository_url', + options_list=['--repository-url', '-u'], help='Url of the source control repository') - c.argument('enable_helm_operator', arg_type=get_three_state_flag(), + c.argument('enable_helm_operator', + arg_type=get_three_state_flag(), help='Enable support for Helm chart deployments') - c.argument('scope', arg_type=get_enum_type(['namespace', 'cluster']), + c.argument('scope', + arg_type=get_enum_type(['namespace', 'cluster']), help='''Specify scope of the operator to be 'namespace' or 'cluster' ''') - c.argument('configuration_type', validator=validate_configuration_type, + c.argument('configuration_type', + validator=validate_configuration_type, arg_type=get_enum_type(['sourceControlConfiguration']), help='Type of the configuration') c.argument('helm_operator_params', @@ -42,7 +51,7 @@ def load_arguments(self, _): c.argument('operator_params', help='Parameters for the Operator') c.argument('ssh_private_key', - help='Specify private ssh key for private repository sync (either base64 encoded or raw)') + help='Specify Base64-encoded private ssh key for private repository sync') c.argument('ssh_private_key_file', help='Specify filepath to private ssh key for private repository sync') c.argument('https_user', @@ -50,13 +59,15 @@ def load_arguments(self, _): c.argument('https_key', help='Specify HTTPS token/password for private repository sync') c.argument('ssh_known_hosts', - help='Specify base64-encoded known_hosts contents containing public SSH keys required to access private Git instances') + help='Specify Base64-encoded known_hosts contents containing public SSH keys required to access private Git instances') c.argument('ssh_known_hosts_file', help='Specify filepath to known_hosts contents containing public SSH keys required to access private Git instances') c.argument('operator_instance_name', - help='Instance name of the Operator') + help='Instance name of the Operator', + validator=validate_operator_instance_name) c.argument('operator_namespace', - help='Namespace in which to install the Operator') + help='Namespace in which to install the Operator', + validator=validate_operator_namespace) c.argument('operator_type', help='''Type of the operator. Valid value is 'flux' ''') diff --git a/src/k8sconfiguration/azext_k8sconfiguration/_validators.py b/src/k8sconfiguration/azext_k8sconfiguration/_validators.py index 3836fb6b84..0862de4320 100644 --- a/src/k8sconfiguration/azext_k8sconfiguration/_validators.py +++ b/src/k8sconfiguration/azext_k8sconfiguration/_validators.py @@ -3,11 +3,44 @@ # Licensed under the MIT License. See License.txt in the project root for license information. # -------------------------------------------------------------------------------------------- +import re from azure.cli.core.azclierror import InvalidArgumentValueError +# Parameter-Level Validation def validate_configuration_type(configuration_type): if configuration_type.lower() != 'sourcecontrolconfiguration': raise InvalidArgumentValueError( 'Invalid configuration-type', 'Try specifying the valid value "sourceControlConfiguration"') + + +def validate_operator_namespace(namespace): + if namespace.operator_namespace: + __validate_k8s_name(namespace.operator_namespace, "--operator-namespace", 23) + + +def validate_operator_instance_name(namespace): + if namespace.operator_instance_name: + __validate_k8s_name(namespace.operator_instance_name, "--operator-instance-name", 23) + + +# Create Parameter Validation +def validate_configuration_name(configuration_name): + __validate_k8s_name(configuration_name, "--name", 63) + + +# Helper +def __validate_k8s_name(param_value, param_name, max_len): + if len(param_value) > max_len: + raise InvalidArgumentValueError( + 'Error! Invalid {0}'.format(param_name), + 'Parameter {0} can be a maximum of {1} characters'.format(param_name, max_len)) + if not re.match(r'^[a-z0-9]([-a-z0-9]*[a-z0-9])?$', param_value): + if param_value[0] == "-" or param_value[-1] == "-": + raise InvalidArgumentValueError( + 'Error! Invalid {0}'.format(param_name), + 'Parameter {0} cannot begin or end with a hyphen'.format(param_name)) + raise InvalidArgumentValueError( + 'Error! Invalid {0}'.format(param_name), + 'Parameter {0} can only contain lowercase alphanumeric characters and hyphens'.format(param_name)) diff --git a/src/k8sconfiguration/azext_k8sconfiguration/commands.py b/src/k8sconfiguration/azext_k8sconfiguration/commands.py index a554e47fa4..897101c907 100644 --- a/src/k8sconfiguration/azext_k8sconfiguration/commands.py +++ b/src/k8sconfiguration/azext_k8sconfiguration/commands.py @@ -6,6 +6,7 @@ # pylint: disable=line-too-long from azure.cli.core.commands import CliCommandType from azext_k8sconfiguration._client_factory import (cf_k8sconfiguration, cf_k8sconfiguration_operation) +from ._format import k8sconfiguration_show_table_format, k8sconfiguration_list_table_format def load_command_table(self, _): @@ -20,5 +21,5 @@ def load_command_table(self, _): g.custom_command('create', 'create_k8sconfiguration') g.custom_command('update', 'update_k8sconfiguration') g.custom_command('delete', 'delete_k8sconfiguration', confirmation=True) - g.custom_command('list', 'list_k8sconfiguration') - g.custom_show_command('show', 'show_k8sconfiguration') + g.custom_command('list', 'list_k8sconfiguration', table_transformer=k8sconfiguration_list_table_format) + g.custom_show_command('show', 'show_k8sconfiguration', table_transformer=k8sconfiguration_show_table_format) diff --git a/src/k8sconfiguration/azext_k8sconfiguration/custom.py b/src/k8sconfiguration/azext_k8sconfiguration/custom.py index 0cc9075bb9..9e3fe59012 100644 --- a/src/k8sconfiguration/azext_k8sconfiguration/custom.py +++ b/src/k8sconfiguration/azext_k8sconfiguration/custom.py @@ -17,6 +17,7 @@ from azext_k8sconfiguration.vendored_sdks.models import SourceControlConfiguration from azext_k8sconfiguration.vendored_sdks.models import HelmOperatorProperties from azext_k8sconfiguration.vendored_sdks.models import ErrorResponseException +from ._validators import validate_configuration_name logger = get_logger(__name__) @@ -62,6 +63,9 @@ def create_k8sconfiguration(client, resource_group_name, cluster_name, name, rep """Create a new Kubernetes Source Control Configuration. """ + # Validate configuration name + validate_configuration_name(name) + # Determine ClusterRP cluster_rp = __get_cluster_type(cluster_type) @@ -77,16 +81,16 @@ def create_k8sconfiguration(client, resource_group_name, cluster_name, name, rep helm_operator_properties.chart_version = helm_operator_version.strip() helm_operator_properties.chart_values = helm_operator_params.strip() - protected_settings = __get_protected_settings(ssh_private_key, ssh_private_key_file, https_user, https_key) - knownhost_data = __get_data_from_key_or_file(ssh_known_hosts, ssh_known_hosts_file) + protected_settings = get_protected_settings(ssh_private_key, ssh_private_key_file, https_user, https_key) + knownhost_data = get_data_from_key_or_file(ssh_known_hosts, ssh_known_hosts_file) if knownhost_data != '': - __validate_known_hosts(knownhost_data) + validate_known_hosts(knownhost_data) # Flag which parameters have been set and validate these settings against the set repository url ssh_private_key_set = ssh_private_key != '' or ssh_private_key_file != '' ssh_known_hosts_set = knownhost_data != '' https_auth_set = https_user != '' and https_key != '' - __validate_url_with_params(repository_url, ssh_private_key_set, ssh_known_hosts_set, https_auth_set) + validate_url_with_params(repository_url, ssh_private_key_set, ssh_known_hosts_set, https_auth_set) # Create sourceControlConfiguration object source_control_configuration = SourceControlConfiguration(repository_url=repository_url, @@ -133,9 +137,9 @@ def update_k8sconfiguration(client, resource_group_name, cluster_name, name, clu config['operator_params'] = operator_params update_yes = True - knownhost_data = __get_data_from_key_or_file(ssh_known_hosts, ssh_known_hosts_file) + knownhost_data = get_data_from_key_or_file(ssh_known_hosts, ssh_known_hosts_file) if knownhost_data != '': - __validate_known_hosts(knownhost_data) + validate_known_hosts(knownhost_data) config['ssh_known_hosts_contents'] = knownhost_data update_yes = True @@ -158,7 +162,7 @@ def update_k8sconfiguration(client, resource_group_name, cluster_name, name, clu # Flag which parameters have been set and validate these settings against the set repository url ssh_known_hosts_set = 'ssh_known_hosts_contents' in config - __validate_url_with_params(config['repository_url'], False, ssh_known_hosts_set, False) + validate_url_with_params(config['repository_url'], False, ssh_known_hosts_set, False) config = client.create_or_update(resource_group_name, cluster_rp, cluster_type, cluster_name, source_control_configuration_name, config) @@ -183,28 +187,28 @@ def delete_k8sconfiguration(client, resource_group_name, cluster_name, name, clu return client.delete(resource_group_name, cluster_rp, cluster_type, cluster_name, source_control_configuration_name) -def __get_protected_settings(ssh_private_key, ssh_private_key_file, https_user, https_key): +def get_protected_settings(ssh_private_key, ssh_private_key_file, https_user, https_key): protected_settings = {} - ssh_private_key_data = __get_data_from_key_or_file(ssh_private_key, ssh_private_key_file) + ssh_private_key_data = get_data_from_key_or_file(ssh_private_key, ssh_private_key_file) # Add gitops private key data to protected settings if exists # Dry-run all key types to determine if the private key is in a valid format invalid_rsa_key, invalid_ecc_key, invalid_dsa_key, invalid_ed25519_key = (False, False, False, False) if ssh_private_key_data != '': try: - RSA.import_key(__from_base64(ssh_private_key_data)) + RSA.import_key(from_base64(ssh_private_key_data)) except ValueError: invalid_rsa_key = True try: - ECC.import_key(__from_base64(ssh_private_key_data)) + ECC.import_key(from_base64(ssh_private_key_data)) except ValueError: invalid_ecc_key = True try: - DSA.import_key(__from_base64(ssh_private_key_data)) + DSA.import_key(from_base64(ssh_private_key_data)) except ValueError: invalid_dsa_key = True try: - key_obj = io.StringIO(__from_base64(ssh_private_key_data).decode('utf-8')) + key_obj = io.StringIO(from_base64(ssh_private_key_data).decode('utf-8')) Ed25519Key(file_obj=key_obj) except SSHException: invalid_ed25519_key = True @@ -217,8 +221,8 @@ def __get_protected_settings(ssh_private_key, ssh_private_key_file, https_user, # Check if both httpsUser and httpsKey exist, then add to protected settings if https_user != '' and https_key != '': - protected_settings['httpsUser'] = __to_base64(https_user) - protected_settings['httpsKey'] = __to_base64(https_key) + protected_settings['httpsUser'] = to_base64(https_user) + protected_settings['httpsKey'] = to_base64(https_key) elif https_user != '': raise RequiredArgumentMissingError( 'Error! --https-user used without --https-key', @@ -248,7 +252,7 @@ def __fix_compliance_state(config): return config -def __validate_url_with_params(repository_url, ssh_private_key_set, known_hosts_contents_set, https_auth_set): +def validate_url_with_params(repository_url, ssh_private_key_set, known_hosts_contents_set, https_auth_set): scheme = urlparse(repository_url).scheme if scheme in ('http', 'https'): @@ -270,9 +274,9 @@ def __validate_url_with_params(repository_url, ssh_private_key_set, known_hosts_ 'Verify the url provided is a valid http(s) url and not an ssh url') -def __validate_known_hosts(knownhost_data): +def validate_known_hosts(knownhost_data): try: - knownhost_str = __from_base64(knownhost_data).decode('utf-8') + knownhost_str = from_base64(knownhost_data).decode('utf-8') except Exception as ex: raise InvalidArgumentValueError( 'Error! ssh known_hosts is not a valid utf-8 base64 encoded string', @@ -293,20 +297,20 @@ def __validate_known_hosts(knownhost_data): 'Verify that all lines in the known_hosts contents are provided in a valid sshd(8) format') from ex -def __get_data_from_key_or_file(key, filepath): +def get_data_from_key_or_file(key, filepath): if key != '' and filepath != '': raise MutuallyExclusiveArgumentError( 'Error! Both textual key and key filepath cannot be provided', 'Try providing the file parameter without providing the plaintext parameter') data = '' if filepath != '': - data = __read_key_file(filepath) + data = read_key_file(filepath) elif key != '': data = key return data -def __read_key_file(path): +def read_key_file(path): try: with open(path, "r") as myfile: # user passed in filename data_list = myfile.readlines() # keeps newline characters intact @@ -314,17 +318,17 @@ def __read_key_file(path): if (data_list_len) <= 0: raise Exception("File provided does not contain any data") raw_data = ''.join(data_list) - return __to_base64(raw_data) + return to_base64(raw_data) except Exception as ex: raise InvalidArgumentValueError( 'Error! Unable to read key file specified with: {0}'.format(ex), 'Verify that the filepath specified exists and contains valid utf-8 data') from ex -def __from_base64(base64_str): +def from_base64(base64_str): return base64.b64decode(base64_str) -def __to_base64(raw_data): +def to_base64(raw_data): bytes_data = raw_data.encode('utf-8') return base64.b64encode(bytes_data).decode('utf-8') diff --git a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration.yaml b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration.yaml deleted file mode 100644 index 82474d11a1..0000000000 --- a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration.yaml +++ /dev/null @@ -1,1332 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration list - Connection: - - keep-alive - ParameterSetName: - - -g --cluster-name --cluster-type - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations?api-version=2020-10-01-preview - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest6","name":"angoetest6","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens6","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance6","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:36:34.3483433+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:36:34.3483434+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest5","name":"angoetest5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:21:34.5195851+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:21:34.5195852+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/httpsnoauth","name":"httpsnoauth","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"httpsno","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com","operatorInstanceName":"httpsnoauth","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-27T09:55:23.0192813+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-27T09:55:23.0192815+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave5","name":"abhave5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"abhave5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-22T20:37:16.862","message":"{\"OperatorMessage\":\"ts=2020-10-22T20:37:16.633820891Z - caller=main.go:259 version=1.20.0\\nts=2020-10-22T20:37:16.633873995Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-22T20:37:16.633924799Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-22T20:37:16.633975903Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-22T20:37:16.852907963Z caller=main.go:492 component=cluster - identity=/var/fluxd/keygen/identity\\nts=2020-10-22T20:37:16.85298777Z caller=main.go:493 - component=cluster identity.pub=\\\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk\\\"\\nts=2020-10-22T20:37:16.853032673Z caller=main.go:498 - host=https://10.0.0.1:443 version=kubernetes-v1.15.11\\nts=2020-10-22T20:37:16.853103379Z - caller=main.go:510 kubectl=/usr/local/bin/kubectl\\nts=2020-10-22T20:37:16.854420583Z - caller=main.go:527 ping=true\\nts=2020-10-22T20:37:16.856878076Z caller=main.go:666 - url=ssh://git@github.com/abhave/test.git user=Flux email=support@weave.works - signing-key= verify-signatures-mode=none sync-tag=flux state=secret readonly=true - registry-disable-scanning=false notes-ref=flux set-author=false git-secret=false - sops=false\\nts=2020-10-22T20:37:16.858137876Z caller=main.go:751 component=upstream - URL=ws://flux-logs-agent.azure-arc/abhave5/abhave5\\nts=2020-10-22T20:37:16.858406297Z - caller=main.go:803 metrics-addr=:3031\\nts=2020-10-22T20:37:16.871805053Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-22T20:37:16.873429681Z caller=main.go:795 - addr=:3030\\nts=2020-10-22T20:37:16.936767575Z caller=upstream.go:133 component=upstream - connecting=true\\nts=2020-10-22T20:37:16.960868375Z caller=upstream.go:147 - component=upstream connected=true\\nts=2020-10-22T20:37:16.9637288Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git repo has not been cloned - yet\\\"\\nts=2020-10-22T20:37:17.656511317Z caller=checkpoint.go:21 component=checkpoint - msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-22T20:42:16.9720034Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone931233241''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:47:16.979245822Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone848841838''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T20:52:16.985357337Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone893499962''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:57:16.992760764Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone460872518''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:02:16.99950127Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone473996607''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:07:17.006279719Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone504654331''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:12:17.013793071Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone761138621''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:17:17.020589638Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone660768548''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:22:17.029119174Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone846006160''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:27:17.03696857Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone223653180''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:32:17.044872854Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone685199400''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:37:17.055676803Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone204378531''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:42:17.063794432Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone934614441''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:47:17.070482647Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone652118981''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"abhave5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-22T21:48:55.9789932+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave-config","name":"abhave-config","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cluster-config","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-21T21:19:44.371","message":"{\"OperatorMessage\":\"ts=2020-10-21T20:55:46.341193251Z - caller=warming.go:162 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - auth={map[]} err=\\\"fetching previous result from cache: memcache: connect - timeout to 10.0.175.168:11211\\\"\\nts=2020-10-21T20:55:46.550889518Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/memcached/memcached - tag_count=2 to_update=2 of_which_refresh=0 of_which_missing=2\\nts=2020-10-21T20:55:46.975731581Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/memcached/memcached - successful=2 attempted=2\\nts=2020-10-21T20:55:47.109967323Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:55:49.028892017Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - successful=12 attempted=12\\nts=2020-10-21T20:55:49.147058197Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:49.493691118Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - successful=9 attempted=9\\nts=2020-10-21T20:55:49.690506374Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:50.094601708Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - successful=9 attempted=9\\nts=2020-10-21T20:55:50.236903783Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - tag_count=15 to_update=15 of_which_refresh=0 of_which_missing=15\\nts=2020-10-21T20:55:51.258140482Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - successful=15 attempted=15\\nts=2020-10-21T20:55:51.374048184Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - tag_count=50 to_update=50 of_which_refresh=0 of_which_missing=50\\nts=2020-10-21T20:55:54.680803666Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - successful=50 attempted=50\\nts=2020-10-21T20:55:54.830193198Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/metrics-server - tag_count=26 to_update=26 of_which_refresh=0 of_which_missing=26\\nts=2020-10-21T20:55:56.560190156Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/metrics-server - successful=26 attempted=26\\nts=2020-10-21T20:55:56.868738086Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azuremonitor/containerinsights/cidev - tag_count=334 to_update=334 of_which_refresh=0 of_which_missing=334\\nts=2020-10-21T20:56:16.940698958Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azuremonitor/containerinsights/cidev - successful=334 attempted=334\\nts=2020-10-21T20:56:17.062524825Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:56:17.411948365Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - successful=9 attempted=9\\nts=2020-10-21T20:56:17.762202371Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:18.686396449Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - successful=12 attempted=12\\nts=2020-10-21T20:56:18.792333469Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/fluxcd/flux - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:19.158182999Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/fluxcd/flux - successful=8 attempted=8\\nts=2020-10-21T20:56:19.285479096Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.095502908Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - successful=12 attempted=12\\nts=2020-10-21T20:56:20.197462415Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.923133103Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - successful=12 attempted=12\\nts=2020-10-21T20:56:21.031377304Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:21.670083462Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - successful=12 attempted=12\\nts=2020-10-21T20:56:21.782604398Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - tag_count=40 to_update=40 of_which_refresh=0 of_which_missing=40\\nts=2020-10-21T20:56:24.417487619Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - successful=40 attempted=40\\nts=2020-10-21T20:56:24.561991267Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - tag_count=16 to_update=16 of_which_refresh=0 of_which_missing=16\\nts=2020-10-21T20:56:25.682760683Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - successful=16 attempted=16\\nts=2020-10-21T20:56:25.793595687Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:26.312583944Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - successful=8 attempted=8\\nts=2020-10-21T20:56:26.430678718Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/coredns - tag_count=36 to_update=36 of_which_refresh=0 of_which_missing=36\\nts=2020-10-21T20:56:28.757337833Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/coredns - successful=36 attempted=36\\nts=2020-10-21T20:56:29.133456171Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - tag_count=5 to_update=5 of_which_refresh=0 of_which_missing=5\\nts=2020-10-21T20:56:29.476422504Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - successful=5 attempted=5\\nts=2020-10-21T20:56:29.693960488Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/hyperkube - tag_count=992 to_update=992 of_which_refresh=0 of_which_missing=992\\nts=2020-10-21T20:57:38.822437986Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/hyperkube - successful=992 attempted=992\\nts=2020-10-21T20:57:38.954775779Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/containernetworking/networkmonitor - tag_count=11 to_update=11 of_which_refresh=0 of_which_missing=11\\nts=2020-10-21T20:57:39.7699898Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/containernetworking/networkmonitor - successful=11 attempted=11\\nts=2020-10-21T20:57:41.176274539Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:57:41.876793553Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - successful=12 attempted=12\\nts=2020-10-21T21:00:45.10521886Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone963893524''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:05:45.110124615Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone310190047''...\\\\nload pubkey - \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": invalid format\\\\r\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-21T21:10:45.118937271Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone034259099''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:11:16.294874195Z - caller=warming.go:154 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - auth={map[]} err=\\\"Get \\\\\\\"https://mcr.microsoft.com/v2/\\\\\\\": context - deadline exceeded\\\"\\nts=2020-10-21T21:15:45.124878198Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone665815832''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"cluster-config","operatorType":"Flux","operatorScope":"cluster","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABAQCVSgqwn3NnvIXAhxYNDCEerXaXMecrH8WPTSY1h4vc4/hi8gxwd1MDciIQLKQwPJgTomqvUjFl78o+p/5LNVoBO3flh+kkDoMz6+QMg7mnEJUyTen7LaKZiWVdlr9ZLKZ1ZRqCHK4s7cDX9/W1CUoTQ1BpO14gU3AgmjePRXc9+ClsjSx7A84iJuaA1JMMpvNm0jOsdg7Vep7HQ5VWG5AdlhDfRwLZrolxfepDVXGFJnnQPhwg0RlMdfJ2Iikf0Ja0Zy6iN39p7B1ECuuKiJb1AH+lVVKksirDvsqknQ5DNYnJAsIydWNl3Q2BDN7BGfdMiDsEp/8jNfChG0spoXEP"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-21T21:20:44.1711601+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest4","name":"angoetest4","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens4","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:50:12.267","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:49:15.088216717Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:49:15.088275621Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:49:15.088326224Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:49:15.088374726Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:49:15.128443946Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:49:15.128546251Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:49:15.129910327Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:49:15.132517671Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:49:15.135734249Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens4/angoetest4\\nts=2020-10-16T17:49:15.144205419Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:49:15.156946924Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:49:15.158471209Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:49:15.159074242Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:49:15.169193203Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:49:15.192060069Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:49:15.868769151Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance4","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:50:20.5763578+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest3","name":"angoetest3","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens3","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:42:11.561","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:41:13.942341713Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:41:13.942397316Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:41:13.942478221Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:41:13.942535124Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:41:13.977053137Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:41:13.977223846Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:41:13.978668926Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:41:13.982280326Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:41:13.985110883Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens3/angoetest3\\nts=2020-10-16T17:41:13.985930728Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:41:13.986798177Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:41:13.987864736Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:41:13.991218221Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:41:14.012743014Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:41:14.017764092Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:41:14.963469096Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance3","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:42:20.5434983+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest2","name":"angoetest2","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens2","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:39:52.262","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:39:11.323325511Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:39:11.323367514Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:39:11.323403917Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:39:11.32344232Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:39:11.365286537Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:39:11.36546045Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:39:11.366748049Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:39:11.369529463Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:39:11.372627501Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens2/angoetest2\\nts=2020-10-07T06:39:11.380856834Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:39:11.381561888Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:39:11.389143471Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:39:11.389222077Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:39:11.401463318Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:39:11.408992397Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:39:12.373741668Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:39:12.401319788Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.433759882Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.502249848Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoeinstance2","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:40:16.0230592+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest","name":"angoetest","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:37:50.84","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:37:12.099594381Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:37:12.099650784Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:37:12.099825693Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:37:12.099933499Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:37:12.130304279Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:37:12.130425186Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:37:12.13158905Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:37:12.134892833Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:37:12.139219872Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens/angoetest\\nts=2020-10-07T06:37:12.15582549Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:37:12.156315617Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:37:12.159576298Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:37:12.159684204Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:37:12.171624664Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:37:12.184101954Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:37:12.577849228Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:37:13.210943337Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.247096836Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.319104918Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoetestinstance","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:38:15.7881764+00:00"}}],"nextLink":null}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '41361' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:21 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding,Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"properties": {"repositoryUrl": "git://github.com/anubhav929/flux-get-started", - "operatorNamespace": "cli-test-config1028a-opns", "operatorInstanceName": "cli-test-config1028a-opin", - "operatorType": "flux", "operatorParams": "--git-readonly ", "configurationProtectedSettings": - {"sshPrivateKey": "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUFxZlBtNlc3YkVLTmVvN3VCQzhTMXYydUpPS1NZWGNmanlpVEk2djNkZUhRSjJtMGFRajB0CmtwM05qMUZkRUsrMkVXTy9xNGFkWUpaS0ZZSjluWTZyREZOSXBZdmVWaVNUQjhITzI5VVdySTRLVGZMRGhiVmVCV0pjQVcKMkFpZ0ZnTU5qdTZXa0JVL1NWK1FCVHJiRVl6RFhpOTVNR1ZveTVKV3drdkdtakRaOHFSaEFxbU0rdUF4S1I4Z1lyRllPZgpRbC9zM2I5ajJKQ1VtVFlwYkxqMkJPd0JNQ1J3NlFQY0lVcVlaaUl3MUNNaXZKZ2tVQTdwUlRCZHVsYXlXNWQ2MTl4RFNsCmZ6N1JuU0tKM3RwanEwZThBTmtkU1h4SjQrMXhpNm5IM0lVY1ZBM1NzcVhWam80ak5sNU5EWkJlTDNpQ0xXSVZYUkpDemsKNGg3a2pXVkQ3UnNDNGJDOTF6MzlZMDlnK3ZIdjErZFplUmNYZWIvNkFzbTBEeHVhRGo2cVVCVm9JOWkwbzFKbndiMnA0MQpGV2prazljc054a2dnajMzU3ozTWJRTVN0bTFLaWU2bHNRamlMUXdGT3Qwd3lFTnova2RUR25idkVMUTN3aWdUdVFrelFOCnlMR2dmK3FXZnhqL1l1MWt5b0xrQVpqT3JxdEttalVILzk3Y3lncWhBQUFGa08zNi9uWHQrdjUxQUFBQUIzTnphQzF5YzIKRUFBQUdCQUtuejV1bHUyeENqWHFPN2dRdkV0YjlyaVRpa21GM0g0OG9reU9yOTNYaDBDZHB0R2tJOUxaS2R6WTlSWFJDdgp0aEZqdjZ1R25XQ1dTaFdDZloyT3F3eFRTS1dMM2xZa2t3ZkJ6dHZWRnF5T0NrM3l3NFcxWGdWaVhBRnRnSW9CWUREWTd1CmxwQVZQMGxma0FVNjJ4R013MTR2ZVRCbGFNdVNWc0pMeHBvdzJmS2tZUUtwalByZ01Ta2ZJR0t4V0RuMEpmN04yL1k5aVEKbEprMktXeTQ5Z1RzQVRBa2NPa0QzQ0ZLbUdZaU1OUWpJcnlZSkZBTzZVVXdYYnBXc2x1WGV0ZmNRMHBYOCswWjBpaWQ3YQpZNnRIdkFEWkhVbDhTZVB0Y1l1cHg5eUZIRlFOMHJLbDFZNk9JelplVFEyUVhpOTRnaTFpRlYwU1FzNU9JZTVJMWxRKzBiCkF1R3d2ZGM5L1dOUFlQcng3OWZuV1hrWEYzbS8rZ0xKdEE4Ym1nNCtxbEFWYUNQWXRLTlNaOEc5cWVOUlZvNUpQWExEY1oKSUlJOTkwczl6RzBERXJadFNvbnVwYkVJNGkwTUJUcmRNTWhEYy81SFV4cDI3eEMwTjhJb0U3a0pNMERjaXhvSC9xbG44WQovMkx0Wk1xQzVBR1l6cTZyU3BvMUIvL2UzTW9Lb1FBQUFBTUJBQUVBQUFHQkFKSnJUVTlqY0Z4ZlE1UHdZUGRRbS95MG10CjR3QUEwYnY0WlNOcjh0dy9hWWtqeWFybnJPMWtwd3BiNkpySkpKcjZRL3Vjdi9CK3RFejhMRVQ1REViMTBKQzVlRWJ5THMKRTdnbEl5Q0Y3eWp1bnJZVkpwbzFiVEZhVWtYd24wTkdlQ2JkWHNlODdhWDFISmdQemdmZ2dhcTk2aks5ZWtKcXJzQXM4VwpGWjZWNDgrR0N3WU9LU1dpclBmdWx5b3YvQURCOVZJVzdTQ3lWek9uTGRGTWRVZXJBMjI3Y3NUaEtTZnI0MzFDQjU2SE43CmFkdnRmNnR4alV0TXBoTjV5ZVBiRmxVZS9Wb2VQY1hNdXA4OXN3V2gvd3ZScklCbytUYXo2SzQxcGFzOEVObjFyemFxL3kKRHlWelJuSGtlMGhKR2ZZelJhbzlZQm5jeHFMOCtXdDQxZFFzQUdhdlIwd3ZNSit5TFpuR0x5amVXaVZkcExjT0FWSGpIOQpITGMrTDdnaGpIZ1VidDNDWG9Wd0gyWktnelI5cmk3bU93YnorejZsN1pwWjlQalJxeU1HcTloYU5vNHVEdjJqbWhGNlZVClBMU2Q3WTczWCtWTFAvWUZqbTBlUzJUbGFRQ3E2Vms0dzJqSHVWcXorcng4SllYb2tidFZXYnFYcmg3VzF5VGk4MXVRQUEKQU1Ba0JaQzF0SThvd29SNDYvL1h1SWQxQjBGRUhGUXBvSHFuVGNSVlVKS2RXb2xJRU5tYVVtdG1UZFVicVYyNGJMa1RtZQpiWHZQdlF3LzJoVk5VVmhWbDNjays1SUZBS0hYVWJ3ZklSWE8vUVlUbFM0ZVdabkFsN0JQSzJQa080SXkvOG1zQVZKRGl4CmkvVm1oaTBYb05lSmxERU9sdzNaY084aTlRZjVSbTNEWmRHUDRha0JsYmk5ekdBWUpqRGFjM0dWdTMxK2pJVG9hUHplbysKeUFDL2svM0J5Slg4enQ1cDRHVXpsNVFKcEVHMnBpQXdJeElKZS8yK3pBMXU5dmhma0FBQURCQU5NZHdhemx5MXNpd0dXbQpJWSs4VFZMN1EwQ1pFTWxTL0VraE1YM2FNQnZYaURXd2cwVk8zKytXUDhlMWhDSUxvNmdqL0N2dFdLdGEzVlozUWFScHZ5CkhCVEp4Q205NHZQOXFPelhTRGZ0WVRrSHh1SFdQaklhb010N0YyL0srejJiZTdESmhvL0ZwMVY0U2x2R1ljWHdqaWhEaDAKbHF1bUltOEJJei9taHpjZTFKR0VMUUdJeXk4RDI0dTNtY2NhSFoxYWY1V3A5Y1VCZ09POXEwa3B1WVhEdHpPSk9UTVozUQpNUm5xdXVVM1ppRHdmRGltZzdsZktwWGkxZzFxeWZUd0FBQU1FQXpoWEdhTVdBM1pUT1hqWWhPTUhkdTk0R2RNcHNXYWo0CjBsMmZ6YzdFWTlzWEdLZ01XMllvRXk5UVNSTDRPUmNMaUFKTDRLZGdZeGZzeVdma1U1d21TbGZXNjlrb0R2WTE0LzNWbWYKZ0NTUkxvL0RnTUZtOGFNK3pUVzhWYTVpclJXWFpEeHNXb0RiNzdIZ2JZaE90M29iOEFWWUh4akk3N1k3MXlBUzhXS2xRSQpYQi9qZ01vN1BCL3BTMVVYSEhCcndxQkdwM3M5aThab0E0L2hLY0pvaEtWSDZGL0Z2Rk1jWHZTNjZOcGNUWHNWQzBVUzNkCkJVY0taNTVvUUhVcnNQQUFBQUdIQnlZWFJvYVd0eVFFeEJVRlJQVUMxU00wZFVUa2xDVXdFQwotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K"}, - "operatorScope": "namespace", "enableHelmOperator": true, "helmOperatorProperties": - {"chartVersion": "1.2.0", "chartValues": "--set git.ssh.secretName=gitops-privatekey-cli-test-config1028a-opin - --set tillerNamespace=kube-system"}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration create - Connection: - - keep-alive - Content-Length: - - '4014' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -g -n -c -u --cluster-type --scope --operator-instance-name --operator-namespace - --operator-params --git-readonly --ssh-private-key --enable-helm-operator - --helm-operator-version --helm-operator-params --set git.ssh.secretName - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a?api-version=2020-10-01-preview - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a","name":"cli-test-config1028a","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config1028a-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set - git.ssh.secretName=gitops-privatekey-cli-test-config1028a-opin --set tillerNamespace=kube-system"},"repositoryUrl":"git://github.com/anubhav929/flux-get-started","operatorInstanceName":"cli-test-config1028a-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-29T01:05:22.830957+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-29T01:05:22.8309571+00:00"}}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '1261' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:22 GMT - expires: - - '-1' - location: - - file:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration list - Connection: - - keep-alive - ParameterSetName: - - -g --cluster-name --cluster-type - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations?api-version=2020-10-01-preview - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a","name":"cli-test-config1028a","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config1028a-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set - git.ssh.secretName=gitops-privatekey-cli-test-config1028a-opin --set tillerNamespace=kube-system"},"repositoryUrl":"git://github.com/anubhav929/flux-get-started","operatorInstanceName":"cli-test-config1028a-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-29T01:05:22.830957+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-29T01:05:22.8309571+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest6","name":"angoetest6","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens6","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance6","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:36:34.3483433+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:36:34.3483434+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest5","name":"angoetest5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:21:34.5195851+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:21:34.5195852+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/httpsnoauth","name":"httpsnoauth","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"httpsno","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com","operatorInstanceName":"httpsnoauth","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-27T09:55:23.0192813+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-27T09:55:23.0192815+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave5","name":"abhave5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"abhave5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-22T20:37:16.862","message":"{\"OperatorMessage\":\"ts=2020-10-22T20:37:16.633820891Z - caller=main.go:259 version=1.20.0\\nts=2020-10-22T20:37:16.633873995Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-22T20:37:16.633924799Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-22T20:37:16.633975903Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-22T20:37:16.852907963Z caller=main.go:492 component=cluster - identity=/var/fluxd/keygen/identity\\nts=2020-10-22T20:37:16.85298777Z caller=main.go:493 - component=cluster identity.pub=\\\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk\\\"\\nts=2020-10-22T20:37:16.853032673Z caller=main.go:498 - host=https://10.0.0.1:443 version=kubernetes-v1.15.11\\nts=2020-10-22T20:37:16.853103379Z - caller=main.go:510 kubectl=/usr/local/bin/kubectl\\nts=2020-10-22T20:37:16.854420583Z - caller=main.go:527 ping=true\\nts=2020-10-22T20:37:16.856878076Z caller=main.go:666 - url=ssh://git@github.com/abhave/test.git user=Flux email=support@weave.works - signing-key= verify-signatures-mode=none sync-tag=flux state=secret readonly=true - registry-disable-scanning=false notes-ref=flux set-author=false git-secret=false - sops=false\\nts=2020-10-22T20:37:16.858137876Z caller=main.go:751 component=upstream - URL=ws://flux-logs-agent.azure-arc/abhave5/abhave5\\nts=2020-10-22T20:37:16.858406297Z - caller=main.go:803 metrics-addr=:3031\\nts=2020-10-22T20:37:16.871805053Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-22T20:37:16.873429681Z caller=main.go:795 - addr=:3030\\nts=2020-10-22T20:37:16.936767575Z caller=upstream.go:133 component=upstream - connecting=true\\nts=2020-10-22T20:37:16.960868375Z caller=upstream.go:147 - component=upstream connected=true\\nts=2020-10-22T20:37:16.9637288Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git repo has not been cloned - yet\\\"\\nts=2020-10-22T20:37:17.656511317Z caller=checkpoint.go:21 component=checkpoint - msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-22T20:42:16.9720034Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone931233241''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:47:16.979245822Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone848841838''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T20:52:16.985357337Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone893499962''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:57:16.992760764Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone460872518''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:02:16.99950127Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone473996607''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:07:17.006279719Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone504654331''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:12:17.013793071Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone761138621''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:17:17.020589638Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone660768548''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:22:17.029119174Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone846006160''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:27:17.03696857Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone223653180''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:32:17.044872854Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone685199400''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:37:17.055676803Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone204378531''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:42:17.063794432Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone934614441''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:47:17.070482647Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone652118981''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"abhave5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-22T21:48:55.9789932+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave-config","name":"abhave-config","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cluster-config","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-21T21:19:44.371","message":"{\"OperatorMessage\":\"ts=2020-10-21T20:55:46.341193251Z - caller=warming.go:162 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - auth={map[]} err=\\\"fetching previous result from cache: memcache: connect - timeout to 10.0.175.168:11211\\\"\\nts=2020-10-21T20:55:46.550889518Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/memcached/memcached - tag_count=2 to_update=2 of_which_refresh=0 of_which_missing=2\\nts=2020-10-21T20:55:46.975731581Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/memcached/memcached - successful=2 attempted=2\\nts=2020-10-21T20:55:47.109967323Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:55:49.028892017Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - successful=12 attempted=12\\nts=2020-10-21T20:55:49.147058197Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:49.493691118Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - successful=9 attempted=9\\nts=2020-10-21T20:55:49.690506374Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:50.094601708Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - successful=9 attempted=9\\nts=2020-10-21T20:55:50.236903783Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - tag_count=15 to_update=15 of_which_refresh=0 of_which_missing=15\\nts=2020-10-21T20:55:51.258140482Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - successful=15 attempted=15\\nts=2020-10-21T20:55:51.374048184Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - tag_count=50 to_update=50 of_which_refresh=0 of_which_missing=50\\nts=2020-10-21T20:55:54.680803666Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - successful=50 attempted=50\\nts=2020-10-21T20:55:54.830193198Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/metrics-server - tag_count=26 to_update=26 of_which_refresh=0 of_which_missing=26\\nts=2020-10-21T20:55:56.560190156Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/metrics-server - successful=26 attempted=26\\nts=2020-10-21T20:55:56.868738086Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azuremonitor/containerinsights/cidev - tag_count=334 to_update=334 of_which_refresh=0 of_which_missing=334\\nts=2020-10-21T20:56:16.940698958Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azuremonitor/containerinsights/cidev - successful=334 attempted=334\\nts=2020-10-21T20:56:17.062524825Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:56:17.411948365Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - successful=9 attempted=9\\nts=2020-10-21T20:56:17.762202371Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:18.686396449Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - successful=12 attempted=12\\nts=2020-10-21T20:56:18.792333469Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/fluxcd/flux - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:19.158182999Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/fluxcd/flux - successful=8 attempted=8\\nts=2020-10-21T20:56:19.285479096Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.095502908Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - successful=12 attempted=12\\nts=2020-10-21T20:56:20.197462415Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.923133103Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - successful=12 attempted=12\\nts=2020-10-21T20:56:21.031377304Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:21.670083462Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - successful=12 attempted=12\\nts=2020-10-21T20:56:21.782604398Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - tag_count=40 to_update=40 of_which_refresh=0 of_which_missing=40\\nts=2020-10-21T20:56:24.417487619Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - successful=40 attempted=40\\nts=2020-10-21T20:56:24.561991267Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - tag_count=16 to_update=16 of_which_refresh=0 of_which_missing=16\\nts=2020-10-21T20:56:25.682760683Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - successful=16 attempted=16\\nts=2020-10-21T20:56:25.793595687Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:26.312583944Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - successful=8 attempted=8\\nts=2020-10-21T20:56:26.430678718Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/coredns - tag_count=36 to_update=36 of_which_refresh=0 of_which_missing=36\\nts=2020-10-21T20:56:28.757337833Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/coredns - successful=36 attempted=36\\nts=2020-10-21T20:56:29.133456171Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - tag_count=5 to_update=5 of_which_refresh=0 of_which_missing=5\\nts=2020-10-21T20:56:29.476422504Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - successful=5 attempted=5\\nts=2020-10-21T20:56:29.693960488Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/hyperkube - tag_count=992 to_update=992 of_which_refresh=0 of_which_missing=992\\nts=2020-10-21T20:57:38.822437986Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/hyperkube - successful=992 attempted=992\\nts=2020-10-21T20:57:38.954775779Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/containernetworking/networkmonitor - tag_count=11 to_update=11 of_which_refresh=0 of_which_missing=11\\nts=2020-10-21T20:57:39.7699898Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/containernetworking/networkmonitor - successful=11 attempted=11\\nts=2020-10-21T20:57:41.176274539Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:57:41.876793553Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - successful=12 attempted=12\\nts=2020-10-21T21:00:45.10521886Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone963893524''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:05:45.110124615Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone310190047''...\\\\nload pubkey - \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": invalid format\\\\r\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-21T21:10:45.118937271Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone034259099''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:11:16.294874195Z - caller=warming.go:154 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - auth={map[]} err=\\\"Get \\\\\\\"https://mcr.microsoft.com/v2/\\\\\\\": context - deadline exceeded\\\"\\nts=2020-10-21T21:15:45.124878198Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone665815832''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"cluster-config","operatorType":"Flux","operatorScope":"cluster","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABAQCVSgqwn3NnvIXAhxYNDCEerXaXMecrH8WPTSY1h4vc4/hi8gxwd1MDciIQLKQwPJgTomqvUjFl78o+p/5LNVoBO3flh+kkDoMz6+QMg7mnEJUyTen7LaKZiWVdlr9ZLKZ1ZRqCHK4s7cDX9/W1CUoTQ1BpO14gU3AgmjePRXc9+ClsjSx7A84iJuaA1JMMpvNm0jOsdg7Vep7HQ5VWG5AdlhDfRwLZrolxfepDVXGFJnnQPhwg0RlMdfJ2Iikf0Ja0Zy6iN39p7B1ECuuKiJb1AH+lVVKksirDvsqknQ5DNYnJAsIydWNl3Q2BDN7BGfdMiDsEp/8jNfChG0spoXEP"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-21T21:20:44.1711601+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest4","name":"angoetest4","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens4","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:50:12.267","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:49:15.088216717Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:49:15.088275621Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:49:15.088326224Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:49:15.088374726Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:49:15.128443946Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:49:15.128546251Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:49:15.129910327Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:49:15.132517671Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:49:15.135734249Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens4/angoetest4\\nts=2020-10-16T17:49:15.144205419Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:49:15.156946924Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:49:15.158471209Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:49:15.159074242Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:49:15.169193203Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:49:15.192060069Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:49:15.868769151Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance4","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:50:20.5763578+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest3","name":"angoetest3","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens3","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:42:11.561","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:41:13.942341713Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:41:13.942397316Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:41:13.942478221Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:41:13.942535124Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:41:13.977053137Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:41:13.977223846Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:41:13.978668926Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:41:13.982280326Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:41:13.985110883Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens3/angoetest3\\nts=2020-10-16T17:41:13.985930728Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:41:13.986798177Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:41:13.987864736Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:41:13.991218221Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:41:14.012743014Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:41:14.017764092Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:41:14.963469096Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance3","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:42:20.5434983+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest2","name":"angoetest2","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens2","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:39:52.262","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:39:11.323325511Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:39:11.323367514Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:39:11.323403917Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:39:11.32344232Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:39:11.365286537Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:39:11.36546045Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:39:11.366748049Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:39:11.369529463Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:39:11.372627501Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens2/angoetest2\\nts=2020-10-07T06:39:11.380856834Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:39:11.381561888Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:39:11.389143471Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:39:11.389222077Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:39:11.401463318Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:39:11.408992397Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:39:12.373741668Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:39:12.401319788Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.433759882Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.502249848Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoeinstance2","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:40:16.0230592+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest","name":"angoetest","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:37:50.84","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:37:12.099594381Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:37:12.099650784Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:37:12.099825693Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:37:12.099933499Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:37:12.130304279Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:37:12.130425186Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:37:12.13158905Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:37:12.134892833Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:37:12.139219872Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens/angoetest\\nts=2020-10-07T06:37:12.15582549Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:37:12.156315617Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:37:12.159576298Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:37:12.159684204Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:37:12.171624664Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:37:12.184101954Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:37:12.577849228Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:37:13.210943337Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.247096836Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.319104918Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoetestinstance","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:38:15.7881764+00:00"}}],"nextLink":null}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '42623' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:23 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding,Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration show - Connection: - - keep-alive - ParameterSetName: - - -g -c -n --cluster-type - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a?api-version=2020-10-01-preview - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a","name":"cli-test-config1028a","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config1028a-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set - git.ssh.secretName=gitops-privatekey-cli-test-config1028a-opin --set tillerNamespace=kube-system"},"repositoryUrl":"git://github.com/anubhav929/flux-get-started","operatorInstanceName":"cli-test-config1028a-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-29T01:05:22.830957+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-29T01:05:22.8309571+00:00"}}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '1261' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:24 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding,Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration delete - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - -g -c -n --cluster-type -y - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config1028a?api-version=2020-10-01-preview - response: - body: - string: '{"version":"1.1","content":null,"statusCode":200,"reasonPhrase":"OK","headers":[],"trailingHeaders":[],"requestMessage":null,"isSuccessStatusCode":true}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '152' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:24 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-deletes: - - '14999' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - k8sconfiguration list - Connection: - - keep-alive - ParameterSetName: - - -g --cluster-name --cluster-type - User-Agent: - - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.18 msrest_azure/0.6.3 - azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python AZURECLI/2.11.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations?api-version=2020-10-01-preview - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest6","name":"angoetest6","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens6","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance6","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:36:34.3483433+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:36:34.3483434+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest5","name":"angoetest5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/test","operatorInstanceName":"angoeinstance5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-28T18:21:34.5195851+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-28T18:21:34.5195852+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/httpsnoauth","name":"httpsnoauth","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"httpsno","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com","operatorInstanceName":"httpsnoauth","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-10-27T09:55:23.0192813+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-27T09:55:23.0192815+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave5","name":"abhave5","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"abhave5","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-22T20:37:16.862","message":"{\"OperatorMessage\":\"ts=2020-10-22T20:37:16.633820891Z - caller=main.go:259 version=1.20.0\\nts=2020-10-22T20:37:16.633873995Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-22T20:37:16.633924799Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-22T20:37:16.633975903Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-22T20:37:16.852907963Z caller=main.go:492 component=cluster - identity=/var/fluxd/keygen/identity\\nts=2020-10-22T20:37:16.85298777Z caller=main.go:493 - component=cluster identity.pub=\\\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk\\\"\\nts=2020-10-22T20:37:16.853032673Z caller=main.go:498 - host=https://10.0.0.1:443 version=kubernetes-v1.15.11\\nts=2020-10-22T20:37:16.853103379Z - caller=main.go:510 kubectl=/usr/local/bin/kubectl\\nts=2020-10-22T20:37:16.854420583Z - caller=main.go:527 ping=true\\nts=2020-10-22T20:37:16.856878076Z caller=main.go:666 - url=ssh://git@github.com/abhave/test.git user=Flux email=support@weave.works - signing-key= verify-signatures-mode=none sync-tag=flux state=secret readonly=true - registry-disable-scanning=false notes-ref=flux set-author=false git-secret=false - sops=false\\nts=2020-10-22T20:37:16.858137876Z caller=main.go:751 component=upstream - URL=ws://flux-logs-agent.azure-arc/abhave5/abhave5\\nts=2020-10-22T20:37:16.858406297Z - caller=main.go:803 metrics-addr=:3031\\nts=2020-10-22T20:37:16.871805053Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-22T20:37:16.873429681Z caller=main.go:795 - addr=:3030\\nts=2020-10-22T20:37:16.936767575Z caller=upstream.go:133 component=upstream - connecting=true\\nts=2020-10-22T20:37:16.960868375Z caller=upstream.go:147 - component=upstream connected=true\\nts=2020-10-22T20:37:16.9637288Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git repo has not been cloned - yet\\\"\\nts=2020-10-22T20:37:17.656511317Z caller=checkpoint.go:21 component=checkpoint - msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-22T20:42:16.9720034Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone931233241''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:47:16.979245822Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone848841838''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T20:52:16.985357337Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone893499962''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T20:57:16.992760764Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone460872518''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:02:16.99950127Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone473996607''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:07:17.006279719Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone504654331''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:12:17.013793071Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone761138621''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:17:17.020589638Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone660768548''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:22:17.029119174Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone846006160''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:27:17.03696857Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone223653180''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:32:17.044872854Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone685199400''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:37:17.055676803Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone204378531''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-22T21:42:17.063794432Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone934614441''...\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-22T21:47:17.070482647Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone652118981''...\\\\ngit@github.com: Permission - denied (publickey).\\\\r\\\\nfatal: Could not read from remote repository.\\\\n\\\\nPlease - make sure you have the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"abhave5","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":null,"repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABgQC0DY/qH4A0enxNsiBXpkMxZpSpGIJ9AcQHdI7ac14em4NSWn+E43NT2Tbn1uuZV/vBDC+7RVbJvTBrlIc7JJQsvISFiFRdZ0NbjWYTOnq9OJ2SieVI+/q3G1yyh77fKyirBNZEYdbQaYi8t+LGxAsfRY7m60bCoz/J5esn0UVyFtRg1huy4vNEXyjqu0t4qZLXHmIAfDHCj5WkhhUlLfAyKf5VWY6t9pvcwTFZZUWLrcbsTrzzjkolOiHRMHqQq7m/2ITx4GFsMqHSOhtI0fgcLKR7j8Qcwtytr/CvC47ErZVfSSANh8US7JqncfdGRZH7TTG2CtUsZ/egHKv9RVTqARr9UMdHPBP7SxXb6/cmwSfcpOXP0bufdoF4vZkQFjlIx6PYcBAmr3Uqm/q8nRo543UfxeQgit6I6k/veHAUV3TMQfFsZsIdITaropRjJEJIzkhdNm7okWMhZB1orVoo/Dwak9JmXEwAR2NuJDJLyAODPUHkLJ8u6g2xdut2Eyk= - root@abhave5-74964fc55f-j2gbk"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-22T21:48:55.9789932+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/abhave-config","name":"abhave-config","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cluster-config","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-21T21:19:44.371","message":"{\"OperatorMessage\":\"ts=2020-10-21T20:55:46.341193251Z - caller=warming.go:162 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - auth={map[]} err=\\\"fetching previous result from cache: memcache: connect - timeout to 10.0.175.168:11211\\\"\\nts=2020-10-21T20:55:46.550889518Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/memcached/memcached - tag_count=2 to_update=2 of_which_refresh=0 of_which_missing=2\\nts=2020-10-21T20:55:46.975731581Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/memcached/memcached - successful=2 attempted=2\\nts=2020-10-21T20:55:47.109967323Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:55:49.028892017Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/fluent-bit - successful=12 attempted=12\\nts=2020-10-21T20:55:49.147058197Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:49.493691118Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/configoperator - successful=9 attempted=9\\nts=2020-10-21T20:55:49.690506374Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:55:50.094601708Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/metrics-agent - successful=9 attempted=9\\nts=2020-10-21T20:55:50.236903783Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - tag_count=15 to_update=15 of_which_refresh=0 of_which_missing=15\\nts=2020-10-21T20:55:51.258140482Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/blobfuse-flexvolume - successful=15 attempted=15\\nts=2020-10-21T20:55:51.374048184Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - tag_count=50 to_update=50 of_which_refresh=0 of_which_missing=50\\nts=2020-10-21T20:55:54.680803666Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/autoscaler/cluster-proportional-autoscaler - successful=50 attempted=50\\nts=2020-10-21T20:55:54.830193198Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/metrics-server - tag_count=26 to_update=26 of_which_refresh=0 of_which_missing=26\\nts=2020-10-21T20:55:56.560190156Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/metrics-server - successful=26 attempted=26\\nts=2020-10-21T20:55:56.868738086Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azuremonitor/containerinsights/cidev - tag_count=334 to_update=334 of_which_refresh=0 of_which_missing=334\\nts=2020-10-21T20:56:16.940698958Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azuremonitor/containerinsights/cidev - successful=334 attempted=334\\nts=2020-10-21T20:56:17.062524825Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - tag_count=9 to_update=9 of_which_refresh=0 of_which_missing=9\\nts=2020-10-21T20:56:17.411948365Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/flux-logs-agent - successful=9 attempted=9\\nts=2020-10-21T20:56:17.762202371Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:18.686396449Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/resource-sync - successful=12 attempted=12\\nts=2020-10-21T20:56:18.792333469Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/fluxcd/flux - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:19.158182999Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/fluxcd/flux - successful=8 attempted=8\\nts=2020-10-21T20:56:19.285479096Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.095502908Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/config-agent - successful=12 attempted=12\\nts=2020-10-21T20:56:20.197462415Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:20.923133103Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-metadata-operator - successful=12 attempted=12\\nts=2020-10-21T20:56:21.031377304Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:56:21.670083462Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/cluster-identity - successful=12 attempted=12\\nts=2020-10-21T20:56:21.782604398Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - tag_count=40 to_update=40 of_which_refresh=0 of_which_missing=40\\nts=2020-10-21T20:56:24.417487619Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/ip-masq-agent - successful=40 attempted=40\\nts=2020-10-21T20:56:24.561991267Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - tag_count=16 to_update=16 of_which_refresh=0 of_which_missing=16\\nts=2020-10-21T20:56:25.682760683Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/k8s/flexvolume/keyvault-flexvolume - successful=16 attempted=16\\nts=2020-10-21T20:56:25.793595687Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - tag_count=8 to_update=8 of_which_refresh=0 of_which_missing=8\\nts=2020-10-21T20:56:26.312583944Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/kube-rbac-proxy - successful=8 attempted=8\\nts=2020-10-21T20:56:26.430678718Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/coredns - tag_count=36 to_update=36 of_which_refresh=0 of_which_missing=36\\nts=2020-10-21T20:56:28.757337833Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/coredns - successful=36 attempted=36\\nts=2020-10-21T20:56:29.133456171Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - tag_count=5 to_update=5 of_which_refresh=0 of_which_missing=5\\nts=2020-10-21T20:56:29.476422504Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - successful=5 attempted=5\\nts=2020-10-21T20:56:29.693960488Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/oss/kubernetes/hyperkube - tag_count=992 to_update=992 of_which_refresh=0 of_which_missing=992\\nts=2020-10-21T20:57:38.822437986Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/oss/kubernetes/hyperkube - successful=992 attempted=992\\nts=2020-10-21T20:57:38.954775779Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/containernetworking/networkmonitor - tag_count=11 to_update=11 of_which_refresh=0 of_which_missing=11\\nts=2020-10-21T20:57:39.7699898Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/containernetworking/networkmonitor - successful=11 attempted=11\\nts=2020-10-21T20:57:41.176274539Z caller=warming.go:198 - component=warmer info=\\\"refreshing image\\\" image=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - tag_count=12 to_update=12 of_which_refresh=0 of_which_missing=12\\nts=2020-10-21T20:57:41.876793553Z - caller=warming.go:206 component=warmer updated=mcr.microsoft.com/azurearck8s/canary/stable/extensionoperator - successful=12 attempted=12\\nts=2020-10-21T21:00:45.10521886Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone963893524''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:05:45.110124615Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git clone - --mirror: fatal: Could not read from remote repository., full output:\\\\n - Cloning into bare repository ''/tmp/flux-gitclone310190047''...\\\\nload pubkey - \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": invalid format\\\\r\\\\ngit@github.com: - Permission denied (publickey).\\\\r\\\\nfatal: Could not read from remote - repository.\\\\n\\\\nPlease make sure you have the correct access rights\\\\nand - the repository exists.\\\\n\\\"\\nts=2020-10-21T21:10:45.118937271Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone034259099''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\nts=2020-10-21T21:11:16.294874195Z - caller=warming.go:154 component=warmer canonical_name=mcr.microsoft.com/azurearck8s/canary/stable/clusterconnect-agent - auth={map[]} err=\\\"Get \\\\\\\"https://mcr.microsoft.com/v2/\\\\\\\": context - deadline exceeded\\\"\\nts=2020-10-21T21:15:45.124878198Z caller=loop.go:108 - component=sync-loop err=\\\"git repo not ready: git clone --mirror: fatal: - Could not read from remote repository., full output:\\\\n Cloning into bare - repository ''/tmp/flux-gitclone665815832''...\\\\nload pubkey \\\\\\\"/etc/fluxd/ssh/identity\\\\\\\": - invalid format\\\\r\\\\ngit@github.com: Permission denied (publickey).\\\\r\\\\nfatal: - Could not read from remote repository.\\\\n\\\\nPlease make sure you have - the correct access rights\\\\nand the repository exists.\\\\n\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"git@github.com:abhave/test.git","operatorInstanceName":"cluster-config","operatorType":"Flux","operatorScope":"cluster","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":"ssh-rsa - AAAAB3NzaC1yc2EAAAADAQABAAABAQCVSgqwn3NnvIXAhxYNDCEerXaXMecrH8WPTSY1h4vc4/hi8gxwd1MDciIQLKQwPJgTomqvUjFl78o+p/5LNVoBO3flh+kkDoMz6+QMg7mnEJUyTen7LaKZiWVdlr9ZLKZ1ZRqCHK4s7cDX9/W1CUoTQ1BpO14gU3AgmjePRXc9+ClsjSx7A84iJuaA1JMMpvNm0jOsdg7Vep7HQ5VWG5AdlhDfRwLZrolxfepDVXGFJnnQPhwg0RlMdfJ2Iikf0Ja0Zy6iN39p7B1ECuuKiJb1AH+lVVKksirDvsqknQ5DNYnJAsIydWNl3Q2BDN7BGfdMiDsEp/8jNfChG0spoXEP"},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-21T21:20:44.1711601+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest4","name":"angoetest4","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens4","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:50:12.267","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:49:15.088216717Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:49:15.088275621Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:49:15.088326224Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:49:15.088374726Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:49:15.128443946Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:49:15.128546251Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:49:15.129910327Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:49:15.132517671Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:49:15.135734249Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens4/angoetest4\\nts=2020-10-16T17:49:15.144205419Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:49:15.156946924Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:49:15.158471209Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:49:15.159074242Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:49:15.169193203Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:49:15.192060069Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:49:15.868769151Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance4","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:50:20.5763578+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest3","name":"angoetest3","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens3","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-16T17:42:11.561","message":"{\"OperatorMessage\":\"ts=2020-10-16T17:41:13.942341713Z - caller=main.go:259 version=1.20.0\\nts=2020-10-16T17:41:13.942397316Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-16T17:41:13.942478221Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-16T17:41:13.942535124Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-16T17:41:13.977053137Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-16T17:41:13.977223846Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-16T17:41:13.978668926Z caller=main.go:527 - ping=true\\nts=2020-10-16T17:41:13.982280326Z caller=main.go:666 url=https://@github.com/goelankit/learn - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-16T17:41:13.985110883Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens3/angoetest3\\nts=2020-10-16T17:41:13.985930728Z - caller=upstream.go:133 component=upstream connecting=true\\nts=2020-10-16T17:41:13.986798177Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-16T17:41:13.987864736Z caller=main.go:795 - addr=:3030\\nts=2020-10-16T17:41:13.991218221Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-16T17:41:14.012743014Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-16T17:41:14.017764092Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-16T17:41:14.963469096Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/goelankit/learn","operatorInstanceName":"angoeinstance3","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-16T17:42:20.5434983+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest2","name":"angoetest2","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens2","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:39:52.262","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:39:11.323325511Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:39:11.323367514Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:39:11.323403917Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:39:11.32344232Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:39:11.365286537Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:39:11.36546045Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:39:11.366748049Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:39:11.369529463Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:39:11.372627501Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens2/angoetest2\\nts=2020-10-07T06:39:11.380856834Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:39:11.381561888Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:39:11.389143471Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:39:11.389222077Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:39:11.401463318Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:39:11.408992397Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:39:12.373741668Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:39:12.401319788Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.433759882Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:39:12.502249848Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoeinstance2","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:40:16.0230592+00:00"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/angoetest","name":"angoetest","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"angoens","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Installed","lastConfigApplied":"2020-10-07T06:37:50.84","message":"{\"OperatorMessage\":\"ts=2020-10-07T06:37:12.099594381Z - caller=main.go:259 version=1.20.0\\nts=2020-10-07T06:37:12.099650784Z caller=main.go:284 - warning=\\\"--git-readonly prevents use of --sync-state=git. Forcing to --sync-state=secret\\\"\\nts=2020-10-07T06:37:12.099825693Z - caller=main.go:303 warning=\\\"configuring any of {git-user} has no effect - when --git-readonly is set\\\"\\nts=2020-10-07T06:37:12.099933499Z caller=main.go:412 - msg=\\\"using kube config: \\\\\\\"/root/.kube/config\\\\\\\" to connect to - the cluster\\\"\\nts=2020-10-07T06:37:12.130304279Z caller=main.go:498 host=https://10.0.0.1:443 - version=kubernetes-v1.15.11\\nts=2020-10-07T06:37:12.130425186Z caller=main.go:510 - kubectl=/usr/local/bin/kubectl\\nts=2020-10-07T06:37:12.13158905Z caller=main.go:527 - ping=true\\nts=2020-10-07T06:37:12.134892833Z caller=main.go:666 url=https://@github.com/openconfig/public.git - user=Flux email=support@weave.works signing-key= verify-signatures-mode=none - sync-tag=flux state=secret readonly=true registry-disable-scanning=false notes-ref=flux - set-author=false git-secret=false sops=false\\nts=2020-10-07T06:37:12.139219872Z - caller=main.go:751 component=upstream URL=ws://flux-logs-agent.azure-arc/angoens/angoetest\\nts=2020-10-07T06:37:12.15582549Z - caller=loop.go:62 component=sync-loop info=\\\"Repo is read-only; no image - updates will be attempted\\\"\\nts=2020-10-07T06:37:12.156315617Z caller=upstream.go:133 - component=upstream connecting=true\\nts=2020-10-07T06:37:12.159576298Z caller=main.go:795 - addr=:3030\\nts=2020-10-07T06:37:12.159684204Z caller=main.go:803 metrics-addr=:3031\\nts=2020-10-07T06:37:12.171624664Z - caller=upstream.go:147 component=upstream connected=true\\nts=2020-10-07T06:37:12.184101954Z - caller=loop.go:108 component=sync-loop err=\\\"git repo not ready: git repo - has not been cloned yet\\\"\\nts=2020-10-07T06:37:12.577849228Z caller=checkpoint.go:21 - component=checkpoint msg=\\\"update available\\\" latest=1.20.1 URL=https://github.com/fluxcd/flux/releases/tag/1.20.1\\nts=2020-10-07T06:37:13.210943337Z - caller=loop.go:134 component=sync-loop event=refreshed url=https://@github.com/openconfig/public.git - branch=master HEAD=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.247096836Z - caller=sync.go:60 component=daemon info=\\\"trying to sync git changes to - the cluster\\\" old= new=c8ea7bbd5e89d14808a8b072d0eb567836d708e1\\nts=2020-10-07T06:37:13.319104918Z - caller=loop.go:108 component=sync-loop err=\\\"loading resources from repo: - parsing YAML doc from \\\\\\\"release/models/acl/.spec.yml\\\\\\\": yaml: - unmarshal errors:\\\\n line 1: cannot unmarshal !!seq into resource.baseObject\\\"\\n\",\"ClusterState\":\"{\\\"flux-operator\\\":\\\"Successfully - installed the operator\\\",\\\"helm-operator\\\":\\\"Downloading client succeeded - \\\"}\",\"LastGitCommitInformation\":\"\",\"MostRecentEventsFromFlux\":[],\"ErrorsInTheLastSynced\":\"\"}","messageLevel":3},"enableHelmOperator":false,"repositoryUrl":"https://github.com/openconfig/public.git","operatorInstanceName":"angoetestinstance","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"0001-01-01T00:00:00+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-10-07T06:38:15.7881764+00:00"}}],"nextLink":null}' - headers: - api-supported-versions: - - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview - cache-control: - - no-cache - content-length: - - '41361' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 29 Oct 2020 01:05:25 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - openresty/1.15.8.2 - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding,Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -version: 1 diff --git a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration_success.yaml b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration_success.yaml new file mode 100644 index 0000000000..ed81e6eb4c --- /dev/null +++ b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/recordings/test_k8sconfiguration_success.yaml @@ -0,0 +1,449 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration show + Connection: + - keep-alive + ParameterSetName: + - -g -c -n --cluster-type + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10?api-version=2020-10-01-preview + response: + body: + string: '{"code":"ResourceNotFound","message":"SourceControlConfiguration with + name ''cli-test-config10'' not found."}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '107' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:52:15 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 404 + message: Not Found +- request: + body: '{"properties": {"repositoryUrl": "git://github.com/anubhav929/flux-get-started", + "operatorNamespace": "cli-test-config10-opns", "operatorInstanceName": "cli-test-config10-opin", + "operatorType": "flux", "operatorParams": "--git-readonly ", "configurationProtectedSettings": + {"sshPrivateKey": "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUFxZlBtNlc3YkVLTmVvN3VCQzhTMXYydUpPS1NZWGNmanlpVEk2djNkZUhRSjJtMGFRajB0CmtwM05qMUZkRUsrMkVXTy9xNGFkWUpaS0ZZSjluWTZyREZOSXBZdmVWaVNUQjhITzI5VVdySTRLVGZMRGhiVmVCV0pjQVcKMkFpZ0ZnTU5qdTZXa0JVL1NWK1FCVHJiRVl6RFhpOTVNR1ZveTVKV3drdkdtakRaOHFSaEFxbU0rdUF4S1I4Z1lyRllPZgpRbC9zM2I5ajJKQ1VtVFlwYkxqMkJPd0JNQ1J3NlFQY0lVcVlaaUl3MUNNaXZKZ2tVQTdwUlRCZHVsYXlXNWQ2MTl4RFNsCmZ6N1JuU0tKM3RwanEwZThBTmtkU1h4SjQrMXhpNm5IM0lVY1ZBM1NzcVhWam80ak5sNU5EWkJlTDNpQ0xXSVZYUkpDemsKNGg3a2pXVkQ3UnNDNGJDOTF6MzlZMDlnK3ZIdjErZFplUmNYZWIvNkFzbTBEeHVhRGo2cVVCVm9JOWkwbzFKbndiMnA0MQpGV2prazljc054a2dnajMzU3ozTWJRTVN0bTFLaWU2bHNRamlMUXdGT3Qwd3lFTnova2RUR25idkVMUTN3aWdUdVFrelFOCnlMR2dmK3FXZnhqL1l1MWt5b0xrQVpqT3JxdEttalVILzk3Y3lncWhBQUFGa08zNi9uWHQrdjUxQUFBQUIzTnphQzF5YzIKRUFBQUdCQUtuejV1bHUyeENqWHFPN2dRdkV0YjlyaVRpa21GM0g0OG9reU9yOTNYaDBDZHB0R2tJOUxaS2R6WTlSWFJDdgp0aEZqdjZ1R25XQ1dTaFdDZloyT3F3eFRTS1dMM2xZa2t3ZkJ6dHZWRnF5T0NrM3l3NFcxWGdWaVhBRnRnSW9CWUREWTd1CmxwQVZQMGxma0FVNjJ4R013MTR2ZVRCbGFNdVNWc0pMeHBvdzJmS2tZUUtwalByZ01Ta2ZJR0t4V0RuMEpmN04yL1k5aVEKbEprMktXeTQ5Z1RzQVRBa2NPa0QzQ0ZLbUdZaU1OUWpJcnlZSkZBTzZVVXdYYnBXc2x1WGV0ZmNRMHBYOCswWjBpaWQ3YQpZNnRIdkFEWkhVbDhTZVB0Y1l1cHg5eUZIRlFOMHJLbDFZNk9JelplVFEyUVhpOTRnaTFpRlYwU1FzNU9JZTVJMWxRKzBiCkF1R3d2ZGM5L1dOUFlQcng3OWZuV1hrWEYzbS8rZ0xKdEE4Ym1nNCtxbEFWYUNQWXRLTlNaOEc5cWVOUlZvNUpQWExEY1oKSUlJOTkwczl6RzBERXJadFNvbnVwYkVJNGkwTUJUcmRNTWhEYy81SFV4cDI3eEMwTjhJb0U3a0pNMERjaXhvSC9xbG44WQovMkx0Wk1xQzVBR1l6cTZyU3BvMUIvL2UzTW9Lb1FBQUFBTUJBQUVBQUFHQkFKSnJUVTlqY0Z4ZlE1UHdZUGRRbS95MG10CjR3QUEwYnY0WlNOcjh0dy9hWWtqeWFybnJPMWtwd3BiNkpySkpKcjZRL3Vjdi9CK3RFejhMRVQ1REViMTBKQzVlRWJ5THMKRTdnbEl5Q0Y3eWp1bnJZVkpwbzFiVEZhVWtYd24wTkdlQ2JkWHNlODdhWDFISmdQemdmZ2dhcTk2aks5ZWtKcXJzQXM4VwpGWjZWNDgrR0N3WU9LU1dpclBmdWx5b3YvQURCOVZJVzdTQ3lWek9uTGRGTWRVZXJBMjI3Y3NUaEtTZnI0MzFDQjU2SE43CmFkdnRmNnR4alV0TXBoTjV5ZVBiRmxVZS9Wb2VQY1hNdXA4OXN3V2gvd3ZScklCbytUYXo2SzQxcGFzOEVObjFyemFxL3kKRHlWelJuSGtlMGhKR2ZZelJhbzlZQm5jeHFMOCtXdDQxZFFzQUdhdlIwd3ZNSit5TFpuR0x5amVXaVZkcExjT0FWSGpIOQpITGMrTDdnaGpIZ1VidDNDWG9Wd0gyWktnelI5cmk3bU93YnorejZsN1pwWjlQalJxeU1HcTloYU5vNHVEdjJqbWhGNlZVClBMU2Q3WTczWCtWTFAvWUZqbTBlUzJUbGFRQ3E2Vms0dzJqSHVWcXorcng4SllYb2tidFZXYnFYcmg3VzF5VGk4MXVRQUEKQU1Ba0JaQzF0SThvd29SNDYvL1h1SWQxQjBGRUhGUXBvSHFuVGNSVlVKS2RXb2xJRU5tYVVtdG1UZFVicVYyNGJMa1RtZQpiWHZQdlF3LzJoVk5VVmhWbDNjays1SUZBS0hYVWJ3ZklSWE8vUVlUbFM0ZVdabkFsN0JQSzJQa080SXkvOG1zQVZKRGl4CmkvVm1oaTBYb05lSmxERU9sdzNaY084aTlRZjVSbTNEWmRHUDRha0JsYmk5ekdBWUpqRGFjM0dWdTMxK2pJVG9hUHplbysKeUFDL2svM0J5Slg4enQ1cDRHVXpsNVFKcEVHMnBpQXdJeElKZS8yK3pBMXU5dmhma0FBQURCQU5NZHdhemx5MXNpd0dXbQpJWSs4VFZMN1EwQ1pFTWxTL0VraE1YM2FNQnZYaURXd2cwVk8zKytXUDhlMWhDSUxvNmdqL0N2dFdLdGEzVlozUWFScHZ5CkhCVEp4Q205NHZQOXFPelhTRGZ0WVRrSHh1SFdQaklhb010N0YyL0srejJiZTdESmhvL0ZwMVY0U2x2R1ljWHdqaWhEaDAKbHF1bUltOEJJei9taHpjZTFKR0VMUUdJeXk4RDI0dTNtY2NhSFoxYWY1V3A5Y1VCZ09POXEwa3B1WVhEdHpPSk9UTVozUQpNUm5xdXVVM1ppRHdmRGltZzdsZktwWGkxZzFxeWZUd0FBQU1FQXpoWEdhTVdBM1pUT1hqWWhPTUhkdTk0R2RNcHNXYWo0CjBsMmZ6YzdFWTlzWEdLZ01XMllvRXk5UVNSTDRPUmNMaUFKTDRLZGdZeGZzeVdma1U1d21TbGZXNjlrb0R2WTE0LzNWbWYKZ0NTUkxvL0RnTUZtOGFNK3pUVzhWYTVpclJXWFpEeHNXb0RiNzdIZ2JZaE90M29iOEFWWUh4akk3N1k3MXlBUzhXS2xRSQpYQi9qZ01vN1BCL3BTMVVYSEhCcndxQkdwM3M5aThab0E0L2hLY0pvaEtWSDZGL0Z2Rk1jWHZTNjZOcGNUWHNWQzBVUzNkCkJVY0taNTVvUUhVcnNQQUFBQUdIQnlZWFJvYVd0eVFFeEJVRlJQVUMxU00wZFVUa2xDVXdFQwotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K"}, + "operatorScope": "namespace", "sshKnownHostsContents": "Z2l0b3BzLWJpdGJ1Y2tldC10ZXN0LXNlcnZlci5lYXN0dXMuY2xvdWRhcHAuYXp1cmUuY29tIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQytNT0w3bjk2aGs3emVmMDNwak9vMGF3UENISkZ4NU04TjJ2L2tvODgvc202Y2VzOFljdnYyL0hoUlhRSFZHRUxqZjNuTXVGSVJPMEdMdTFabFNreGRUTUhGcXBxYzFjcUM2R3kveUJXRGM1SWFwWnJBMXFxeSsrZVdpelAzQXdMbWsrMUhXWGdtcHljZUtYNU9vd3VNT3cwd3RYRUdTcDhtVk0wV2VpUzEwWnZ5ZVVKK04zbkNvczMyWDhIeVpnc1pMUS9zSTB4NXN6ODQ2am5JZEFOckZsYU9MUTJ1ejRUa0M2ekNvd3lIdzlLWXJ5V2hJZDAraCt5SXQ5dUtqVHZsWFNpdm1ISjViZzdUWWlkbnFtbjI0UGE4WnFpbTE5UGszUjg0cW9qclVmYm1XT3VwUjdYNXZVVWZqYzhERFRxa3FnRmkxcWdVdE1mWGlMRXErZFVa", + "enableHelmOperator": true, "helmOperatorProperties": {"chartVersion": "1.2.0", + "chartValues": "--set git.ssh.secretName=gitops-privatekey-cli-test-config10-opin + --set tillerNamespace=kube-system"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration create + Connection: + - keep-alive + Content-Length: + - '4614' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n -c -u --cluster-type --scope --operator-instance-name --operator-namespace + --operator-params --git-readonly --ssh-private-key --ssh-known-hosts --enable-helm-operator + --helm-operator-version --helm-operator-params --set git.ssh.secretName + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10?api-version=2020-10-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10","name":"cli-test-config10","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config10-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00+00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":"Information"},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set + git.ssh.secretName=gitops-privatekey-cli-test-config10-opin --set tillerNamespace=kube-system"},"repositoryUrl":"git://github.com/anubhav929/flux-get-started","operatorInstanceName":"cli-test-config10-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"Z2l0b3BzLWJpdGJ1Y2tldC10ZXN0LXNlcnZlci5lYXN0dXMuY2xvdWRhcHAuYXp1cmUuY29tIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQytNT0w3bjk2aGs3emVmMDNwak9vMGF3UENISkZ4NU04TjJ2L2tvODgvc202Y2VzOFljdnYyL0hoUlhRSFZHRUxqZjNuTXVGSVJPMEdMdTFabFNreGRUTUhGcXBxYzFjcUM2R3kveUJXRGM1SWFwWnJBMXFxeSsrZVdpelAzQXdMbWsrMUhXWGdtcHljZUtYNU9vd3VNT3cwd3RYRUdTcDhtVk0wV2VpUzEwWnZ5ZVVKK04zbkNvczMyWDhIeVpnc1pMUS9zSTB4NXN6ODQ2am5JZEFOckZsYU9MUTJ1ejRUa0M2ekNvd3lIdzlLWXJ5V2hJZDAraCt5SXQ5dUtqVHZsWFNpdm1ISjViZzdUWWlkbnFtbjI0UGE4WnFpbTE5UGszUjg0cW9qclVmYm1XT3VwUjdYNXZVVWZqYzhERFRxa3FnRmkxcWdVdE1mWGlMRXErZFVa","configurationProtectedSettings":{},"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-12-07T16:52:21.7235872+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-12-07T16:52:21.7235874+00:00"}}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '1879' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:52:21 GMT + expires: + - '-1' + location: + - file:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10 + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration show + Connection: + - keep-alive + ParameterSetName: + - -g -c -n --cluster-type + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10?api-version=2020-10-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10","name":"cli-test-config10","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config10-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00+00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":"Information"},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set + git.ssh.secretName=gitops-privatekey-cli-test-config10-opin --set tillerNamespace=kube-system"},"repositoryUrl":"git://github.com/anubhav929/flux-get-started","operatorInstanceName":"cli-test-config10-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"Z2l0b3BzLWJpdGJ1Y2tldC10ZXN0LXNlcnZlci5lYXN0dXMuY2xvdWRhcHAuYXp1cmUuY29tIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQytNT0w3bjk2aGs3emVmMDNwak9vMGF3UENISkZ4NU04TjJ2L2tvODgvc202Y2VzOFljdnYyL0hoUlhRSFZHRUxqZjNuTXVGSVJPMEdMdTFabFNreGRUTUhGcXBxYzFjcUM2R3kveUJXRGM1SWFwWnJBMXFxeSsrZVdpelAzQXdMbWsrMUhXWGdtcHljZUtYNU9vd3VNT3cwd3RYRUdTcDhtVk0wV2VpUzEwWnZ5ZVVKK04zbkNvczMyWDhIeVpnc1pMUS9zSTB4NXN6ODQ2am5JZEFOckZsYU9MUTJ1ejRUa0M2ekNvd3lIdzlLWXJ5V2hJZDAraCt5SXQ5dUtqVHZsWFNpdm1ISjViZzdUWWlkbnFtbjI0UGE4WnFpbTE5UGszUjg0cW9qclVmYm1XT3VwUjdYNXZVVWZqYzhERFRxa3FnRmkxcWdVdE1mWGlMRXErZFVa","configurationProtectedSettings":{},"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-12-07T16:52:21.7235872+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-12-07T16:52:21.7235874+00:00"}}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '1879' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:52:26 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g -c -n --cluster-type -y + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config10?api-version=2020-10-01-preview + response: + body: + string: '{"version":"1.1","content":null,"statusCode":200,"reasonPhrase":"OK","headers":[],"trailingHeaders":[],"requestMessage":null,"isSuccessStatusCode":true}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '152' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:52:53 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration show + Connection: + - keep-alive + ParameterSetName: + - -g -c -n --cluster-type + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11?api-version=2020-10-01-preview + response: + body: + string: '{"code":"ResourceNotFound","message":"SourceControlConfiguration with + name ''cli-test-config11'' not found."}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '107' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:52:58 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 404 + message: Not Found +- request: + body: '{"properties": {"repositoryUrl": "https://github.com/jonathan-innis/helm-operator-get-started-private.git", + "operatorNamespace": "cli-test-config11-opns", "operatorInstanceName": "cli-test-config11-opin", + "operatorType": "flux", "operatorParams": "--git-readonly ", "configurationProtectedSettings": + {"httpsUser": "ZmFrZS11c2VybmFtZQ==", "httpsKey": "ZmFrZXBhc3N3b3JkdGhhdGl3b3VsZHVzZWZvcmdpdGh1Yg=="}, + "operatorScope": "namespace", "sshKnownHostsContents": "", "enableHelmOperator": + true, "helmOperatorProperties": {"chartVersion": "1.2.0", "chartValues": "--set + tillerNamespace=kube-system"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration create + Connection: + - keep-alive + Content-Length: + - '595' + Content-Type: + - application/json; charset=utf-8 + ParameterSetName: + - -g -n -c -u --cluster-type --scope --operator-instance-name --operator-namespace + --operator-params --git-readonly --https-user --https-key --enable-helm-operator + --helm-operator-version --helm-operator-params --set tillerNamespace + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11?api-version=2020-10-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11","name":"cli-test-config11","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config11-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00+00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":"Information"},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set + tillerNamespace=kube-system"},"repositoryUrl":"https://github.com/jonathan-innis/helm-operator-get-started-private.git","operatorInstanceName":"cli-test-config11-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","configurationProtectedSettings":{},"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-12-07T16:53:03.0028135+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-12-07T16:53:03.0028136+00:00"}}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '1260' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:53:02 GMT + expires: + - '-1' + location: + - file:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11 + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-writes: + - '1199' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration show + Connection: + - keep-alive + ParameterSetName: + - -g -c -n --cluster-type + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11?api-version=2020-10-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11","name":"cli-test-config11","type":"Microsoft.KubernetesConfiguration/sourceControlConfigurations","properties":{"operatorNamespace":"cli-test-config11-opns","provisioningState":"Succeeded","complianceStatus":{"complianceState":"Pending","lastConfigApplied":"0001-01-01T00:00:00+00:00","message":"{\"OperatorMessage\":null,\"ClusterState\":null}","messageLevel":"Information"},"enableHelmOperator":true,"helmOperatorProperties":{"chartVersion":"1.2.0","chartValues":"--set + tillerNamespace=kube-system"},"repositoryUrl":"https://github.com/jonathan-innis/helm-operator-get-started-private.git","operatorInstanceName":"cli-test-config11-opin","operatorType":"Flux","operatorScope":"namespace","operatorParams":"--git-readonly","sshKnownHostsContents":"","configurationProtectedSettings":{},"repositoryPublicKey":""},"systemData":{"createdBy":null,"createdByType":null,"createdAt":"2020-12-07T16:53:03.0028135+00:00","lastModifiedBy":null,"lastModifiedByType":null,"lastModifiedAt":"2020-12-07T16:53:03.0028136+00:00"}}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '1260' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:53:06 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding,Accept-Encoding + x-content-type-options: + - nosniff + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - k8sconfiguration delete + Connection: + - keep-alive + Content-Length: + - '0' + ParameterSetName: + - -g -c -n --cluster-type -y + User-Agent: + - python/3.8.5 (Linux-4.19.128-microsoft-standard-x86_64-with-glibc2.29) msrest/0.6.19 + msrest_azure/0.6.4 azure-mgmt-kubernetesconfiguration/0.2.0 Azure-SDK-For-Python + AZURECLI/2.15.1 + accept-language: + - en-US + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/nanthirg0923/providers/Microsoft.Kubernetes/connectedClusters/nanthicluster0923/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/cli-test-config11?api-version=2020-10-01-preview + response: + body: + string: '{"version":"1.1","content":null,"statusCode":200,"reasonPhrase":"OK","headers":[],"trailingHeaders":[],"requestMessage":null,"isSuccessStatusCode":true}' + headers: + api-supported-versions: + - 2019-11-01-Preview, 2020-07-01-Preview, 2020-10-01-Preview + cache-control: + - no-cache + content-length: + - '152' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 07 Dec 2020 16:53:13 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - openresty/1.15.8.2 + strict-transport-security: + - max-age=31536000; includeSubDomains + transfer-encoding: + - chunked + vary: + - Accept-Encoding + x-content-type-options: + - nosniff + x-ms-ratelimit-remaining-subscription-deletes: + - '14999' + status: + code: 200 + message: OK +version: 1 diff --git a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_kubernetesconfiguration_scenario.py b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_kubernetesconfiguration_scenario.py index d05b06467f..7d1b01c942 100644 --- a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_kubernetesconfiguration_scenario.py +++ b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_kubernetesconfiguration_scenario.py @@ -1,81 +1,138 @@ -# -------------------------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# -------------------------------------------------------------------------------------------- - -import os - -from azure.cli.testsdk import (ScenarioTest, ResourceGroupPreparer, record_only) - -TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) - - -class K8sconfigurationScenarioTest(ScenarioTest): - - @ResourceGroupPreparer(name_prefix='cli_test_k8sconfiguration') - @record_only() - def test_k8sconfiguration(self): - self.kwargs.update({ - 'name': 'cli-test-config1028a', - 'cluster_name': 'nanthicluster0923', - 'rg': 'nanthirg0923', - 'repo_url': 'git://github.com/anubhav929/flux-get-started', - 'operator_instance_name': 'cli-test-config1028a-opin', - 'operator_namespace': 'cli-test-config1028a-opns', - 'cluster_type': 'connectedClusters', - 'scope': 'namespace' - }) - - # List Configurations and get the count - config_count = len(self.cmd('k8sconfiguration list -g {rg} --cluster-name {cluster_name} ' - '--cluster-type {cluster_type}').get_output_in_json()) - self.greater_than(config_count, 10) - - # Create a configuration - self.cmd(''' k8sconfiguration create -g {rg} - -n {name} - -c {cluster_name} - -u {repo_url} - --cluster-type {cluster_type} - --scope {scope} - --operator-instance-name {operator_instance_name} - --operator-namespace {operator_namespace} - --operator-params \"--git-readonly \" - --ssh-private-key \"LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUFxZlBtNlc3YkVLTmVvN3VCQzhTMXYydUpPS1NZWGNmanlpVEk2djNkZUhRSjJtMGFRajB0CmtwM05qMUZkRUsrMkVXTy9xNGFkWUpaS0ZZSjluWTZyREZOSXBZdmVWaVNUQjhITzI5VVdySTRLVGZMRGhiVmVCV0pjQVcKMkFpZ0ZnTU5qdTZXa0JVL1NWK1FCVHJiRVl6RFhpOTVNR1ZveTVKV3drdkdtakRaOHFSaEFxbU0rdUF4S1I4Z1lyRllPZgpRbC9zM2I5ajJKQ1VtVFlwYkxqMkJPd0JNQ1J3NlFQY0lVcVlaaUl3MUNNaXZKZ2tVQTdwUlRCZHVsYXlXNWQ2MTl4RFNsCmZ6N1JuU0tKM3RwanEwZThBTmtkU1h4SjQrMXhpNm5IM0lVY1ZBM1NzcVhWam80ak5sNU5EWkJlTDNpQ0xXSVZYUkpDemsKNGg3a2pXVkQ3UnNDNGJDOTF6MzlZMDlnK3ZIdjErZFplUmNYZWIvNkFzbTBEeHVhRGo2cVVCVm9JOWkwbzFKbndiMnA0MQpGV2prazljc054a2dnajMzU3ozTWJRTVN0bTFLaWU2bHNRamlMUXdGT3Qwd3lFTnova2RUR25idkVMUTN3aWdUdVFrelFOCnlMR2dmK3FXZnhqL1l1MWt5b0xrQVpqT3JxdEttalVILzk3Y3lncWhBQUFGa08zNi9uWHQrdjUxQUFBQUIzTnphQzF5YzIKRUFBQUdCQUtuejV1bHUyeENqWHFPN2dRdkV0YjlyaVRpa21GM0g0OG9reU9yOTNYaDBDZHB0R2tJOUxaS2R6WTlSWFJDdgp0aEZqdjZ1R25XQ1dTaFdDZloyT3F3eFRTS1dMM2xZa2t3ZkJ6dHZWRnF5T0NrM3l3NFcxWGdWaVhBRnRnSW9CWUREWTd1CmxwQVZQMGxma0FVNjJ4R013MTR2ZVRCbGFNdVNWc0pMeHBvdzJmS2tZUUtwalByZ01Ta2ZJR0t4V0RuMEpmN04yL1k5aVEKbEprMktXeTQ5Z1RzQVRBa2NPa0QzQ0ZLbUdZaU1OUWpJcnlZSkZBTzZVVXdYYnBXc2x1WGV0ZmNRMHBYOCswWjBpaWQ3YQpZNnRIdkFEWkhVbDhTZVB0Y1l1cHg5eUZIRlFOMHJLbDFZNk9JelplVFEyUVhpOTRnaTFpRlYwU1FzNU9JZTVJMWxRKzBiCkF1R3d2ZGM5L1dOUFlQcng3OWZuV1hrWEYzbS8rZ0xKdEE4Ym1nNCtxbEFWYUNQWXRLTlNaOEc5cWVOUlZvNUpQWExEY1oKSUlJOTkwczl6RzBERXJadFNvbnVwYkVJNGkwTUJUcmRNTWhEYy81SFV4cDI3eEMwTjhJb0U3a0pNMERjaXhvSC9xbG44WQovMkx0Wk1xQzVBR1l6cTZyU3BvMUIvL2UzTW9Lb1FBQUFBTUJBQUVBQUFHQkFKSnJUVTlqY0Z4ZlE1UHdZUGRRbS95MG10CjR3QUEwYnY0WlNOcjh0dy9hWWtqeWFybnJPMWtwd3BiNkpySkpKcjZRL3Vjdi9CK3RFejhMRVQ1REViMTBKQzVlRWJ5THMKRTdnbEl5Q0Y3eWp1bnJZVkpwbzFiVEZhVWtYd24wTkdlQ2JkWHNlODdhWDFISmdQemdmZ2dhcTk2aks5ZWtKcXJzQXM4VwpGWjZWNDgrR0N3WU9LU1dpclBmdWx5b3YvQURCOVZJVzdTQ3lWek9uTGRGTWRVZXJBMjI3Y3NUaEtTZnI0MzFDQjU2SE43CmFkdnRmNnR4alV0TXBoTjV5ZVBiRmxVZS9Wb2VQY1hNdXA4OXN3V2gvd3ZScklCbytUYXo2SzQxcGFzOEVObjFyemFxL3kKRHlWelJuSGtlMGhKR2ZZelJhbzlZQm5jeHFMOCtXdDQxZFFzQUdhdlIwd3ZNSit5TFpuR0x5amVXaVZkcExjT0FWSGpIOQpITGMrTDdnaGpIZ1VidDNDWG9Wd0gyWktnelI5cmk3bU93YnorejZsN1pwWjlQalJxeU1HcTloYU5vNHVEdjJqbWhGNlZVClBMU2Q3WTczWCtWTFAvWUZqbTBlUzJUbGFRQ3E2Vms0dzJqSHVWcXorcng4SllYb2tidFZXYnFYcmg3VzF5VGk4MXVRQUEKQU1Ba0JaQzF0SThvd29SNDYvL1h1SWQxQjBGRUhGUXBvSHFuVGNSVlVKS2RXb2xJRU5tYVVtdG1UZFVicVYyNGJMa1RtZQpiWHZQdlF3LzJoVk5VVmhWbDNjays1SUZBS0hYVWJ3ZklSWE8vUVlUbFM0ZVdabkFsN0JQSzJQa080SXkvOG1zQVZKRGl4CmkvVm1oaTBYb05lSmxERU9sdzNaY084aTlRZjVSbTNEWmRHUDRha0JsYmk5ekdBWUpqRGFjM0dWdTMxK2pJVG9hUHplbysKeUFDL2svM0J5Slg4enQ1cDRHVXpsNVFKcEVHMnBpQXdJeElKZS8yK3pBMXU5dmhma0FBQURCQU5NZHdhemx5MXNpd0dXbQpJWSs4VFZMN1EwQ1pFTWxTL0VraE1YM2FNQnZYaURXd2cwVk8zKytXUDhlMWhDSUxvNmdqL0N2dFdLdGEzVlozUWFScHZ5CkhCVEp4Q205NHZQOXFPelhTRGZ0WVRrSHh1SFdQaklhb010N0YyL0srejJiZTdESmhvL0ZwMVY0U2x2R1ljWHdqaWhEaDAKbHF1bUltOEJJei9taHpjZTFKR0VMUUdJeXk4RDI0dTNtY2NhSFoxYWY1V3A5Y1VCZ09POXEwa3B1WVhEdHpPSk9UTVozUQpNUm5xdXVVM1ppRHdmRGltZzdsZktwWGkxZzFxeWZUd0FBQU1FQXpoWEdhTVdBM1pUT1hqWWhPTUhkdTk0R2RNcHNXYWo0CjBsMmZ6YzdFWTlzWEdLZ01XMllvRXk5UVNSTDRPUmNMaUFKTDRLZGdZeGZzeVdma1U1d21TbGZXNjlrb0R2WTE0LzNWbWYKZ0NTUkxvL0RnTUZtOGFNK3pUVzhWYTVpclJXWFpEeHNXb0RiNzdIZ2JZaE90M29iOEFWWUh4akk3N1k3MXlBUzhXS2xRSQpYQi9qZ01vN1BCL3BTMVVYSEhCcndxQkdwM3M5aThab0E0L2hLY0pvaEtWSDZGL0Z2Rk1jWHZTNjZOcGNUWHNWQzBVUzNkCkJVY0taNTVvUUhVcnNQQUFBQUdIQnlZWFJvYVd0eVFFeEJVRlJQVUMxU00wZFVUa2xDVXdFQwotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K\" - --enable-helm-operator - --helm-operator-version 1.2.0 - --helm-operator-params \"--set git.ssh.secretName=gitops-privatekey-{operator_instance_name} --set tillerNamespace=kube-system\" ''', - checks=[ - self.check('name', '{name}'), - self.check('resourceGroup', '{rg}'), - self.check('operatorInstanceName', '{operator_instance_name}'), - self.check('operatorNamespace', '{operator_namespace}'), - self.check('provisioningState', 'Succeeded'), - self.check('operatorScope', 'namespace'), - self.check('operatorType', 'Flux') - ]) - - # List the configurations again to see if we have one additional - new_count = len(self.cmd('k8sconfiguration list -g {rg} --cluster-name {cluster_name} ' - '--cluster-type {cluster_type}').get_output_in_json()) - self.assertEqual(new_count, config_count + 1) - - # Get the configuration created - self.cmd('k8sconfiguration show -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type}', - checks=[ - self.check('name', '{name}'), - self.check('resourceGroup', '{rg}'), - self.check('operatorInstanceName', '{operator_instance_name}'), - self.check('operatorNamespace', '{operator_namespace}'), - self.check('provisioningState', 'Succeeded'), - self.check('operatorScope', 'namespace'), - self.check('operatorType', 'Flux') - ]) - - # Delete the created configuration - self.cmd('k8sconfiguration delete -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type} -y') - - # List Configurations and confirm the count is the same as we started - new_count = len(self.cmd('k8sconfiguration list -g {rg} --cluster-name {cluster_name} ' - '--cluster-type {cluster_type}').get_output_in_json()) - self.assertEqual(new_count, config_count) +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import os + +from azure.cli.testsdk import (ScenarioTest, ResourceGroupPreparer, record_only) +from azure.cli.core.azclierror import InvalidArgumentValueError, ResourceNotFoundError + +TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) + + +class K8sconfigurationScenarioTest(ScenarioTest): + @ResourceGroupPreparer(name_prefix='cli_test_k8sconfiguration') + @record_only() + def test_k8sconfiguration_success(self): + + # -------------------------------------------------------------------- + # SSH SCENARIO TEST + # -------------------------------------------------------------------- + self.kwargs.update({ + 'name': 'cli-test-config10', + 'cluster_name': 'nanthicluster0923', + 'rg': 'nanthirg0923', + 'repo_url': 'git://github.com/anubhav929/flux-get-started', + 'operator_instance_name': 'cli-test-config10-opin', + 'operator_namespace': 'cli-test-config10-opns', + 'cluster_type': 'connectedClusters', + 'scope': 'namespace', + 'ssh_private_key': 'LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUFxZlBtNlc3YkVLTmVvN3VCQzhTMXYydUpPS1NZWGNmanlpVEk2djNkZUhRSjJtMGFRajB0CmtwM05qMUZkRUsrMkVXTy9xNGFkWUpaS0ZZSjluWTZyREZOSXBZdmVWaVNUQjhITzI5VVdySTRLVGZMRGhiVmVCV0pjQVcKMkFpZ0ZnTU5qdTZXa0JVL1NWK1FCVHJiRVl6RFhpOTVNR1ZveTVKV3drdkdtakRaOHFSaEFxbU0rdUF4S1I4Z1lyRllPZgpRbC9zM2I5ajJKQ1VtVFlwYkxqMkJPd0JNQ1J3NlFQY0lVcVlaaUl3MUNNaXZKZ2tVQTdwUlRCZHVsYXlXNWQ2MTl4RFNsCmZ6N1JuU0tKM3RwanEwZThBTmtkU1h4SjQrMXhpNm5IM0lVY1ZBM1NzcVhWam80ak5sNU5EWkJlTDNpQ0xXSVZYUkpDemsKNGg3a2pXVkQ3UnNDNGJDOTF6MzlZMDlnK3ZIdjErZFplUmNYZWIvNkFzbTBEeHVhRGo2cVVCVm9JOWkwbzFKbndiMnA0MQpGV2prazljc054a2dnajMzU3ozTWJRTVN0bTFLaWU2bHNRamlMUXdGT3Qwd3lFTnova2RUR25idkVMUTN3aWdUdVFrelFOCnlMR2dmK3FXZnhqL1l1MWt5b0xrQVpqT3JxdEttalVILzk3Y3lncWhBQUFGa08zNi9uWHQrdjUxQUFBQUIzTnphQzF5YzIKRUFBQUdCQUtuejV1bHUyeENqWHFPN2dRdkV0YjlyaVRpa21GM0g0OG9reU9yOTNYaDBDZHB0R2tJOUxaS2R6WTlSWFJDdgp0aEZqdjZ1R25XQ1dTaFdDZloyT3F3eFRTS1dMM2xZa2t3ZkJ6dHZWRnF5T0NrM3l3NFcxWGdWaVhBRnRnSW9CWUREWTd1CmxwQVZQMGxma0FVNjJ4R013MTR2ZVRCbGFNdVNWc0pMeHBvdzJmS2tZUUtwalByZ01Ta2ZJR0t4V0RuMEpmN04yL1k5aVEKbEprMktXeTQ5Z1RzQVRBa2NPa0QzQ0ZLbUdZaU1OUWpJcnlZSkZBTzZVVXdYYnBXc2x1WGV0ZmNRMHBYOCswWjBpaWQ3YQpZNnRIdkFEWkhVbDhTZVB0Y1l1cHg5eUZIRlFOMHJLbDFZNk9JelplVFEyUVhpOTRnaTFpRlYwU1FzNU9JZTVJMWxRKzBiCkF1R3d2ZGM5L1dOUFlQcng3OWZuV1hrWEYzbS8rZ0xKdEE4Ym1nNCtxbEFWYUNQWXRLTlNaOEc5cWVOUlZvNUpQWExEY1oKSUlJOTkwczl6RzBERXJadFNvbnVwYkVJNGkwTUJUcmRNTWhEYy81SFV4cDI3eEMwTjhJb0U3a0pNMERjaXhvSC9xbG44WQovMkx0Wk1xQzVBR1l6cTZyU3BvMUIvL2UzTW9Lb1FBQUFBTUJBQUVBQUFHQkFKSnJUVTlqY0Z4ZlE1UHdZUGRRbS95MG10CjR3QUEwYnY0WlNOcjh0dy9hWWtqeWFybnJPMWtwd3BiNkpySkpKcjZRL3Vjdi9CK3RFejhMRVQ1REViMTBKQzVlRWJ5THMKRTdnbEl5Q0Y3eWp1bnJZVkpwbzFiVEZhVWtYd24wTkdlQ2JkWHNlODdhWDFISmdQemdmZ2dhcTk2aks5ZWtKcXJzQXM4VwpGWjZWNDgrR0N3WU9LU1dpclBmdWx5b3YvQURCOVZJVzdTQ3lWek9uTGRGTWRVZXJBMjI3Y3NUaEtTZnI0MzFDQjU2SE43CmFkdnRmNnR4alV0TXBoTjV5ZVBiRmxVZS9Wb2VQY1hNdXA4OXN3V2gvd3ZScklCbytUYXo2SzQxcGFzOEVObjFyemFxL3kKRHlWelJuSGtlMGhKR2ZZelJhbzlZQm5jeHFMOCtXdDQxZFFzQUdhdlIwd3ZNSit5TFpuR0x5amVXaVZkcExjT0FWSGpIOQpITGMrTDdnaGpIZ1VidDNDWG9Wd0gyWktnelI5cmk3bU93YnorejZsN1pwWjlQalJxeU1HcTloYU5vNHVEdjJqbWhGNlZVClBMU2Q3WTczWCtWTFAvWUZqbTBlUzJUbGFRQ3E2Vms0dzJqSHVWcXorcng4SllYb2tidFZXYnFYcmg3VzF5VGk4MXVRQUEKQU1Ba0JaQzF0SThvd29SNDYvL1h1SWQxQjBGRUhGUXBvSHFuVGNSVlVKS2RXb2xJRU5tYVVtdG1UZFVicVYyNGJMa1RtZQpiWHZQdlF3LzJoVk5VVmhWbDNjays1SUZBS0hYVWJ3ZklSWE8vUVlUbFM0ZVdabkFsN0JQSzJQa080SXkvOG1zQVZKRGl4CmkvVm1oaTBYb05lSmxERU9sdzNaY084aTlRZjVSbTNEWmRHUDRha0JsYmk5ekdBWUpqRGFjM0dWdTMxK2pJVG9hUHplbysKeUFDL2svM0J5Slg4enQ1cDRHVXpsNVFKcEVHMnBpQXdJeElKZS8yK3pBMXU5dmhma0FBQURCQU5NZHdhemx5MXNpd0dXbQpJWSs4VFZMN1EwQ1pFTWxTL0VraE1YM2FNQnZYaURXd2cwVk8zKytXUDhlMWhDSUxvNmdqL0N2dFdLdGEzVlozUWFScHZ5CkhCVEp4Q205NHZQOXFPelhTRGZ0WVRrSHh1SFdQaklhb010N0YyL0srejJiZTdESmhvL0ZwMVY0U2x2R1ljWHdqaWhEaDAKbHF1bUltOEJJei9taHpjZTFKR0VMUUdJeXk4RDI0dTNtY2NhSFoxYWY1V3A5Y1VCZ09POXEwa3B1WVhEdHpPSk9UTVozUQpNUm5xdXVVM1ppRHdmRGltZzdsZktwWGkxZzFxeWZUd0FBQU1FQXpoWEdhTVdBM1pUT1hqWWhPTUhkdTk0R2RNcHNXYWo0CjBsMmZ6YzdFWTlzWEdLZ01XMllvRXk5UVNSTDRPUmNMaUFKTDRLZGdZeGZzeVdma1U1d21TbGZXNjlrb0R2WTE0LzNWbWYKZ0NTUkxvL0RnTUZtOGFNK3pUVzhWYTVpclJXWFpEeHNXb0RiNzdIZ2JZaE90M29iOEFWWUh4akk3N1k3MXlBUzhXS2xRSQpYQi9qZ01vN1BCL3BTMVVYSEhCcndxQkdwM3M5aThab0E0L2hLY0pvaEtWSDZGL0Z2Rk1jWHZTNjZOcGNUWHNWQzBVUzNkCkJVY0taNTVvUUhVcnNQQUFBQUdIQnlZWFJvYVd0eVFFeEJVRlJQVUMxU00wZFVUa2xDVXdFQwotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K', + 'ssh_known_hosts': 'Z2l0b3BzLWJpdGJ1Y2tldC10ZXN0LXNlcnZlci5lYXN0dXMuY2xvdWRhcHAuYXp1cmUuY29tIHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQytNT0w3bjk2aGs3emVmMDNwak9vMGF3UENISkZ4NU04TjJ2L2tvODgvc202Y2VzOFljdnYyL0hoUlhRSFZHRUxqZjNuTXVGSVJPMEdMdTFabFNreGRUTUhGcXBxYzFjcUM2R3kveUJXRGM1SWFwWnJBMXFxeSsrZVdpelAzQXdMbWsrMUhXWGdtcHljZUtYNU9vd3VNT3cwd3RYRUdTcDhtVk0wV2VpUzEwWnZ5ZVVKK04zbkNvczMyWDhIeVpnc1pMUS9zSTB4NXN6ODQ2am5JZEFOckZsYU9MUTJ1ejRUa0M2ekNvd3lIdzlLWXJ5V2hJZDAraCt5SXQ5dUtqVHZsWFNpdm1ISjViZzdUWWlkbnFtbjI0UGE4WnFpbTE5UGszUjg0cW9qclVmYm1XT3VwUjdYNXZVVWZqYzhERFRxa3FnRmkxcWdVdE1mWGlMRXErZFVa' + }) + + # Check that the configuration does not already exist + with self.assertRaises(ResourceNotFoundError): + self.cmd('k8sconfiguration show -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type}') + + # Create a configuration + self.cmd(''' k8sconfiguration create -g {rg} + -n {name} + -c {cluster_name} + -u {repo_url} + --cluster-type {cluster_type} + --scope {scope} + --operator-instance-name {operator_instance_name} + --operator-namespace {operator_namespace} + --operator-params \"--git-readonly \" + --ssh-private-key {ssh_private_key} + --ssh-known-hosts {ssh_known_hosts} + --enable-helm-operator + --helm-operator-version 1.2.0 + --helm-operator-params \"--set git.ssh.secretName=gitops-privatekey-{operator_instance_name} --set tillerNamespace=kube-system\" ''', + checks=[ + self.check('name', '{name}'), + self.check('resourceGroup', '{rg}'), + self.check('operatorInstanceName', '{operator_instance_name}'), + self.check('operatorNamespace', '{operator_namespace}'), + self.check('provisioningState', 'Succeeded'), + self.check('operatorScope', 'namespace'), + self.check('operatorType', 'Flux'), + self.check('sshKnownHostsContents', '{ssh_known_hosts}') + ]) + + # Get the configuration created + self.cmd('k8sconfiguration show -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type}', + checks=[ + self.check('name', '{name}'), + self.check('resourceGroup', '{rg}'), + self.check('operatorInstanceName', '{operator_instance_name}'), + self.check('operatorNamespace', '{operator_namespace}'), + self.check('provisioningState', 'Succeeded'), + self.check('operatorScope', 'namespace'), + self.check('operatorType', 'Flux'), + self.check('sshKnownHostsContents', '{ssh_known_hosts}') + ]) + + # Delete the created configuration + self.cmd('k8sconfiguration delete -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type} -y') + + # -------------------------------------------------------------------- + # HTTPS SCENARIO TEST + # -------------------------------------------------------------------- + self.kwargs.update({ + 'name': 'cli-test-config11', + 'cluster_name': 'nanthicluster0923', + 'rg': 'nanthirg0923', + 'repo_url': 'https://github.com/jonathan-innis/helm-operator-get-started-private.git', + 'operator_instance_name': 'cli-test-config11-opin', + 'operator_namespace': 'cli-test-config11-opns', + 'cluster_type': 'connectedClusters', + 'scope': 'namespace', + 'https_user': 'fake-username', + 'https_key': 'fakepasswordthatiwoulduseforgithub' + }) + + # Check that the configuration does not already exist + with self.assertRaises(ResourceNotFoundError): + self.cmd('k8sconfiguration show -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type}') + + self.cmd(''' k8sconfiguration create -g {rg} + -n {name} + -c {cluster_name} + -u {repo_url} + --cluster-type {cluster_type} + --scope {scope} + --operator-instance-name {operator_instance_name} + --operator-namespace {operator_namespace} + --operator-params \"--git-readonly \" + --https-user {https_user} + --https-key {https_key} + --enable-helm-operator + --helm-operator-version 1.2.0 + --helm-operator-params \"--set tillerNamespace=kube-system\" ''', + checks=[ + self.check('name', '{name}'), + self.check('resourceGroup', '{rg}'), + self.check('operatorInstanceName', '{operator_instance_name}'), + self.check('operatorNamespace', '{operator_namespace}'), + self.check('provisioningState', 'Succeeded'), + self.check('operatorScope', 'namespace'), + self.check('operatorType', 'Flux') + ]) + + # Get the configuration created + self.cmd('k8sconfiguration show -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type}', + checks=[ + self.check('name', '{name}'), + self.check('resourceGroup', '{rg}'), + self.check('operatorInstanceName', '{operator_instance_name}'), + self.check('operatorNamespace', '{operator_namespace}'), + self.check('provisioningState', 'Succeeded'), + self.check('operatorScope', 'namespace'), + self.check('operatorType', 'Flux'), + ]) + + # Delete the created configuration + self.cmd('k8sconfiguration delete -g {rg} -c {cluster_name} -n {name} --cluster-type {cluster_type} -y') diff --git a/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_validators.py b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_validators.py new file mode 100644 index 0000000000..eb80da912b --- /dev/null +++ b/src/k8sconfiguration/azext_k8sconfiguration/tests/latest/test_validators.py @@ -0,0 +1,176 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------------------------- + +import unittest +import base64 +from azure.cli.core.azclierror import InvalidArgumentValueError, MutuallyExclusiveArgumentError +from azext_k8sconfiguration.custom import get_protected_settings, validate_url_with_params, validate_known_hosts +import azext_k8sconfiguration._validators as validators +from Crypto.PublicKey import RSA, ECC, DSA +from paramiko.ed25519key import Ed25519Key + + +class TestValidateKeyTypes(unittest.TestCase): + def test_bad_private_key(self): + private_key_encoded = base64.b64encode("this is not a valid private key".encode('utf-8')).decode('utf-8') + err = "Error! ssh private key provided in invalid format" + with self.assertRaises(InvalidArgumentValueError) as cm: + get_protected_settings(private_key_encoded, '', '', '') + self.assertEqual(str(cm.exception), err) + + def test_rsa_private_key(self): + rsa_key = "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJsd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFZRUF1bVA5M09qRHdjdlEyZHZhRlJNNWYrMEhVSnFvOFJnbmdwaGN3NFZidnd1TVNoQTZFc2FyCjFsam1CNUNnT1NGNHJqNDIvcmdxMW1hWndoSUgvckdPSElNa0lIcjFrZmNKMnBrR3ZhK1NxVm4wWUhzMjBpUW02ay92ZXQKdXdVQ2J1QjlxSU5zL2h2b0ppQ21JMUVpVWZ4VGoxRFJCUG15OXR3Qm52bW5FS1kxZ2NhT2YrS2Y1aGhCc09pd00yZnBRTwp0aTlIcHVzM1JhNXpFeElWbjJzVitpRjVvV3ZZM1JQTTlKNXFPMXRObUtOWll6TjgzbDYxMlBzRmR1Vm1QM2NUUlJtK2pzCjdzZW5jY0U0RitzU0hQMlJpMk5DU0JvZ2RJOFR5VTlzeTM3Szl3bFJ5NGZkWWI1K1o3YUZjMjhTNDdDWlo5dTRFVXdWUEYKbjU4dTUzajU0empwdXNpei9ZWmx3MG5NeEQ5SXI0aHlJZ2s0NlUzVmdHR0NPUytZVTVZT2JURGhPRG5udk5VRkg2NVhCagpEM3l6WVJuRDA3b2swQ1JUR3RCOWMzTjBFNDBjUnlPeVpEQ0l5a0FPdHZXYnBUZzdnaXA2UDc4K2pLVlFnanFwRTVQdi9ICnl1dlB6cUJoUkpWcG5VR1dvWnFlcWJhd2N5RWZwdHFLaTNtWUdVMHBBQUFGa0U5cUs3SlBhaXV5QUFBQUIzTnphQzF5YzIKRUFBQUdCQUxwai9kem93OEhMME5uYjJoVVRPWC90QjFDYXFQRVlKNEtZWE1PRlc3OExqRW9RT2hMR3E5Wlk1Z2VRb0RraAplSzQrTnY2NEt0Wm1tY0lTQi82eGpoeURKQ0I2OVpIM0NkcVpCcjJ2a3FsWjlHQjdOdElrSnVwUDczcmJzRkFtN2dmYWlECmJQNGI2Q1lncGlOUklsSDhVNDlRMFFUNXN2YmNBWjc1cHhDbU5ZSEdqbi9pbitZWVFiRG9zRE5uNlVEcll2UjZick4wV3UKY3hNU0ZaOXJGZm9oZWFGcjJOMFR6UFNlYWp0YlRaaWpXV016Zk41ZXRkajdCWGJsWmo5M0UwVVp2bzdPN0hwM0hCT0JmcgpFaHo5a1l0alFrZ2FJSFNQRThsUGJNdCt5dmNKVWN1SDNXRytmbWUyaFhOdkV1T3dtV2ZidUJGTUZUeForZkx1ZDQrZU00CjZicklzLzJHWmNOSnpNUS9TSytJY2lJSk9PbE4xWUJoZ2prdm1GT1dEbTB3NFRnNTU3elZCUit1VndZdzk4czJFWnc5TzYKSk5Ba1V4clFmWE56ZEJPTkhFY2pzbVF3aU1wQURyYjFtNlU0TzRJcWVqKy9Qb3lsVUlJNnFST1Q3L3g4cnJ6ODZnWVVTVgphWjFCbHFHYW5xbTJzSE1oSDZiYWlvdDVtQmxOS1FBQUFBTUJBQUVBQUFHQkFMaElmSXFacUZKSFRXcllyN24rays4alR3ClFtcGJvWmc1YmZSWGdhdGljaEo4ZGlXOGlNblFFRVRBcFd0OU5FZ0tqbDRrSGRuSnoyUERkZzFIN0ExaHppbkNsdzZMTTAKYUkyMGxyR2NrWWpXNDRNd3ozYmRQNHlURTllSXRiM0pmN1pNSGpqek4rSy96bWN0eWdMeXFZSzVXYTljM1JnMXdIRWFNNAplakUvNDg4M25WUmJvSFJDcjFCVi8wQVVFTTZhNisrRHpVZW9WdWdWL3RsV3RVMlJuQlZ4eCtJS0FVSDZRTHJFU2JkUkRoCkVGUEFhRWtEb3crd3dDcFpqTXBhMHdRZXBDSkhwWkJLN1pBU25EU3R3Y2RKRE4yeHZzdVNOOGg0bkN0MlZWd0xRenJKeVAKU2VjcWM3M1hIc3E3VWx6ZU5veHlTVW9KZ2JjNTZoRzhWYS9ITlhsOUtkdkFlWUVzS1l1OW5NRUprVSt3VHo1KzUvM2wwVQpxSkErb0pTVTducjYydlVKQnljbXg0SFdBcjJ6QkR2QnFBUWMzRG9LWHczeVM1Z0c5Zkc0c25OUUkxOHVRSjdOSjdndHZHClpKRU56bTNJMmFTMzl5dndWZnFIMXpXVERxU2VNeWhYeWFnTkFEcGtCVEJIMVJQR2NtTFplclFmWWx1djVVUmFNTXdRQUEKQU1BdE9oNHFwUUhidm5tQ1RVakx4dXRrWnRaRlhNa0hmSTk5NS9Nd2RvWVY1eWRKV0pUVGsyKzB1QVBIcTZEejk2b3dWbQpjUkF2WDBDOVU5d3ZRMkpnR0Y1MDZzcmgzZkVpUzM2d1ArOFd0RjZ6ODd0enJwQnpQVHIxOGRONURCOEx5L3dXRk5BVTdqClBUbXM0dHlUY1VsRXR3eEt4TXJTNC9ROUZwMWozL3JNdnNZdGVaSVgycmN4YUhkWWJDVGJtTUpZS3lVTWVXTk56NXpub1EKcFcyd2NDSmpJc1MvS1F2WmR4cHZwNWd0RXE1WlEva3FvLzJVRWd1NHhwdDNWeUNma0FBQURCQVBOSHVEU1R0ZEpJWjdzcwpaQkVwcUE4TE54b1dMQ2RURnlpRERiUnpYOWVPTldkRFQ3NklaRE9HejczNXJhZUFSM2FiY0FhaUM0dDQwTFJTNGEyN29sCm9wK1dSak9wcjVNYUtOUnk4MCt6VWw3WUlSMjErKzVnMFVnNkRnQlBEdmFJSHFSTnRsZ2gyVXdTL0cva1lOaUlEY0JiS1EKOUcvdTI4ekRIRUtNL21YYS8wYnFtSm16ZUYvY1BLdHdScFE3clFoRnAwUkdFcnZtc0l4dDl6K0ZZZUdncjFBYUVTV0ZlTApmUmZsa0lnOVBWOEl0b09GN25qK2VtMkxkNTNCS1hSUUFBQU1FQXhDTFBueHFFVEsyMW5QOXFxQVYzMEZUUkhGNW9kRHg4ClpiYnZIbjgwdEgxQjYwZjRtTGJFRm56REZFR0NwS2Rwb3dyUXR6WUhnQzNBaGNJUE9BbXFXaDg0UEFPbisreHhFanNaQkwKRWhVWmNFUndkYTMzTnJDNTVEMzZxbDBMZEsrSGRuZUFzVGZhazh0bWVlOTJWb0RxdWovNGFSMjBmUTBJUFVzMU8rWHNRNQpGWVFYQzZndExHZGRzRVFoSDF6MTh6RGtWa1UwdEhlZkJaL2pFZXBiOEZScXoxR1hpT0hGK2xBZVE2b3crS0xlcWtCcXQ4CkZxMHhGdG90SlF4VnFWQUFBQUYycHZhVzV1YVhOQVJFVlRTMVJQVUMxUVRWVkdVRFpOQVFJRAotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K" + protected_settings = get_protected_settings(rsa_key, '', '', '') + self.assertEqual('sshPrivateKey' in protected_settings, True) + self.assertEqual(protected_settings.get('sshPrivateKey'), rsa_key) + + def test_dsa_private_key(self): + key = DSA.generate(2048) + private_key_encoded = base64.b64encode(key.export_key()).decode('utf-8') + protected_settings = get_protected_settings(private_key_encoded, '', '', '') + self.assertEqual('sshPrivateKey' in protected_settings, True) + self.assertEqual(protected_settings.get('sshPrivateKey'), private_key_encoded) + + def test_ecdsa_private_key(self): + ecdsa_key = "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFhQUFBQUJObFkyUnpZUwoxemFHRXlMVzVwYzNSd01qVTJBQUFBQ0c1cGMzUndNalUyQUFBQVFRUjBRc1BjWmJKeWZPaXE2a1M1d0VaeE5DbmR2YVJHCm1ETEUvVVBjakpDTDZQTVIyZmdPS2NnWlhzTEZkTUFzSnExS2d6TmNDN0ZXNGE0L0wrYTFWWUxDQUFBQXNIZ1RqTFY0RTQKeTFBQUFBRTJWalpITmhMWE5vWVRJdGJtbHpkSEF5TlRZQUFBQUlibWx6ZEhBeU5UWUFBQUJCQkhSQ3c5eGxzbko4NktycQpSTG5BUm5FMEtkMjlwRWFZTXNUOVE5eU1rSXZvOHhIWitBNHB5Qmxld3NWMHdDd21yVXFETTF3THNWYmhyajh2NXJWVmdzCklBQUFBZ0h1U3laU0NUZzJZbVNpOG9aY2c0cnVpODh0T1NUSm1aRVhkR09hdExySHNBQUFBWGFtOXBibTVwYzBCRVJWTkwKVkU5UUxWQk5WVVpRTmswQgotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K" + protected_settings = get_protected_settings(ecdsa_key, '', '', '') + self.assertEqual('sshPrivateKey' in protected_settings, True) + self.assertEqual(protected_settings.get('sshPrivateKey'), ecdsa_key) + + def test_ed25519_private_key(self): + ed25519_key = "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNCNjF0RzkrNGFmOTZsWGoyUStjWjJMT2JpV1liMlRtWVR6N3NSV0JDM1hVZ0FBQUtCRzFWRWZSdFZSCkh3QUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQjYxdEc5KzRhZjk2bFhqMlErY1oyTE9iaVdZYjJUbVlUejdzUldCQzNYVWcKQUFBRURRTStLcCtOSWpJVUhSUklqRFE5VDZ0U0V0SG9Ic0w1QjlwbHpCNlZ2MnluclcwYjM3aHAvM3FWZVBaRDV4bllzNQp1SlpodlpPWmhQUHV4RllFTGRkU0FBQUFGMnB2YVc1dWFYTkFSRVZUUzFSUFVDMVFUVlZHVURaTkFRSURCQVVHCi0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=" + protected_settings = get_protected_settings(ed25519_key, '', '', '') + self.assertEqual('sshPrivateKey' in protected_settings, True) + self.assertEqual(protected_settings.get('sshPrivateKey'), ed25519_key) + + +class TestValidateK8sNaming(unittest.TestCase): + def test_long_operator_namespace(self): + operator_namespace = "thisisaverylongnamethatistoolongtobeused" + namespace = OperatorNamespace(operator_namespace) + err = 'Error! Invalid --operator-namespace' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_operator_namespace(namespace) + self.assertEqual(str(cm.exception), err) + + def test_long_operator_instance_name(self): + operator_instance_name = "thisisaverylongnamethatistoolongtobeused" + namespace = OperatorInstanceName(operator_instance_name) + err = 'Error! Invalid --operator-instance-name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_operator_instance_name(namespace) + self.assertEqual(str(cm.exception), err) + + def test_caps_operator_namespace(self): + operator_namespace = 'Myoperatornamespace' + namespace = OperatorNamespace(operator_namespace) + err = 'Error! Invalid --operator-namespace' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_operator_namespace(namespace) + self.assertEqual(str(cm.exception), err) + + def test_caps_operator_instance_name(self): + operator_instance_name = 'Myoperatorname' + namespace = OperatorInstanceName(operator_instance_name) + err = 'Error! Invalid --operator-instance-name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_operator_instance_name(namespace) + self.assertEqual(str(cm.exception), err) + + def test_long_config_name(self): + config_name = "thisisaverylongnamethatistoolongtobeusedthisisaverylongnamethatistoolongtobeused" + err = 'Error! Invalid --name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_configuration_name(config_name) + self.assertEqual(str(cm.exception), err) + + def test_valid_config_name(self): + config_name = "this-is-a-valid-config" + validators.validate_configuration_name(config_name) + + def test_caps_config_name(self): + config_name = "ThisIsaCapsConfigName" + err = 'Error! Invalid --name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_configuration_name(config_name) + self.assertEqual(str(cm.exception), err) + + def test_dot_config_name(self): + config_name = "a234567890b234567890c234567890d234567890e234567890f234567890.23" + err = 'Error! Invalid --name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_configuration_name(config_name) + self.assertEqual(str(cm.exception), err) + + def test_end_hyphen_config_name(self): + config_name = "a234567890b234567890c234567890d234567890e234567890f23456789023-" + err = 'Error! Invalid --name' + with self.assertRaises(InvalidArgumentValueError) as cm: + validators.validate_configuration_name(config_name) + self.assertEqual(str(cm.exception), err) + + +class TestValidateURLWithParams(unittest.TestCase): + def test_ssh_private_key_with_ssh_url(self): + validate_url_with_params('git@github.com:jonathan-innis/helm-operator-get-started-private.git', True, False, False) + + def test_ssh_known_hosts_with_ssh_url(self): + validate_url_with_params('git@github.com:jonathan-innis/helm-operator-get-started-private.git', False, True, False) + + def test_https_auth_with_https_url(self): + validate_url_with_params('https://github.com/jonathan-innis/helm-operator-get-started-private.git', False, False, True) + + def test_ssh_private_key_with_https_url(self): + err = 'Error! An ssh private key cannot be used with an http(s) url' + with self.assertRaises(MutuallyExclusiveArgumentError) as cm: + validate_url_with_params('https://github.com/jonathan-innis/helm-operator-get-started-private.git', True, False, False) + self.assertEqual(str(cm.exception), err) + + def test_ssh_known_hosts_with_https_url(self): + err = 'Error! ssh known_hosts cannot be used with an http(s) url' + with self.assertRaises(MutuallyExclusiveArgumentError) as cm: + validate_url_with_params('https://github.com/jonathan-innis/helm-operator-get-started-private.git', False, True, False) + self.assertEqual(str(cm.exception), err) + + def test_https_auth_with_ssh_url(self): + err = 'Error! https auth (--https-user and --https-key) cannot be used with a non-http(s) url' + with self.assertRaises(MutuallyExclusiveArgumentError) as cm: + validate_url_with_params('git@github.com:jonathan-innis/helm-operator-get-started-private.git', False, False, True) + self.assertEqual(str(cm.exception), err) + + +class TestValidateKnownHosts(unittest.TestCase): + def test_valid_known_hosts(self): + known_hosts_raw = "ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H" + known_hosts_encoded = base64.b64encode(known_hosts_raw.encode('utf-8')).decode('utf-8') + validate_known_hosts(known_hosts_encoded) + + def test_valid_known_hosts_with_comment(self): + known_hosts_raw = "ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H ThisIsAValidComment" + known_hosts_encoded = base64.b64encode(known_hosts_raw.encode('utf-8')).decode('utf-8') + validate_known_hosts(known_hosts_encoded) + + def test_valid_known_hosts_with_comment_own_line(self): + known_hosts_raw = "#this is a comment on its own line\nssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H" + known_hosts_encoded = base64.b64encode(known_hosts_raw.encode('utf-8')).decode('utf-8') + validate_known_hosts(known_hosts_encoded) + + def test_invalid_known_hosts(self): + known_hosts_raw = "thisisabadknownhostsfilethatisaninvalidformat" + known_hosts_encoded = base64.b64encode(known_hosts_raw.encode('utf-8')).decode('utf-8') + err = 'Error! ssh known_hosts provided in wrong format' + with self.assertRaises(InvalidArgumentValueError) as cm: + validate_known_hosts(known_hosts_encoded) + self.assertEqual(str(cm.exception), err) + + +class OperatorNamespace: + def __init__(self, operator_namespace): + self.operator_namespace = operator_namespace + + +class OperatorInstanceName: + def __init__(self, operator_instance_name): + self.operator_instance_name = operator_instance_name diff --git a/src/k8sconfiguration/setup.py b/src/k8sconfiguration/setup.py index a7f8efc0f8..b160fe9fc3 100644 --- a/src/k8sconfiguration/setup.py +++ b/src/k8sconfiguration/setup.py @@ -16,7 +16,7 @@ # TODO: Confirm this is the right version number you want and it matches your # HISTORY.rst entry. -VERSION = '0.2.2' +VERSION = '0.2.3' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers