def SetUp(self): self.api_version = gkehub_api_util.GetApiVersionForTrack(self.track) self.exclusivity_msg = core_apis.GetMessagesModule( self.MODULE_NAME, gkehub_api_util.GKEHUB_BETA_API_VERSION) self.messages = core_apis.GetMessagesModule(self.MODULE_NAME, self.api_version) self.mocked_client = apimock.Client( client_class=core_apis.GetClientClass(self.MODULE_NAME, self.api_version)) self.mocked_client.Mock() self.addCleanup(self.mocked_client.Unmock) self.wait_operation_ref = resources.REGISTRY.Parse( 'operation-1414184316101-d4546dd2', collection='gkehub.projects.locations.operations', params={ 'locationsId': 'global', 'projectsId': self.Project(), }, api_version=self.api_version) self.wait_operation_relative_name = self.wait_operation_ref.RelativeName( ) self.parent = 'projects/{0}/locations/global'.format(self.Project()) self.membership = '{0}/memberships/{1}'.format(self.parent, self.MEMBERSHIP_NAME)
def _GenerateManifest(args, service_account_key_data, image_pull_secret_data, upgrade, membership_ref, release_track=None): """Generate the manifest for connect agent from API. Args: args: arguments of the command. service_account_key_data: The contents of a Google IAM service account JSON file. image_pull_secret_data: The image pull secret content to use for private registries. upgrade: if this is an upgrade operation. membership_ref: The membership associated with the connect agent in the format of `projects/[PROJECT]/locations/global/memberships/[MEMBERSHIP]` release_track: the release_track used in the gcloud command, or None if it is not available. Returns: The full manifest to deploy the connect agent resources. """ api_version = gkehub_api_util.GetApiVersionForTrack(release_track) delimeter = '---\n' full_manifest = '' # Based on the API version, use api_adapter if GenerateConnectAgentManifest is # a nested message, else use the default api_client. if api_version in ['v1beta1']: adapter = gkehub_api_adapter.NewAPIAdapter(api_version) connect_agent_ref = _GetConnectAgentOptions(args, upgrade, DEFAULT_NAMESPACE, image_pull_secret_data, membership_ref) manifest_resources = adapter.GenerateConnectAgentManifest(connect_agent_ref) for resource in manifest_resources: full_manifest = full_manifest + resource['manifest'] + delimeter else: manifest_resources = api_util.GenerateConnectAgentManifest( membership_ref, image_pull_secret_content=image_pull_secret_data, is_upgrade=upgrade, namespace=DEFAULT_NAMESPACE, proxy=args.proxy, registry=args.docker_registry, version=args.version, release_track=release_track) for resource in manifest_resources.manifest: full_manifest = full_manifest + resource.manifest + delimeter # Append creds secret. full_manifest = full_manifest + CREDENTIAL_SECRET_TEMPLATE.format( namespace=DEFAULT_NAMESPACE, gcp_sa_key_secret_name=GCP_SA_KEY_SECRET_NAME, gcp_sa_key=encoding.Decode(service_account_key_data, encoding='utf8')) return full_manifest